# 76. Лёгкий проход в цикле, тяжёлые — в отдельном скилле (2026-08-23) ## Что было На метке `large` две темы закрывала пара тяжёлых проходов. `review-adversary` строил путь и **прогонял** падающий тест, `review-ops` снимал числа замером. Оба помечены «держит машину», а значит шли не разом, а цепочкой: второй ждал первого, и он же определял, когда стартует триаж. Замер по прогону в проекте transcriber 23 августа: враждебный проход занял 25 минут и держал весь параллельный залп, эксплуатационный — ещё 9 минут следом за ним. Ревью кода целиком заняло 62 минуты при цели в час на всю задачу. Ценность пары при этом не оспаривается и измерена: на пяти задачах подряд враждебный дал пять из семи выживших находок дозапуска, эксплуатационный — единственный, кто нашёл, что откат бинаря поверх новой схемы стартует молча. Спорна не ценность, а **момент оплаты**: она платилась на каждой задаче с меткой `large`, а получалась на немногих. ## Решено **Р293. В цикле задачи обе темы закрывает один лёгкий проход `review-proof`.** `security` и `operations` разом, чтением и рассуждением: набросок пути (вход, преобразование, куда легло) и ось времени (миграция и откат, рост, удержание, чужая деградация). Потолки раздельные — 2 находки на тему: общий потолок дал бы одной теме съесть весь выход прохода. **Р294. Он ничего не запускает, и потому машину не держит.** Отсюда главное для времени прогона: он уходит **в общем залпе** с остальными проходами, а не в цепочке за ресурс. Цепочки в обычном прогоне не осталось вовсе — оба прохода, что её держали, из конвейера ушли. **Р295. `critical` этот проход не присваивает.** Оракул `critical` добывается запуском, а он не запускает; его потолок по severity — `major` с **названным** оракулом: чем это проверить, если кто-то возьмётся. **Р296. Тяжёлая пара переехала в новый скилл `av-dev:code-deep-review`.** Не удалена: уставы сохранены целиком, сменились вход и вызывающий. Вход теперь — **названная человеком область кода** (модуль, слой, сервис), а не дифф задачи; метки здесь нет, потому что нет задачи; глубина постоянная — доказательство. **Р297. Состав глубокого прогона постоянный:** `adversary`, `ops`, `architecture` на широком входе, `code` по коду целиком, сводит `triage`. Цепочка за машину там действует полностью — скилл идёт не на задаче, и часы у него есть. **Р298. Исход глубокого прогона — разговор и задачи, а не правки.** Находки разбираются с человеком по одной, сверху вниз; по каждой он говорит «берём», «не берём» с причиной или «не находка». Согласованное уезжает задачами через `av-dev:task-track`, отвергнутое — строкой в журнал дефектов `docs/review.md`. Ни одной находки скилл не чинит сам: правка по ходу разбора превращает разговор в работу. **Р299. Вход глубокому прогону копит сам цикл.** Всё, что доказывается только запуском, `review-proof` не выдаёт находкой и не выбрасывает: строка в границах покрытия называет тему, место и запуск. Строка переносится в доклад дословно и однажды становится поводом позвать глубокое ревью. **Р300. Доказательства в цикле задачи нет ни на одной метке, и это сказано прямо.** Гонка, деградация под нагрузкой, исчерпание ресурса, откат бинаря поверх новой схемы — класс, который виден только построенным путём и снятым числом. На `large` его смотрит `proof` чтением и откладывает; ниже `large` не смотрит никто. Это самая крупная граница покрытия конвейера, и она идёт строкой каждого прогона. ## Следствия **С264. Глубин в конвейере стало две.** Сверка и разбор; доказательство — свойство глубокого прогона, и разметчик его не назначает: план с доказательством некому исполнить. **С265. Цена ошибки метки вверх упала.** Прежде лишний `large` стоил трёх тяжёлых проходов, двое из которых держали машину; теперь — двух проходов чтением. Правило «спорное решается вниз» остаётся, но его обоснование стало слабее, и это записано. **С266. Просрочку глубокого ревью видно по отчётам.** Если по одному месту в строках «отложено» повторяется один и тот же неснятый замер, дело не в метке — глубокий прогон просрочен. Это второй след рядом с журналом дефектов. **С267. Тема пережила переезд прохода, и это проверка правила 0 конвейера.** `ops` ушёл, тема `operations` осталась и досталась `proof`. Ровно ради этого случая состав прогона и описывается таблицей «тема → глубина → кто закрывает», а не списком проходов.