Перейти к содержимому

Передача дежурства

Доска передачи дежурства для инженеров на ротации, лидов дежурства и руководителей. При каждой смене она фиксирует, что передаёт уходящий дежурный: открытые инциденты, начатые действия, известные риски и следующий шаг по каждому пункту.

Без неё уходящий дежурный пишет заметку в чат, которую следующая смена не читает. На каждой пересменке активные инциденты теряют 15–30 минут реакции. Три человека думают, что P1 занимается кто-то другой. Руководитель, согласующий деплой, не знает, какие сервисы сейчас в состоянии инцидента, а контекст для разбора разбросан по четырём инструментам.

  • Фиксирует каждую передачу смены. Запись передачи содержит открытые инциденты, незавершённые действия, риски и следующие шаги, с автором и принимающим.
  • Показывает принимающему полную картину. Новый дежурный видит, что активно, что уже пробовали и что требует продолжения, не перечитывая чат.
  • Требует единственного владельца. Каждый открытый инцидент выше P3 имеет одного названного ответственного к моменту закрытия передачи.
  • Поднимает зависшие дела. Инциденты, открытые больше двух суток без обновлений, стоят первыми в сводке передачи.
  • Показывает состояние перед деплоем. Руководитель видит, какие сервисы в инциденте, прежде чем согласовать выкатку.
  • Пейджинг остаётся на месте. PagerDuty или Opsgenie ведут расписание и будят людей; доска их не заменяет. Расписание ротации подтягивается из них по API, а если его ведут вручную — из таблицы или CSV. Если у команды одна ротация и мало инцидентов, хватит шаблона передачи в пейджинге или в трекере.
  • Сводка обязательна. Передача не переходит в «Завершена», пока уходящий дежурный не заполнил число открытых инцидентов и следующие шаги, а принимающий не подтвердил получение. Необязательная заметка превращается в пустую.
  • Контекст по ссылкам, а не копиями. К инциденту прикрепляют ссылки на обсуждение в чате, алерт и деплой, а не пересказ. Доска собирает контекст, но источником фактов остаются исходные системы.
  • Эскалация посреди смены. Если P3 стал P1 во время смены, запись инцидента обновляется сразу, и в передаче видно текущее состояние, а не то, что было при открытии.
  • У команд разные правила. Платформенной и прикладной командам могут понадобиться разные поля, уровни серьёзности и правила. Модель данных это допускает, но общий минимум полей держат одинаковым для сводной картины.
  • Связь со штабом инцидентов. Если в компании есть штаб управления инцидентами, доска берёт инциденты оттуда, а не заводит второй список. Два учёта одних и тех же инцидентов быстро расходятся.
  • Доступ. Передачи своей ротации меняют её участники, лиды видят все ротации, остальные — только чтение.

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным Filament 4.x. Отправляйте их по одному и проверяйте результат каждого шага.

Создай модели и миграции для передачи дежурства: Rotation (название,
команда), Shift (ротация, дежурный, начало, окончание), Handoff (ротация,
уходящий и принимающий дежурный, время, статус: черновик, отправлена,
принята; сводка, риски, следующие шаги), HandoffItem (передача, инцидент
или задача, владелец, последнее действие, следующий шаг, ссылки на
чат, алерт и деплой). Инциденты бери из существующей таблицы инцидентов,
если она есть. Добавь фабрики.
Сгенерируй Filament-ресурс для Handoff. При создании автоматически
подставляй в пункты передачи все открытые инциденты ротации и их текущих
владельцев. Сводка и следующие шаги обязательны для отправки. Добавь
действие «Принять смену» для принимающего дежурного.

Проверьте, что передачу нельзя отправить, если у инцидента выше P3 нет владельца.

Сделай страницу Filament «Моя смена»: открытые пункты последней принятой
передачи, сначала зависшие дольше 48 часов без обновлений, затем по
серьёзности. Для каждого пункта покажи последнее действие, следующий шаг
и ссылки на контекст.
Добавь синхронизацию расписания ротаций из API системы пейджинга
по расписанию, с запасным импортом из CSV. За 30 минут до конца смены
отправляй уходящему дежурному напоминание о передаче; если передача
не принята через час после начала смены, уведоми лида ротации.

Проверьте, что при недоступном API пейджинга текущее расписание не стирается, а синхронизация записывает ошибку.

Настрой роли: участники ротации создают и принимают передачи своей
ротации, лиды видят все ротации, остальные — только чтение. Добавь
виджет «Сервисы в инциденте сейчас» для руководителей, согласующих
деплои, и долю передач, принятых вовремя, за месяц.