diff --git a/eval/dovodka/PLAN-01-09.md b/eval/dovodka/PLAN-01-09.md new file mode 100644 index 00000000..f805184a --- /dev/null +++ b/eval/dovodka/PLAN-01-09.md @@ -0,0 +1,162 @@ +# ПЛАН ФАЗЫ Д НА 01.09 — РЕДАКЦИЯ 2, ПОСЛЕ КОНСИЛИУМА + +> ⚠ **Редакция 1 этого файла ОТВЕРГНУТА консилиумом 31.08 (три эксперта `claude-fable-5`: +> дубль-детектор · методист замера · адвокат владельца).** Вердикт первой строкой был: +> **«план не двигает продукт — 0 из 3 шагов производит перевод»**. Он был прав, и разбор ниже (§4) +> сохранён, потому что три из четырёх его находок — не о плане, а о том, как эта фаза думает. + +## 1. ЧТО ИЗМЕНИЛОСЬ ПРОТИВ РЕДАКЦИИ 1 — ОДНОЙ ТАБЛИЦЕЙ + +| шаг редакции 1 | судьба | почему | +|---|---|---| +| «прибор верности» первым | ⛔ **СНЯТ** | вопрос, ради которого строился, **закрыт замером за пять минут**: наши редакторы не дописывают (§4.1) | +| «проба единицы выдачи» | ⛔ **СНЯТА** | гипотеза опровергнута нашими же данными; арм запрещён ратифицированным гардрейлом; смета занижена в ×10 (§4.2) | +| «снять размышление из пилота» | ⚠ **ПОНИЖЕН** до записи в носитель | основания шаткие, а пилот всё равно не открыт (§4.3) | +| — | ⭐ **ДОБАВЛЕН ПРОГОН ГЛАВ** | единственное, что одновременно производит перевод и меряет консистентность; **был потерян всеми планами с 22.08** | + +## 2. ПЛАН + +### ⭐ ШАГ 1. ПРОГОН 15 ГЛАВ ПОДРЯД БОЕВЫМ ПРОФИЛЕМ — ~$2, ЕДИНСТВЕННЫЙ, ЧТО ДАЁТ ТЕКСТ + +Это **Шаг 7** плана 22.08, который с тех пор ждёт слова владельца и был молча выброшен из плана +30.08 и из редакции 1 этого файла. Его собственная формулировка (`23-editor-tier.md:6066`): +«15 глав Гу ПОДРЯД боевым профилем с ЗАСЕЯННЫМИ характер-листами, ~$2 — **единственный замер, +дающий прибор под Вопрос 0**, и он же готовая in-loop телеметрия боевого прогона». + +**Почему он же и есть ответ на «мы измеряем половину цели».** Канон владельца — это термины и факты +книги. Прибор к ним **построен и ни разу не применён к новым главам** (`bank.py`, Д50), потому что +новых глав нет. Внешняя проверка отдельно подтвердила, что **точность терминов по своему словарю — +единственный класс прибора, переживший фильтр**: reference-free измерители связности дают r=0.15–0.17, +а готовые оценщики качества на вебновеллах коррелируют с экспертами **отрицательно** (−0.03, −0.32). + +**Что делаем.** +1. **Засеять характер-листы ДО прогона.** `first_person` и `speech` пусты 0 из 49 — Д32.16 + предупреждает, что без засева замер даёт **ложноотрицательный** результат по построению. + ⚠ Правка сида двигает `memory content-hash` ⇒ resnapshot: объявить владельцу ДО. +2. **Включить полный контур**: майнинг + терминолог + банкнота. ⭐ Основание: контур **ни разу не + ездил целиком** — терминолог был только в `coldrun-a` (там нет редактуры), редактор с судьёй + только в `rerun2` (там нет терминолога). Плюс банкнота — единственный канал, закрывающий класс + `term` (26 записей банка из 60), который майнер не эмитирует по построению. +3. **Гнать в офф-пик** — у DeepSeek это ровно ½ цены и не требует ни решения о модели, ни правки Go. +4. **Мерить построенным**: `bank.py` (точность терминов, presence/occurrence, кандидаты дрейфа) + + движковые $0-гейты + `retrieval_state` (промахи, sticky, спойлер-блоки, стиль-флаги). + +**Что считается результатом.** Три числа, которых у нас нет ни одного: (а) держится ли канон на +**15 главах подряд** против 1–2 глав, на которых всё мерено сегодня; (б) работает ли терминолог в +связке с редактором; (в) ловит ли банкнота класс `term`. Плюс **15 новых глав перевода**. + +⚠ **Оговорка честная:** 15 глав — не «вся книга». Кривой деградации на сотнях глав нет ни у кого в +мире (проверено ресёрчем), и этот прогон её не даст. Он даёт **первую точку** на дистанции, где +сегодня нет ни одной. + +### ШАГ 2. ЭХО-КОНТРОЛЬ НА `deepseek-v4-pro` — единицы центов + +Заказан не мной: рекомендация оркестратора №22 от 31.08, и она снимает риск, который мы иначе +понесём в любой замер размышления. + +**Факт:** `low` **пере-вооружает эхо-мину** — на `flash` это дало один чистый китайский выход из +шестнадцати. **Для `pro` эхо на `low` НЕ МЕРЕНО НИ РАЗУ** (`00-provider-quirks.md:121`). +⇒ «поставить редактору `low`» — обмен известной цены на **неизвестный риск**. + +**Что делаем:** несколько клеток `pro` с `low` на **плотном CJK-входе** (эхо живёт именно там; +прошлая проба была на английской паре и потому ничего не доказала). Меряем долю кириллицы и наличие +ханьцзы в выходе. Цена — центы. + +⛔ **Чего НЕ делать:** описывать `capabilities.reasoning` в `models.yaml`. Это **не дыра в данных, а +намеренная защита под тестом** (`echo_mine_test.go:218`=`never armed`; `TestDeepSeekEchoMineRejected` +отвергает вооружение по четырём маршрутам; гоняно 31.08 — `ok 0.008s`). Правка = снятие защиты и +красная батарея в точке, где канон запрещает подгонку под зелень. + +### ШАГ 3. УБОРКА — $0 + +1. **Записать в `09-pilot-protocol.md`**, что фактор размышления в кресте **под вопросом**, с обеими + сторонами: снаружи рассуждающие модели проигрывают в роли переводчика, но ручка **модель-зависима** + (у `grok` off = no-op, у `glm-5` работает, у `pro` не шлётся вовсе) — а это и есть довод, что + фактор значим. ⛔ **Не вычёркивать**: редакция 1 предлагала снять его как «неизмеримый», но + «неизмерим» относилось к ЦЕНЕ (эффект ×1.4 против шума ×2.8), а §7 пилота мерит КАЧЕСТВО. +2. **Протянуть поправки** Д52.1 (вывод «ценой верности» снят) по всем носителям, где он мог осесть. +3. **Занести замер объёма правки в скрипт.** Числа Д52.2 сняты командой в консоли, **носителя в + репозитории нет** — это ровно то, за что фаза ругает других. Взять готовое: + `eval/role_topology/battery.py:523` (`check_noop`, `autojunk=False`) и `check_numbers`, не писать + заново. + +## 3. ЧЕГО В ПЛАНЕ НЕТ И ПОЧЕМУ + +* **Панелей слепого чтения** — пол прибора 1.33–1.53 места. +* **Бейк-оффов черновой модели** — закрыто пятью альтернативами, внешне объяснено. +* **Точечного ремонта по флагам** — свой замер и внешний согласны. +* **Метрик канона и голоса** — не переживают фильтр; проходит только точность терминов, она есть. +* **Дифф-интерфейса** — прогнан, отложен, внешнего основания нет ни за, ни против. +* **Прибора верности отдельной стройкой** — см. §4.1: вопрос закрыт замером. +* **Пилота** — не открыт с D39.20 (планка ≤2 претензии не пройдена), и решается он чтением + владельца, а не нашими приборами. + +## 4. РАЗБОР КОНСИЛИУМА — почему шаги сняты (сохранено как класс ошибок фазы) + +### 4.1. Прибор верности: вопрос закрыт ЗАМЕРОМ, а не прибором + +Адвокат владельца снял главное число шага **за пять минут на тех же артефактах**, и я воспроизвёл +независимо (15 единиц zh, эхо-клетка исключена): + +``` +deepseek-v4-pro : рост знаков медиана −0.4% (коридор −5.3 … +9.5) абзацев 72 → 40 +glm-5 : рост знаков медиана −0.6% (коридор −2.2 … +3.3) абзацев 72 → 52 +``` + +⇒ **Наши редакторы не дописывают.** Внешний дефект «+32% длины» у нас не воспроизводится, и +опасение, ради которого строился прибор, снято. Методист добавил два дефекта конструкции: +эвристика «общий корень ≥3 знака» **гасит ~55% настоящих новых лемм** и объявляет новыми служебные +слова («мне», «них», «ему») — повтор ошибки Д50.4 с другим числом букв, при том что **лемматизатор +pymorphy3 уже стоит** в `battery.py:51`; а **слияние абзацев 72→40** сделало бы поабзацное сравнение +по индексу генератором ложных приростов. + +⭐ **И главное, что нашёл дубль-детектор:** отсутствие верхней границы объёма — **не упущение, а +ратифицированное решение D12 Q3** (`coverage.go:23-26`: «The UPPER bound … deliberately NOT flagged +… catching additions needs an entity in/out count + a bilingual judge — Phase 2»). План предлагал +исполнить отложенное, не зная, что оно отложено сознательно. ⚠ Побочная находка того же прохода: +`04-unhappy-paths.md:54` числит эту строку **с галочкой «✅» при неисполненном коде** — расхождение +доков, пинг оркестратору. + +### 4.2. Проба единицы выдачи: гипотеза опровергнута нашими же данными + +1. ⛔ **$0-прайор, который её убивает:** `pro` **уже гонялся на единице ~500 ру-токенов** + (`19-editor-contract-q4b.md:159`, `20-editor-role.md:213`) — «слов дожило 65%», то есть 35% + изменено, **ровно столько же, сколько на главе целиком** (34.2%, Д52.2). **Единица выдачи объём + правки не сдвинула.** Гипотеза «размышление — плата за отрыв от копирования» на наших данных + не подтверждается ещё до покупки. +2. ⛔ **Арм запрещён:** «размышление OFF» на `pro` идёт против ратифицированного гардрейла D39.87 + («thinking у DeepSeek не выключать» — В СИЛЕ), а перенос на `glm-5` вводит третий фактор — модель, + которую сам же план объявил доминирующей (34.2% против 11.5%). +3. ⛔ **Конфаунд:** армы различались двумя факторами сразу (единица И размышление) — прямое нарушение + нормы D39.46 «у каждого измеряемого фактора обязан быть арм без него». +4. ⛔ **Правило решения противоречило себе:** ожидание для B «8–30%» лежит НИЖЕ уже намеренных 34.2% + у A, значит критерий «объём вырос» не выполнился бы никогда. +5. ⛔ **Смета занижена в ×10:** абзацев в единице **65–96**, а не «20–30»; при неотключаемом + размышлении у `pro` это ~**$10**, а не $1. +6. ⛔ **Посылка «93% completion в размышление» — английская.** На zh-клетках `pro` это **60.5%**. + +### 4.3. Пилот: снятие фактора не обосновано + +`exp12` показал, что у `grok` reasoning-off даёт **no-op** — это довод, что ручка **значима**, а не +что вопрос закрыт. «Неизмеримо при шуме ×2.8» относилось к ЦЕНЕ, а §7 пилота мерит КАЧЕСТВО. +И сам пилот не открыт с D39.20 — правка его креста никому ничего не даёт сегодня. + +### 4.4. Три факта о том, как эта фаза ошибается + +* **«16 глав» — не главы.** `~/books/editor-tier/` несёт 16 **абзацных чанков ~1700 знаков** из + разных глав (`eval/editor_tier/material.py:10`), а не связный текст. Я называл их главами трижды. +* **Замер без носителя.** Числа Д52.2 сняты командой в консоли; скрипта в репозитории нет. +* **Готовое не найдено:** `check_noop` и `check_numbers` в `battery.py` делают два из трёх сигналов + планового прибора; план предлагал писать их заново. + +## 5. ПОРЯДОК И ЧТО НА ВЛАДЕЛЬЦЕ + +**Порядок: 2 → 1 → 3.** Эхо-контроль (центы) идёт первым, потому что снимает неизвестный риск и +дёшев. Затем прогон 15 глав — он и есть содержание фазы. Уборка последней. + +**На владельце:** +1. ⭐ **Санкция на прогон 15 глав (~$2)** и на **засев характер-листов** (двигает снапшот). +2. **Слияние веток `polygon` → `main`.** Весь отчёт фазы Д (+2685 строк) и правки квирков живут + только у нас; `main` до сих пор учит, что ручка `low` на `pro` не работает. Оркестратор №22 + ждёт ответа и мержить сам не будет. +3. **Санкция на эхо-контроль** (центы) — либо решение, что он не нужен.