Files
jellybit/docs/review/journal.md
T
avandClaude Opus 4.8 2fb533e0e6 ревью: скилл review-pipeline — стадии, профили, контракт находок, храповик
Конвейер собран по типу проходов, а не по ролям: гейт (детерминированный,
блокирующий) → сверка с дельта-спеками в обе стороны → generative-проходы →
архитектура → враждебные постановки → обязательный триаж. Профили quick /
standard / deep / design с правилом выбора по факту изменения.

Контракт находок: заголовок через последствие, обязательное поле «Последствие»,
critical без оракула или построенного пути не существует, потолок 7 пунктов и
разметка «инлайн | развилка» — отчёт читает оркестратор и молча реализует
прочитанное, поэтому потолок защищает код от незаказанных правок.

Храповик находка → конвенция → правило → удаление из прозы и промптов; журнал
проскочивших дефектов и калибровка инъекцией с вердиктами keep/retune/drop.
Секция границ покрытия обязательна: отчёт без неё потребляет ощущение
проверенности, ничего не гарантируя.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 18:17:52 +03:00

3.6 KiB

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

Всё, что прошло конвейер ревью и всплыло позже — на ручном просмотре, при отладке, на umbar в проде. Это лучший эвал-сет, который вообще возможен: синтетические дефекты смещены в сторону тех, которые уже умеешь придумывать, а журнал — каталог реальных слепых пятен.

Заполнять сразу, по горячим следам. Ретроспективные записи бесполезны: теряется именно то, ради чего журнал заведён, — причина непоймания. Через неделю остаётся «ну, не заметил».

Каждая запись превращается в пробу для калибровки того прохода, который должен был поймать дефект.

Как заполнять

Одна запись — один дефект, новые сверху. Шаблон:

## YYYY-MM-DD — <краткое последствие>

- **Класс дефекта:** <поведение вне спеки / гонка / отсутствующая наблюдаемость / деградация зависимости / форма решения / …>
- **Где всплыл:** <ручной просмотр / отладка / прод umbar / отчёт пользователя>
- **Стоимость обнаружения:** <минуты отладки, потерянные данные, часы простоя>
- **Что произошло:** <симптом → причина, со ссылкой на файл:строку и коммит>
- **Какой проход должен был поймать:** <имя агента>
- **Почему не смог:** <не было во входе / не было в чек-листе / оракул был недоступен / проход не запускался в этом профиле / принципиально недоступно>
- **Был ли доступен оракул:** <да, какой / нет>
- **Действие:** <проба добавлена в калибровку / конвенция / правило линтера / профиль изменён / признано неавтоматизируемым>

Поле «Почему не смог» — главное. Если ответ «не было в чек-листе», лечится generative-проходом, а не удлинением чек-листа. Если «не было во входе» — лечится входом. Если «оракул был недоступен» — лечится гейтом. Если «принципиально недоступно» — запись всё равно нужна: она пополняет раздел честного предела в скилле и отвечает на будущий вопрос «почему ревью это не поймало».

Записи

Пока пусто — журнал заведён 2026-07-23 вместе с переработкой конвейера. Накопленные до этой даты случаи вносятся по мере того, как вспоминаются, с пометкой «восстановлено постфактум, причина непоймания недостоверна».