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

8.3 KiB

72. Письмо уходит агентам: оркестратор ставит задание и читает возврат (2026-08-22)

Что было

code-resolve вёл задачу и писал её сам. В одном контексте лежало всё: выбор сценария, вызов opsx:propose, разметка, ревью дизайна, чекпоинт, opsx:apply, правки по находкам триажа, сверка плана прогона с исходом и доклад. Конвейер ревью своё письмо давно отдал — проходы ходят агентами по уставам, — а письмо самого скилла не было вынесено никуда.

Цена оказалась не в токенах, а в том, что вытесняется. Написание тянет в контекст содержимое тронутых файлов, вывод линтеров и гейта, перебранные варианты правки — всё то, чего в докладе не будет ни строкой. Вытесняются оттуда постановка, критерии приёмки и одобренное на чекпоинте, то есть ровно то, по чему оркестратор и обязан сверять исход. Вытесняются молча: доклад остаётся связным, а сверять его уже не с чем.

Решено

Р265. Спеки, код и правки по находкам ревью пишет отдельный агент. Оркестратор ставит задание и читает возврат. Перечень закрыт и перечислен в code-resolve/SKILL.md: предложение и дельта-спеки (opsx:propose), правки спек и дизайна по ревью дизайна, код (opsx:apply вместе с гейтом и поведенческой верификацией), правки по находкам триажа, помеченным инлайн, и правка оснастки в сценарии обслуживания.

Р266. Довод — контекст, а не разведённость, и путать их нельзя. Агент пишет по заданию оркестратора и отвечает перед ним; разведён с автором тот, кто работу судит, — разметчик и проходы ревью (тема 41). Вынос письма не добавляет разведённости ни на грамм и не заменяет собой ни одну проверку.

Р267. Устава у этих агентов нет. Уставом задаётся суждение: что искать и что считать находкой. Здесь суждения нет — работа нормирована скиллами opsx:*, конвенциями проекта и находками триажа, и устав стал бы вторым домом того же, разошёлся бы с ним молча. Зовётся агент общего назначения, а всё, чем один прогон отличается от другого, приходит заданием.

Р268. Задание самодостаточно и собирается адресами. Агент не видел разговора: не знает ни постановки, ни сценария, ни того, что одобрено. Поэтому в задании лежат корень проекта, ветка и база диффа, постановка или её текст дословно, критерии приёмки, идентификатор change, что читать, границы правки и признак готовности — зелёный гейт, а при наблюдаемом поведении ещё и верификация. Находки уходят дословно, вместе с оракулом: пересказ теряет как раз оракул, агент чинит то, что понял, гейт зеленеет, а в отчёт уезжает «исправлено».

Р269. Возврат — не длиннее экрана, и диффа в нём нет. Что сделано, адресами тронутого; исход гейта и чем он прогнан; что не удалось; вопросы, если по заданию их не разрешить. Возврат с диффом отменяет экономию в момент возврата — то есть делает вынос бессмысленным.

Р270. Возврату на слово не верят, и дифф за агентом для этого не перечитывают. Верят независимым артефактам: зелёному гейту, отчёту триажа, ревью следующего шага. Основание то же, по которому конвейер не верит прозе прохода, — её написал тот, кто мог и пропустить.

Р271. Артефакты, написанные для человека, оркестратор читает сам. proposal.md и design.md нужны ему на чекпоинте, и это его работа, а не переполнение контекста: они и написаны для того, кто спек не читал.

Р272. Разведка в перечень не попадает вовсе. Её письмо — записка в документы канона и записи задач, то есть тот самый текст, из которого собираются чекпоинт вариантов и доклад. Отданный агенту, он вернулся бы пересказом — и пересказ пришлось бы держать в контексте вместо оригинала.

Р273. Правило про контекст, а не про полномочия. Агент упал, вернул не то или не понял задания — задание повторяется с дописанным; не вышло и во второй раз, оркестратор делает сам и говорит это строкой доклада. Стопом это не является: прогон стоил дороже, чем должен, и это факт для человека.

Следствия

С250. Доклад получил обязательную строку — шаг письма, сделанный не агентом, с причиной. Иначе нарушение правила неотличимо от его соблюдения, а дороже всего здесь стоит именно молчаливый возврат к старому порядку.

С251. Нарезка — по шагу, а не по файлу. Нарезка по файлам разводит одну правку по разным контекстам, и сходиться она будет в гейте, то есть после. Повторный проход того же шага — новое задание: агент прежнего не помнит.

С252. Состав гейта в обслуживании снимает оркестратор, и снимает до правки. Сверка «до и после» уезжает в его доклад, а снятое тем же, кто правил, сверкой не является: агент вернёт получившийся состав и назовёт его исходным.

С253. Раскладка не повышалась. Правило живёт в прозе плагина — в скилле code-resolve и его справочниках — и в скелеты, уезжающие в репозитории проектов, не попадает. Признак тот же, что у снятого «интейка» (тема 71): версия нужна тогда, когда меняется то, что уезжает в проект.