шов между плагинами: канон перестал называть имена проходов

av-dev-pm и av-dev-pipeline раздельны: канон работает без конвейера, конвейер без
канона — поразрядно деградируя и называя это строкой. Но канон в шести местах
называл конвейер поимённо, и одно из них — вывод docs.py пользователю: «свои темы
проекта: … — их разбирает review-basics». Такая строка чинится не правкой файла,
а недоумением на чужом проекте.

Правило записано в canon.md, чтобы не отрастало заново. Общий словарь — имена тем
и имена ступеней, и только они: ими проект настраивает ревью, вопросами по темам
и триггерами профиля. Имён проходов канон не называет нигде. Направление
несимметрично, и это верно: конвейер называет документы канона поимённо, потому
что он их читатель, а обратной ссылки быть не может — документ живёт дольше, чем
раскладка проходов.

Что вычищено: имя review-basics в canon.md, в changelog версии 5 и в выводе
docs.py; «её берёт basics» из таблицы ролей; описательные адресации того же
класса — «архитектурный проход судит», «враждебный проход выдумает». Худшей была
строка в skeletons.md «там идут враждебный, эксплуатационный и архитектурный
проходы»: утверждение о составе ступени, живущее на стороне, которая о составе не
знает. Строка таблицы «эксплуатационный проход ревью» стала «тема ревью
operations» — заодно совпала со словарём, к которому tasks/SKILL.md отсылает как
к единому дому.

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

Починена и висячая ссылка: project-facts.md отсылал к таблице «Кто читает» в
каноне, которой там нет — она была убрана правкой, вводившей темы, и по новому
правилу её и не должно быть. Списка читателей не ведёт никто: читателя назначает
план прогона.

Тема 38 в DECISIONS.md, следствия 143-144.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-08-07 08:57:09 +03:00
co-authored by Claude Opus 5
parent 900f3f83ca
commit 4386eb3e1c
9 changed files with 74 additions and 26 deletions
+35
View File
@@ -2626,3 +2626,38 @@ JJJ): у профиля обязан быть один правильный от
142. **Слово, уже значащее что-то в предметной области проекта, нельзя брать
именем роли конвейера.** «Гейт» принадлежит проекту раньше, чем ревью, и
спор за него ревью проигрывает.
## 38. Шов между плагинами: канон не называет имён проходов (2026-08-07)
Замечено при сведении тем документации с ревьюверами: `av-dev-pm` в шести местах
называл конвейер поимённо — от прозы канона до **вывода `docs.py` пользователю**
(«свои темы проекта: … — их разбирает `review-basics`»). Плагины при этом
раздельные: `av-dev-pm` работает без конвейера, `av-dev-pipeline` — без канона,
поразрядно деградируя.
**АДААА. Общий словарь — имена тем и имена ступеней, и только они.** Ими проект
настраивает ревью: вопросы по темам и триггеры профиля. Имён проходов канон не
называет нигде. Направление зависимости при этом несимметрично и это верно:
**конвейер называет документы канона поимённо, потому что он их читатель**, а
обратной ссылки быть не может — документ живёт дольше, чем раскладка проходов.
Заодно вычищены описательные адресации того же класса: «архитектурный проход
судит», «враждебный проход выдумает», «там идут враждебный, эксплуатационный и
архитектурный проходы». Последняя — худшая из них: это утверждение о **составе
ступени**, живущее на стороне, которая о составе не знает.
**АДААБ. Пример в правиле не должен нарушать само правило.** Объяснение, почему
вопросы адресуются темам, звучало так: «вопрос, адресованный `ops`, перестал
задаваться в тот день, когда `ops` уехал в верхнюю ступень». Правило про
нестабильность имён, иллюстрированное именем. Стало «адресованный проходу» — и
работает даже после того, как проход переименуют.
### Что из этого следует
143. **Ссылка из вывода скрипта дороже ссылки из прозы.** Устаревшую строку в
документе чинит тот, кто её читает; устаревшее имя в сообщении `docs.py`
доезжает до чужого проекта и там объясняется недоумением.
144. **Список, который никто не ведёт, честнее списка, который ведут двое.**
Читателей документа не перечисляет ни одна сторона — читатель назначается
планом прогона. Прежняя ссылка на «таблицу читателей» пережила саму таблицу
и обещала то, чего нет, — с той самой правки, которая таблицу и убрала.