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

5.8 KiB

Журнал проскочивших дефектов

Артефакт проекта, а не плагина: файл живёт в репозитории (путь — в разделе ## Карта брифа, по умолчанию docs/review-journal.md). Здесь описано, зачем он и какой формы, потому что без него конвейер не учится: находки закрываются, причины непоймания теряются, и один и тот же класс проскакивает второй раз.

Что туда попадает

Дефект, который прошёл ревью и всплыл позже. Записывается сразу, а не ретроспективно: со временем теряется не сам факт, а причина непоймания — единственное, ради чего журнал существует.

Реализованные задачи, находки ревью и принятые решения сюда не пишутся: у них есть коммит, спека и задача. Здесь только промахи конвейера.

Отдельно сюда попадают решения о составе прогонов: перестали звать проход, понизили профиль правилом, сузили класс проверяемого. Не потому, что это промах, а потому, что здесь лежит цена: если что-то теперь проскочит, первый вопрос — «не тот ли это класс, который мы перестали проверять».

Каждое такое решение обязано получить строку в брифе — в подразделе ### Перестали проверять сознательно раздела ## Недоступно проверке. Журнал хранит «почему тогда так решили», бриф — то, во что смотрит каждый прогон. Решение, оставшееся только в журнале, в границы покрытия не доедет.

Форма записи

## ГГГГ-ММ-ДД — <краткое последствие>

- **Где:** путь:строка либо «конвейер, а не код»
- **Симптом:** как обнаружилось, кем и когда
- **Причина:** что на самом деле было не так
- **Почему не поймали:** какой проход обязан был найти и что ему помешало
- **Что меняем:** правило прохода, шаг гейта, конвенция, пункт брифа — либо
  «ничего, цена поимки выше цены дефекта»

Последний пункт важнее остальных. Вывод «ничего не меняем» — законный исход: не всякий дефект стоит того, чтобы усложнять ради него ревью каждой задачи.

Куда ведёт запись

Три адреса, и выбор между ними — половина ценности журнала:

  • в бриф проекта — если проход не мог знать факта: объём, характер потока, что здесь необратимо, какой шаг гейта красит безусловно. Самый частый адрес и самый дешёвый. Сюда же — воспроизведённый случай (раздел ## Прецеденты: класс, симптом, чем воспроизведён, чем закончилось) и вопрос конкретному проходу, если промах лечится не фактом, а заданным вопросом (раздел ## Вопросы к проходам). Прежде чем править charter, проверь, не хватит ли этих двух разделов: charter общий для всех проектов, бриф — про этот.
  • в конвенции или в правило линтера — если свойство выражается детерминированно (процедура — promote.md).
  • в charter прохода — если сломан метод, а не знание. Правка charter'а меняет поведение во всех проектах, поэтому она требует калибровки (calibration.md) и обоснования, почему это не лечится брифом.

Что журнал даёт конвейеру

  • пробы для калибровки — реальный проскочивший дефект сильнее синтетического: синтетические смещены в сторону тех, которые уже умеешь придумывать;
  • основание для правил конвейера — требование называть запущенные проходы поимённо, отказ от чисел, производных от размера корпуса, и правило последовательного прогона выведены из конкретных записей, а не из общих соображений;
  • счётчик обратимости решений — сузили состав проходов и через месяц поймали дефект ровно того класса, который перестали проверять: решение пересматривается фактом, а не спором.