Files
dev-skills/av-dev-pipeline/skills/review-pipeline/references/review-journal.md
T
av 0eca206460 av-dev-pipeline: починены находки ревью, бриф заводится скиллом
- скилл project-brief: бриф собирается из CLAUDE.md, архитектуры, Taskfile
  и конвенций и показывается человеку. Раньше единственная инструкция по
  его созданию лежала внутри шаблона, поэтому деградированный режим был не
  аварийным, а единственным: critical по основанию «нарушен инвариант»
  недостижим ни на одной задаче
- rebase перенесён внутрь worktree задачи: прежняя форма падала на занятой
  ветке, и агент уводил весь батч в провалившиеся с ложной причиной
- контракт брифа дополнен восемью слотами; проверен заполнением на обоих
  проектах, незаполнимых нет. Прецедент healthlog вынут из общего charter'а
  в бриф — там он вмёрз вместе с числами
- шов: пайплайн задачу не закрывает и записи учёта не трогает, урожай
  отдаёт списком, правило остатка — ссылкой на av-dev-tasks
- деградированный абзац во всех девяти проходах, вопрос 9 в ops,
  пространство имён в вызовах, раздел предпосылок
2026-08-03 11:45:40 +03:00

72 lines
5.8 KiB
Markdown
Raw 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.
# Журнал проскочивших дефектов
Артефакт проекта, а не плагина: файл живёт в репозитории (путь — в разделе
`## Карта` брифа, по умолчанию `docs/review-journal.md`). Здесь описано, зачем он
и какой формы, потому что без него конвейер не учится: находки закрываются,
причины непоймания теряются, и один и тот же класс проскакивает второй раз.
## Что туда попадает
Дефект, который **прошёл ревью и всплыл позже**. Записывается **сразу**, а не
ретроспективно: со временем теряется не сам факт, а причина непоймания —
единственное, ради чего журнал существует.
Реализованные задачи, находки ревью и принятые решения сюда не пишутся: у них
есть коммит, спека и задача. Здесь только промахи конвейера.
Отдельно сюда попадают **решения о составе прогонов**: перестали звать проход,
понизили профиль правилом, сузили класс проверяемого. Не потому, что это промах,
а потому, что здесь лежит цена: если что-то теперь проскочит, первый вопрос —
«не тот ли это класс, который мы перестали проверять».
Каждое такое решение обязано получить **строку в брифе** — в подразделе
`### Перестали проверять сознательно` раздела `## Недоступно проверке`. Журнал
хранит «почему тогда так решили», бриф — то, во что смотрит каждый прогон.
Решение, оставшееся только в журнале, в границы покрытия не доедет.
## Форма записи
```
## ГГГГ-ММ-ДД — <краткое последствие>
- **Где:** путь:строка либо «конвейер, а не код»
- **Симптом:** как обнаружилось, кем и когда
- **Причина:** что на самом деле было не так
- **Почему не поймали:** какой проход обязан был найти и что ему помешало
- **Что меняем:** правило прохода, шаг гейта, конвенция, пункт брифа — либо
«ничего, цена поимки выше цены дефекта»
```
Последний пункт важнее остальных. Вывод «ничего не меняем» — законный исход: не
всякий дефект стоит того, чтобы усложнять ради него ревью каждой задачи.
## Куда ведёт запись
Три адреса, и выбор между ними — половина ценности журнала:
- **в бриф проекта** — если проход не мог знать факта: объём, характер потока,
что здесь необратимо, какой шаг гейта красит безусловно. Самый частый адрес и
самый дешёвый. Сюда же — **воспроизведённый случай** (раздел `## Прецеденты`:
класс, симптом, чем воспроизведён, чем закончилось) и **вопрос конкретному
проходу**, если промах лечится не фактом, а заданным вопросом (раздел
`## Вопросы к проходам`). Прежде чем править charter, проверь, не хватит ли
этих двух разделов: charter общий для всех проектов, бриф — про этот.
- **в конвенции или в правило линтера** — если свойство выражается
детерминированно (процедура — [promote.md](promote.md)).
- **в charter прохода** — если сломан **метод**, а не знание. Правка charter'а
меняет поведение во всех проектах, поэтому она требует калибровки
([calibration.md](calibration.md)) и обоснования, почему это не лечится
брифом.
## Что журнал даёт конвейеру
- **пробы для калибровки** — реальный проскочивший дефект сильнее синтетического:
синтетические смещены в сторону тех, которые уже умеешь придумывать;
- **основание для правил конвейера** — требование называть запущенные проходы
поимённо, отказ от чисел, производных от размера корпуса, и правило
последовательного прогона выведены из конкретных записей, а не из общих
соображений;
- **счётчик обратимости решений** — сузили состав проходов и через месяц поймали
дефект ровно того класса, который перестали проверять: решение пересматривается
фактом, а не спором.