вычитку зовёт тот, кто правил, а не тот, кто синкал

Вычитка документов была привязана к синку, а разведка синком себя не считает —
и не доставалась ей вовсе. Условие вызова теперь правка: правил документы —
зови doc-wording, трогал записи — task-form и task-wording.

У разведки вычитка стала шагом 6, между записью и гейтом: пачка собирается из
шагов 4 и 5, раньше она не полна, после коммита правила бы уже историю. Гейт
с коммитом стал седьмым шагом, закрытие — восьмым.

Запрет остался, но только на судей канона: doc-consistency и doc-code-drift
идут на весь канон разом и зовутся через healthcheck.
This commit is contained in:
av
2026-08-11 13:37:33 +03:00
parent b3479776a4
commit f22e7ed829
6 changed files with 110 additions and 20 deletions
@@ -63,14 +63,15 @@ flowchart TD
s3(["3. ЧЕКПОИНТ: варианты<br/>2–4 способа, цена каждого,<br/>что становится невозможным"])
s4["4. ответ в документы канона<br/>av-dev-docs:docs"]
s5["5. задачи: завести и уточнить<br/>av-dev-tasks:tasks"]
s6["6. гейт проекта, затем коммит<br/>av-dev-git:commit"]
s7["7. закрыть разведку — av-dev-tasks:tasks,<br/>вторым коммитом учёта"]
s6["6. вычитка написанного:<br/>документы и записи задач"]
s7["7. гейт проекта, затем коммит<br/>av-dev-git:commit"]
s8["8. закрыть разведку — av-dev-tasks:tasks,<br/>вторым коммитом учёта"]
out["исход назван: знание, задачи,<br/>отказ или «не доведена»"]
in --> s1 --> s2 --> s3
s3 -->|"выбран способ,<br/>отказ или знание"| s4
s3 -.->|"вопрос не тот"| s1
s4 --> s5 --> s6 --> s7 --> out
s4 --> s5 --> s6 --> s7 --> s8 --> out
```
Схема — **сводка**: содержание каждого шага в его разделе ниже, и при расхождении
@@ -146,7 +147,9 @@ git и читается диффом, а второй стоп на каждой
3. **отвергнутые варианты названы с причиной**. Отвергнутое без причины
возвращается на следующей разведке как новая идея;
4. задачи, которые исход породил, заведены — или явно сказано, что не породил;
5. написанное закоммичено, разведка закрыта.
5. **написанное вычитано** — документы агентом `doc-wording`, записи задач
проходами `task-form` и `task-wording`, каждый по своей пачке;
6. написанное закоммичено, разведка закрыта.
## Шаги
@@ -242,7 +245,9 @@ git и читается диффом, а второй стоп на каждой
**Вызови Skill `av-dev-docs:docs`**: он владеет содержимым документов канона.
Передай ему ответ, адрес из шага 1 и провенанс каждого числа — писать содержание
за тебя он не будет, но дом, форму и вычитку держит он.
за тебя он не будет, но дом и форму держит он. Вычитка языка — тоже его агент, но
момент её назван отдельно, шагом 6: пачка собирается из шагов 4 и 5 и до конца
пятого не полна.
**Что именно уезжает:**
@@ -290,7 +295,41 @@ git и читается диффом, а второй стоп на каждой
Плагина нет — задачи остаются **списком формулировок в докладе**, и это говорится
строкой: учёт работ остаётся за владельцем.
### 6. Гейт и коммит
### 6. Вычитка написанного — до гейта, не после
Разведка правит **две вещи сразу**: документы канона (шаг 4) и записи каталога
задач (шаг 5). Обе — текст, и портится он в момент письма, а машина этого не
видит: `docs.py check` и `tasks.py check` смотрят форму раскладки, а не залог,
оценку без факта, жаргон и термин, которого нет в паспорте проекта.
Пачка **собирается только сейчас**, и поэтому шаг стоит здесь: раньше пятого шага
она не полна, а после коммита вычитка уже правит закоммиченное.
- **Документы** — агент `doc-wording`, владеет им `av-dev-docs:docs` (раздел
«Вычитка»). Пачка — адреса, названные на шаге 4, включая `docs/adr/` и
`docs/research/`.
- **Записи задач** — два прохода, сперва `task-form`, затем `task-wording`;
владеет ими `av-dev-tasks:tasks` (раздел «Вычитка: два прохода»). Пачка —
заведённые и уточнённые на шаге 5 записи. Заголовок и «зачем» правятся **не
молча**: покажи предложенное вместе с тем, что было.
**Что не правилось, то не вычитывается.** Разведка, кончившаяся одним документом
и ни одной задачей, зовёт один проход, и это не пропуск — это названная строкой
пачка. Скилл-владелец уже прогнал свою пачку по ходу шага — назови это и второй
раз тот же файл не гоняй.
**Судей канона — `doc-consistency` и `doc-code-drift` — здесь не зови.** Они
идут на весь канон разом, стоят дорого, и владеет ими `av-dev-docs:healthcheck`,
момент вызова которого выбирает человек. Нужно суждение о согласованности — скажи
строкой и предложи `healthcheck`, а не зови агентов сам.
Ни один проход ничего не правит: они возвращают готовые формулировки,
подставляешь их ты — и уже с подставленными идёшь на гейт.
Плагина нет — вызов не разрешится: скажи строкой, что написанное не вычитывал
никто, и обходного пути не выдумывай.
### 7. Гейт и коммит
**Сперва гейт проекта** — тот же, что гоняет сценарий решения, и по той же
причине: разведка только что правила документы канона и индексы задач, а это
@@ -310,14 +349,14 @@ git и читается диффом, а второй стоп на каждой
Одна разведка — один осмысленный коммит: записанный ответ и заведённые задачи
уезжают вместе, потому что порознь они полуправда.
### 7. Закрыть разведку — после коммита, не раньше
### 8. Закрыть разведку — после коммита, не раньше
**Вызови Skill `av-dev-tasks:tasks`** и попроси закрыть запись: ответ записан —
`close --implemented`, ушла без ответа — `close --reason`, и строка уезжает в
кладбище.
**Порядок обязателен.** Закрытие удаляет файл задачи; сделанное до коммита оно
оставило бы разведку закрытой без единого следа работы, если шаг 6 упадёт. У
оставило бы разведку закрытой без единого следа работы, если шаг 7 упадёт. У
разведки это опаснее, чем у решения: следом работы там служит код, а здесь —
только записанный ответ. Закрытая разведка без него не оставляет следа вообще —
файл задачи удалён, ответ был в переписке.
@@ -340,6 +379,8 @@ git и читается диффом, а второй стоп на каждой
фразу, — признак того, что разведка отвечала не на один вопрос;
- **куда записано** — перечнем адресов, а не «документация обновлена»;
- **какие задачи заведены и уточнены** — слагами;
- **что вычитано и чем** — пачка документов и пачка записей, каждая со своими
проходами; не вычитанное называется прямо, вместе с причиной;
- **что осталось неизвестным** и чего это стоит: разведка без этой строки
сообщает «выяснено», не сообщая, что именно осталось не выяснено;
- **рамки**, если они ограничили работу: докуда копали и почему остановились.