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