ревью: лёгкий проход proof в цикле, тяжёлые — в code-deep-review

В цикле задачи темы security и operations закрывает один лёгкий проход
review-proof: чтением и рассуждением, без запуска, потолки раздельные. Машину
он не держит, поэтому идёт в общем залпе — цепочки за ресурс в обычном прогоне
не осталось. Тяжёлая пара adversary и ops переехала в новый скилл
code-deep-review: вход — названная область кода, глубина постоянная, исход —
разбор с человеком и задачи через task-track. Вход глубокому прогону копит сам
цикл строками «отложено». Журнал — тема 76.
This commit is contained in:
av
2026-08-23 15:55:32 +03:00
parent b287cdf71f
commit daf9f8b824
18 changed files with 635 additions and 130 deletions
@@ -88,8 +88,7 @@ stateDiagram-v2
| `review-basics` | отказ, видимый чтением | убрать обработку ошибки записи так, чтобы отказ считался успехом |
| `review-basics` | своя тема проекта | нарушить правило из документа, у которого нет именного прохода |
| `review-architecture` | второй способ | завести вторую точку генерации id мимо единой |
| `review-adversary` | построенный путь | принять внешний идентификатор без разбора до запроса в хранилище |
| `review-ops` | деградация окружения | убрать обработку недоступности внешней зависимости в фоновом цикле |
| `review-proof` | набросок пути и ось времени | принять внешний идентификатор без разбора до запроса в хранилище; убрать обработку недоступности внешней зависимости в фоновом цикле |
| `review-triage` | шум | подать 20 находок, из них 15 вкусовщина и 3 дубля — проверить потолок и дедуп |
Метрик сверх этого не заводим. Precision, корреляция между проходами, стоимость
@@ -65,7 +65,7 @@
«запись лежит сжатой и распаковывается целиком»; «блокировка удерживалась
5.019 с» — гарантированный отказ соседа только рядом с известным таймаутом
занятости. **Число проход снимает сам, на этом прогоне**, настройки берёт из
`docs/database.md`, и сшивают их `ops` и `adversary`. Раньше числа брались из
`docs/database.md`, и сшивает их `proof`. Раньше числа брались из
`docs/research/`; теперь этот документ процессный, и замер неизвестной свежести
больше не выдаёт себя за оракул.
- **инвариант + обратимость.** severity берётся из `CLAUDE.md`; если её там
@@ -69,8 +69,10 @@
- **Спорно между `medium` и `large` → бери `medium`.** Ошибка в эту сторону
стоит находки, которая всплывёт на следующей задаче или в журнале дефектов.
Ошибка в обратную стоит трёх тяжёлых проходов, двое из которых держат машину и
идут цепочкой, — и платится она **на каждой** задаче, выбранной неверно.
Ошибка в обратную стоит двух лишних проходов на каждой задаче, выбранной
неверно. Цена этого шага заметно упала: тяжёлая пара, что держала машину и шла
цепочкой, переехала в `av-dev:code-deep-review`, и `large` теперь добавляет два
прохода чтением, а не часы запусков.
- **Спорно между `small` и `medium` → бери `medium`.** Раньше эта строка
обосновывалась тем, что состав одинаков и ошибка почти бесплатна. Теперь состав
разный, и обоснование стало прямо противоположным: на `small` три темы ядра
@@ -101,7 +103,7 @@
Обратное тоже верно и тоже не бесплатно: у каждой задачи есть **несокращаемый
костяк — гейт, спеки, код, триаж**. Разрезать задачу, обе половины которой
остаются в одной метке, значит заплатить костяк дважды за ту же проверку.
Резать стоит там, где разрез **снимает доказательство с большей части диффа**.
Резать стоит там, где разрез **снимает старшую метку с большей части диффа**.
Шов и правило нарезки живут у того, кто ведёт задачи, — скилл
`av-dev:task-track`, его раздел о нарезке. Пути туда конвейер не выносит: за
пределы своего скилла он ходит вызовом, а не файлом.
@@ -150,9 +152,10 @@
## Доли — не пожелание, а проверка правила, и проверок две
**Сверху: `large` — 510%.** Если туда уходит каждая третья задача, метку
выбирают по ощущению важности. Обратный перекос виден по журналу проскочивших
дефектов: класс, который ловят только меряющие проходы, начинает всплывать после
мерджа.
выбирают по ощущению важности. Обратный перекос виден по двум следам: по журналу
проскочивших дефектов и по строкам «отложено» в отчётах — если по одному месту
повторяется один и тот же неснятый замер, дело не в метке, а в том, что глубокое
ревью области просрочено.
**Снизу: `small` не должен обгонять `medium`.** Ориентир — до трети задач, но
сравнение важнее числа: **перевес `small` над `medium` значит, что рабочее