Files
dev-skills/decisions/74-design-review-dropped-scope-after-code.md
T
av 72d9aa8034 resolve: ревью дизайна снято, разметка переехала за код
Сценарий решения идёт от предложения сразу к чекпоинту и коду: стадия ревью
дизайна упразднена целиком, review-scope запускается после apply и меряет
размер по диффу, сложность — сверкой обещанных границ с тронутыми. Чекпоинт
остался единственным плановым стопом и стоит теперь до кода. review-rubric
конвейером не зовётся, слот рубрики в скелете config.yaml снят. Журнал —
тема 74.
2026-08-23 15:08:17 +03:00

6.4 KiB
Raw Blame History

74. Ревью дизайна снято, разметка переехала за код (2026-08-23)

Что было

Сценарий решения шёл так: propose → разметка → ревью дизайна → чекпоинт → apply → ревью кода. Разметка считала метку по написанному о задаче, а стадия ревью дизайна смотрела предложение до кода: specs на каждой задаче, rubric с medium, architecture с large.

Замер по прогонам в проекте transcriber 22–23 августа: полный прогон сценария занимал 3 часа 20 минут машинного времени, из них разметка и ревью дизайна с отработкой находок — 30 минут, а повторная разметка с повторным архитектурным проходом после чекпоинта — ещё 15. Владелец назвал целью час на прогон.

Решено

Р280. Стадия ревью дизайна снята целиком. Ни specs, ни rubric, ни architecture на предложении не запускаются. Требования сверяет specs на готовом коде — тот же проход, тот же дом темы, другой момент.

Р281. Разметка переехала за apply. review-scope идёт после того, как код написан и гейт зелёный, и до первой ступени прогона. Величина по-прежнему считается один раз на задачу: перезапуск прогона по находке «переделать форму» разметку не повторяет.

Р282. Размер меряется по диффу, сложность — по написанному о задаче. Дифф отвечает «сколько мест тронуто на самом деле» и ничего не обещает; на вопрос «знали ли форму решения заранее» он не отвечает вовсе — по готовому коду не видно, нащупывали его или писали по образцу. Признак незнакомого стал проверяемым: обещанные границы задачи сверяются с тронутыми, разошлись поимённо — формы не знали.

Р283. Правило «метка не пересматривается по факту диффа» снято. Оно существовало ровно потому, что разметка шла до кода: пересмотр означал бы второй запуск разметчика. Теперь дифф — вход разметки, а не повод её оспорить, и пересматривать внутри прогона нечего: второй запуск на том же дереве вернёт то же самое.

Р284. Чекпоинт остался и переехал к предложению. Он стоит сразу после propose и до кода. Прежде он стоял после ревью дизайна намеренно — человек читал объяснение, уже просеянное машиной; теперь просеивать нечем, и это прямая цена решения. Взамен стоп пришёл раньше: коррекция здесь стоит правки спеки, а не переписывания готового кода.

Р285. review-rubric осиротел, и это сказано в его уставе. Проход жил только на снятой стадии: рубрика, составленная при видимом коде, подстраивается под увиденное, а судить код по критерию, под который он писался, — корреляция по построению. Устав остаётся рабочим для прямого вызова человеком; конвейер его не зовёт.

Р286. Приёмочные критерии приходят только от постановки и с чекпоинта. Раньше третьим источником была рубрика, уезжавшая в tasks.md. Слот в скелете openspec/config.yaml снят вместе с ней.

Следствия

С257. Архитектурная находка теперь стоит переписывания. Довод «та же находка на предложении стоит абзаца» был основанием стадии, и он остаётся верным — просто конвейер за него больше не платит. architecture работает по коду и только с меткой large; что этот класс сузился, идёт строкой в границы покрытия каждого прогона.

С258. Разведённость выбора метки сохранена, а её основание сменилось. Прежде метка выбиралась до кода, и давление «я почти закончил» на неё не действовало по построению. Теперь защита держится только на том, что метку называет не автор: разметчик работу не писал и обе оси выводит из фактов.

С259. Разрез задачи снова удваивает разметку. У каждой половины свой дифф, и мерить его приходится порознь; прежний довод «разметка платится один раз на задачу, и разрез её не удваивает» верен теперь только для перезапуска прогона.

С260. Стадий у ревью больше нет — есть ступени. Слово «стадия» в конвейере означало членение, видное снаружи; оно исчезло вместе со второй стадией, и проза приведена к «ступени».