ревью: скилл review-pipeline — стадии, профили, контракт находок, храповик

Конвейер собран по типу проходов, а не по ролям: гейт (детерминированный,
блокирующий) → сверка с дельта-спеками в обе стороны → generative-проходы →
архитектура → враждебные постановки → обязательный триаж. Профили quick /
standard / deep / design с правилом выбора по факту изменения.

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

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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-07-23 18:17:52 +03:00
co-authored by Claude Opus 4.8
parent 612344bab3
commit 2fb533e0e6
7 changed files with 556 additions and 0 deletions
+6
View File
@@ -15,3 +15,9 @@
ещё не принятые решения. Не источник истины и ни к чему не обязывают.
Когда черновик становится реальностью — его место в specs (как
устроено) и/или adr (почему решили).
Рядом лежат ещё два прикладных раздела: **[conventions/](conventions/)** —
как мы пишем код (то, что не выражается правилом линтера), и
**[review/](review/journal.md)** — журнал дефектов, проскочивших ревью:
эвал-сет для калибровки конвейера
[review-pipeline](../.claude/skills/review-pipeline/SKILL.md).
+43
View File
@@ -0,0 +1,43 @@
# Журнал проскочивших дефектов
Всё, что прошло конвейер ревью и всплыло позже — на ручном просмотре, при
отладке, на umbar в проде. Это лучший эвал-сет, который вообще возможен:
синтетические дефекты смещены в сторону тех, которые уже умеешь придумывать, а
журнал — каталог реальных слепых пятен.
**Заполнять сразу, по горячим следам.** Ретроспективные записи бесполезны:
теряется именно то, ради чего журнал заведён, — причина непоймания. Через неделю
остаётся «ну, не заметил».
Каждая запись превращается в пробу для
[калибровки](../../.claude/skills/review-pipeline/references/calibration.md) того
прохода, который должен был поймать дефект.
## Как заполнять
Одна запись — один дефект, новые сверху. Шаблон:
```markdown
## YYYY-MM-DD — <краткое последствие>
- **Класс дефекта:** <поведение вне спеки / гонка / отсутствующая наблюдаемость / деградация зависимости / форма решения / …>
- **Где всплыл:** <ручной просмотр / отладка / прод umbar / отчёт пользователя>
- **Стоимость обнаружения:** <минуты отладки, потерянные данные, часы простоя>
- **Что произошло:** <симптом → причина, со ссылкой на файл:строку и коммит>
- **Какой проход должен был поймать:** <имя агента>
- **Почему не смог:** <не было во входе / не было в чек-листе / оракул был недоступен / проход не запускался в этом профиле / принципиально недоступно>
- **Был ли доступен оракул:** <да, какой / нет>
- **Действие:** <проба добавлена в калибровку / конвенция / правило линтера / профиль изменён / признано неавтоматизируемым>
```
Поле «Почему не смог» — главное. Если ответ «не было в чек-листе», лечится
generative-проходом, а не удлинением чек-листа. Если «не было во входе» — лечится
входом. Если «оракул был недоступен» — лечится гейтом. Если «принципиально
недоступно» — запись всё равно нужна: она пополняет раздел честного предела в
скилле и отвечает на будущий вопрос «почему ревью это не поймало».
## Записи
Пока пусто — журнал заведён 2026-07-23 вместе с переработкой конвейера.
Накопленные до этой даты случаи вносятся по мере того, как вспоминаются, с
пометкой «восстановлено постфактум, причина непоймания недостоверна».