⚪️ Мы остановились в момент, когда новый протокол получил свою ветку и первый технический коммит в PR уже сделан. Можно посмотреть на него в github.
‼️ Важно: в этот момент мы меняем контекст. Почему? Самая важная причина - смена CWD, текущей рабочей папки агента.
Я не смог заставить кодекс надёжно редактировать файлы только внутри worktree. Менял расположение папки, писал инструкции для контроля - ничего не помогает. Часто агент начинает изменять файлы по стандартным путям, а это основной репозиторий на ветке main. Изменения по этому пути считаются внесением правок в ветку main. Это создаёт некоторый хаос и бардак, и приходится переносить изменения - абсолютно неудобно.
👉 Что спасает, причём почти на 100%: мы переходим в новое ворктри, и стартуем агента из этой папки. Когда CWD = нужный нам ворктри, ошибки полностью исчезают. Вот тут и пригождается запасик "прогретых" контекстов.
Для возобновления работы по протоколу используем промпт "protocol (resume)". В этот промпт надо вставить номер протокола, чтобы агент нашёл нужный.
▶️ Далее агент работает в соответствии с промптом:
- найдёт файлы протокола, прочитает, ознакомится
- восстановит контекст
- посмотрит текущий зафиксированный шаг
- возобновит работу с прерванного места
- добавит в "log.md" отметку о восстановлении контекста - это я на всякий случай решил статистику вести, сколько контекстов ушло на протокол; чистое любопытство, особой роли не играет - можно увидеть следом за заголовком лога;
▶️ Когда агент восстановил контекст, он пишет об этом отчёт и предлагает возобновить работу.
‼️ Засеките заполнение контекста в этой контрольной точке, просто запомните цифру.
Дальше мы пишем, в основном, один промпт на протяжении всей работы агента -
продолжай работу по плану протокола
Как правило, агент останавливается в момент завершения шага. Но если шаг попался крупный (а мы помним, что это - зона доработки система Protocol), то может остановиться в середине.
‼️ Важно: когда шаг выполнен, результат работы должен быть закоммичен и сделан пуш. Обычно агентследует формату и пишет что коммит/пуш сделаны, проверки прошли. Обычно! Но иногда внимание агента снижается, и он этого не делает. Поэтому если он вывел отчёт о выполненной работы и планирует переходить к следующему шагу, а вы не видите инфы о проверках/коммите/пуше, то спрашиваем:
Все проверки по протоколу выполнены? Вес прошли, все исправлено? Коммит / пуш сделаны?
Обычно этого достаточно.
▶️ Такими шагами мы движемся к полному выполнению всего протокола. Когда Кодекс выполнил шаг - обратите внимание на процент расхода контекста на выполнение шага. Прикиньте - хватает ли с запасом для следующего шага?
👉 Если хватает, то "продолжай работу по плану протокола!"
👉 Если маловато - берите следующий контекст, делайте CWD на wortree, берите промпт "resume" и восстанавливайте контекст протокола и продолжайте в новом
👉 Если недоследили и агент "стукнулся в лимит контекста" (автокомпакт отключен) - ничего страшного, берём новый контекст, делаем CWD на wortree, делаем "resume" и продолжаем - система должна нормально стартовать с места прерывания;
...