- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель; - буквенные метки решений заменены сквозными Р1–Р234, следствия получили префикс С при прежних номерах: схема букв выродилась до пятибуквенных и сломалась — `АЕАКЛ` была занята и темой 53, и темой 65; - 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер означал тему, а слово стояло «решение», формулировка исправлена.
74 lines
6.8 KiB
Markdown
74 lines
6.8 KiB
Markdown
# 33. Стоимость ревью: снят самый дорогой проход и самая дорогая модель (2026-08-06)
|
||
|
||
Прогоны стали долгими, а счёт в токенах — заметным. Разбор шёл не по находкам, а
|
||
по статьям расхода: что в конвейере стоит больше всего и что из этого окупается.
|
||
Две статьи названы прямо оператором.
|
||
|
||
**Р134. Проход независимой реализации снят целиком, и с ним профиль `deep`.**
|
||
`reimpl` писал свою реализацию узла, не открывая существующую, и диффил по
|
||
решениям. Его счёт определялся **объёмом вывода** — он один писал код, а не
|
||
читал его, — и на прогоне это была самая большая строка расхода. Снят по решению
|
||
о стоимости.
|
||
|
||
Профиль `deep` от этого не «похудел», а исчез: `reimpl` был **единственным**, чем
|
||
он отличался от `wide` (обоим оставалось бы 0, 1, 2, 4, 5). Держать два имени для
|
||
одного состава нельзя — ровно от этой болезни лечилась ступень `wide` (решение
|
||
JJJ): у профиля обязан быть один правильный ответ, иначе реестр состава нечем
|
||
проверять. Ступеней теперь три: `quick`, `standard`, `wide`.
|
||
|
||
Вместе с профилем ушло всё, что обслуживало только его:
|
||
|
||
- **барьер стоимости** — он существовал ровно затем, чтобы дорогой проход не
|
||
писал реализацию против кода, который через час перепишут. Дорогого прохода
|
||
нет, и граф стал плоским во всех профилях: от гейта до триажа. Рёбер осталось
|
||
два вида вместо трёх — зависимость и конфликт за ресурс;
|
||
- **тест «идентичность, слияние, разбор»** (решение из [темы
|
||
27](27-record-type-single-axis.md)) — он служил
|
||
единственной цели: выбрать `deep` не по ощущению. Выбирать больше нечего, и
|
||
полторы страницы теста сняты вместе с проектным перечнем мест в
|
||
`docs/review.md`;
|
||
- **стадии перенумерованы**: 0 гейт, 1 сверка, 2 враждебный и эксплуатационный,
|
||
3 архитектурный, 4 триаж. Дыра на месте третьей читалась бы как пропущенная
|
||
стадия.
|
||
|
||
**Р135. Снятие записано как сознательное сужение, а не как «класс оказался
|
||
пустым».** `calibration.md` требует замера на двух проектах перед удалением
|
||
прохода, и замера не было — было решение о цене. Значит и в «Честном пределе»
|
||
стоит честная строка: **«не знаю, чего не знаю» больше не достаёт никто.**
|
||
Остаток независимого взгляда дают профиль `design` (код пишется под его находки)
|
||
и `architecture` (второй способ, лишние слои), но альтернативной реализации, с
|
||
которой можно сдиффить решения, у конвейера нет. Класс уходит в границы покрытия
|
||
каждого прогона, а у проекта — в подраздел «перестали проверять сознательно».
|
||
|
||
Без этой записи снятие через месяц читается как «проверено и признано лишним»,
|
||
и вернуть проход было бы не на чем.
|
||
|
||
**Р136. Самая дорогая модель снята со всех проходов.** На ней сидели трое:
|
||
`review-triage`, `review-architecture` и `doc-code-drift` из `av-dev-pm`. Все
|
||
трое переведены на `opus`. Основание для верхней модели — «ошибка
|
||
распространяется дальше самой находки» — никуда не делось, но оно объясняет,
|
||
почему эти двое **не опускаются до `sonnet`**, а не почему им нужна ступень выше
|
||
`opus`: разницы в пользу более дорогой модели не показал ни один прогон, а время
|
||
и счёт она множила.
|
||
|
||
Палитра цветов схлопнулась до двух: `sonnet` → green, `opus` → yellow. Красного в
|
||
репозитории больше нет, и `frontmatter.py` теперь отвергнет модель вне этих двух —
|
||
раскладка проверяется механически, как и раньше.
|
||
|
||
## Что из этого следует
|
||
|
||
**С127. Профиль, у которого не осталось собственного прохода, — не профиль.**
|
||
Ступень стоимости определяется тем, что она **добавляет**; сняли добавку — сняли
|
||
ступень, а не оставили имя. Иначе два имени указывают на один прогон, и состав
|
||
снова нечем проверить.
|
||
|
||
**С128. Удаление по цене и удаление по замеру записываются по-разному.** Первое
|
||
обязано назвать класс, который перестал проверяться, и оставить его в границах
|
||
покрытия. Второе — сослаться на замер. Смешение их даёт самый дорогой вид
|
||
тишины: пробел, выглядящий как решённый вопрос.
|
||
|
||
**С129. Механика, обслуживающая один проход, снимается вместе с ним.** Барьер
|
||
стоимости, тест выбора верхней ступени и проектный перечень мест держались
|
||
только на `reimpl`. Оставшись, они выглядели бы работающими правилами и тратили
|
||
бы внимание на каждом прогоне.
|