итог аудита: запись 59, карта домов про конвенции, план

- дом «что механизировано» называл conventions/README.md, хотя документ канона
  живёт файлом или каталогом; копия пересобрана resync
- запись 59: находки одного рода — правил механику, не правил описывающее её
  вовне. Пять выводов, включая «скелет не описывает, а порождает»
- в план добавлена пачка мелочи, оставленной сознательно, и сказано, что
  бумажная часть закрыта

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-08-09 18:48:21 +03:00
co-authored by Claude Opus 5
parent 12882911a9
commit 12b77c3393
4 changed files with 77 additions and 4 deletions
+54
View File
@@ -3593,3 +3593,57 @@ change нет — берём источником актуальные спек
ясным входом скилл не нужен, его находит описание. Скилл заводят там, где
надо решить, кого звать, что передать, в каком объёме и что делать с
результатом.
## 59. Аудит четырьмя сабагентами: описания отстают от механики молча (2026-08-09)
Реорганизация была объявлена законченной «на бумаге», и я запустил по аудитору на
плагин — консистентность, самостоятельность, интегрируемость. Гейт при этом был
зелёным и остался честен: он проверяет ровно то, что умеет.
Нашлось около полусотни расхождений, и они **одного рода**. Каждый раз я правил
механику — вырезал спринт из скрипта, переименовал скиллы, перенёс судей — и
каждый раз не правил то, что механику **описывает вовне**: скелеты документов,
докстринги скрипта, уставы агентов, манифесты плагинов, README.
Самое дорогое: **скелет `CLAUDE.md` уносил слоты спринта в каждый новый проект**
через две недели после отмены спринтов. Скелет не описывает, а порождает: его
отставание не читается, оно исполняется.
**Механизм приоритета не запускался ни разу.** `--section` у `move` был
обязательным, а все три места, где груминг предписывает расстановку, дают команду
без него — usage error. Скилл написан, прогнан не был, и разницы между рабочим и
бумажным процессом не видно, пока его не запустят.
**Правило границы я же и нарушал.** Восемь дословных копий «путь в дерево чужого
плагина не пишется никогда» — и пять мест, где путь написан, одно из них строкой
выше собственного «пути туда конвейер не выносит».
Отдельно: **у описания плагина было два дома**, и три из четырёх разошлись. Класс
закрыт не дисциплиной, а машиной — `frontmatter.py` теперь сверяет `plugin.json` с
`marketplace.json`, а гейт разбужен на `*.json`.
Правки разобраны четырьмя пропусками по одному сабагенту на пропуск, с проверкой
результата каждого: скелеты и канон, исполнимость учёта задач, границы и стыки,
словарь и манифесты. Скриптовые правки проверены поведением на фикстурах, включая
настоящий git-репозиторий для `reopen`.
**Чего аудит не даёт.** Это было чтение. Ни один скилл по-прежнему не исполнялся
на живом проекте, и находки вроде «чекпоинт вырождается в ритуал» такой проверкой
не берутся по построению.
### Что из этого следует
195. **Механика проверяется прогоном, описание — только чтением.** Поэтому после
каждой правки механики отстают именно описания, и отстают молча. Меняя
механику, ищи её отражения поимённо: скелеты, докстринги, уставы агентов,
манифесты, README.
196. **Скелет дороже документа: он не описывает, а порождает.** Отставший
документ врёт одному читателю; отставший скелет уезжает в каждый новый
проект и становится там обязательным.
197. **Копия правила не заставляет его исполнять.** Правило исполняется там, где
его проверяет машина или чужой глаз; восемь копий на видном месте не
помешали автору нарушить его пятью строками.
198. **Бумажный процесс неотличим от рабочего, пока его не запустили.** Команда,
которую никто не набрал, может не существовать вовсе — и именно так и было.
199. **Два дома у факта расходятся не когда-нибудь, а сразу.** Из четырёх пар
описаний плагина совпала одна — та, которую с момента заведения не правили.