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

44 lines
3.6 KiB
Markdown

# Журнал проскочивших дефектов
Всё, что прошло конвейер ревью и всплыло позже — на ручном просмотре, при
отладке, на umbar в проде. Это лучший эвал-сет, который вообще возможен:
синтетические дефекты смещены в сторону тех, которые уже умеешь придумывать, а
журнал — каталог реальных слепых пятен.
**Заполнять сразу, по горячим следам.** Ретроспективные записи бесполезны:
теряется именно то, ради чего журнал заведён, — причина непоймания. Через неделю
остаётся «ну, не заметил».
Каждая запись превращается в пробу для
[калибровки](../../.claude/skills/review-pipeline/references/calibration.md) того
прохода, который должен был поймать дефект.
## Как заполнять
Одна запись — один дефект, новые сверху. Шаблон:
```markdown
## YYYY-MM-DD — <краткое последствие>
- **Класс дефекта:** <поведение вне спеки / гонка / отсутствующая наблюдаемость / деградация зависимости / форма решения / …>
- **Где всплыл:** <ручной просмотр / отладка / прод umbar / отчёт пользователя>
- **Стоимость обнаружения:** <минуты отладки, потерянные данные, часы простоя>
- **Что произошло:** <симптом → причина, со ссылкой на файл:строку и коммит>
- **Какой проход должен был поймать:** <имя агента>
- **Почему не смог:** <не было во входе / не было в чек-листе / оракул был недоступен / проход не запускался в этом профиле / принципиально недоступно>
- **Был ли доступен оракул:** <да, какой / нет>
- **Действие:** <проба добавлена в калибровку / конвенция / правило линтера / профиль изменён / признано неавтоматизируемым>
```
Поле «Почему не смог» — главное. Если ответ «не было в чек-листе», лечится
generative-проходом, а не удлинением чек-листа. Если «не было во входе» — лечится
входом. Если «оракул был недоступен» — лечится гейтом. Если «принципиально
недоступно» — запись всё равно нужна: она пополняет раздел честного предела в
скилле и отвечает на будущий вопрос «почему ревью это не поймало».
## Записи
Пока пусто — журнал заведён 2026-07-23 вместе с переработкой конвейера.
Накопленные до этой даты случаи вносятся по мере того, как вспоминаются, с
пометкой «восстановлено постфактум, причина непоймания недостоверна».