resolve: письмо вынесено агентам, журнал — тема 72
Спеки, код и правки по находкам ревью пишет отдельный агент: оркестратору оставлены задание, возврат, чекпоинт, сверка плана с исходом и доклад. Заведён раздел «Кто пишет» в SKILL.md, переписаны шаги 2, 4, 6, 7 решения и шаги 2, 4 обслуживания, у разведки названо, почему исполнителей нет.
This commit is contained in:
@@ -276,6 +276,103 @@ flowchart TD
|
||||
Схема — **сводка**: содержание сценариев в их справочниках, и при расхождении
|
||||
прав справочник.
|
||||
|
||||
## Кто пишет: письмо уходит агентам
|
||||
|
||||
**Своими руками этот скилл не пишет ничего** — ни спек, ни кода, ни правок по
|
||||
находкам ревью. Каждую такую работу выполняет **отдельный агент**: оркестратор
|
||||
ставит задание и читает возврат. Дальше эта работа зовётся **письмом** — всё, что
|
||||
скилл написал бы сам, если бы писал.
|
||||
|
||||
Причина про контекст, и она одна. Оркестратор ведёт задачу целиком: выбрал
|
||||
сценарий, собирает чекпоинт, сверяет план прогона с исходом, пишет доклад, — а
|
||||
для всего этого надо помнить постановку, критерии приёмки и то, что человек
|
||||
одобрил. Письмо тянет в контекст ровно то, чего в докладе не будет ни строкой:
|
||||
содержимое тронутых файлов, вывод линтеров и гейта, перебранные варианты правки.
|
||||
Забитый этим контекст теряет одобренное и постановку — и теряет **молча**: доклад
|
||||
остаётся связным, а сверять его уже не с чем.
|
||||
|
||||
**Разведённость тут ни при чём**, и путать два довода нельзя. Агент пишет по
|
||||
заданию оркестратора и отвечает перед ним; разведён с автором тот, кто работу
|
||||
**судит**, — разметчик и проходы ревью.
|
||||
|
||||
| Работа | Где шаг |
|
||||
| --- | --- |
|
||||
| предложение и дельта-спеки — `opsx:propose` | [solve](references/solve.md), шаг 2 |
|
||||
| правки спек и дизайна по находкам ревью дизайна | [solve](references/solve.md), шаг 4 |
|
||||
| код — `opsx:apply`, вместе с гейтом до зелёного и поведенческой верификацией | [solve](references/solve.md), шаг 6 |
|
||||
| правки по находкам триажа, помеченным `инлайн` | [solve](references/solve.md), шаг 7; [maintain](references/maintain.md), шаг 4 |
|
||||
| правка оснастки в сценарии обслуживания | [maintain](references/maintain.md), шаг 2 |
|
||||
|
||||
**Остальное остаётся оркестратору, и перечень закрыт:** выбор сценария и стопы,
|
||||
чекпоинт, вызовы `av-dev:code-review`, `av-dev:doc-sync`, `av-dev-git:commit` и
|
||||
`av-dev:task-track`, сверка плана с исходом, урожай и доклад. Ни одна из этих
|
||||
работ не пишет файлов проекта — они и есть та работа, ради которой контекст
|
||||
берегут.
|
||||
|
||||
**Разведка сюда не попадает вовсе.** Её письмо — записка в документы канона и
|
||||
записи задач, то есть тот самый текст, из которого собираются чекпоинт вариантов
|
||||
и доклад. Отдать его агенту значило бы получить обратно пересказом то, что
|
||||
и так надо держать целиком.
|
||||
|
||||
### Устава у этих агентов нет
|
||||
|
||||
Проходы ревью ходят уставами (`av-dev/agents/`), потому что уставом задаётся
|
||||
**суждение**: что искать и что считать находкой. Здесь суждения нет — работа
|
||||
нормирована скиллами `opsx:*`, конвенциями проекта и находками триажа, а устав
|
||||
стал бы вторым домом того же и разошёлся бы с ним молча. Зовётся агент общего
|
||||
назначения, и всё, чем один его прогон отличается от другого, приходит заданием.
|
||||
|
||||
### Задание собирается адресами
|
||||
|
||||
**Агент не видел разговора.** Он не знает ни постановки, ни выбранного сценария,
|
||||
ни того, что уже одобрено на чекпоинте. Поэтому задание самодостаточно, а вещи в
|
||||
нём называются **адресами, а не пересказом** — по тому же правилу, по которому
|
||||
проход ревью получает дом темы путём и разделом. В задании:
|
||||
|
||||
- корень проекта, текущая ветка и база диффа. Ветку агент не создаёт и не
|
||||
переключает, не пушит — правило то же, что у скилла;
|
||||
- **что делать**: файл задачи либо её текст дословно, критерии приёмки,
|
||||
идентификатор change;
|
||||
- **что читать**: `CLAUDE.md`, конвенции проекта, дельта-спеки change;
|
||||
- **находки — дословно**, как их вернул триаж или ревью дизайна, вместе с
|
||||
оракулом;
|
||||
- **границы**: правится названное, соседнее не улучшается заодно; развилок агент
|
||||
не решает, задач не заводит, ничего не коммитит и наружу не ходит — правило
|
||||
необратимого действует и на него (раздел «Когда спрашивать вне чекпоинта»);
|
||||
- **чем кончает**: гейт зелёный, а если задача меняет наблюдаемое поведение —
|
||||
прогнана поведенческая верификация.
|
||||
|
||||
**Пересказ находки — самая дорогая экономия из возможных.** Находка триажа несёт
|
||||
оракул, и пересказ теряет как раз его: агент чинит то, что понял, гейт зеленеет,
|
||||
а в отчёт уезжает «исправлено».
|
||||
|
||||
### Возврат — не длиннее экрана
|
||||
|
||||
Агент возвращает: что сделано, **адресами** тронутого; исход гейта и чем он
|
||||
прогнан; что не удалось и почему; вопросы, если по заданию их не разрешить.
|
||||
Диффа, пересказа кода и логов в возврате нет — иначе экономия, ради которой шаг
|
||||
и вынесен, отменяется в момент возврата.
|
||||
|
||||
**Возврату на слово не верят, и перечитывать за агентом дифф для этого не надо.**
|
||||
Верят независимым артефактам: зелёному гейту, отчёту триажа, ревью следующего
|
||||
шага. Своей прозе здесь верить нельзя ровно по той причине, по которой ей не
|
||||
верит конвейер ревью, — её написал тот, кто мог и пропустить.
|
||||
|
||||
**Артефакты, написанные для человека, оркестратор читает сам**: `proposal.md` и
|
||||
`design.md` нужны ему на чекпоинте. Это не переполнение контекста, а его работа.
|
||||
|
||||
### Один агент на шаг, а не на файл
|
||||
|
||||
Нарезка по файлам разводит одну правку по разным контекстам, и сходиться она
|
||||
будет в гейте, то есть после. Повторный проход того же шага — **новое задание**,
|
||||
а не продолжение прежнего: агент прежнего не помнит, и рассчитывать на его память
|
||||
нельзя.
|
||||
|
||||
**Правило про контекст, а не про полномочия.** Агент упал, вернул не то или не
|
||||
понял задания — повтори задание, дописав то, чего в нём не хватило. Не вышло и во
|
||||
второй раз — делай сам и **скажи это строкой доклада**: прогон стоил дороже, чем
|
||||
должен, и это факт для человека, а не стоп.
|
||||
|
||||
## Автономность и плановый стоп
|
||||
|
||||
**У двух сценариев ровно один плановый стоп**, и стоят они в разных местах:
|
||||
@@ -395,6 +492,8 @@ change, у второго — сверенный состав гейта и си
|
||||
- **постановка пришла текстом** — сказать это прямо: как она понята, что `ready`
|
||||
не гонялся и что закрывать было нечего;
|
||||
- что сделано, какие вопросы записаны и куда;
|
||||
- **шаг письма, сделанный не агентом, а тобой** — с причиной: раздел «Кто пишет»
|
||||
требует называть это строкой, а не молча;
|
||||
- чего проверить или узнать **не удалось**.
|
||||
|
||||
Сверх ядра каждый сценарий добавляет своё: [solve.md](references/solve.md) —
|
||||
|
||||
Reference in New Issue
Block a user