Files
jellybit/.claude/skills/review-pipeline/references/calibration.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

6.5 KiB

Калибровка проходов

Без измерения набор проходов растёт монотонно и вырождается в театр: каждый кажется полезным, потому что иногда что-то говорит. Калибровка отвечает на единственный вопрос — ловит ли проход дефект своего класса.

Процедура (инъекция дефекта)

  1. Взять реальный коммит из истории (git log --oneline), лучше архивированный change с непустым диффом.
  2. Внести в него один дефект того класса, который проход обязан ловить по своему charter'у. Дефект должен быть правдоподобным — таким, какой реально пишет модель, а не карикатурой (panic("TODO") не считается).
  3. Прогнать только этот проход на подготовленном диффе — три раза, каждый в чистом контексте.
  4. Зафиксировать: нашёл n/3, число находок всего, число ложных.
  5. Вердикт:
Результат Вердикт Что делаем
нашёл 3/3 или 2/3, ложных немного keep ничего
нашёл 1/3 или 0/3 retune правим charter — сужаем вход, убираем чек-лист, добавляем оракул
retune уже был дважды подряд drop удаляем проход
находит, но ложных больше трети от всех находок retune триаж съедает больше, чем экономит проход

retune не более двух раз подряд. Проход, не находящий дефект своего класса в 2 из 3 прогонов после двух правок промпта, — это театр. Удалять, а не бесконечно править формулировки: каждая итерация правки промпта стоит дороже, чем отсутствие прохода.

Существующий проход не удаляется без замера. Сначала калибровка, потом решение — иначе удаляется то, что работало, а остаётся то, что громче.

Пробы дефектов по проходам

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

Проход Класс дефекта для инъекции Заготовка пробы
jellybit-review-gate отсутствующая верификация убрать тест на изменённую ветку, оставить код рабочим
jellybit-review-specs поведение вне спеки добавить незаказанный фолбэк-дефолт при пустом ответе LLM
jellybit-review-rubric нарушенное свойство узла в клиенте внешнего API убрать таймаут/протяжку context
jellybit-review-reimpl форма решения размазать решение по трём слоям там, где хватало одной функции
jellybit-review-idiom «распространённое» вместо идиоматичного завести интерфейс с одной реализацией ради мока
jellybit-review-negative отсутствующее убрать state transition из новой стадии воркера
jellybit-review-architecture второй способ завести вторую точку генерации id мимо internal/ident
jellybit-review-adversary построенный путь принять внешний id без ident.Parse до запроса в БД
jellybit-review-ops деградация зависимости убрать обработку недоступности qBittorrent в фоновом цикле
jellybit-review-triage шум подать 20 находок, из них 15 вкусовщина и 3 дубля — проверить потолок и дедуп

Дополнительные метрики

Собираются попутно, в журнале прогонов (свободной формой, там же где вердикты):

  • precision — доля находок, отвергнутых при ревью. Если отвергается меньше трети — хорошо; если больше — триаж съедает больше, чем экономит проход.
  • корреляция между проходами — стабильно одинаковые находки у двух проходов означают, что один лишний. Смотрится по полю Найдено проходом в триажированных отчётах.
  • стоимость прогона — токены и время. Профиль deep дороже standard примерно на порядок; если разница в найденном не видна, состав профиля пересматривается.

Когда калибровать

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