Files
Claude 8dcc1cad4e docs(process): канон без противоречий, вход автора короче (#701)
Сверка PROCESS.md, ролевых выжимок, AGENTS.md, TESTING.md, CONTRIBUTING.md
и скриптов по 26 найденным расхождениям (D1–D26): трейлеры по классам
изменений, gate:small как единственный источник состава, пороги ревью,
путь реестра мутантов, golden по ci:golden, порядок чтения промпта ревью.

- scripts/change-classes.mjs: классы A/B/C/D — один модуль для
  process-gate и проверки трейлеров.
- commit-msg: коммит только с файлами класса C (документация) трейлеров
  не требует; указанные трейлеры по-прежнему проверяются.
- Маршрут автора без docs/STATUS.md: 5345 → 4703 слова.
- Промпт ревью читает SCOPE → AGENTS → REVIEWER, как ROUTES.reviewer.

Issue: #701
User-Visible: no
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
2026-09-29 00:30:04 +03:00

4.1 KiB

Уроки

Датированные выводы, пережившие свою задачу (#635). Каждый — одной мыслью, со ссылкой на источник: документ ревью, issue, аудит. Полный след решений — в docs/reviews/INDEX.md и комментариях issue; здесь только то, что меняет поведение на следующей задаче. Читается перед задачей в затронутой подсистеме вместе с её строками в docs/reviews/INDEX.md (PROCESS.md, «Индекс документов ревью»); конспекты ролей сюда не ведут — урок, ставший правилом, живёт в каноне.

Дата Урок Источник
2026-08-23 Одно число, видимое пользователю дважды (превью/факт, подпись/запись), обязано иметь один источник. аудит 23.08, #233/#234, тест single-source-numbers
2026-09-06 Число смоков/тестов не живёт в тексте: считается командой (npm run inventory). #472, PROCESS.md
2026-09-09 Мутанты по диффу — на кандидате, не на каждом push: 48 из 56 часов job-минут за два дня ушли в отменённые прогоны. #510
2026-09-13 Ненулевой exit гарда ≠ «мутант пойман»: setup-failure, invalid-mutation и survived различаются; засчитывается только assertion-killed. #558, #568
2026-09-18 Ревью на не принятых эталонах — потерянный цикл: golden:verify ревьюер гоняет лично, эталоны принимаются до S7. С #697 — только у задачи с ci:golden; сдвиг остальных принимает бот на dev перед бетой. CODE-REVIEW-598-r1 H1, #697
2026-09-20 Стенд ≠ Home Assistant: нативный <dialog> и ha-dialog — разные ветки; свидетель для реального HA — фикстура #505, а не golden стенда. аудит 22.09 A/H1, #607, #609
2026-09-20 Контролируемое поле без live() показывает не то число, что в состоянии; клампить на коммите (change), не на каждом символе. аудит 22.09 A/H2, #608
2026-09-21 Лог без итоговой строки — обрыв, а не «ok»: отчёт судит по маркеру завершения и исходу шага, не по отсутствию FAIL. #604
2026-09-21 На main после fast-forward merge-base(dev, HEAD) = HEAD: пустой дифф пропускает тяжёлые job, а гейт, судящий только самый свежий прогон, объявляет релиз красным. аудит 22.09 D, #619
2026-09-22 Обвязка процесса тоже рождает P1: дефекты #595/#596 нашлись в бою, а не тестами обвязки — тесты по тексту YAML и регэкспам исходников не заменяют фикстурного прогона. аудит 22.09
2026-09-23 Смена события коммита в общем контроле (input → change) краснит смоки, которые набор контролов не называют: связь символ → смок должна быть явной в smoke-links, иначе краснота доживает до ночи. #639
2026-09-23 Ожидание другого workflow внутри job — занятый раннер и потолок бюджета стадии; ждать должно событие (workflow_run) с маркером ожидания, а будить без маркера нельзя — это второй вызов модели. #636