healthcheck: у судей документов появился свой скилл и свой момент
doc-consistency и doc-code-drift звались шагом сессии между спринтами. Сессия стала грумингом, груминг судит задачи, а не документы, и звать чужих агентов не вправе — они в av-dev-docs. На живом проекте их не звал бы никто, кроме разовых adopt и upgrade. Момент назван у владельца. Разрез с canon check проверяемый: машина сверяет форму, healthcheck — утверждения. Почему скилл, а не просто описания агентов: двоим нужна оркестровка — позвать обоих на весь канон разом, передать doc-code-drift раздел запретов, разобрать урожай порциями, назвать границы покрытия и кого именно позвал. Этого агент о себе не знает. doc-wording внутрь не взят: ему оркестровка не нужна, и ритм другой — он нужен там, где текст только что писали. Заодно из shared/plugin-boundary.md и README убран счётчик скиллов: он протух дважды за день.
This commit is contained in:
@@ -127,15 +127,13 @@ capability: незаполненный канон это переходное с
|
||||
## `check`
|
||||
|
||||
1. `docs.py check`, при наличии базы диффа — с `--base`.
|
||||
2. **Агентов на каждом `check` не зови.** Оба — `doc-consistency` и
|
||||
`doc-code-drift` — зовутся раз в спринт (шаг сессии), а также шагом 6 `adopt`
|
||||
и шагом 6 `upgrade`, на весь канон разом. Они дороги: `doc-consistency` — тем,
|
||||
что на `opus` (сличение утверждений это суждение), `doc-code-drift` — тем, что
|
||||
читает репозиторий целиком, хотя сам идёт на `sonnet`. Позвал
|
||||
`doc-code-drift` — передай ему раздел запретов `CLAUDE.md`.
|
||||
3. Доклад: вывод скрипта строкой исхода, находки агентов поимённо, **граница
|
||||
покрытия** — что смотрели и чего не смотрели, и **кого из двоих позвал**:
|
||||
доклад, умолчавший об этом, читается как «сверено».
|
||||
2. **Судей документов на каждом `check` не зови.** Ими владеет отдельный скилл —
|
||||
`av-dev-docs:healthcheck`, — и там же записано, когда его звать: он дорог, и
|
||||
прогон по каждому `check` не окупается. `check` отвечает на «сходится ли
|
||||
форма», `healthcheck` — на «не разошлись ли утверждения».
|
||||
3. Доклад: вывод скрипта строкой исхода и **граница покрытия** — что смотрели и
|
||||
чего не смотрели. Если суждение здесь нужно, скажи это строкой и предложи
|
||||
`healthcheck`, а не зови агентов сам.
|
||||
|
||||
Дрейф раскладки чинится переносом; смысловые находки — это либо правка
|
||||
документа, либо задача, если работы больше чем на абзац.
|
||||
@@ -229,8 +227,8 @@ capability), `openspec/config.yaml`.
|
||||
проекте обычно самый урожайный — правило единственного дома до адаптации никто не
|
||||
проверял.
|
||||
|
||||
Зови **`doc-consistency`** (документы между собой и с openspec) и
|
||||
**`doc-code-drift`** (факты против кода). Разбирай порциями, а не одним заходом.
|
||||
Вызови Skill **`av-dev-docs:healthcheck`** — он зовёт обоих судей на весь канон
|
||||
разом и держит разбор урожая порциями.
|
||||
|
||||
**Передай им объявленное переходное состояние из шага 5** — иначе честная строка
|
||||
в незаполненном слоте вернётся находкой, а это не поломка, а объявленный долг.
|
||||
@@ -245,7 +243,7 @@ capability), `openspec/config.yaml`.
|
||||
применяются по порядку.
|
||||
4. Подними `canon` в `docs/.pm.json` до текущей.
|
||||
5. `docs.py check`.
|
||||
6. **Позови обоих судей** — `doc-consistency` и `doc-code-drift`.
|
||||
6. **Позови судей** — Skill `av-dev-docs:healthcheck`.
|
||||
|
||||
Записи журнала описывают **что сделать проекту**. Если запись этого не говорит —
|
||||
это дефект журнала, и о нём надо сказать, а не догадываться.
|
||||
|
||||
@@ -149,8 +149,8 @@ openspec/
|
||||
Цена этого решения записана, а не подразумевается: **расхождение изменения с
|
||||
записанным решением прогоном больше не ловится.** Раньше архитектурный проход
|
||||
читал `adr/` и мог сказать «здесь отменено решение ADR-2026-03-11, а парного
|
||||
статуса нет»; теперь это скажет только `doc-consistency` на сессии между
|
||||
спринтами. Сделка сознательная — ADR объясняет прошлое, а не предъявляет
|
||||
статуса нет»; теперь это скажет только `doc-consistency`, а зовёт его скилл
|
||||
`healthcheck`. Сделка сознательная — ADR объясняет прошлое, а не предъявляет
|
||||
требование к изменению, и чтение всего каталога решений на каждой задаче
|
||||
оплачивалось на каждой, а срабатывало на единицах.
|
||||
|
||||
@@ -521,8 +521,9 @@ kebab-case.** Причина не эстетическая: имя файла с
|
||||
читающие команды. Слитый агент делал бы одну половину поверхностной; тот же
|
||||
разрез, что между `task-form` и `task-wording`.
|
||||
|
||||
**Зовутся оба одинаково — раз в спринт на сессии, а также после `adopt` и после
|
||||
`upgrade`, на весь канон разом.** Не на синке документации: `doc-consistency` на
|
||||
**Зовутся оба одинаково и одним скиллом — `av-dev-docs:healthcheck`, на весь
|
||||
канон разом; шагом `adopt` и шагом `upgrade` его зовёт `canon`.** Не на синке
|
||||
документации: `doc-consistency` на
|
||||
`opus` по каждой сделанной задаче не окупается, а расхождение между двумя документами по
|
||||
определению требует двух, и на большинстве задач синк правит один. Пачка,
|
||||
отбираемая работой, вдобавок не видит того, чего работа не касалась, — а именно
|
||||
|
||||
Reference in New Issue
Block a user