Files
dev-skills/decisions/72-writing-delegated-to-agents.md
T
av 813345192d resolve: письмо вынесено агентам, журнал — тема 72
Спеки, код и правки по находкам ревью пишет отдельный агент: оркестратору
оставлены задание, возврат, чекпоинт, сверка плана с исходом и доклад.
Заведён раздел «Кто пишет» в SKILL.md, переписаны шаги 2, 4, 6, 7 решения и
шаги 2, 4 обслуживания, у разведки названо, почему исполнителей нет.
2026-08-23 07:56:15 +03:00

90 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 72. Письмо уходит агентам: оркестратор ставит задание и читает возврат (2026-08-22)
## Что было
`code-resolve` вёл задачу и писал её сам. В одном контексте лежало всё: выбор
сценария, вызов `opsx:propose`, разметка, ревью дизайна, чекпоинт, `opsx:apply`,
правки по находкам триажа, сверка плана прогона с исходом и доклад. Конвейер
ревью своё письмо давно отдал — проходы ходят агентами по уставам, — а письмо
самого скилла не было вынесено никуда.
Цена оказалась не в токенах, а в том, что вытесняется. Написание тянет в контекст
содержимое тронутых файлов, вывод линтеров и гейта, перебранные варианты правки —
всё то, чего в докладе не будет ни строкой. Вытесняются оттуда постановка,
критерии приёмки и одобренное на чекпоинте, то есть ровно то, по чему оркестратор
и обязан сверять исход. Вытесняются **молча**: доклад остаётся связным, а сверять
его уже не с чем.
## Решено
**Р265. Спеки, код и правки по находкам ревью пишет отдельный агент.**
Оркестратор ставит задание и читает возврат. Перечень закрыт и перечислен в
`code-resolve/SKILL.md`: предложение и дельта-спеки (`opsx:propose`), правки спек
и дизайна по ревью дизайна, код (`opsx:apply` вместе с гейтом и поведенческой
верификацией), правки по находкам триажа, помеченным `инлайн`, и правка оснастки
в сценарии обслуживания.
**Р266. Довод — контекст, а не разведённость, и путать их нельзя.** Агент пишет
по заданию оркестратора и отвечает перед ним; разведён с автором тот, кто работу
**судит**, — разметчик и проходы ревью ([тема 41](41-task-sizing-once.md)).
Вынос письма не добавляет разведённости ни на грамм и не заменяет собой ни одну
проверку.
**Р267. Устава у этих агентов нет.** Уставом задаётся **суждение**: что искать и
что считать находкой. Здесь суждения нет — работа нормирована скиллами `opsx:*`,
конвенциями проекта и находками триажа, и устав стал бы вторым домом того же,
разошёлся бы с ним молча. Зовётся агент общего назначения, а всё, чем один прогон
отличается от другого, приходит заданием.
**Р268. Задание самодостаточно и собирается адресами.** Агент не видел разговора:
не знает ни постановки, ни сценария, ни того, что одобрено. Поэтому в задании
лежат корень проекта, ветка и база диффа, постановка или её текст дословно,
критерии приёмки, идентификатор change, что читать, границы правки и признак
готовности — зелёный гейт, а при наблюдаемом поведении ещё и верификация.
**Находки уходят дословно, вместе с оракулом**: пересказ теряет как раз оракул,
агент чинит то, что понял, гейт зеленеет, а в отчёт уезжает «исправлено».
**Р269. Возврат — не длиннее экрана, и диффа в нём нет.** Что сделано, адресами
тронутого; исход гейта и чем он прогнан; что не удалось; вопросы, если по заданию
их не разрешить. Возврат с диффом отменяет экономию в момент возврата — то есть
делает вынос бессмысленным.
**Р270. Возврату на слово не верят, и дифф за агентом для этого не перечитывают.**
Верят независимым артефактам: зелёному гейту, отчёту триажа, ревью следующего
шага. Основание то же, по которому конвейер не верит прозе прохода, — её написал
тот, кто мог и пропустить.
**Р271. Артефакты, написанные для человека, оркестратор читает сам.**
`proposal.md` и `design.md` нужны ему на чекпоинте, и это его работа, а не
переполнение контекста: они и написаны для того, кто спек не читал.
**Р272. Разведка в перечень не попадает вовсе.** Её письмо — записка в документы
канона и записи задач, то есть тот самый текст, из которого собираются чекпоинт
вариантов и доклад. Отданный агенту, он вернулся бы пересказом — и пересказ
пришлось бы держать в контексте вместо оригинала.
**Р273. Правило про контекст, а не про полномочия.** Агент упал, вернул не то или
не понял задания — задание повторяется с дописанным; не вышло и во второй раз,
оркестратор делает сам и **говорит это строкой доклада**. Стопом это не является:
прогон стоил дороже, чем должен, и это факт для человека.
## Следствия
**С250. Доклад получил обязательную строку** — шаг письма, сделанный не агентом,
с причиной. Иначе нарушение правила неотличимо от его соблюдения, а дороже всего
здесь стоит именно молчаливый возврат к старому порядку.
**С251. Нарезка — по шагу, а не по файлу.** Нарезка по файлам разводит одну правку
по разным контекстам, и сходиться она будет в гейте, то есть после. Повторный
проход того же шага — новое задание: агент прежнего не помнит.
**С252. Состав гейта в обслуживании снимает оркестратор, и снимает до правки.**
Сверка «до и после» уезжает в его доклад, а снятое тем же, кто правил, сверкой не
является: агент вернёт получившийся состав и назовёт его исходным.
**С253. Раскладка не повышалась.** Правило живёт в прозе плагина — в скилле
`code-resolve` и его справочниках — и в скелеты, уезжающие в репозитории проектов,
не попадает. Признак тот же, что у снятого «интейка»
([тема 71](71-language-model-popular-science.md)): версия нужна тогда, когда
меняется то, что уезжает в проект.