Передача сессии
Назначение
На границе сессии осознанно упаковать её содержимое в передаточный документ, с которого начнёт работу следующая сессия или другой агент, — вместо того чтобы доверять автосуммаризации решать, что из контекста выживет.
Также известен как
Handoff, хендофф; /handoff в скилах Мэтта Покока; передаточный документ.
Проблема
У каждой сессии есть граница: окно заканчивается, работа передаётся другому агенту, или следующий этап удобнее делать с чистого листа. Через границу контекст сам не переходит, и оба штатных способа его переноса плохи:
- Автокомпакт срабатывает по порогу и суммаризирует по собственному разумению. Что уцелеет — принятые решения или пересказ давно отработанных логов, — вы не выбираете. Терять он будет молча: обнаружится это только когда агент «забудет» договорённость.
- Пересказ вручную дорог и дыряв: разработчик восстанавливает по памяти то, что агент знал точнее, — и неизбежно теряет причины решений и отброшенные тупики.
Есть и третья беда: суммаризация продолжает ту же работу в том же треде. А следующая сессия часто нужна для другого — прототипа, реализации по готовому плану, ревью. Ей нужен не пересказ всей истории, а выжимка под её конкретную цель.
Решение
Последним действием сессии разработчик просит агента собрать передаточный документ — и говорит, для чего будет следующая сессия. Агент, ещё держа весь контекст в окне, упаковывает его под эту цель:
- текущее состояние и цель следующей сессии;
- ключевые решения — с причинами, а не только итогами;
- что уже пробовали и отбросили, чтобы не пробовать снова;
- конкретный следующий шаг;
- ссылки на постоянные артефакты — спецификации, ADR, коммиты, тикеты — вместо их пересказа;
- подсказки следующему агенту: какие скилы и инструменты пригодятся.
Секреты — ключи, пароли, персональные данные — вычищаются: документ покидает пределы сессии. Сам он одноразовый и в репозиторий не коммитится: место долговременного знания — в спецификациях, ADR и журнале прогресса, а передача живёт от сессии до сессии.
Новая сессия начинается с чтения документа — и получает плотный, курированный контекст под свою задачу, а не лотерею автокомпакта и не хвост чужой истории.
Структура
Верхний путь — паттерн: уходящая сессия, пока контекст ещё цел, собирает передаточный документ под названную цель; следующая сессия читает его первым сообщением. Постоянные артефакты в документ не переписываются — он ссылается на них, и новая сессия дочитает нужное сама. Нижний пунктирный путь — то, чему паттерн противопоставлен: автокомпакт переносит через границу то, что выберет сам, и продолжает тот же тред вместо чистого старта под новую цель.
Участники / Компоненты
- Уходящая сессия — единственный момент, когда контекст ещё полон; собирает документ.
- Передаточный документ — одноразовая выжимка под цель: состояние, решения, тупики, следующий шаг, ссылки.
- Следующая сессия — свежее окно (другой агент, другой профиль работы); начинает с чтения документа.
- Разработчик — задаёт цель следующей сессии и решает, когда граница наступила.
- Постоянные артефакты — спецификации, ADR, коммиты, тикеты; в документ входят ссылками.
Когда применять
- Окно на исходе, а работа не закончена — передача вместо надежды на автокомпакт.
- Меняется характер работы: исследование → прототип, план → реализация, реализация → ревью. Следующему этапу нужен чистый лист и выжимка, а не вся история.
- Работа передаётся другому агенту или коллеге.
- Долгая дискуссия накопила решения, которые жалко доверить компакту.
Если работа продолжается в той же сессии тем же курсом — достаточно журнала прогресса; передача — ход именно на границе.
Последствия и компромиссы
- ➕ Что переживёт границу, решает разработчик, а не порог автокомпакта.
- ➕ Следующая сессия стартует с контекста, скроенного под её цель, — плотнее и дешевле, чем хвост чужой истории.
- ➕ Причины решений и отброшенные тупики переезжают явно — именно то, что автосуммаризация теряет первым.
- ➖ Ручной ход: границу нужно заметить заранее — документ, собранный после компакта, упаковывает уже урезанный контекст.
- ➖ Качество зависит от упаковки: плохо собранный документ теряет то же, что и автомат.
- ➖ Соблазн дублировать артефакты: пересказ спецификации в передаче — лишние токены и второй источник истины.
Реализация
- Заведите команду: готовый скил
/handoffесть в паке Мэтта Покока, в Claude Code легко сделать свою слэш-команду. Важно, чтобы это был один вызов, а не ритуал на память. - Всегда называйте цель: «собери handoff для сессии, которая будет X». Документ под реализацию и документ под ревью — разные документы.
- Держите состав: состояние и цель, решения с причинами, отброшенное, следующий шаг, ссылки на артефакты, рекомендуемые скилы.
- Не дублируйте: всё, что уже записано в спецификации, ADR, коммитах и тикетах, — входит ссылкой, не пересказом.
- Вычищайте секреты: документ будет прочитан вне этой сессии.
- Храните вне репозитория — во временном каталоге: это одноразовый документ. То, что должно жить долго, по итогам сессии уходит в постоянные артефакты.
- Следующую сессию начинайте с документа: «прочитай такой-то файл и продолжи».
- Следите за окном: передача собирается до компакта. Если инструмент показывает заполнение окна — это сигнал готовить границу.
Пример
Сессия спланировала миграцию тарифов и упёрлась в открытый вопрос: потянет ли выбранная модель отмен подписки корпоративные контракты. Решать его удобнее прототипом в чистой сессии. Разработчик закрывает текущую:
Собери handoff для следующей сессии: она будет делать прототип модели отмен, вопрос — выдерживает ли модель корпоративные контракты с отложенным стартом.
Агент пишет во временный каталог handoff-cancellation-prototype.md:
# Handoff: прототип модели отмен
## Цель сессии
Проверить прототипом: выдерживает ли событийная модель отмен
корпоративные контракты с отложенным стартом.
## Контекст
План миграции тарифов готов (см. docs/specs/tariff-migration.md).
Открытый вопрос №3 оттуда — модель отмен.
## Решения
- Отмена — событие с датой вступления, не смена статуса: нужна
история для биллинга (ADR-0009).
## Отброшено
- Флаг cancelled_at на подписке: теряет повторные отмены после
реактивации.
## Следующий шаг
Прототип: три сценария — немедленная отмена, отмена с датой,
отмена до старта контракта.
## Рекомендуемые скилы
/prototype — сессия целиком про throwaway-код.
Новая сессия начинается с одной строки:
Прочитай /tmp/handoff-cancellation-prototype.md и приступай.
Прототип-сессия не тащит за собой три часа планирования — только выжимку под свой вопрос и ссылку на спецификацию, если понадобятся детали.
Анти-паттерны и частые ошибки
- Доверить границу автокомпакту. Решения и причины уходят молча; паттерн существует ровно затем, чтобы этого не было.
- Передача-дамп. Выгрузить всю историю «на всякий случай» — следующая сессия начинает с чужого шума вместо чистого контекста. Передача — выжимка под цель.
- Пересказ артефактов. Спецификация и ADR уже написаны — в передаче им место ссылкой. Дубль устареет и начнёт врать.
- Передача в git. Одноразовый документ в репозитории — мусор и риск утечки: он писался без оглядки на долгую жизнь. Долговременное — в журнал, ADR и спецификации.
- Собирать после компакта. Поздно: половина контекста уже выброшена. Передача пишется, пока окно цело.
Известные применения
- Скилы Мэтта Покока —
/handoff: одноразовый документ во временном каталоге, секция рекомендуемых скилов, запрет на дублирование артефактов, зачистка секретов; в основном потоке пака передача связывает интервью с прототипом и другие смены этапа. - Claude Code —
/compactс инструкцией («compact, фокус на X») — встроенный младший брат паттерна: фокус задать можно, но результат остаётся в том же треде и не переживает смену сессии. - Компакция из статьи Anthropic о контекст-инжиниринге — автоматизированный вариант той же операции в харнессах долгоживущих агентов: суммаризировать с максимальным recall, потом повышать точность.
- Сабагенты — та же передача снизу вверх: сабагент возвращает координатору конденсированную сводку своей работы, а не полный след.
Связанные паттерны
- Журнал прогресса — сосед по слою состояния: журнал ведётся по ходу и живёт в репозитории, передача пишется один раз на границе и умирает после прочтения.
- Инженерия контекста — передача — это осознанная компакция: ручное применение принципа «минимум токенов, максимум сигнала» к границе сессии.
- Четыре фазы — утверждённый план — готовый передаточный документ: его можно выполнить в свежей сессии, не тащя историю обсуждения.
- Спеко-ориентированная разработка — постоянные артефакты SDD и одноразовая передача дополняют друг друга: первые хранят знание, вторая переносит рабочий момент.