resolve: письмо вынесено агентам, журнал — тема 72
Спеки, код и правки по находкам ревью пишет отдельный агент: оркестратору оставлены задание, возврат, чекпоинт, сверка плана с исходом и доклад. Заведён раздел «Кто пишет» в SKILL.md, переписаны шаги 2, 4, 6, 7 решения и шаги 2, 4 обслуживания, у разведки названо, почему исполнителей нет.
This commit is contained in:
@@ -97,7 +97,14 @@
|
||||
проходами: `doc-wording` по документам, `task-form` и `task-wording` по
|
||||
записям. Выбранный способ реализуется **следующим прогоном**, и запускает его
|
||||
человек: смена сценария по ходу — событие с названным исходом, а не тихий
|
||||
поворот. Все три сценария лежат справочниками и одинаково —
|
||||
поворот.
|
||||
**Письмо уходит агентам:** спеки, код и правки по находкам ревью пишет
|
||||
отдельный агент по заданию, а оркестратор ставит задание и читает короткий
|
||||
возврат. Контекст ему нужен под чекпоинт, сверку плана с исходом и доклад —
|
||||
содержимое тронутых файлов и вывод гейта вытесняют оттуда постановку и
|
||||
одобренное, и вытесняют молча. Разведка сюда не попадает: её записка и записи
|
||||
задач и есть исход, из которого собирается доклад.
|
||||
Все три сценария лежат справочниками и одинаково —
|
||||
`references/solve.md`, `references/maintain.md` и `references/research.md`; в
|
||||
самом скилле только вход, развилка и правила, не зависящие от сценария;
|
||||
- `code-review` — конвейер ревью **по темам**: документ проекта либо заводит
|
||||
|
||||
@@ -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) —
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
flowchart TD
|
||||
in["сценарий выбран: обслуживание"]
|
||||
s1["1. прочитать задачу<br/>критерии приёмки и границы"]
|
||||
s2["2. сделать правку<br/>гейт тронут — сверить состав, не цвет"]
|
||||
s2["2. правка агентом<br/>гейт тронут — состав снять до правки"]
|
||||
s3["3. гейт проекта до зелёного"]
|
||||
s4["4. ревью фиксированным планом<br/>av-dev:code-review, без change"]
|
||||
s5["5. синк документации — av-dev:doc-sync"]
|
||||
@@ -259,8 +259,11 @@ ADR: список источников канон закрыл двумя — а
|
||||
|
||||
### 2. Сделать правку
|
||||
|
||||
Код и конфиги — по конвенциям проекта. Правка по размеру задачи: чинится названное в записи, соседнее не улучшается
|
||||
заодно.
|
||||
**Правку делает агент** (SKILL.md, «Кто пишет: письмо уходит агентам»): задание
|
||||
несёт постановку, конвенции проекта, границы правки и требование довести гейт до
|
||||
зелёного; возврат — адреса тронутого и исход гейта. Код и конфиги — по конвенциям
|
||||
проекта. Правка по размеру задачи: чинится названное в записи, соседнее не
|
||||
улучшается заодно.
|
||||
|
||||
**Гейта ещё нет — сказать это, а не изображать сверку.** Первые шаги плана
|
||||
стройки заводят гейт, сборку и хуки: у них нет ни «до», ни «прежнего», и
|
||||
@@ -277,6 +280,11 @@ ADR: список источников канон закрыл двумя — а
|
||||
их семантикой гейта в `CLAUDE.md`. Снимай исходное состояние **до** правки, по
|
||||
тому, как проект это описал.
|
||||
|
||||
**Исходный состав снимаешь ты, а не агент, и это не мелочь.** Сверка «до и
|
||||
после» уезжает в твой доклад, а снятое тем же, кто правил, сверкой не является:
|
||||
агент вернёт состав, который получился, и назовёт его исходным. Снимок делается
|
||||
до того, как задание ушло.
|
||||
|
||||
**Проект состав не описал — скажи строкой доклада, что сверен только цвет.**
|
||||
Обходного пути не выдумывай: угаданный состав хуже отсутствующего, потому что
|
||||
читается как сверенный. Это же строка и повод — предложить проекту дописать слот
|
||||
@@ -353,8 +361,9 @@ Change ты не передаёшь — его нет.
|
||||
Отчёт, из которого исчезло «что не смотрел никто», сообщает «проверено», не
|
||||
сообщая, что именно.
|
||||
|
||||
Отработка — как в решении: помеченное `инлайн` чини сам и не логируй, `развилка`
|
||||
— вопросом в запись. После правок снова гейт. Отложенные находки собери в секцию
|
||||
Отработка — как в решении: помеченное `инлайн` чинит **агент** (SKILL.md, «Кто
|
||||
пишет»), находки уходят ему дословно с оракулом, гейт после правок гоняет он же,
|
||||
логировать их не надо; `развилка` — вопросом в запись, и агенту она не отдаётся. Отложенные находки собери в секцию
|
||||
доклада `Урожай`; задачи из него заводит `av-dev:task-track`, не ты.
|
||||
|
||||
### 5. Синк документации — главный шаг этого сценария
|
||||
|
||||
@@ -30,6 +30,13 @@
|
||||
(задачи заводятся и уточняются), `av-dev-git:commit`. Правило обращения к соседям
|
||||
и правило «чего может не быть» — общие, они в [SKILL.md](../SKILL.md).
|
||||
|
||||
**Агентов-исполнителей у разведки нет** (SKILL.md, «Кто пишет: письмо уходит
|
||||
агентам»), и это не пропуск. Её письмо — записка в документы канона и записи
|
||||
задач, то есть тот самый текст, из которого собираются чекпоинт вариантов и
|
||||
доклад: отданный агенту, он вернулся бы пересказом. Вычитку разведка всё же
|
||||
отдаёт — `doc-wording`, `task-form`, `task-wording`: там судят написанное, а не
|
||||
пишут.
|
||||
|
||||
**Отсутствие канона бьёт по разведке сильнее, чем по решению**, и сказать об этом
|
||||
строкой мало: без документов у ответа нет дома, и знание осядет в переписке.
|
||||
Назови исход и предложи `av-dev:canon`; работу не останавливай, но адрес
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
дизайна.
|
||||
|
||||
Тонкая обёртка над каноническими скиллами `opsx:propose` / `opsx:apply` /
|
||||
`opsx:archive` — зови их через Skill, не переизобретай их шаги. Ревью — скилл
|
||||
`opsx:archive` — их шаги не переизобретаются, а **зовёт их агент**, не ты
|
||||
(SKILL.md, «Кто пишет: письмо уходит агентам»). Ревью — скилл
|
||||
`av-dev:code-review`; он же держит правило выбора метки, а называет её агент
|
||||
`review-scope` — один раз на задачу, для обеих стадий ревью.
|
||||
|
||||
@@ -25,12 +26,12 @@
|
||||
flowchart TD
|
||||
in["сценарий выбран: решение"]
|
||||
s1["1. прочитать задачу<br/>критерии приёмки выписать сразу"]
|
||||
s2["2. opsx:propose — change, дельта-спеки, tasks.md"]
|
||||
s2["2. opsx:propose — change, дельта-спеки,<br/>tasks.md — агентом"]
|
||||
s3["3. разметка — review-scope:<br/>размер, сложность, метка, план тем"]
|
||||
s4["4. ревью дизайна, состав по метке<br/>+ отработка замечаний"]
|
||||
s4["4. ревью дизайна, состав по метке<br/>+ отработка замечаний агентом"]
|
||||
s5(["5. ЧЕКПОИНТ: объяснение<br/>в чём проблема, как решаем,<br/>чем рискуем"])
|
||||
s6["6. opsx:apply — код, гейт,<br/>поведенческая верификация"]
|
||||
s7["7. ревью кода, та же метка<br/>+ отработка замечаний"]
|
||||
s6["6. opsx:apply — код, гейт,<br/>поведенческая верификация — агентом"]
|
||||
s7["7. ревью кода, та же метка<br/>+ отработка замечаний агентом"]
|
||||
s8["8. opsx:archive"]
|
||||
s9["9. синк документации — av-dev:doc-sync"]
|
||||
s10["10. коммит работы — av-dev-git:commit"]
|
||||
@@ -103,17 +104,28 @@ flowchart TD
|
||||
|
||||
### 2. Завести change — `opsx:propose`
|
||||
|
||||
Вызови Skill `opsx:propose`. Получаем `proposal.md`, дизайн, дельта-спеки
|
||||
(`ADDED`/`MODIFIED`/`REMOVED Requirements`), `tasks.md`. Каждое `### Requirement`
|
||||
содержит `SHALL`/`MUST`; структурные заголовки английские, сценарии
|
||||
`GIVEN/WHEN/THEN`. Прогони `openspec validate --strict <id>`.
|
||||
**Скилл `opsx:propose` зовёт агент** (SKILL.md, «Кто пишет»). В задании:
|
||||
постановка — файл задачи либо её текст дословно, — критерии приёмки, если они
|
||||
были, и требование прогнать `openspec validate --strict <id>`. Возврат:
|
||||
идентификатор change, дельты адресами и исход валидации.
|
||||
|
||||
Критерии приёмки задачи, если они были, копируются в `tasks.md` отдельным блоком.
|
||||
Задаче предшествовала разведка — её записка и отвергнутые варианты **уже
|
||||
записаны** в документах канона (`docs/research/`, `docs/adr/`): сошлись на них из
|
||||
`design.md`, а не переписывай второй раз. Варианты, разобранные без разведки
|
||||
(способ был очевиден, но у него оказались оттенки), — в `design.md`, с причиной
|
||||
отказа по каждому отвергнутому.
|
||||
Шаг оставляет `proposal.md`, дизайн, дельта-спеки
|
||||
(`ADDED`/`MODIFIED`/`REMOVED Requirements`) и `tasks.md`. Форму держит сам
|
||||
`opsx:propose`, и требования к ней идут агенту заданием: каждое
|
||||
`### Requirement` содержит `SHALL`/`MUST`, структурные заголовки английские,
|
||||
сценарии — `GIVEN/WHEN/THEN`.
|
||||
|
||||
**`proposal.md` и `design.md` после возврата читаешь сам** — из них собирается
|
||||
чекпоинт шага 5, и держать их в контексте это твоя работа, а не переполнение.
|
||||
Кода нет, читать нечего сверх них.
|
||||
|
||||
Ещё две вещи задание называет прямо, иначе их не сделает никто. **Критерии
|
||||
приёмки задачи, если они были, копируются в `tasks.md` отдельным блоком.**
|
||||
И **записанное разведкой не переписывается второй раз**: задаче предшествовала
|
||||
разведка — её записка и отвергнутые варианты уже лежат в документах канона
|
||||
(`docs/research/`, `docs/adr/`), и `design.md` на них ссылается. Варианты,
|
||||
разобранные без разведки (способ был очевиден, но у него оказались оттенки), — в
|
||||
`design.md`, с причиной отказа по каждому отвергнутому.
|
||||
|
||||
**`proposal.md` пишется так, чтобы его понял человек, не читавший спек.** Это не
|
||||
стилистическое пожелание: из него собирается чекпоинт шага 5, и переписывать его
|
||||
@@ -175,10 +187,15 @@ flowchart TD
|
||||
|
||||
**Отработка замечаний, и она идёт до чекпоинта, а не после:**
|
||||
|
||||
- мелочь и явные улучшения — правь сам в спеках и дизайне;
|
||||
- мелочь и явные улучшения — правкой спек и дизайна, и её делает **агент**
|
||||
(SKILL.md, «Кто пишет»): находки уходят ему дословно, вместе с
|
||||
идентификатором change и требованием перепрогнать
|
||||
`openspec validate --strict <id>`;
|
||||
- развилки (компромисс, scope, инвариант) — **не в запись, а в чекпоинт**: он
|
||||
следующим шагом, и это ровно то, ради чего он поставлен здесь;
|
||||
- после правок перепрогони `openspec validate --strict <id>`.
|
||||
следующим шагом, и это ровно то, ради чего он поставлен здесь. Агенту развилка
|
||||
не отдаётся вовсе: решает её человек, а не тот, кто правит спеку;
|
||||
- возврат агента — адреса тронутых дельт и исход валидации; правленые спеки
|
||||
перечитываешь по адресам, если чекпоинт опирается на изменившееся.
|
||||
|
||||
### 5. Чекпоинт: объяснение
|
||||
|
||||
@@ -234,7 +251,12 @@ flowchart TD
|
||||
|
||||
### 6. Написать код — `opsx:apply`
|
||||
|
||||
Вызови Skill `opsx:apply` для реализации `tasks.md`. Код — по конвенциям проекта
|
||||
**Код пишет агент, и в его же задании лежит весь этот раздел** (SKILL.md, «Кто
|
||||
пишет»): вызов `opsx:apply` для реализации `tasks.md`, гейт до зелёного,
|
||||
поведенческая верификация. Возврат — адреса тронутого, исход гейта и строка
|
||||
верификации; диффа в нём нет.
|
||||
|
||||
Код — по конвенциям проекта
|
||||
(каталог `docs/conventions/`). Меняешь схему — обнови её описание в документации
|
||||
тем же change, если проект этого требует: гейт обычно это проверяет.
|
||||
|
||||
@@ -245,8 +267,8 @@ flowchart TD
|
||||
изменение вживую командой из раздела команд `CLAUDE.md` и прогони сценарий.
|
||||
Пропусти только для чисто внутренних правок без наблюдаемого рантайма.
|
||||
|
||||
**Сервис не оставляем лежать.** Если запуск упал — почини или откати до конца
|
||||
шага.
|
||||
**Сервис не оставляем лежать.** Если запуск упал — агент чинит или откатывает до
|
||||
конца шага; возврат с лежащим сервисом — незакрытый шаг, а не исход.
|
||||
|
||||
### 7. Ревью кода — та же метка
|
||||
|
||||
@@ -294,8 +316,11 @@ flowchart TD
|
||||
|
||||
#### Отработка, и здесь появляется одно новое правило
|
||||
|
||||
Помеченное `инлайн` чини сам и не логируй. `развилка` — вопросом в запись (он уже
|
||||
сформулирован триажем, его остаётся перенести). После правок — снова гейт.
|
||||
Помеченное `инлайн` чинит **агент** (SKILL.md, «Кто пишет»): находки уходят ему
|
||||
**дословно, вместе с оракулом**, одним заданием на весь урожай инлайна, и гейт
|
||||
после правок гоняет он же. Логировать их по-прежнему не надо. `развилка` —
|
||||
вопросом в запись (он уже сформулирован триажем, его остаётся перенести), и
|
||||
агенту она не отдаётся.
|
||||
|
||||
**Находка, отменяющая одобренный дизайн, отменяет и одобрение.** Признак
|
||||
проверяемый: **меняются ли дельта-спеки**.
|
||||
@@ -303,7 +328,8 @@ flowchart TD
|
||||
- не меняются — находка внутри дизайна, дожимай сам, это обычная отработка;
|
||||
- меняются — решение стало другим, а одобрено было прежнее. Повтори шаг 3
|
||||
(разметка выведена из дельта-спек) и **вернись на чекпоинт шага 5** с тем, что
|
||||
изменилось и почему.
|
||||
изменилось и почему. Такая находка агенту не отдаётся ни при каких условиях:
|
||||
она отменяет одобрение, а это разговор с человеком.
|
||||
|
||||
**Это правило старше правила о развилке.** Находка класса `развилка`, чьё
|
||||
основание — «надо менять спеку», подпадает под оба; побеждает возврат на
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
# 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)): версия нужна тогда, когда
|
||||
меняется то, что уезжает в проект.
|
||||
@@ -123,3 +123,4 @@
|
||||
| 69 | [Счёт корпуса в прозе не пишется](69-corpus-count-not-written.md) | 2026-08-13 |
|
||||
| 70 | [«Провенанс» снят из словаря: одного синонима мало для проверки](70-provenance-word-removed.md) | 2026-08-13 |
|
||||
| 71 | [Образец языка назван прямо; «интейк» снят вслед за «провенансом»](71-language-model-popular-science.md) | 2026-08-13 |
|
||||
| 72 | [Письмо уходит агентам: оркестратор ставит задание и читает возврат](72-writing-delegated-to-agents.md) | 2026-08-22 |
|
||||
|
||||
Reference in New Issue
Block a user