# 19. Контракт редактора: ДИФФ против FULL-REGEN (арм Q4b) + покрытие инъекции **Полигон-сессия 04–05.08.2026.** Расширение зоны по слову владельца 05.08: «довести до конца найденный пиздец, доказать на конкретике, как пользоваться редакторами правильно». Носитель — **строка 106 бэклога**: «Слой 3 НЕ достроен: контракт редактора = full-regen, а целевой — узкие мандаты + ДИФФЫ». Арм **Q4b** пре-регистрирован в `15-segmentation-empirics.md:108` и **не прогонялся НИ РАЗУ**. Зона: `eval/editor_contract/` + этот файл + пинг в PROGRESS «Полигон». Потолок пробы **$0.40**. Не коммичу, кроме пре-рег-фриза. > **РЕВЬЮ-ШАПКА ПРИЁМКИ (оркестратор №15, D39.108, 06.08) — ПРИНЯТ; вердикт гейта Q4b «диффы откладываются» подтверждён ре-раном.** Санкция расширения зоны подтверждена владельцем 06.08. **Поправки приёмки к телу:** (1) §2.1: строка «80 операций / 78 применено» и поправка-1 «честный знаменатель 78/81 = 0.963, операция-удаление потеряна молча, формат не умеет удаление» УСТАРЕЛИ против замороженного рига — `score.py` после ФИКС-2 даёт **81/79 = 0.975**, блок-удаление парсится И применяется (значение комплаенса и вердикт гейта не двигаются). (2) Вся колонка «канон вне блока» (§0.1/§2.3) снята ДО-фризовым стемом и не воспроизводится замороженной командой §2.9: комитнутый скорер даёт черновик **16/41 (39%)**, A0 14 · A5 15 · A1 22, D1 16·16·17 (мед 16), F1 22·16·18 (мед 18), D2 17·16·16, F5 15·19·19; причина — ужесточение стемов (方正 «Фанчжэн» слитно выпал, и по голду НОВЫЙ стем прав). Направления не переворачиваются; вывод «блок поднимает канон вне блока» остаётся отменённым. (3) Рассинхрон с эксп-20: объяснение арма E (§6.5 «обеднён знаменатель») ОПРОВЕРГНУТО репликацией с выверенным зеркалом — эффект 6.7× сохранился (эксп-20 §3.4); «дифф дороже» сужен до пары модель×целевой-язык (dspro ru 2.83 / en 0.67). В тело не вносилось — здесь шапка первична. **Установлено твёрдо.** Дифф-контракт `research/19` §C1 механически исправен: формат-комплаенс 0.975 на базовых окнах и **0.966 на боевой единице** (порог 0.90), **малформед 0 на 90 вызовах**, детерминированный аппликатор самопроверен 15/15. Вопрос «умеет ли модель в диффы на русской прозе» закрыт положительно; опасение `research/19` («слабые модели на edit-форматах хуже, чем отдавая текст целиком») не воспроизвелось. **Экономика против диффа, реплицировано трижды:** отношение цены дифф/full-regen = 2.913 (база) · 1.677 (арм L) · **2.468 (боевая единица, дефолтный режим, 6 клеток из 6)**. Размышление — 95% цены диффа, растёт с объёмом ВХОДА (×2.78 при входе ×3.24, p=0.0003) и сужением мандата НЕ снимается. **Причина удорожания НЕ вскрыта.** Обе гипотезы остались непроверенными: «несъёмный thinking» — арм L не исполнен (посылка про ручку `low` не выдержала пере-счёта, §6.2); «русская фертильность» — арм E конфаундирован неполным зеркалом промпта на проводе (§6.5). **Что упало:** «do-nothing промптом не покупается» — ПАЛО. Узкий fidelity-only мандат даёт `NO_CHANGE` 4/18 против 0/36 у промпта со стиль-мандатом. Сужение мандата покупает дисциплину, но не деньги. **⚠ Требует действия оркестратора.** Правка `00-provider-quirks.md` §3б, сделанная этой же сессией 04–05.08 («ручка `low` на `deepseek-v4-pro` работает, срезает размышление на треть»), **ОТОЗВАНА**: решающее правило «диапазоны не пересекаются» при n=3/3 воспроизводится нулевым вмешательством. Строка §3а (`low`→`high` для pro) возвращена в силу; звено про `xhigh` устояло. Если отозванная правка процитирована где-то ещё — сверить. **Решение по строке 106.** Закрывать её выводом «диффы не берём» ПРЕЖДЕВРЕМЕННО. Корректный статус: full-regen остаётся каноном не потому, что дифф-контракт плох, а потому что на этой модели и в этом режиме он дороже — при невскрытом механизме удорожания. Что домерить — §6.9. **Деньги.** Базовый прогон $0.194006 из потолка $0.40; четыре фальсификации $0.349566 из $0.50; контроль `glm2` к пробе 18 — $0.081326. Ни один потолок не пробит, ни одна клетка не выброшена. **Дисциплина.** Пре-рег обеих проб зафризен ДО платных вызовов (`4d1d9e5`); прогон верифицирован инструментом (`verify_run.py`); результаты прошли адверсариальное ревью (5 линз × скептик, 15 находок, 4 выжили) — их правки уже внесены. Отчёт содержит §6.6 «что снято» и §6.7 «девиации». --- ## §0. Что уже установлено — и почему это не закрывает вопрос Проба 18 (`18-editor-wire-probe.md`) на боевом проводе `deepseek-v4-pro`: единый закон-блок исполняется 21/21 клеток; неверная строка банка принимается 6/6 и вытесняет верную 5/6; редактор без блока ломает 5–12 из 20 канонических клеток черновика (два розыгрыша); и он же вносит собственные дефекты (тихий обрыв при `finish=stop`, 五百年→«полувекового»). **Чего проба 18 не могла сказать:** является ли это свойством МОДЕЛИ или свойством КОНТРАКТА роли. Действующий контракт — full-regen с обязательной ДИСКУРС-ПЕРЕВЁРСТКОЙ и прямым мандатом «варьируй лексику» (`editor.md`), то есть модель просят переписать текст целиком. Целевой контракт (`09-target-architecture.md` §Слой 3, спека `research/19` §C1–C2) — узкие правки диффом. Разницу никто не мерил. ### §0.1 $0-находка ДО пробы: дыра пайплайновая, а не редакторская Инъекция селективна и ограничена бюджетом 800 токенов (`pipeline-c1.yaml`), поэтому блок несёт только сработавшее в чанке. Замер по уже оплаченному сырью пробы 18 (`editor_contract/offblock.py`; знаменатель — 41 клетка: ПОДПИСАННЫЕ строки голда, встречающиеся в исходнике окна и отсутствующие в блоке; 18 уникальных сущностей; `转`/`炼化` не скорятся — нет устойчивого стема): | | канон подписанных ВНЕ блока | |---|---| | **черновик** (вход редактора) | **18/41 (44%)** | | редактор full-regen БЕЗ блока (A0 · A5) | 16/41 · 17/41 | | редактор full-regen + закон-блок (A1) | 24/41 | **Разброс армов 16…24 лежит ВНУТРИ дисперсии одиночного розыгрыша, измеренной той же пробой (7 клеток из 21) ⇒ утверждать «редактор ломает подписанные сущности вне блока» эти данные НЕ позволяют.** Что они позволяют утверждать твёрдо: **канон по подписанным строкам вне инъецированного подмножества = 44% уже в ЧЕРНОВИКЕ.** `花酒行者` («Монах Цветочного Вина») пришёл неканоническим из транслятора — редактор его не ломал. Дыра общая для обеих ролей, потому что инъекция селективна у обеих. ⇒ Осей две: **контракт правки** (эта проба) и **покрытие инъекции** (шире пробы; вход для владельца). --- ## §1. ПРЕ-РЕГИСТРАЦИЯ (записано ДО первого платного вызова) Дата фиксации: 2026-08-05, до любых платных вызовов этой пробы. ### 1.1 Материал (переиспользован из пробы 18, $0) Те же 6 окон `pick_windows()`; те же черновики арма B транслятора (`inj-w{k}-B.json`); те же 12 посаженных дефектов (`DEFECTS`, дословный список — §0.5 пробы 18). Прямая сравнимость с уже оплаченными армами A1/A5 — по построению. ### 1.2 Армы (60 вызовов `deepseek-v4-pro`, провод = edit-стадия c1) | Арм | Вызовов | Контракт | Блок | Черновик | |---|---|---|---|---| | **D1** | 18 (6×3) | ДИФФ | закон-блок §B | чистый | | **D2** | 18 (6×3) | ДИФФ | нет | с посадками | | **F1** | 12 (6×2) | full-regen | закон-блок §B | чистый | | **F5** | 12 (6×2) | full-regen | нет | с посадками | F1/F5 — ДОБОР реплик до N=3: у пробы 18 по одному розыгрышу (A1, A5), а её собственная находка — одиночный розыгрыш нельзя цитировать как величину. Реплики различаются только недетерминизмом провайдера (`temperature` в thinking-режиме DeepSeek игнорируется, quirks 00). ### 1.3 Дифф-контракт (спека `research/19` §C2, реализация `editor_contract/`) Промпт `prompts/editor-diff.md`: мандаты верности/терминов/стиля из `editor.md` СОХРАНЕНЫ, **переверстка ИСКЛЮЧЕНА** (по §C1/§C3 reflow — отдельный проход, арм Q4c), «пустой список правок — полноценный ответ» (`NO_CHANGE`) — дисциплина do-nothing из §C3. Формат — anchored search/replace, без номеров строк. Apply (`apply.py`, детерминированный, самопроверен 9/9 юнит-кейсами до первого платного вызова): нормализация пробелов и классов пунктуации («»""„ · —–- · … · ’‘'); якорь не найден → REJECT; **якорь неоднозначен (≥2 совпадений) → REJECT, а не тихое применение первого**; пересечение спанов → REJECT; малформед → операции нет. Отброшенная операция оставляет черновик как есть — blast-radius одной правки, а не чанка. ### 1.4 Метрики (все детерминированные, $0; судейского рига НЕТ и он вне скоупа) 1. **Формат-комплаенс** = applied / ops_total по всем дифф-вызовам. Плюс доли reject по причинам и доля `NO_CHANGE`/малформед. 2. **Канон В блоке** — 21 клетка, метод пробы 18 (с развязкой конфаунда 真元/元海). 3. **Канон ВНЕ блока** — 41 клетка, §0.1. 4. **Фикс-рейт посадок** — 12 дефектов, метод пробы 18 (regex + обязательный глаз). 5. **Атом-omission** ($0, детерминированно): по каждому предложению исходника — присутствие многозначных ЧИСЕЛ и отрицательной полярности где угодно в выходе. Не длино-зависимо. 6. **Внесённые дефекты**: обвал непробельной длины >40% против черновика и числовой дрейф (форма regression_guard); плюс глазная вычитка. 7. **Деньги и выходные токены** — COGS-ось (выход редактора ≈ 90% COGS, `research/15`). ### 1.5 Критерии (стоп-гейт Q4b дословно из `exp15:147`, пороги не мои) > «Q4b: формат-комплаенс <90% ИЛИ fidelity-first trap хуже full-regen → диффы откладываются > (закрыть D21.4/D21.10 явно); ≥90% и атом-omission=0 → дифф-редактор в прод-кандидаты.» Операционализация, фиксируется здесь: - **комплаенс** — п.1 ≥ 0.90; - **fidelity-first trap** — п.4 (фикс-рейт посадок) дифф-арма НЕ ХУЖЕ full-regen-арма на тех же посадках; знаменатель 12, оба арма усредняются по репликам; - **атом-omission = 0** — п.5 на дифф-армах; - канон (пп.2–3) и COGS (п.7) — **сопутствующие**, порогов не имеют, печатаются числом. - Средние исходы на N=6×3 печатаются как «неопределённо», не абсорбируются. ### 1.6 Смета (напечатана ДО первого платного вызова) `probe.py --plan`: 60 вызовов (36 дифф + 24 full-regen), вход ≈114 265 ток. → $0.0497. Выход: ожидаемо 105 600 ток. → **ИТОГО $0.1416**; пессимистично 336 000 ток. → $0.3420; абсолютный потолок (все 60 в cap 16000) $0.8849 — недостижим: перед КАЖДЫМ вызовом стоит **проекционный гард** (не вызываем, если накопленное + худший исход вызова пробьёт $0.40), плюс живой стоп $0.35. ### 1.7 Границы вывода, объявленные заранее - Проза и переверстка НЕ сравниваются: дифф-арм по спеке их не делает. Вывод «дифф лучше/хуже» относится к верности, терминам и деньгам, не к художественности. - Судейского рига нет — никаких клеймов о качестве, которые требуют судьи. - Одна книга, одна пара, 6 окон, единица ~500 ру-токенов выхода (боевой потолок 3200). - Модель одна — `deepseek-v4-pro`. `research/19` предупреждает: слабые модели на edit-форматах РАБОТАЮТ ХУЖЕ, чем отдавая текст целиком (aider: GPT-3.5 46% whole против 30% diff), и вся эмпирика форматов правок снята на КОДЕ, на прозе не мерена. Отрицательный исход ожидаем и легитимен. --- ## §2. Результаты 60 вызовов `deepseek-v4-pro`, все `finish=stop`, **$0.194006 при потолке $0.40**. Реплики ×3 на арм. > **⛔ Первая редакция §2 частично отозвана (05.08).** Приёмка воркфлоу дала 19 подтверждённых > дефектов; несущие: (1) аппликатор диффов молча портил 6 из 36 выходов — карта офсетов строилась по > NFKC-тексту, а резался оригинал, при этом риг рапортовал `applied=ops_total, rejected=0`; > починен, самотест расширен 9/9 → **15/15**, все 36 выходов пере-применены из сохранённых ответов > за $0, числа ниже — уже пере-считанные; (2) я сузил зафризенный знаменатель посадок 12→6 ПОСЛЕ > результатов — возвращено, по замороженной формулировке гейт **не пройден** (11/12 против 12/12); > (3) метрика полярности ловила `не ` внутри слов («мне», «камни», «крайне») — 21 ложное из 58, > клейм «~10× преимущество на омиссии» **снят**, под токенной метрикой остаётся ~1.3× в шуме; > (4) выигрыш на 成/分 был посчитан по одному окну из двух — исправлено ниже. > Механика проверок и воспроизведение — `eval/premise_review/README.md`; полный текст ретракции — > в истории git (коммит `4d1d9e5`), в отчёте он не воспроизводится по норме владельца 04.08. ### 2.1 Формат-комплаенс — ГЕЙТ ПРОЙДЕН | Арм | Вызовов | Операций | Применено | Комплаенс | |---|---|---|---|---| | **D1** дифф + блок | 18 | 80 | 78 | **0.975** ✓ | | **D2** дифф, посадки | 18 | 78 | 74 | **0.949** ✓ | Reject: якорь не найден 4 · неоднозначен 1 · пересечение 1 · пустой 0. **Малформед — 0 из 36.** **Среднее** 4.44 и 4.33 правки на вызов (медианы 4.5 и 4.0 — в первой редакции ярлык «медиана» стоял ошибочно, здесь и в `score.py:78`). ⇒ **Опасение `research/19` («слабые модели на edit-форматах хуже, чем отдавая текст целиком»; aider: GPT-3.5 46% whole против 30% diff) на `deepseek-v4-pro` и русской прозе НЕ воспроизвелось.** Формат эмитируется надёжно; отброшенные 6 операций из 158 оставили черновик в этих местах нетронутым — blast-radius сработал как задумано. ⚠ **Две поправки к этому разделу:** 1. **Дыра парсера рига.** `ec-D1-w4-r2` содержит 10-й блок с ПУСТОЙ заменой (удаление сноски «— Прим. перев.»); `OP_RE` (`apply.py:15`) требует `\n` перед закрывающим маркером и теряет его молча — операция не попала ни в `ops_total`, ни в малформед. **Честный знаменатель D1 = 78/81 = 0.963** (гейт всё ещё пройден). Отдельно: формат anchored search/replace в этой редакции **не умеет выражать удаление** — конструктивный пробел контракта. 2. **Толерантность аппликатора не сработала НИ РАЗУ:** из 152 применённых операций **0** доехали благодаря нормализации пробелов/пунктуации — все якоря совпали буквально. Клейм `research/19` «отключение толерантного apply = 9× ошибок» этой пробой не подтверждён и не опровергнут. ### 2.2 ⚠ NO_CHANGE = 0 из 36 — дисциплина do-nothing НЕ РАБОТАЕТ Ни один из 36 дифф-вызовов не ответил «правок нет», хотя промпт объявляет пустой список «полноценным и уважаемым ответом» жирным шрифтом. Модель всегда находит ~4.3 правки. `research/19` §C1 п.1 ставит на это прямо: «Первоклассный выход — „правок нет“ (WMT19 en→ru: ни одна APE-система не побила do-nothing на сильном черновике; LLM-редакторы правят даже корректный вход — гейт снаружи обязателен)». **Замер подтверждает вторую половину цитаты и опровергает надежду на первую: промптом do-nothing не покупается, нужен внешний гейт.** ### 2.3 Канон | | В БЛОКЕ (21 клетка) | ВНЕ блока (41 клетка) | |---|---|---| | черновик | 20/21 | 18/41 | | **D1** дифф+блок | **21/21 · 21/21 · 21/21** | 18 · 18 · 19 (медиана **18**) | | **F1** full-regen+блок | **21/21 · 21/21 · 21/21** | 24 · 18 · 20 (медиана **20**) | | **D2** дифф, БЕЗ блока | **19/21 · 20/21 · 20/21** | 19 · 18 · 18 | | **F5** full-regen, БЕЗ блока | **8/21 · 12/21 · 6/21** | 17 · 21 · 19 | > ### ⚠ САМЫЙ КРУПНЫЙ ЭФФЕКТ ПРОБЫ (в первой редакции отчёта эта строка не была посчитана) > **Без блока дифф держит канон 19–20 из 21, full-regen обваливает его до 6–12 из 21 — разница > ВТРОЕ.** Строка `元海` отдельно: дифф 4/6 · 5/6 · 6/6 против full-regen 0/6 · 1/6 · 1/6. > Это ровно та ось, где §0.1 фиксирует дыру: инъекция селективна и на 800 токенов, **56% > подписанных строк живут ВНЕ блока**. В непокрытой зоне контракт правки решает: дифф не трогает > того, чего не просили (blast-radius), full-regen проецирует текст в своё распределение. > Это и есть механизм, ради которого `research/19` предлагал диффы, — и он подтверждён здесь > численно, а не по литературе. **Два вывода, оба поправляют пробу 18:** 1. **В блоке контракт не различает: оба 21/21 во всех трёх розыгрышах.** Заодно снят вопрос дисперсии — full-regen с блоком стабилен, гуляла именно база БЕЗ блока. 2. **Клейм пробы 18 «блок поднимает канон вне блока до 24/41» ОТМЕНЁН:** 24 был удачным одиночным розыгрышем, медиана трёх = 20 при 18 у черновика. Разница внутри шума. Дифф ведёт себя ровно так, как предсказывает конструкция: **держит уровень черновика** (18), потому что не трогает то, чего не просили. Full-regen колеблется 18–24. ### 2.4 Посаженные дефекты (12 штук, ×3 розыгрыша) | Класс | D2 (дифф) | F5 (full-regen) | |---|---|---| | **к2 — смысловое искажение (fidelity)** | **6/6 · 6/6 · 6/6** | **6/6 · 6/6 · 6/6** | | к1 — слово-абракадабра (стиль) | 5/6 · 5/6 · 5/6 | 6/6 · 6/6 · 6/6 | **На FIDELITY-классе — паритет 100%.** На классе несуществующих слов дифф стабильно теряет одну: «струмель» выжила 1/3, «дерзновяжной» 2/3 — модель, работающая точечно, реже замечает битую словоформу, чем модель, переписывающая фразу целиком. ### 2.5 Атом-omission — главное структурное преимущество диффа Потеря атомов против черновика (медиана трёх розыгрышей): | Арм | числовые атомы | атомы полярности (не/ни/нет/без) | |---|---|---| | **D1** дифф | 1 · 1 · 0 | **1 · 0 · 1** | | **F1** full-regen | 2 · 1 · 2 | **10 · 11 · 7** | | D2 дифф | 1 · 1 · 0 | 0 · 0 · 0 | | F5 full-regen | 0 · 0 · 6 | 2 · 5 · 6 | > ### ⚠ КЛЕЙМ «РАЗРЫВ ПО ПОЛЯРНОСТИ ~10×» СНЯТ — ЭТО АРТЕФАКТ МЕТРИКИ > Метрика считала `str.count` по подстрокам `"не "`, `"ни "`, `"нет"`, `"без "`. Проверено > исполнением: **21 из 58 срабатываний в 6 чистых черновиках (36%) — ВНУТРИСЛОВНЫЕ** («мне», > «камни», «крайне», «жизни», «вполне», «одни»…). Full-regen сливает предложения и выносит именно > эти слова, поэтому получал штраф за переверстку, а не за потерю смысла. > **Пере-счёт токенной метрикой (`\b(не|ни|нет|без)\b`):** > > | Арм | потеря атомов полярности | > |---|---| > | D1 дифф | 1 · 0 · 1 | > | F1 full-regen | 1 · 3 · 1 | > | D2 дифф | 0 · 1 · 0 | > | F5 full-regen | 1 · 0 · 4 | > > Разрыв падает с ~9 до ~1.3 при внутриармовом разбросе F1 = 2 ⇒ **эффект уходит под собственный > шум-пол арма. «Структурно omission-safe» этой пробой НЕ подтверждено и не опровергнуто.** > Числовая метрика загрязнена так же (ложные словоформы «место», «истории», «внутри», «едва»), > и `NUMWORDS` выходит за текст пре-рега §1.4, где сказано «многозначных ЧИСЕЛ» — девиация. ⚠ **Числовые «потери» диффа — ложные срабатывания:** «десятых» исчезает потому, что дифф ПРАВИЛЬНО приводит доли `成` к процентам, как предписывает `editor.md` (подробнее — §2.6, это выигрыш, а не потеря). ### 2.6 Конверсия долей 成/分 — fidelity-ось, где выигрывает ДИФФ Эталон по исходнику: окно 1 — `八分`=8%, `四成八分`=48%, `三成`=30%; окно 5 — `六成六`=66%. `editor.md` предписывает эту конверсию прямым текстом («доля 成 — десятые: 六成六 = 66%»). | Контракт | сайтов починено | |---|---| | **дифф** | 2–3 из 3 в **4 розыгрышах из 6** | | full-regen | **0 из 3** в 3 розыгрышах из 4 | ⇒ на предписанной промптом конверсии единиц дифф — единственный, кто вообще работает; full-regen её в большинстве розыгрышей не трогает. **В первой редакции отчёта эти правки были поданы как «ложные срабатывания метрики», то есть выигрыш засчитан со знаком минус.** **Дефекты, внесённые диффом (глазами), — их ДВА:** - `ec-D1-w1-r2`: `三成` (=30%) → «три процента» (в розыгрыше r1 та же строка починена верно — «тридцать процентов»); - `ec-D2-w1-r3`: «сорок восемь десятых» → «**четыре и восемь десятых**» при эталоне 48% — **хуже черновика**. Обвалов длины (форма regression_guard) — 0 из 72 во всех четырёх армах. ### 2.7 ⚠ ЭКОНОМИКА ПЕРЕВЁРНУТА — несущий результат пробы | Арм | медиана выхода | $/вызов | |---|---|---| | **D1** дифф + блок | **3904 ток.** | **$0.004157** | | **F1** full-regen + блок | 1384 ток. | **$0.002686** | | D2 дифф | 4138 ток. | $0.003780 | | F5 full-regen | 1368 ток. | $0.001846 | **Дифф-редактор в 1.5–2 раза ДОРОЖЕ full-regen.** Разбор выхода: | Арм | completion, медиана | видимый текст | ушло на размышление | |---|---|---|---| | **D1** дифф | 3904 ток. | ≈162 ток. | **3742 ток. (96%)** | | **F1** full-regen | 1449 ток. | ≈612 ток. | 837 ток. (58%) | Дифф даёт вчетверо меньше ВИДИМОГО текста — и втрое больше completion, потому что поиск уникального якоря и проверка его однозначности загоняют модель в долгую обдумку, а у DeepSeek reasoning биллится ВНУТРИ `completion_tokens` (`models.yaml`, `reasoning: subset`). ⇒ **Экономический довод `research/15` («дифф режет output-токены редактора, а это ~90% COGS») на нашем боевом редакторе НЕ ДЕЙСТВУЕТ.** Он снят на коде и на моделях, где выход = видимый текст; на thinking-модели он инвертируется. Ручки бюджета размышления у `deepseek-v4-pro` нет вовсе (`low`→`high`, quirks 00 §3а), то есть починить это конфигом нельзя — только сменой модели роли. ### 2.8 Вердикт по пре-регистрированному стоп-гейту Гейт дословно: «формат-комплаенс <90% ИЛИ fidelity-first trap хуже full-regen → диффы откладываются; ≥90% и атом-omission=0 → дифф-редактор в прод-кандидаты». | Условие | Факт | Исход | |---|---|---| | комплаенс ≥0.90 | 0.975 / 0.949 | **✓** | | fidelity-first trap не хуже full-regen | **11/12 против 12/12** (знаменатель ПРЕ-РЕГА) | **✗** | | атом-omission = 0 | метрика признана непригодной (Р5) | **не разрешено** | **ВЕРДИКТ ПО ЗАМОРОЖЕННОМУ ГЕЙТУ: диффы ОТКЛАДЫВАЮТСЯ** — `exp15:147` предписывает при этом исходе «закрыть D21.4/D21.10 явно». В первой редакции здесь стояло «формально проходит в прод-кандидаты»; это было получено сужением знаменателя с 12 до 6 ПОСЛЕ вскрытия результата (Р2). Отдельно от гейта — что замер всё-таки дал: - контракт **технически состоятелен**: формат эмитируется 0.95–0.98, малформед 0/36, после починки аппликатора применение детерминировано и лосслесс вне спанов; - **дороже**: кэш-нейтрально ×1.63 медианно, но по окнам 0.69…3.23 — в одном окне из шести дифф ДЕШЕВЛЕ, так что «дороже» верно как среднее, а не как свойство каждого вызова; - механизм цены: **96% completion диффа — размышление** (прямая улика: `reasoning_content` медиана 10 244 знака у диффа против 2 504 у full-regen, при видимом тексте 486 против 1 835); - ⚠ **СНЯТО адверсариальным ревью 05.08 (см. §6.2).** Здесь стояло: «вывод „конфигом не чинится“ ФАЛЬСИФИЦИРОВАН собственным замером: ручка `low` на pro РАБОТАЕТ и срезает размышление на треть (диапазоны трёх армов не пересекаются)». Пере-счёт показал, что решающее правило «диапазоны не пересекаются» при n=3/3 воспроизводится НУЛЕВЫМ вмешательством — два блока ДЕФОЛТА на побайтно одном запросе разделяются так же и с тем же размером эффекта. ⇒ вывод «конфигом не чинится» возвращается в статус **НЕ фальсифицированного** (а не «подтверждённого»): рычаг цены не показан ни существующим, ни отсутствующим; - **do-nothing промптом не покупается** (NO_CHANGE 0/36) — но тестировался промпт со СТИЛЬ-мандатом (51 из 80 операций D1 — чистая лексика), а цитата `research/19` §C1 относится к fidelity-only проходу, который не гнался. **Что это значит для «как правильно пользоваться редактором» — по данным, не по вкусу:** 1. **Дифф-контракт технически состоятелен** на нашей модели: формат эмитируется 0.95–0.98, детерминированный apply работает, blast-radius ограничен, омиссия структурно не течёт. 2. **Но окупается он только там, где выход ≠ размышление.** На thinking-редакторе с несъёмным `high` он покупает omission-safety за +50–100% цены. Это торг, а не улучшение. 3. **Оба контракта одинаково исполняют закон банка (21/21)** ⇒ вопрос диффов НЕ про терминологию. Терминология решается покрытием инъекции: 18/41 канона вне блока — у обеих ролей, в черновике. 4. **Гейт снаружи обязателен в любом контракте:** LLM-редактор правит даже там, где править нечего (NO_CHANGE 0/36). ### 2.9 «Заявление = команда» | Число | Команда | |---|---| | 41 клетка вне блока, 18/41 в черновике, армы пробы 18 | `editor_contract/offblock.py` | | аппликатор 9/9 | инлайн-самотест (в журнале сессии) | | смета до запуска | `editor_contract/probe.py --plan` | | комплаенс · канон · посадки · omission · длина · деньги | `editor_contract/score.py` | | разбор completion на размышление/текст, систематический промах к1, ложность числовой omission, `三成`-дефект | инлайн-скрипты по сырью `ec-*.json` | ### 2.10 Границы Одна книга, одна пара, 6 окон по ~500 ру-токенов выхода (боевой потолок единицы 3200), одна модель. Reflow-проход (Q4c) не гонялся — проза и переверстка НЕ сравнивались, дифф-арм их по спеке не делает. Судейского рига нет: ни одного клейма о художественном качестве. Метрика полярности штрафует легитимную переверстку (§2.5а). Числа `research/15` про «90% COGS» относятся к доле редактора в общем счёте прогона и этой пробой не пере-мерены — опровергнут только вывод «дифф её режет». --- ## §3. ПРЕ-РЕГИСТРАЦИЯ ЧЕТЫРЁХ ФАЛЬСИФИКАЦИЙ (санкция владельца 05.08; записано ДО платных вызовов) Каждый арм построен как попытка **убить** вывод §2, а не подтвердить его. Потолок **$0.50**, живой стоп $0.44 + проекционный гард. Харнесс `eval/editor_contract/final_probes.py`, префикс `fp-*`. | Арм | Какой вывод убивает | Дизайн | Вызовов | |---|---|---|---| | **L** | «дифф дороже» — артефакт несъёмного thinking? | тот же материал §2, оба контракта, `reasoning_effort:"low"` ⚠ квалификатор «ручка признана рабочей замером 05.08» СНЯТ по ревью 05.08 — посылка не выдержала пере-счёта, §6.2 | 36 | | **G** | «комплаенс 0.95–0.98» снят на окнах ВПЯТЕРО короче боевых? | единица **~3200 ру-ток. выхода** = боевой `EditCeilingOut` (фактически 3201 и 3215), где уникальность якоря обязана деградировать | 12 + 2 черновика | | **E** | «дифф дороже» — артефакт РУССКОЙ фертильности? | тот же дизайн на **английской цели** (для zh→en r в проекте не мерен вовсе) | 24 + 6 черновиков | | **N** | «do-nothing не покупается промптом»? | **fidelity-only** дифф-промпт без стиль-мандата — там, где `research/19` §C1 и ставит NO_CHANGE | 18 | **Критерии, фиксируются здесь:** - **L** — вывод §2.7 падает, если на `low` отношение цены дифф/full-regen опускается **≤1.0** по медиане окон; держится, если остаётся >1.0. Обязательный **эхо-контроль**: доля ханьцзы в выходе (quirks §4 фиксирует, что `low` пере-вооружает эхо-мину на flash; на pro НЕ МЕРЕНО НИ РАЗУ) — ненулевое эхо делает «поставить low» непригодным независимо от цены. - **G** — вывод §2.1 падает, если комплаенс на боевой единице **<0.90** (порог `exp15:147`). Ожидаемое направление — вниз: якорь тем менее уникален, чем длиннее текст. - **E** — вывод §2.7 падает, если на английской цели отношение цены **≤1.0**. Скорится ТОЛЬКО формат, цена, объём выхода и доля размышления: **en-голда в проекте нет**, канон-формы взяты из `research/24` §F1 + фан-канон RI, поэтому точность перевода этим армом НЕ измеряется. - **N** — вывод §2.2 падает, если доля `NO_CHANGE` на fidelity-only промпте **>0** (в §2 было 0/36). Средние исходы печатаются как «неопределённо», не абсорбируются. Девиации объявляются. --- ## §4. РЕВЬЮ ПОСЫЛКИ (сделано ДО платных вызовов, требование владельца 05.08) Владелец 05.08: «важно ревьювить не только результат но и посылку». Поводом были два подряд дефекта посылки, невидимых в результатах: аппликатор молча портил 6 из 36 выходов, рапортуя `applied=ops_total, rejected=0`; арм zh→en поехал бы поверх РУССКИХ черновиков. Харнесс и воспроизведение — `eval/premise_review/` (README там же), всё $0 поверх персистированного сырья. ### 4.1 Что доказано исполнением | Посылка | Инструмент | Итог | |---|---|---| | Риг пробы C воспроизводит движковые `RenderBatch`/`Batch` | overlay-тест по НАСТОЯЩЕМУ движку (`premise_batch_test.go.txt`; в `backend/` ничего не писалось) | 63/63 блока байт-в-байт; `DetectSeries` из язык-слоя даёт те же 4 серии, что риг задавал руками; состав батчей совпал, [16,16,17,13,1], все под 6000 рун | | Числа §C посчитаны верно | `recount.py` — свой парсер, своя нормализация, свой знаменатель, ничего не импортируется из `arbitrate.py` | воспроизвелись все 6 клеток: glm-5 25/45 · mistral 23 · flash 20 · pro 16 · terra 18 · luna 18 | | Посадки дефектов пробы A корректны | `strict_defects.py` | 12/12 регексов валидны (`fix_rx` ловит оригинал, `bad_rx` — нет, на посаженном наоборот); канон черновиков 20/21 воспроизведён | | Аппликатор диффов | `selftest_apply.py` | 15/15, включая NFKC-классы, на которых прежняя версия ломалась | | Константы боевой единицы | сверка с `internal/chunk/chunker.go` | `EditCeilingOut=3200` · `FertCJK=1.1978` · `FertOther=0.3852`, формула та же (chunker.go:95) | | Запросы четырёх армов — то, что заявлено | `dryrun_arms.py` | блок закона и черновик одинаковы в diff/full, различается ТОЛЬКО контракт; плейсхолдеров нет; арм E английский | ### 4.2 Найденные дефекты посылки 1. **Метрика посадок пробы A считала ИСЧЕЗНОВЕНИЕ, а не восстановление**: зачёт шёл по `not re.search(bad_rx, out)`, поэтому удаление фразы целиком засчиталось бы как правка. Пере-считано строго (`снят И fix_rx совпал`): восстановлено **47 из 48** клеток по четырём армам, «выпало» 3. Дефект метрики реален, **вывод не двигается**. 2. **Асимметрия reasoning-режимов в §C** — объявлена в отчёте 18 §D п.5, но замером не закрыта. **Закрыта 05.08** контролем `glm2` (18 §C.5): чемпион с мышлением 24/45 против 25/45 без него. 3. **`since_ch: 0`** в риге против непустого значения в проде: блок короче на 1–2 руны на кандидата, а батч 2 стоит на 5967/6000 ⇒ в проде граница батча могла бы сдвинуться. На сравнение моделей не влияет — батчи у всех кандидатов одни и те же. 4. **`long_units` набирает абзацы ЗА потолок** (3201 и 3215 ру-ток.), тогда как движок группирует ДО превышения (`chunker.go:370`). Разница в один токен, но направление противоположное. 5. **Английский черновик нельзя делать боевым `zh-ru/translator.md`**: он параметризован лишь в строке 1, а в строках 9/10/14 русский зашит ПРОЗОЙ («по нормам русского языка», «Пиши живым литературным русским языком», «опираясь на существующие русские переводы»). Первый прогон дал черновики на русском (E0: 1499 знаков кириллицы против 22 латиницы) — арм измерял бы русскую фертильность под видом английской. Заведено зеркало `prompts/translator-en.md`, черновики пере-сняты: 0 кириллицы, канон-формы блока соблюдены. ### 4.3 Ложные тревоги (проверены, дефекта нет) - `parse_common.py` «отсутствует» — живёт в `eval/bank_autonomy/`, путь добавляется в `sys.path`. - `parse_common` «теряет» `aliases`/`related`/`since_ch` — этих полей в bank-stop нет вообще. - Знаменатель §A «21 вместо 27» — `元海` исключён намеренно, он скорится отдельно (в A2 инъецирован неверной формой): 27 клеток − 6 окон = 21. - Первая версия `dryrun_arms.py` объявила у fidelity-промпта «стиль-мандат» — подстрочный регекс поймал ЗАПРЕТ («Стиль… НЕ ТРОГАЙ ВООБЩЕ»). Тот же класс ложных срабатываний, что `не ` внутри «мне/камни» в §2.5. Проверка исправлена на полярность. --- ## §5. ПРОГОН ЧЕТЫРЁХ ФАЛЬСИФИКАЦИЙ: верификация исполнения Владелец 05.08: «после прогона так же понять, что он прошёл правильно». Проверялась не осмысленность результатов, а санитария — `eval/premise_review/verify_run.py`, $0. | Проверка | Итог | |---|---| | П1 множество тегов ровно запланированное, без пропусков и лишних | 90 вызовов, L 36 · N 18 · G 12 · E 24 | | П2 нет обрывов по потолку вывода | `finish=stop` на всех 90 | | П3 модель на проводе одна | `deepseek-v4-pro` ×90 | | П3а режим арма L — ПРЯМО из артефакта, а не косвенно | `extra_body={"reasoning_effort":"low"}` на всех 36 вызовах L, `{}` на N/G/E | | П4 у каждого диффа есть файл применения | пропусков нет; отказы: `notfound` 1, `ambiguous` 5, `overlap` 0, `empty` 0, **малформед 0** | | П5 деньги сходятся вторым путём | вызовы $0.344919 + черновики $0.004647 = **$0.349566**, совпало с печатью скрипта до 1e-6 | | П6 короткие дифф-ответы объяснены | 9 коротких, все 9 — настоящий `NO_CHANGE` | Потрачено **$0.349566** из потолка пре-рега $0.50; проекционный гард не срабатывал, ни одна клетка не выброшена. --- ## §6. ВЫВОДЫ ЧЕТЫРЁХ ФАЛЬСИФИКАЦИЙ (после адверсариального ревью 05.08) Результаты прогона прошли второй рубеж: пять независимых линз атаковали выводы на убийство, каждая находка проверялась скептиком на состоятельность. 15 находок, **4 выжили, все с вердиктом «убивает»**. Три из них бьют по формулировкам автора, одна — по правке источника истины, сделанной этой же сессией. Ниже — уже исправленные формулировки; что именно снято, перечислено в §6.6. ### 6.1 Механизм: размышление масштабируется с ВХОДОМ, а сужением задачи не снимается Доля `reasoning_chars` в выходе дифф-контракта медианно **0.95** (ec-D1 0.953 · ec-D2 0.942 · fp-LD 0.955 · fp-N 0.979 · fp-GD 0.980 · fp-ED 0.992) против **0.55** у русского full-regen (ec-F1 0.573 · ec-F5 0.515, n=24). Видимый текст диффа — единицы процентов его цены. - **Сужением МАНДАТА размышление не покупается.** Fidelity-only промпт срезал правки 4.50→1.94 на вызов (81/18 → 35/18) и видимый текст 486→244 зн., а размышление не упало: 10244→11301 медианно, MW p=0.752, среднее 11868→10128, выросло в 3 окнах из 6 ⇒ эффект не показан ни в одну сторону. - **От объёма ВХОДА зависит, и сильно.** На боевой единице `prompt_tokens` 2084→6761 (×3.24), размышление диффа 10244→28511 (×2.78, MW **p=0.0003**) при неизменном видимом выходе (486→428 зн.). - **От найденной работы тоже зависит:** внутри ec-D1 Спирмен `rho(размышление, правки)=+0.781` (p=0.0003) и `rho(размышление, длина выхода)=+0.651` (p=0.003). ⇒ **Правильная формулировка:** размышление масштабируется с объёмом входа и с найденной работой, но не снимается сужением задачи. Поэтому дифф не даёт той экономии выхода, ради которой затевался. ⚠ Прежняя формулировка автора — «размышление не зависит от объёма работы» — **опровергнута**: она строилась на одном контрасте (широкий→узкий мандат) и игнорировала корреляцию с входом и с правками. ### 6.2 Арм L — НЕ исполненная фальсификация; и посылка, и правка квирков отозваны Измеренное отношение цены дифф/full — **1.677 по медиане окон** (w0 1.94 · w1 3.72 · w2 2.55 · w3 1.42 · w4 1.07 · w5 0.53; медиана клеток 1.396; 11 клеток из 18 >1). Число верно и воспроизведено. **Но фальсификация не проведена**, потому что её посылка — «ручка `reasoning_effort:"low"` на `deepseek-v4-pro` признана рабочей замером 05.08 (`00-provider-quirks.md` §3б)» — не выдержала пере-счёта по всему доступному сырью: | Улика | Что показывает | |---|---| | Решающее правило §3б «диапазоны не пересекаются» при n=3/3 | минимально достижимый двусторонний p=0.100 — дизайн не может достичь значимости по построению | | **Нулевой контраст**: два блока ДЕФОЛТА на побайтно одном запросе (sha `92924c85b5fc`) | разделяются ТАК ЖЕ (p=0.100) и с тем же размером ×1.47, что и «эффект ручки» (13421/9125=1.47) | | Объединённый пул на побайтно одном входе, дефолт n=6 против low n=6 | диапазоны ПЕРЕСЕКАЮТСЯ, MW p=0.589 и по `completion_tokens`, и по `reasoning_chars` | | По арму целиком | дифф думает −8.1% (p=0.367), full-regen **+29.0%** (p=0.983) — разнонаправленно, что несовместимо с механизмом «срезает треть» | | `prompt_tokens` при побайтно одинаковых messages | 2124 у дефолта И у `low`, 2203 у `xhigh` ⇒ провайдер серверно реагирует на xhigh и НЕ реагирует на low | | По всей папке: 12 sha-групп, разыгранных обоими армами (39 вызовов) | low ниже дефолта лишь в 7 из 12, MW p=0.379 | ⇒ Гипотеза «премия диффа — артефакт несъёмного thinking» **остаётся НЕПРОВЕРЕННОЙ**. Арм L засчитывается как **вторая независимая репликация вывода «дифф дороже»** на 36 свежих вызовах (параметр ушёл на провод 36/36 в обеих подветвях ⇒ отношение внутренне контролируемо; клетки LD/LF разнесены на 22–110 с и дрейфом не объясняются), а НЕ как выдержанная проверка гипотезы. **Мощность оговаривается явно:** утверждать «ручка нулевая» данные не позволяют — MW при n=6/6 ловит истинный эффект ×0.67 лишь в 37% случаев (бутстрап 20k). Корректный статус — **воздействие не верифицировано**, при том что бремя лежит на посылке: клейм «работает» сделан на n=3/3 и воспроизводится нулевым вмешательством. **Опора, которая переживает падение статуса арма L.** «Дифф дороже» реплицирован **трижды**, причём один раз на дефолтном эффорте и новом материале: | Замер | Отношение дифф/full | Клеток >1 | |---|---|---| | база §2 (ec-D1/ec-F1) | 2.913 по окнам (2.313 по клеткам) | 10 из 12 | | арм L (`low`) | 1.677 по окнам | 11 из 18 | | **арм G, боевая единица, `extra_body={}`** | **2.468** | **6 из 6** | ### 6.3 Арм G — вывод §2.1 УСТОЯЛ, но арм слабее, чем кажется Комплаенс на боевой единице **28/29 = 0.966 ≥ 0.90**: `notfound` 1, **`ambiguous` 0**, `overlap` 0, малформед 0. Пре-регистрированный порог не пробит, деградации уникальности якоря не видно. **Обязательный хвост:** знаменатель — 29 операций с 5 результативных вызовов на 2 текстах (шестой, `fp-GD-u1-r1`, дал NO_CHANGE и вышел из знаменателя как 0/0). «Неоднозначных 0 из 29» при верхней 95% границе Клоппера–Пирсона **11.9%** и базовой доле 1/81 = 1.2% означает: арм не отличает 0% от десятикратного к базе. Утверждать можно «катастрофической деградации нет», но не «деградации нет». ### 6.4 Арм N — вывод §2.2 ПАЛ: do-nothing покупается сужением мандата `NO_CHANGE` **4 из 18** на fidelity-only промпте против **0 из 36** на промпте со стиль-мандатом. Дисциплина «ничего не делать, если черновик хорош» уговорами не берётся, а **сужением мандата — берётся**. Это ровно то, что `research/19` §C1 и предписывал тремя узкими проходами. Атрибуция причины переписана по §6.1: сужение мандата покупает NO_CHANGE и режет правки, но **размышление им не срезается** — то есть узкий проход даёт дисциплину, а не дешевизну. ### 6.5 Арм E — формально пал, НЕ засчитан; причина пере-обоснована ПО ПРОВОДУ Медиана отношения цены **0.617** по 12 парам (0.629 по-оконно), 10 клеток из 12 <1 — по букве критерия вывод §2.7 на английской цели падает. **Не засчитан из-за неполного зеркала промпта.** ⚠ Названная автором причина — «в зеркале нет ПРИМЕРОВ перевёрстки» — **была ложной**: примеров не было и у русского компаранда, потому что `editor_wire_probe.py:43` `FEW_SHOT = False` дропает блок `---FEWSHOT---` (проверено на 48/48 русских full-вызовов). Настоящее различие — на проводе: | Что | ru full | en full | |---|---|---| | системный промпт | 3071 зн. / 16 непустых строк | 1174 зн. / 10 строк (0.38) | | блок ДИСКУРС-ПЕРЕВЁРСТКА (`editor.md:15-19`) | есть, 1199 зн. = 39% | **отсутствует вовсе** | | размышление full-regen | 2183 зн. (ec-F1+F5) | **14711 зн.** (×6.7) | | размышление диффа | 10244 зн. | 8650 зн. (×0.84) | Прорежение **асимметрично именно по контрактам**: отношение en/ru системного промпта 0.38 на full против 0.65 на диффе ⇒ обеднён преимущественно знаменатель. Дифф на английском ведёт себя как на русском (даже думает чуть меньше), а «перевернулся» full-regen. ⇒ вопрос пре-рега («премия диффа — артефакт русской фертильности?») **остаётся без ответа**; для ответа нужен полный en-компарандум. ### 6.6 Что снято этим ревью 1. Слово **«УСТОЯЛ»** у арма L — фальсификация не проведена (§6.2). 2. **`00-provider-quirks.md` §3б, звено (а)** («`low` на pro срезает размышление на треть, бюджет управляем») — отозвано; строка §3а («`low`→`high` для pro») НЕ опровергнута и возвращается в силу до замера с мощностью. Звено (б) про `xhigh` **сохраняется и усиливается**: min(xhigh) 17588 > max(дефолта) 15720, p=0.0238. 3. **Баннер «вывод „конфигом не чинится“ ФАЛЬСИФИЦИРОВАН»** — снят; вывод возвращается в статус НЕ фальсифицированного (не «подтверждённого»). 4. **Квалификатор в дизайне арма L** «ручка признана рабочей замером 05.08» — удалён. 5. **Обоснование эхо-девиации** «единичные знаки — цитаты в сносках» — ложно, заменено (§6.7 п.1). 6. **Формулировка §6.1** «размышление не зависит от объёма работы» — опровергнута корреляциями. ### 6.7 Объявленные девиации и оговорки 1. **Девиация от эхо-критерия.** Пре-рег: «ненулевое эхо делает `low` непригодным независимо от цены»; скорер применил порог 5%. Наблюдено 2 вызова, 4 знака. `fp-LD-w4-r1` (`修行`) — дословный SEARCH-якорь по сноске САМОГО черновика, REPLACE пуст, операция сноску удаляет ⇒ модель знаков не порождала. `fp-LF-w3-r2` (`潜能`, доля 0.117%) — сносок в выходе нет, знаки внутри повествования («символом жизненной潜能»), черновик в этом месте несёт корректное «жизненного потенциала» ⇒ **порождённая моделью микро-утечка исходника**. Порог 5% строже боевого гейта (`disposition.go` `cjkEchoThreshold = 0.15`) и на два порядка выше наблюдённого; явление quirks §4 (выход исходником целиком, доля 0.83–0.999) не наблюдалось. **Low-специфичность НЕ показана:** на дефолтном эффорте ханьцзы тоже есть (ec-D1 2/18, ec-D2 1/18 — та же сноска черновика). ⇒ по БУКВЕ пре-рега рекомендация «поставить редактору `low`» остаётся **закрытой независимо от цены**. 2. **Две конвенции медианы в одном скорере**: арм L — медиана по-оконных медиан, арм E — медиана клеток. Обе устойчивы (L по клеткам 1.396; E по окнам 0.629), вердикты не переворачиваются, но конвенции надо привести к одной. 3. **Межсессионный дрейф крупный и реальный.** Шесть дефолтных розыгрышей побайтно одного запроса в хронологическом порядке: 1952 → 9104 → 10818 → 11157 → 13421 → 15720 знаков размышления, строго монотонно (вероятность 1/720). Любое сравнение блоков, разнесённых во времени, конфаундировано; защищены только парные внутриблочные отношения. 4. **Дыра в самом ревью посылки:** §5/П3а проверяло, что параметр УШЁЛ на провод, но не что он ПОДЕЙСТВОВАЛ. Через неё посылка арма L и проехала. Инструмент под П3а дописан (`verify_run.py`), предупреждение об этом различии печатается в самом отчёте прогона. 5. **Контроль §C.5 отчёта 18** (`glm2`) добавлен после прогона и вне пре-рега — объявлен там же. ### 6.8 Что это даёт продукту (строка 106) - **Дифф-контракт механически исправен.** Формат-комплаенс 0.975 на базе, 0.966 на боевой единице, **малформед 0 на 90 вызовах**, аппликатор 15/15 на самотесте. Контракт `research/19` §C1 работает — вопрос «умеет ли модель в диффы» закрыт положительно. - **Экономически он проигрывает full-regen, и это реплицировано трижды** (2.913 · 1.677 · 2.468), включая боевой размер единицы на дефолтном режиме. - **Причина проигрыша НЕ установлена.** Обе гипотезы остались непроверенными: «несъёмный thinking» (арм L не исполнен, §6.2) и «русская фертильность» (арм E конфаундирован, §6.5). Установлено только, что размышление — 95% цены диффа, растёт с входом и не снимается сужением мандата. - **Узкий проход покупает дисциплину, а не деньги:** fidelity-only даёт NO_CHANGE 4/18 против 0/36, но размышление не режет. ⇒ **Строку 106 закрывать выводом «диффы не берём» ПРЕЖДЕВРЕМЕННО.** Правильный статус: полный ре-ген остаётся каноном не потому, что дифф-контракт плох, а потому что на этой модели и в этом режиме он дороже — при том, что механизм удорожания не вскрыт, а два его кандидата не проверены. ### 6.9 Что домерить, чтобы закрыть по-настоящему 1. **Отличимость `low` от дефолта** — интерливинг дефолт/low в ОДНОМ блоке (защита от дрейфа §6.7 п.3), n≥10 на арм. До этого замера `00-provider-quirks.md` §3а остаётся в силе. 2. **Полный en-компарандум** — зеркало `editor-en.md` с блоком дискурс-перевёрстки, чтобы вопрос фертильности получил ответ. 3. **Дифф на модели без несъёмного размышления** — единственный прямой тест гипотезы §6.2. 4. **Качество правок** — ни один арм его не мерил; дифф может быть дешевле или дороже и при этом делать ХУЖЕ. Судейского рига в скоупе не было и нет.