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

24 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Уроки
Датированные выводы, пережившие свою задачу (#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 |