журнал решений: разложен по теме на файл, метки решений стали номерами

- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель;
- буквенные метки решений заменены сквозными Р1–Р234, следствия получили
  префикс С при прежних номерах: схема букв выродилась до пятибуквенных и
  сломалась — `АЕАКЛ` была занята и темой 53, и темой 65;
- 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер
  означал тему, а слово стояло «решение», формулировка исправлена.
This commit is contained in:
av
2026-08-13 12:40:56 +03:00
parent b411d4edb8
commit bf6a173115
72 changed files with 4253 additions and 4053 deletions
+73
View File
@@ -0,0 +1,73 @@
# 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`. Оставшись, они выглядели бы работающими правилами и тратили
бы внимание на каждом прогоне.