Продолжение работы после смены контекста
Длительная работа с агентом может перейти в новый разговор, другой инструмент или к другому исполнителю. В такой момент важно передать актуальное состояние, а не только впечатление «мы почти закончили». После этого урока HANDOFF.md будет содержать действующий контракт, ключевые решения, готовые файлы и невыполненные действия. Этот документ связывает продолжение с конкретным проектом и не требует перечитывать всю историю обсуждения.
Передача особенно полезна после нескольких правок. В начале серии мы определили лимит, позже уточнили его тип, добавили реестр URL и карточку ревью. Если новый исполнитель увидит только первоначальное пожелание, он может повторить уже решённую дискуссию или отменить точную проверку bool. Поэтому краткое состояние должно отражать окончательные решения, а исторические альтернативы храниться отдельно, если они действительно объясняют существенный выбор.
Решение и его основание
В нашей передаче записано: URL берётся из манифеста, public и featured сравниваются с True, лимит принимает обычный int. Каждое решение относится к определённой границе программы. Можно добавить причину: публичность не отменяется рекомендацией, а логический признак не является числовым лимитом. Такие короткие основания помогают продолжить задачу без механического копирования прежнего кода. Новый исполнитель понимает, какую проблему решает строка, и не удаляет её как «избыточную».
Не нужно пересказывать все промежуточные реплики. Сообщение «сначала хотели сортировать по названию, затем передумали» полезно только если это объясняет договор с потребителем. В нашей задаче актуальное правило просто сортирует по id. Отвергнутый вариант не должен выглядеть вторым действующим требованием. Если решение ещё не принято, отметьте вопрос отдельно и назовите, от какого ответа зависит продолжение. Так передача не смешивает факты и открытые предпочтения.
Для файла, на который опирается продолжение, полезно указать отпечаток или иной устойчивый снимок. Наш pack.py уже умеет записывать SHA-256. Однако передача не должна содержать устаревший отпечаток, автоматически скопированный из начала работы. Его нужно вычислить для актуального состояния при подготовке конкретного пакета. В этой серии мы объясняем механизм; пример не запускался, поэтому не показываем выдуманный результат упаковки как фактический идентификатор полученного контекста.
Невыполненное остаётся видимым
В HANDOFF.md перечислены невыполненные действия: учебные программы, автоматические проверки, AI-вызовы и публикация. Это не общее предупреждение о любых возможных рисках, а точное описание режима подготовки. Если новый исполнитель решит продолжить, он увидит, какие выводы пока основаны только на чтении. Иначе слово «готово» может превратиться в неподтверждённое предположение, что весь маршрут уже прошёл проверки и может быть размещён без дальнейших действий.
Передача должна учитывать действующее разрешение пользователя. Если работа пока локальная, новый исполнитель не получает права публиковать сайт только потому, что в документе упомянут «следующий выпуск». План будущего действия отличается от поручения его выполнить. Аналогично список возможных проверок не означает, что они уже запущены. Такая ясность полезна даже без AI: коллега или будущий автор курса сможет понять состояние по файлам, не угадывая намерение из общей формулировки.
Отдельно назовите фактические ограничения примера. Наша библиотека использует небольшой плоский корпус и JSON-манифест, не показывает настоящий HTML и не обслуживает многопользовательский редактор. Эти ограничения не обесценивают функцию отбора, но определяют её применение. Если продолжение предполагает тысячи страниц, требуется рассмотреть стоимость загрузки и структуру каталога. Простой перенос финального catalog.py в большой сайт без анализа потребителя не является гарантированной интеграцией.
Как продолжать из состояния
Новый исполнитель сначала читает TASK.md, затем актуальные исходники и передачу. Порядок важен: HANDOFF объясняет принятые решения, но программа показывает, что действительно находится в файле. Если документ говорит об одной проверке типа, а код содержит другую, нужно назвать расхождение. Нельзя выбирать удобный источник молча. Краткая передача не является главным источником всех фактов; она указывает, где эти факты и решения расположены.
Полезно назвать ближайшее действие без слишком широкого обещания. Для нашей локальной задачи это статическое сопоставление функции с контрактом, а дальнейший самостоятельный запуск читатель выполняет по своим условиям. Если нужно исправить определённый дефект, передача должна назвать вход и ожидаемый результат. Сообщение «улучшить всё остальное» снова размывает область. Продолжение должно сохранять тот же принцип обозримого изменения, с которого серия началась.
При параллельной работе передача может содержать владельцев путей и готовность каждой области. Но не стоит писать «все агенты завершили», если часть файлов ещё изменяется. В общем каталоге момент чтения имеет значение: один исполнитель может увидеть неполный документ, другой — окончательный. Устойчивое состояние достигается договором о завершении записи и выбором конкретного снимка. Название папки само по себе не обеспечивает неизменность её содержания.
Ожидаемый результат урока — документ, по которому другой человек способен восстановить актуальный контракт и понять незавершённую часть. Он не содержит результатов реальной модели и не подтверждает запуск. В архиве передача является авторским примером для выбранного состояния. Если вы применяете её к своему проекту, замените учебные ограничения фактическими наблюдениями и сохраните различие между проверенным и предполагаемым.
Передача обнаружила расхождение
Представьте, что HANDOFF говорит об ограничении до пяти, а программа уже допускает десять. Новый исполнитель не должен самостоятельно выбрать более удобный вариант и продолжить. Сначала нужно назвать расхождение и определить действующий контракт. Если изменение диапазона было явно принято, обновляется передача. Если оно появилось случайно, исправляется код. Один документ не становится правильным только потому, что он короче или написан позже.
Отпечаток поможет заметить изменение файла, но не объяснит, было ли оно разрешено. Для этого нужны задача и основание решения. Поэтому краткая передача включает и состояние, и смысл существенных условий. В нашем архиве диапазон одинаков во всех финальных документах; гипотетический случай показывает, какое действие потребуется при реальной несогласованности, а не сообщает об оставленном дефекте.
Неудачная передача часто состоит из списка выполненных действий без актуального результата. Фраза «обсудили лимит» не объясняет, к чему пришли. Запишите само правило и причину, затем оставшиеся вопросы. Такой формат позволяет продолжить работу предметно, даже когда новый исполнитель не видел прежней беседы.
Следующий урок добавит более формальный отчёт об основаниях. Передача отвечает на вопрос «с чего продолжать», а отчёт — «почему можно утверждать этот результат». Вместе они позволяют завершить локальную задачу так, чтобы последующая проверка или публикация не зависела от памяти одного разговора.
Полный файл HANDOFF.md из состояния lesson-12. Полное самостоятельное состояние находится в архиве серии; фрагмент не заменяет остальные определения.
# Передача PW-FEATURED-1
Решение: явные URL; публичность public is True; featured is True; type(limit) is int.
Окончательный код: catalog.py. Изменение локальное; вход manifest не менялся.
Не выполнено: примеры, автоматические проверки, вызовы AI, публикация.
Следующее действие читателя: статическое чтение и только затем самостоятельный запуск.
Не продолжать с сообщения «готово» без чтения TASK.md и актуальных файлов.
Статус примера: not_run. При подготовке не выполнялись учебные программы, тесты, вызовы AI или деплой. Описанные эффекты ожидаемые.
Оглавление серии · Полные исходники
Первичные документы: Источник 1.