# Промт: полигон-сессия exp14 — эмпирика рычагов качества (нарезка×промпт + фронтир-диагностика + кривая нарезки) (2026-07-12, D36, приоритет №1) --- ## Кто ты и зачем Ты — **полигон-сессия** TextMachine, exp14. Пере-прогон 25 глав дал вердикт владельца **«лучше, но крайне слабо художественно»** — 2 претензии: (1) нет логической редактуры абзацев / конвенций русского; (2) места, где модель не понимает связей/смысла. Диагноз (D35) верифицирован исполнением: **не баг — недострой Ф2 + невыжатые near-term рычаги (промпт/нарезка/глоссарий)**. Ресёрч research/18 (ДВА отчёта, D36, оба залендены оркестратором после верификации первоисточников — Claude ACCEPT_WITH_FIXES / ChatGPT ACCEPT) дал карту рычагов и §C-таблицы. **Твоя задача — ЭМПИРИЧЕСКИ измерить, а не утверждать:** снимает ли near-term (нарезка×промпт) бо́льшую часть претензий на дешёвом миксе, и где потолок — в дешёвых МОДЕЛЯХ или в нашей НАРЕЗКЕ/ПРОМПТЕ (фронтир-арм = диагностика этого). **Ключевая ось, которую exp04/12/13 НЕ крутили:** они варьировали только МОДЕЛЬ в фикс-нарезке с уже-вшитым reflow-промптом. Ты крутишь **нарезку × ПРОМПТ**. Зона: `eval/` + `docs/experiments/14-quality-empirics.md` + секция «Полигон» в `PROGRESS.md` + курация глоссария (вне git). **Бэкенд не трогать** (там могут быть живые правки; `git status` перед любым касанием дерева — часто 2 живые сессии; стейджинг тебе НЕ нужен, ты не коммитишь). Прямые API-вызовы из `eval/`-харнеса (НЕ через прод-пайплайн бэкенда — прод трогаем только чтобы воспроизвести инъекцию глоссария как якорь). ## Онбординг (порядок) 1. `CLAUDE.md` → CURRENT-STATE в `PROGRESS.md` → **D35 и D36 целиком** (мандат; D36 = приёмка research/18 + этот промт). 2. **`docs/research/18-quality-levers.md` (ревью-шапка оркестратора СНАЧАЛА — там поправки к цитатам/рамке) + `docs/research/18-quality-levers-chatgpt.md` (ревью-шапка).** Твой рабочий вход — §C обоих. Скелет протокола бери из ChatGPT-§C (P0-baseline → армы с фаза-тегами → пре-рег гейты C4 → дерево решений C5 → ядро reflow-промпта C3); СОДЕРЖАНИЕ дискурс-reflow-промпта (5 техник Ван Цуй) и COGS-модель — из Claude-§C. 3. `docs/experiments/00-provider-quirks.md`: deepseek thinking ON всегда (эхо-мина); gemini слаг ТОЛЬКО `-preview`, `additive_total`, mandatory thinking, `PROHIBITED_CONTENT` неконфигурируем; grok reasoning-ON = аддитивный биллинг; **grok на архаичном хане ch1 — эхо-риск D22.5** (исключить grok из ch1-армов). 4. `rerun/FIDELITY_REGATE_HANDOFF.md` — пакет re-gate верности (гонишь ПАРАЛЛЕЛЬНО, независимо от этого эксперимента). 5. Уроки судейского слоя: шапки `docs/experiments/12-quality-diagnosis.md` + `13-translator-bakeoff.md` (ложная «сходимость» ловилась дважды — мемо `eval-aggregation-no-manufactured-convergence`). ## Пре-регистрация (закоммить §1 exp14-дока ДО первого платного вызова — D30.10; path-scoped только exp14-док) ### 0. Материал (исключить сломанное) - Срез: те же 25 глав пере-прогона (`rerun/records.json` несёт source/draft/final по 57 чанкам). **ИСКЛЮЧИТЬ ch5.0 и ch20.0** (экспорт-баг D35.4a — финалы пусты; спутают оценку) до бэкенд-фикса; если нужен их текст — бери edit-выход из checkpoints (тело цело, дефект = ведущий `###`). - **Trap-набор (Ступень I — ЛОВУШКИ, не «средние главы»):** разметь 6–8 мест ДО генерации, поле `supporting_span` + `допустимый_смысл`. Типы (ChatGPT §C1): (a) нарратив-строки, которые ДОЛЖНЫ стать одним русским абзацем; (b) диалог 1:N; (c) связь, разрешимая ВНУТРИ текущего чанка; (d) связь, опора которой — ЗА границей чанка. **Обязательно включить места владельца, воспроизведённые оркестратором фактически:** gl.7 `古月族人没有一个不知道的` (двойное отрицание = «все знали» → финал инвертировал в «никто не знал»); gl.8 `物是人非` (заглавие-ключ → сплющено в «всё изменилось»). Эти два — тип (c)/verность, вход и в fidelity re-gate. - Главы для Ступени II — 3 чистые главы разной диалого-плотности формулой (как exp12 high/mid/low), **исключая ch1 (архаика), ch5, ch20.** ### 1. Армы — ось НАРЕЗКА × ПРОМПТ (полный 2×2 — мандат D36) + аблации Прямые вызовы, ручная упаковка; дешёвый прод-микс (draft `deepseek-v4-flash` thinking-ON → editor `glm-5` билингв) как якорь; глоссарий-инъекцию воспроизвести из `retrieval_state.injected_ids` (боевой блок, rig-фиделити как exp12 A1′). | Арм | Нарезка | Промпт | Смысл | |---|---|---|---| | **P0 baseline** | чанк 1.5k | ТЕКУЩИЙ прод (`v1-reflow`/`v2-bilingual-reflow`) | Нулевая точка обеих претензий (= пере-прогон, но на trap-наборе) | | **P1a** | чанк 1.5k | **сильный дискурс-reflow** | Промпт-рычаг при фикс-нарезке | | **P1b** | **глава целиком** | ТЕКУЩИЙ прод | ⚠ **ячейка, которую НИ ОДИН отчёт не крутил** — изолирует «бо́льшая единица САМА помогает без нового промпта?» | | **P1c** | глава целиком | сильный дискурс-reflow | Верхняя near-term точка нарезка+промпт | Плюс аблации (ChatGPT §C2, на базе P1a): - **Draft-layout ablation:** перед editor заменить пустые строки/построчную разбивку draft на нейтральные сепараторы ИЛИ пронумерованные смысловые атомы (финал удаляет ID) → изолирует ЯКОРЕНИЕ редактора на форме черновика (если резко улучшает абзацы при той же модели/промпте — менять нарезку преждевременно; **это дешёвый ПРОД-МИНОР при победе**). - **Semantic-first vs combined:** один combined-editor против двух узких пассов (билингв семантика-репэйр → target-only литературный reflow) под ОДНИМ coverage-гейтом → снимает конкуренцию мандатов у слабой модели; замерить реальный output-множитель (≤~2× editor-output). - **±1 reference-контекст:** дать пред-source+пред-target хвост и след-source-абзац до границы сцены, явно `REFERENCE — НЕ ПЕРЕВОДИТЬ`; **три РАЗДЕЛЬНЫЕ абляции prev / next / both** (не сливать в один «context arm»). Цель — кросс-граница (тип d), нулевые подлежащие, катафора. ### 2. Фронтир-арм — ДИАГНОСТИКА потолка (владелец согласовал трату; gated на подтверждённом потолке budget) - **Capability-vs-activation 2×2:** {дешёвая прод-модель | фронтир} × {baseline-промпт | дискурс-промпт} на trap-наборе + 1 главе. Разводит: фронтир верстает, дешёвая нет → **gap способности**; ни та ни другая → недоспецифицированный промпт; краткое правило/пример чинит дешёвую → это была **активация**. - Фронтир: **Gemini 3.1 Pro (`-preview`)** и **GPT-5** (ключи есть); **НЕ Claude/Opus** (нет ключа); grok — можно как доп, но **НЕ на ch1** (D22.5). - **Фронтир кросс-семейный мета-ревьюер** (span-цитаты: где ломается смысл + какой механизм чинит): **self-family exclusion** (модель НЕ ревьюит свой выход — если Gemini переводил, мета-ревьюер GPT, и наоборот). - Гарды: эхо/refusal-скрин на всех выходах; **per-call predicted-cost кап ДО вызова** (НЕ group-level — урок exp13 +10%); пре-регистрация армов заморожена коммитом. ### 3. Кривая размер-чанка ↔ качество ↔ биллинг ↔ ретраи - Размеры **0.75k / 1.5k / 3k / глава** × **две политики границ** (жадная упаковка | сцен/дискурс-граница) при сопоставимом бюджете — иначе размер спутается с качеством границ. - Снимать (пре-рег): in/out/**reasoning**-токены, латентность, **retry-rate ПО ПРИЧИНАМ** (timeout/refusal/length/echo/sanitizer/decode — раздельно), **доля ПОВТОРНО ОПЛАЧЕННЫХ токенов** (не только retry-rate — урон одного крупного сбоя), coverage, слепое предпочтение, KPI-абзацы, trap-теги. - **Бюджет чанка — в ВЫХОДНЫХ токенах на реальном токенизаторе** (кириллица-фертильность ~2–2.5× — Petrov NeurIPS 2023, проверено); оптимизировать на **retry-adjusted output-cost**; связность давать кэшированным carryover, НЕ размером единицы. **Cache-ordering:** статику (system+glossary) ПЕРВОЙ, volatile (running summary/reference) ПОСЛЕ — иначе кэш бьётся. ### 4. Сильный дискурс-reflow промпт — ЭТО АРМ ДЛЯ ЗАМЕРА (не «оптимальный промпт»), ядро (Claude §C1#1 + ChatGPT §C3) СОДЕРЖАНИЕ (zh→ru, из Ван Цуй, Вестник МГУ Сер.22 — прескрипция ТЕХНИКИ, подтверждена оркестратором по телу статьи; НЕ «норма языка» — норму держат Розенталь/Правила-1956): 1. Молча определи смысловые ходы: единый фокал/наблюдатель; действие+непосредственная реакция; одна тема рассуждения; смена говорящего/времени/места/фокала. 2. Один повествовательный ход — обычно один русский абзац, ДАЖЕ если китайский разбит на однофразовые строки (паратаксис→гипотаксис). Инструмент слияния — **причастные/деепричастные обороты + подчинительные союзы/связки** (5 техник Ван Цуй: иерархия → сегментация по смыслу → маркировка вида/времени предиката → варьирование лексики → добавление связок). Не сливать ТОЛЬКО ради длины. 3. Каждая реплика — с нового абзаца через тире; слова автора при той же реплике — в её абзаце (Розенталь). 4. Разрешено объединять/делить русские предложения; ЗАПРЕЩЕНО терять смысловые атомы (число предложений/абзацев совпадать не обязано). 5. `REFERENCE`-блоки — только для разрешения связей; не переводить/не пересказывать в выходе. Few-shot — минимальные, ортогональные: narrative N:1, dialogue 1:N, focal-shift boundary (target-side русский якорь). **Для DeepSeek-thinking сначала zero-shot против few-shot** (модель-специфика research/15; не переносить результат между моделями); ручной verbose CoT reasoning-модели НЕ добавлять. ### 5. Метрики и гейты — ПРЕ-РЕГИСТРИРОВАТЬ (C4 ChatGPT + §C10 Claude) | Ось | Первичный показатель | Аварийный гейт | |---|---|---| | Претензия 1 (абзацы) | **детерминированный структурный KPI БЕЗ судьи** (распределение предложений/нарратив-абзац vs русский референс) + слепое чтение | нельзя «побеждать» только МЕНЬШИМ числом абзацев | | Претензия 2 внутри-чанк | билингв span-цитирующая trap-accuracy (обязательный `supporting_span`) | любая инверсия действия/участника = КАТАСТРОФА независимо от среднего ранга | | Претензия 2 кросс-граница | accuracy РАЗДЕЛЬНО prev-/next-/chapter-supported | **perturbation:** correct-context vs random/shuffled НЕ должен дать тот же результат (иначе контекст не используется — Mohammed&Niculae, проверено) | | Полнота | покрытие смысловых АТОМОВ (не совпадение числа предложений) | пропуск заголовка/события дисквалифицирует арм на фрагменте | | Операционность | `$`, in/out/reasoning-токены, латентность, retry-по-причинам, **повторно-оплаченные токены** | per-call predicted-cost кап; НЕ group-level | | Робастность | leave-one-judge-out + отдельный катастроф-скрин | коррелированные колонки одного судьи ≠ независимые сигналы | **НИКОГДА не гейтить художественность/связность на BLEU/COMET** — для zh→ru доказана инверсия (WMT24: NMT>LLM по d-BLEU без human-eval). Судьи: span-цитирующие, reasoning-ON, верность/стиль РАЗДЕЛЬНО, кросс-семейно, self-family exclusion, ≥3 повтора со свапом, parse-чек полноты ранжирования. ### 6. Ступень II — слепое чтение владельцем ТОЛЬКО 3 финалистов После trap-гейта оставить: **baseline + лучший near-term арм + фронтир-диагностик** (НЕ 8 почти-одинаковых, как exp12). Monitor-паттерн (слепые метки, ключ отдельно, вне хостинга — копирайт). Главный исход — бинарное закрытие 2 претензий + ранжирование; вторичный — размеченные ошибки. ### 7. Дерево решений (пре-рег, ChatGPT §C5) - P1a закрывает абзацы БЕЗ падения fidelity → катить промпт, размер НЕ менять. - Помогает только draft-layout ablation → строить deformat/atom-rendering, не chapter-editor. - ±1 reference закрывает большинство смысловых traps → строить малое context-window до Ф2-памяти. - Нужна chapter-card, но whole-chapter НЕ лучше → Ф2 state-extraction. - Whole-chapter выигрывает по fidelity И абзацам И retry-adjusted COGS → тогда проектировать per-stage гранулярность (повторить на длинной главе). - Фронтир выигрывает обе колонки 2×2, организация почти не помогает → **model floor** (не строить сложную память ради слабой модели). - Организация помогает ОБЕИМ, фронтир+организация даёт доп-лифт → развести near-term context-fix и премиум-тир. ## Fidelity re-gate (ПАРАЛЛЕЛЬНО, D34.3 — `rerun/FIDELITY_REGATE_HANDOFF.md`) Независим от exp14. Span-цитирующий, reasoning-ON, раздельно стиль/верность, охота на КЛАСС ИНВЕРСИЙ редактуры (ch11/0 аутлайер: editor расширил 3009→4631, sim 0.064), катастроф-скрин терминов у победителя, author≠reviewer (не glm-5/deepseek), leave-one-out. **Пере-прогон НЕ засчитан до пройденного re-gate.** ## Deliverable `docs/experiments/14-quality-empirics.md`: пре-регистрация (§1, заморожена коммитом) → таблицы армов (KPI-абзацы / trap-accuracy со спанами / perturbation / retry-по-причинам / цена) → кривые размер↔качество↔биллинг↔ретраи → capability-vs-activation вывод (потолок: модели vs организация) → рекомендация near-term конфига + что строить под ROI → 3 финалиста для слепого чтения владельца. Смена дефолта — ратификация оркестратора. **Ничего не коммитить, КРОМЕ пре-рег-раздела** (D30.10-гейт). ## Дисциплина / бюджет - **Кап: предложи в пре-регистрации** (ориентир: near-term армы+судьи ~$3–4; фронтир-арм — отдельная строка; **суммарно держи ≤$10**). Per-call predicted-cost кап ОБЯЗАТЕЛЕН до каждого платного вызова (exp13 переоврал group-cap на +10%). **Фронтир-траты — подтверди явный `ceilings` с оркестратором/владельцем ДО первых фронтир-вызовов** (Р6 — согласие на трату; near-term армы не блокируются, идут первыми). - Каждый платный вызов персистит usage/cost; финальная сумма в отчёте (D30.10). Полигонное Python-зеркало ↔ Go: при расхождении верить Go. - Слепота свята; пре-рег заморожен после коммита; аномалии провайдеров → вендор-дока + `/models` (не гадать); `.env` не читать; тексты книги в git-доки не тащить (≤15 слов); 18+ регистров в раннем срезе нет — перенос на 18+ требует отдельной пробы (D22/exp10-11). - **Методика-guard (мемо eval-aggregation — ловил ДВАЖДЫ):** fidelity-first агрегация, leave-one-out по судьям, катастроф-скрин к ПОБЕДИТЕЛЮ тоже, независимость сигналов до агрегации, ось решения (near-term-достаточность vs потолок-моделей). Не собирай ложную «сходимость».