Files
dev-skills/decisions/35-model-revision.md
T
av bf6a173115 журнал решений: разложен по теме на файл, метки решений стали номерами
- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель;
- буквенные метки решений заменены сквозными Р1–Р234, следствия получили
  префикс С при прежних номерах: схема букв выродилась до пятибуквенных и
  сломалась — `АЕАКЛ` была занята и темой 53, и темой 65;
- 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер
  означал тему, а слово стояло «решение», формулировка исправлена.
2026-08-13 12:40:56 +03:00

76 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 35. Ревизия моделей: переведены двое из девяти, и критерий оказался не тот (2026-08-06)
Сквозной проход по тринадцати уставам с одним вопросом: кого из девяти
`opus`-агентов можно опустить на `sonnet` без потери. Ответ — двоих, и по дороге
выяснилось, что критерий, которым конвейер до сих пор раздавал модели, отвечает
не на тот вопрос.
**Р142. Модель выбирается по цене ошибки, а не по роду прохода.** Прежнее
деление — applicative против generative — раздаёт модели по тому, **откуда**
проход берёт критерий. Но платит проект не за происхождение критерия, а за
разбирательство с находкой. Рабочий признак:
- находка приходит **со ссылкой на записанный источник** (строка спеки, цель в
манифесте, значение в конфиге, номер правила) — её опровержение стоит одного
открытия файла. Дешёвая модель ошибается здесь **проверяемо**;
- находка есть **суждение** («это второй способ», «этот оракул негоден», «эти два
документа противоречат») — опровержение стоит рассуждения, а рассуждение стоит
триажа или человека.
Признак объясняет прежнюю раскладку лучше, чем она сама себя: `gate`, `code` и
`ops` не потому дёшевы, что применяют чек-лист, а потому, что каждая их находка
показывает пальцем на строку.
**Р143. `doc-code-drift` → `sonnet`.** У него закрытый перечень из восьми
правил, и каждое — пара «факт в документе ↔ команда, которой он проверяется».
Устав прямо запрещает суждение («верность и полноту не проверяешь»), требует
формы «написано X, в коде Y, проверено командой Z» и правила «нечем проверить —
не находка». Ложная находка опровергается **той же командой, которая её
породила**. Это самый чистый случай признака за весь разбор.
**Р144. `task-form` → `sonnet`.** Семь пронумерованных правил с таблицами форм и
поимённым перечнем подмен. Но решило не это, а потребитель: его находка —
готовая формулировка, которую человек читает и отклоняет командой, а не
оркестратор, который **молча реализует**. Довод, державший `triage` на верхней
модели, здесь не работает вовсе: ошибка стоит строки чтения.
**Р145. `review-specs` рассмотрен и оставлен на `opus` — по причине, обратной
общей.** Он самый частый `opus`-проход конвейера (идёт и в `design`, и на коде,
то есть дважды за задачу), и по устройству он applicative: SKILL.md сам называет
стадию 1 «два applicative-прохода, оба дешёвые», хотя платит за одного `sonnet`,
а за другого `opus`. Расхождение разобрано и закрыто текстом: держит его наверху
направление `code → spec`, где надо заметить **отсутствие** — тихий фолбэк,
самодеятельный дефолт, проглоченную ошибку. Прочие держат `opus` из-за цены
ложных находок, этот — из-за цены пропущенных, а пропуск не оставляет следа
нигде: ни в отчёте, ни в границах покрытия.
**Р146. Остальные шестеро оставлены, и у каждого своя причина.** `adversary` и
`rubric` порождают критерий по построению (второй — с запретом открывать код в
первой фазе). `architecture` — чистое суждение о структуре. `triage` — сток, его
ошибка становится кодом. `doc-consistency` ошибается ровно в ту сторону, которую
дороже всего опровергать: путает «упомянуто в двух местах» с «оба утверждают».
`basics` заведён час назад, половина его вопросов — суждение, и модель у него
выбрана решением оператора в этой же сессии.
**Р147. Это разбор уставов, а не замер, и так и записано.** `calibration.md`
двигает модель инъекцией дефекта; здесь инъекции не было. Двое переведены
потому, что их ошибка **обнаруживается той же проверкой, что породила находку**,
— то есть цена ошибки ограничена сверху независимо от модели. Для остальных
такой границы нет, и трогать их без замера нельзя.
## Что из этого следует
**С134. Дешёвая модель безопасна там, где её ошибку опровергает та же команда,
что породила находку.** Не «где критерий записан» — записанный критерий бывает и
у суждения, и у сверки, а разница между ними в том, чем кончается спор.
**С135. Ошибка бывает двух родов, и модель защищает от разных.** Ложная находка
стоит триажа и видна; пропущенная не стоит ничего сегодня и не видна вовсе.
Проход, у которого дороже второе, держится на верхней модели даже будучи
applicative.
**С136. Потребитель находки — часть её цены.** Одна и та же ошибка стоит строки
чтения, если её читает человек, и разросшегося кода, если её молча реализует
оркестратор. Модель раздаётся с оглядкой на это, а не только на устройство
прохода.