# Промт: полигон-сессия 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. Фронтир-арм — ДИАГНОСТИКА потолка (бюджеты владельцем ПОДТВЕРЖДЕНЫ D36.1 — трата разрешена в рамках ключей)
- **Capability-vs-activation 2×2:** {дешёвая прод-модель | фронтир} × {baseline-промпт | дискурс-промпт} на trap-наборе + 1 главе. Разводит: фронтир верстает, дешёвая нет → **gap способности**; ни та ни другая → недоспецифицированный промпт; краткое правило/пример чинит дешёвую → это была **активация**.
- Фронтир: **GPT-5 — основной** (OpenAI ~$9); **Gemini 3.1 Pro (`-preview`) — ЭКОНОМНО** (остаток ~€2.6, thinking = аддитив-биллинг → быстро сгорит; лучше как кросс-семейный мета-ревьюер, НЕ прогонять им всё); grok (~$9) — доп, но **НЕ на архаичной ch1** (D22.5, эхо-риск); **НЕ Claude/Opus** (нет ключа). Мета-ревьюер — **self-family exclusion** (не ревьюит свой выход).
- **Фронтир кросс-семейный мета-ревьюер** (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-гейт).

## Дисциплина / бюджет
- **Бюджеты ключей (подтверждены владельцем, D36.1 — «делай что нужно в этих рамках»):** OpenAI ~$9, Gemini ~€2.6 (крошечный — беречь), DeepSeek/ZAI(glm)/Kimi/xAI(grok)/Mistral ~$9 каждый; ДРУГИХ ключей нет. Отдельный owner-`ceiling`-запрос НЕ нужен — работай внутри остатков. **Per-call predicted-cost кап ОБЯЗАТЕЛЕН до каждого платного вызова** (НЕ group-level — exp13 переоврал на +10%); в пре-регистрации разложи ожидаемую трату по ключам и держи запас (near-term дешёвые армы — первыми; фронтир GPT-5 — основная фронтир-статья; Gemini — точечно). Заканчивается ключ → останавливайся на нём, не блокируй остальные армы.
- Каждый платный вызов персистит 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 потолок-моделей). Не собирай ложную «сходимость».
