ревью: конвейер сужен с 11 проходов до 6–9

- negative удалён, два его живых вопроса переселены в ops и architecture
- rubric остаётся только в профиле design, reimpl — по триггеру
  «новое правило слияния, идентичности или разбора»
- adversary и ops переехали из deep-только в standard: профиль, которым
  закрывается большинство задач, гонял четыре самых слабых прохода и не
  гонял двух, принёсших почти все находки сессии
- idiom оставлен вопреки первоначальной оценке: он зарабатывает
  экспериментами против stdlib и драйвера, а не цитатами из гайдов
- основания и цена решения — в docs/review-journal.md
This commit is contained in:
av
2026-08-02 20:48:35 +03:00
parent 8db2ec7ff4
commit 33cf1b7bae
8 changed files with 146 additions and 177 deletions
+49
View File
@@ -131,3 +131,52 @@
нет значения» разбирает запись и выбрасывает `time`, а не ищет в сыром
буфере. Гейт не трогаем: два прогона против однопроцентной флаки не помогут,
а десять стоили бы дороже самой находки.
## 2026-08-02 — состав конвейера сужен: 11 проходов до 6–9
Не промах, а решение по итогам пяти задач подряд. Записано здесь, потому что
именно здесь лежит цена непоймания: если что-то теперь проскочит, первый вопрос
будет «не тот ли это класс, который мы перестали проверять».
- **Повод:** профиль `deep` стоял на всех пяти задачах сессии и гонял 11
проходов на коде плюс 4 на дизайне — порядка полутора миллионов токенов на
задачу. Ревью, а не написание кода, стало основной статьёй расхода.
- **На чём основано:** поимённая атрибуция находок надёжна только для
дозапуска трёх проходов на `f8200f7` — там оркестратор запускал их сам.
В двух циклах, которые вели сабагенты, находки перечислены без указания
прохода, и это ограничение вывода названо здесь честно.
- **Что убрано и почему:**
- `negative`**удалён**. За сессию ни одной именной находки; блокер про
откат релиза он нашёл дублем с `ops`, то есть заплатил триажу
дедупликацией. Два его живых вопроса переселены: «хватит ли сигналов
владельцу, когда поток оборвётся ночью» — в `ops`, вопрос 7; «что опытный
человек отсюда удалил бы» — в `architecture`, вопрос 5.
- `rubric`**только в `design`**. Его же 14 свойств из design-прогона
ложатся приёмочными критериями в `tasks.md`; судить код по критерию, под
который он писался, — корреляция по построению.
- `reimpl`**по триггеру** «новое правило слияния, идентичности или
разбора». Самый дорогой проход конвейера; единственный раз, когда триаж
назвал его отсутствие дырой покрытия, — это была задача с новым правилом
слияния сущностей, то есть ровно триггерный случай.
- **Что переставлено, и это важнее сокращения:** `adversary` и `ops` были в
`deep`-только, а `standard` гонял четыре самых слабых generative-прохода.
То есть профиль, которым закрывается большинство задач, запускал ровно тех,
кто ничего не принёс, и не запускал тех, кто принёс почти всё. Оба переехали
в `standard`. Это одновременно дешевле и качественнее.
- **Что чуть не убрали по ошибке:** `idiom` был в списке на удаление как
«вкусовщина». Отменено фактом: в задаче про цену читающего маршрута он нашёл,
что `-1 >= -1` читается как «журнал разобран целиком», и **воспроизвёл**
1492 тика из 5502. Плюс три эксперимента на дизайне `razbor-metrik-v-obekty`.
Вывод, который стоит помнить: этот проход зарабатывает **экспериментами
против поведения stdlib и драйвера**, а не цитатами из гайдов, — и потому у
него есть внешний оракул. Оценка «не всплыл поимённо ни разу» была верна по
имевшимся данным и неверна по существу.
- **Что мы сознательно перестали проверять:** класс «чего нет в зрелой
реализации такого узла» вне профиля `design`, и «пять вопросов второго
инженера» как отдельная постановка. Обратимость этого класса высокая: он
портит форму кода и полноту наблюдаемости, а не данные. Если проскочит
дефект этого класса — запись сюда и пересмотр решения.
- **Побочная выгода, ради которой стоило резать отдельно:** реестр из 6–9
проходов сверяется взглядом. Промах 2026-08-02 (запись выше) был молчащим
пропуском трёх проходов из одиннадцати; на коротком списке требование
«перечисли запущенные проходы поимённо и с исходом» наконец выполнимо.