11 KiB
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. Не коммичу, кроме пре-рег-фриза.
§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; судейского рига НЕТ и он вне скоупа)
- Формат-комплаенс = applied / ops_total по всем дифф-вызовам. Плюс доли reject по причинам и
доля
NO_CHANGE/малформед. - Канон В блоке — 21 клетка, метод пробы 18 (с развязкой конфаунда 真元/元海).
- Канон ВНЕ блока — 41 клетка, §0.1.
- Фикс-рейт посадок — 12 дефектов, метод пробы 18 (regex + обязательный глаз).
- Атом-omission ($0, детерминированно): по каждому предложению исходника — присутствие многозначных ЧИСЕЛ и отрицательной полярности где угодно в выходе. Не длино-зависимо.
- Внесённые дефекты: обвал непробельной длины >40% против черновика и числовой дрейф (форма regression_guard); плюс глазная вычитка.
- Деньги и выходные токены — 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. Результаты
(заполняется после прогона)