Состав прогона постоянный: гейт, спеки, код, триаж; приёмник тем идёт, когда у проекта есть свои темы. Метка, разметка и проход review-scope упразднены, review-levels.md удалён, ось «метка» снята из axes.md. Ступень 4 ушла из цикла: review-proof упразднён через день после заведения, review-architecture переехал в code-deep-review вслед за adversary и ops. Темы security, operations и architecture закрывает review-code сверкой с записанными инвариантами, потолком 1 находка. Умолчание разметки действий перевёрнуто на инлайн; развилка осталась за необратимым, изменением дельта-спек и нарушенным инвариантом. Задачи из урожая заводятся по слову человека, а не шагом сценария. Чекпоинт назван единственным местом, где решается форма решения. Потеряны ось времени в цикле и суждение о форме после кода — обе потери названы в «Честном пределе» строкой границ покрытия. Журнал — тема 77.
121 lines
10 KiB
Markdown
121 lines
10 KiB
Markdown
# 77. Цикл задачи проверяет механику; метки сняты (2026-08-23)
|
||
|
||
## Что было
|
||
|
||
Тема 76 вынесла тяжёлые проходы в `av-dev:code-deep-review` и оставила в цикле
|
||
лёгкий `review-proof`. Это сократило прогон, но не ответило на вопрос, **что
|
||
именно цикл задачи обязан проверять**.
|
||
|
||
Владелец процесса назвал рамку прямо. Проекты — небольшие приложения для себя,
|
||
без сложных доменов; агент в них **второй пилот и советник**, а за архитектурные
|
||
решения отвечает человек; ценится срок задачи и короткие итерации, чтобы вовремя
|
||
менять дизайн и требования. Отсюда два способа работы и разрез между ними:
|
||
`av-dev:code-resolve` решает задачу быстро и в рамках существующих
|
||
договорённостей, а `av-dev:code-deep-review` думает вдумчиво, обсуждает находки и
|
||
заводит работы.
|
||
|
||
Конвейер этому разрезу не соответствовал в трёх местах.
|
||
|
||
**Цикл судил замысел.** На метке `large` шли `review-proof` (риск рассуждением) и
|
||
`review-architecture` («не появился ли второй способ», «что опытный человек
|
||
отсюда удалил бы»). Обе оптики дают находки, по которым решает человек, — то есть
|
||
предмет глубокого ревью, а не быстрого прогона.
|
||
|
||
**Разметка стоила запуска, а решала всё меньше.** `review-scope` — отдельный
|
||
агент на 404 строки, две оси, матрица, отрицательный тест, доли по журналу,
|
||
справочник `review-levels.md` на 175 строк. Со снятой ступенью 4 метка правила
|
||
только вход и потолки двух проходов.
|
||
|
||
**Хвост требовал человека там, где не должен.** Урожай отдавался
|
||
`av-dev:task-track` как обязательный шаг: задачи заводились, а не предлагались.
|
||
Правило разметки действий гласило «сомневаешься — ставь развилку», то есть
|
||
умножало вопросы к человеку внутри прогона, который заведён ради скорости.
|
||
|
||
## Решено
|
||
|
||
**Р301. Цикл задачи проверяет корректность и механику против записанного
|
||
критерия.** Дельта-спеки, конвенции, инварианты `CLAUDE.md`, вывод инструментов.
|
||
Вопрос «то ли это решение» в цикле не задаётся вовсе: у него два своих места —
|
||
чекпоинт до кода, где форму одобряет человек, и скилл `av-dev:code-deep-review`,
|
||
где находки разбирают по одной.
|
||
|
||
**Р302. Состав прогона постоянный, метки нет.** Гейт, `specs`, `code`, триаж;
|
||
`basics` идёт тогда и только тогда, когда у проекта есть свои темы. Ось «метка»
|
||
снята из `shared/axes.md`, справочник `review-levels.md` удалён, устав
|
||
`review-scope` удалён.
|
||
|
||
**Р303. Ступень 4 ушла из цикла целиком.** `review-proof` упразднён, его устав
|
||
удалён; `review-architecture` переехал в `av-dev:code-deep-review` вслед за
|
||
`adversary` и `ops`. Прожил `proof` один день — с темы 76 до этой; он был
|
||
правильным шагом в неверную сторону: облегчал проход, тему которого цикл вообще
|
||
не должен разбирать.
|
||
|
||
**Р304. Темы `security`, `operations` и `architecture` в цикле закрывает `code`
|
||
сверкой с записанными инвариантами, потолком 1 находка на три темы разом.**
|
||
Свойства, которого нет в инвариантах, цикл не спросит. Это не «глубина ниже», а
|
||
другой дом темы, и он называется строкой в каждом отчёте.
|
||
|
||
**Р305. Вход и потолки проходов стали постоянными.** `code` читает дом конвенций
|
||
целиком, `specs` — дельту, актуальные спеки, `design.md`, `tasks.md`, паспорт и
|
||
обзор архитектуры. Потолки: `code` — 4 конвенционных, 1 инвариантная, у
|
||
технической половины потолка нет; `specs` — нет; `basics` — 4; триаж — 7.
|
||
Обеим половинам потолка не ставят намеренно: пропуск дефекта и пропуск
|
||
расхождения со спекой не оставляют следа нигде.
|
||
|
||
**Р306. Умолчание разметки действий — `инлайн`.** Прежнее правило «сомневаешься —
|
||
развилка» перевёрнуто. Развилку получают три случая, и все названы: правка меняет
|
||
**дельта-спеки**, находка сидит в **необратимом** месте, находка трогает
|
||
**инвариант** `CLAUDE.md`.
|
||
|
||
**Р307. Задачи из урожая заводятся только по слову человека.** Список
|
||
показывается одной репликой; сказал «заводим» — зовётся `av-dev:task-track`, не
|
||
сказал — урожай остаётся строками доклада. Прежде вызов был обязательным шагом
|
||
сценария.
|
||
|
||
**Р308. Отрицательный тест `small` заменён адресацией.** Изменение, которое после
|
||
мерджа не откатывается обратной правкой, прежде поднимало метку; поднимать нечего,
|
||
и признак теперь меняет **адресата находки** — она уходит человеку развилкой, а не
|
||
чинится молча.
|
||
|
||
**Р309. Сигнал «метка занижена» стал сигналом «изменение просит глубокого
|
||
ревью».** Признаки те же — несколько слоёв разом, нащупанная по ходу форма, новое
|
||
понятие, необратимое место; адресат другой: человек, который решает, звать ли
|
||
глубокий прогон. Носитель прежний — `review-code`, подтверждающий — `review-basics`.
|
||
|
||
**Р310. Строки «отложено в `av-dev:code-deep-review`» сводит триаж.** Пишут их
|
||
проходы, упёршиеся в предел цикла; не сведённые в одну секцию, они растворяются
|
||
по отчётам, и повод позвать глубокий прогон не копится нигде.
|
||
|
||
## Следствия
|
||
|
||
**С268. Шагов в сценарии решения стало восемь.** Разметка ушла, нумерация
|
||
сдвинулась: ревью кода теперь шаг 5, архивация с синком — 6, коммит — 7, закрытие
|
||
— 8.
|
||
|
||
**С269. Чекпоинт стал единственным местом, где решается форма решения.** До этой
|
||
темы у формы было два суждения — человека на чекпоинте и архитектурного прохода
|
||
после кода. Осталось одно, и это записано прямо: одобренное на чекпоинте уезжает
|
||
в код без второго суждения о замысле.
|
||
|
||
**С270. Ось времени в цикле не смотрит никто.** Обратима ли миграция, что станет
|
||
с записями после отката, как узел ведёт себя через неделю роста — прежде эти
|
||
вопросы задавал `basics` на метке `medium`. Развилка по необратимому месту
|
||
адресатом их не заменяет: она срабатывает, только если находку кто-то сделал.
|
||
Названо строкой «Честного предела», а не подразумевается.
|
||
|
||
**С271. Сверка состава подешевела.** Реестр тем был переменным — приезжал планом
|
||
разметки и на каждой задаче выглядел иначе. Постоянный реестр сверяется взглядом:
|
||
проходов пять, отчёт от каждого либо есть, либо назван непущенным.
|
||
|
||
**С272. Скелет `docs/review.md` потерял «Триггеры метки» и получил «Когда звать
|
||
глубокое ревью».** Два списка вместо трёх: области, которые смотрят целиком, и
|
||
что в этом проекте считается необратимым. Второй список работает и в цикле —
|
||
им проверяется основание развилки.
|
||
|
||
**С273. Нарезка задач перестала опираться на метку.** Шов теперь ищется по роду
|
||
работы, а не по тому, где падает метка; костяк ревью разрез удваивает **всегда**,
|
||
и выигрыш даёт не проверка, а то, что половина доводится и мерджится сама.
|
||
|
||
**С274. Общий словарь канона с конвейером сузился до категорий и тем.** Имена
|
||
меток из него ушли — вместе с самими метками.
|