textmachine/docs/experiments/12-quality-diagnosis.md

266 lines
56 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Эксперимент 12. Диагностика качества 25 глав (蛊真人 zh→ru) — где теряется читаемость
> **⚠ Ревью-шапка оркестратора (12.07, D30; тело ниже не редактировалось).** Вердикт адверсариального ревью (4 оси: реплика метрик активности / аудит судейского слоя / root-cause против промптов и store / scope+COGS+мемо): **ACCEPT_WITH_FIXES — принято; ратификация D30.** Ядро диагноза подтверждено независимой репликой: пассивность моно-редактора (3/6 grok-чанков байт-идентичны черновику; медиана draft→final 0.978 по всем 54; порядок армов leak-robust под тремя метриками), «Сохраняй разбивку на абзацы» дословно в `translator.md:9`/`editor.md:8`, дефекты сцены смерти — в ЧЕРНОВИКЕ, риг A1≈прод (2/6 байт-идентичны боевым финалам). Поправки чтения:
> 1. **«A2 — единогласный #1 у всех судей» — НЕВЕРНО**: gpt-5-mini ставил A5 первым 9/9 повторов; среди судей, видевших оба арма, A5 бьёт A2 12/18; #1 A2 держится на gemini (который A5 структурно не судил — self-family) и grok. Выбор glm-5-кандидата стоит на **цене (×13 дешевле gemini) и отсутствии утечек**, не на единогласии.
> 2. **«Fidelity-гейт „гладко-неверное" ПРОЙДЕН / верность 5.0» — снято**: скалярные голоса без спан-цитирования (промпт судьи запрещал рационале), grok судил reasoning-off (конфиг, который §2.2 сам доказал инертным), gpt-5-mini дал 5.0 ВСЕМ армам включая сырой черновик; A2 при этом сам ВНЁС инверсию смысла («пожертвуй мной» — в черновике нет) и порчу («молва считал»), сохранил «долголетие». Читать: «относительного падения верности сжатые голоса не задетектировали; корробировано точечными zh-кейсами». **Re-gate верности — обязательное условие приёмки пере-прогона** (span-цитирующий судья reasoning-ON + охота на класс инверсий; «порчи правки» — в скоуп санитайзера).
> 3. Утечка A5 — **6/6 чанков** (ведущие преамбулы во всех + хвост в 5_1; до 33% символов чанка), не «4»; судейские оценки A5 — нижняя граница (вход контаминирован). Активность A5 после стрипа 0.310.33 — ранжирование не меняется.
> 4. §2.2: значения таблицы — **средние** по 6 чанкам, не «медианы» (медианы: A2 0.099, A5 0.381; порядок тот же). CAND гнался на temp=0.5 (боевой 0.4) — не дисклоужено; «конвенции ставит» — заслуга механизма глоссария, не CAND-поведения; reflow-слияние реально в 2/6 чанков (гл.5 — нет).
> 5. **Глоссарий v2 — мина статусов**: спорные термины (修炼/культивация, 人祖/Первопредок и др.) помечены ⚑ только в note, но несут `status:approved` → пайплайн замапил бы их в CONFIRMED-hard-constraints ДО подписи владельца (`memory.go:419/473`); 花酒行者 и 本命蛊 тихо повышены draft→approved, причём 花酒行者 перезаписывает высказанное пожелание владельца. **До применения: спорные → `status:draft`** (D30.5). Сам v2-сид и владельческая делегация в отчёте не раскрыты (только докстринг скрипта) — дефект провенанса, зафиксирован.
> 6. Бюджет: финал ≈**$2.262.27** из $5 (отчётное «$2.22» не включает CAND ~$0.044 — скрипт выбрасывает usage; впредь каждый платный скрипт персистит usage/cost). Пре-регистрация: gpt-5-mini аггрегирован полной панелью (пре-рег: только tie-breaker) и один grok-вердикт неполный (A0 выпал) — пересчёт ревью: выводы не меняются; дисклоужено здесь.
> 7. Мемо: «одна PD-книга» — неверно (蛊真人 — копирайтная вебновелла; корректный гейт — «современный вебновелл-срез ВНЕ претрейна»); §5.2 COGS не подписан as-is: **флип D1 = +1525% (~$0.830.86/ранобэ; замерено: вход редактора +60% токенов, книга +19%)**; «$1.52» = опция Б (селективный апекс exp08 + память) — отдельное позднее решение владельца. Два стратегических клейма («publishable чистым LLM = фронтир-предел», «серия-консистентность = самый дорогой слой») — рабочие гипотезы.
**Статус:** безκ-режим, **N=1 читатель (владелец)**, **пре-скрин** пилота Ф2.5 — НЕ пилот. Результаты не выдавать за пилотный вердикт (D26.2, D25.2-гейт билингв-якоря в силе).
**Мандат:** D26 (качество-первым). Триггер: владелец прочитал 25 глав этапа A (draft `deepseek-v4-flash` → editor `glm-5` **моно**) → **нечитаемо, слабейшее звено — редактура**. Задача: локализовать, где теряется качество, и найти **конфиг-кандидата** для пере-прогона 25 глав. Смену дефолта ратифицирует оркестратор (D-блоком) — не эта сессия.
**Зона:** `eval/` + этот файл + секция PROGRESS «Полигон». Бэкенд не трогаю (там пакет №5). Артефакты приёмки — только копией; сэмплы/выходы — `/home/ubuntu/books/gu-zhenren/diag/` (ВНЕ git; в доке — числа и цитаты ≤15 слов).
---
## 0. Онбординг-факты (контракт, на которых стоит дизайн)
- **exp04 (D3):** слепой бейк-офф редакторов на 4 PD-фрагментах, БИЛИНГВАЛЬНО, 2 судьи: стиль **gemini > grok > kimi > glm**; верность **grok > gemini > glm > kimi**; value **grok ≫**. НО (D13.5) слепота exp04 структурно сломана (ключ в том же артефакте) → grok-дефолт **провизорен**; и всё мерено билингвально на классике из претрейна.
- **D1/D17:** редактор Ф1 **монолингвальный** (не видит исходник) — гипотеза «исходник в контексте ⇒ кальки» ПОНИЖЕНА до гипотезы (в литературе не подтверждена; кальки документированы как болезнь ЧЕРНОВИКА). D13.1: mono-рефайнмент теряет accuracy с первого прохода (2.2…5.6 MQM, arXiv:2605.13368), general-рефайнмент С исходником даёт тот же fluency при accuracy ~flat.
- **glm-5 как редактор никем не выбирался лучшим** — это замена D20.3 (нет чистого xAI-ключа); GLM-линейка — слабейшая в exp04 (мерян glm-4.6), glm-5 не перемерян.
- **grok-биллинг quirks:** редактор-роль (ru-вход) → `reasoning_effort:"none"` (плоско в теле), `reasoning_tokens=0`. gemini-3.1-pro: thinking обязателен (биллится как output), `max_tokens ≥8000`. glm: `extra_body {thinking:{type:disabled}}`.
- **xAI-ключ:** текущий (платный, без data-sharing) допустим для «eval + приёмочная книга владельца» (D19.4/D20.3). Чистый ключ нужен пилоту/боевым книгам, НЕ exp12.
---
## 1. ПРЕ-РЕГИСТРАЦИЯ (заморожена 2026-07-11, ДО платных вызовов)
Всё ниже зафиксировано до генерации армов и оценки. Промпты армов **заморожены** — никакого промпт-инжиниринга по ходу (урок exp04: сломанная слепота уже раз дала дефолт-редактора).
### 1.1. Материал — 3 чистые главы, выбор по формуле (не черри-пик)
**Frame:** ЧИСТЫЕ главы этапа A = все чанки `disposition=ok` на ОБЕИХ стадиях (draft+edit), `flag_reason` пуст. Из 25: главы 1 (эхо cjk_artifact) и 10 (length) исключены как флагнутые → frame = **23 главы** {29, 1125}.
**Метрика на ИСХОДНИКЕ zh (детерминированная):** `D` = доля символов внутри кавычек «“…”» (U+201C…U+201D) от не-пробельных символов главы. Диалого-плотность.
**Правило выбора (frozen):** `high = argmax D`, `low = argmin D`, `mid = ближайшая к медиане D`. Тай-брейк — меньший номер главы. Скрипт: `eval/exp12/exp12_extract.py` (воспроизводимо; сгруппирован в `eval/exp12/` — D38.2).
| Регистр | Глава | D | чанков | zh-симв. | реализованный характер |
|---|---|---|---|---|---|
| **диалого-плотная** | **гл. 7** | 0.490 | 2 | 2701 | диалог (испытание таланта: реплики, оценка ранга) |
| **смешанная** (медиана) | **гл. 5** | 0.222 | 2 | 2050 | нарратив+диалог (первое пробуждение гу) |
| **экспозиция** | **гл. 14** | 0.022 | 2 | 3040 | описание/нарратив (почти без прямой речи) |
Медиана D по frame = 0.2215 (гл. 5 попала ровно на медиану). Оговорка честно: **чистого «экшена»/боя в главах 225 нет** (ранняя арка деревни Цинмао — экспозиция и диалог; бои гу — позже), поэтому реализованная ось разнообразия = **диалого-плотность (high/mid/low)**, спан регистра, который реально присутствует в срезе. Гл. 18 (известный alias-дрейф 古月方源, D24.2) правилом НЕ выбрана — конфаунд исключён естественно.
**Наблюдение (уже видно из инъекции):** гл. 7 несёт **1317** констрейнт-терминов/чанк (плотная терминосистема рангов), гл. 5 — 3, гл. 14 — 69. Гл. 7 — лучший стенд гипотезы A6 «инъекция деревянит стиль».
### 1.2. Армы (на ОДНИХ И ТЕХ ЖЕ черновиках; редактор-стадия варьируется)
Черновик A0 и его глоссарная инъекция общие для всех редакторских армов. Реконструкция инъекции — из `retrieval_state.injected_ids` приёмочного store, воспроизводит ровно блок, что видел боевой glm-5 (`renderEditorConstraintBlock`/`renderGlossaryBlock`, `eval/exp12/exp12_blocks.py`): editor-констрейнт = CONFIRMED dst-формы «- «dst»»; билингв-глоссарий = «src → dst». Sticky (A5) внутри главы = union chunk0chunk1.
| Арм | Редактор | Режим | Констрейнты | Источник | Стоимость |
|---|---|---|---|---|---|
| **A0** | — (черновик deepseek-v4-flash) | — | — | store | $0 |
| **A1** | glm-5 | моно | да | **store (= финал этапа A)** | $0 |
| **A1** | glm-5 | моно | да | rig (контроль верности рига) | ~$0.06 |
| **A2** | glm-5 | билингв | да | rig | платно |
| **A3** | grok-4.3 | моно | да | rig | платно |
| **A4** | grok-4.3 | билингв | да | rig | платно |
| **A5** | gemini-3.1-pro-preview | билингв | да | rig | платно |
| **A6** | grok-4.3 | моно | **НЕТ** | rig | платно |
**A1 (контроль):** glm-5-моно моим ригом с реконструированным блоком — QC, что rig ≈ store (иначе A1↔A2-контраст конфаундится источником блока). НЕ в пакете чтения владельца.
**Промпты (заморожены):**
- **Моно-редактор** (A1,A1,A3,A6): боевой `backend/prompts/editor.md` **байт-в-байт** (system с рендер-варами book.yaml: genre=вебновелла, audience=взрослые…, title=蛊真人, source_lang=zh, honorifics=keep, venuti=0.60). Layout: `system(шаблон)``system(editor-констрейнт-блок)``user(«Черновик…\n\n{draft}»)` (render.go). A6 — тот же промпт БЕЗ второго system-сообщения (нет констрейнт-блока).
- **Билингв-редактор** (A2,A4,A5): тот же system + **одна пре-регистрированная строка**: `«Тебе также дан ИСХОДНЫЙ ТЕКСТ: сверяйся с ним по смыслу и исправляй искажения черновика, сохраняя полноту.»`; инъекция = билингв-глоссарий (src→dst); user = `«ИСХОДНЫЙ ТЕКСТ (zh):\n\n{source}\n\n---\n\nЧерновик перевода для редактуры:\n\n{draft}»`. Минимальная модификация, БЕЗ итераций.
**Параметры (заморожены, по quirks):** все редакторы `temperature=0.4` (боевая edit-стадия). glm-5: `extra_body {thinking:{type:disabled}}`, `max_tokens=8000`. grok-4.3: `extra_body {reasoning_effort:"none"}`, `max_tokens=8000`. gemini-3.1-pro-preview: `max_tokens=16000` (thinking обязателен, биллится как output). Слаги сверяю live `/models` перед вызовами; аномалия → вендор-дока, не гадание.
### 1.3. Бюджет (пре-регистрирован)
Редакторских вызовов: 6 армов (A1,A2,A3,A4,A5,A6) × 3 главы × 2 чанка = **36 вызовов**. Оценка выхода ~2.54k токенов/вызов. Прайсы (models.yaml): glm-5 ~$3.2/M, grok-4.3 ~$2.5/M out, gemini-3.1-pro ~$12/M out (+thinking). Оценка армов: glm 12×~$0.012 + grok 18×~$0.010 + gemini 6×~$0.05(+think) ≈ **$0.61.1**. Судьи (см. 1.5): ~2 семейства × 3 главы × (rank-свапы + fidelity) ≈ **$0.51.5** (gemini thinking — главный драйвер). **Кап $5.** Санити-стоп при 80% капа.
### 1.4. Оценка — слой 1: слепое чтение владельца (ГЛАВНЫЙ сигнал)
- Пакет по каждой главе: 7 вариантов (A0,A1,A2,A3,A4,A5,A6) в **случайном порядке**, метки `V1…V7` **пере-рандомизированы ПО ФРАГМЕНТАМ** (соль на главу), ключ соответствий — в ОТДЕЛЬНОМ файле вне пакета (`diag/reading_pack/KEY.*`, не в пакете чтения). Слепота свята (D13.5).
- Формат ответа владельца на главу: **ранжирование V1…V7** + бинарный гейт **«читаемо да/нет»** по каждому + свободные пометки. Целевое время: **~12 часа** на все 3 главы.
- A1 и любые служебные тексты в пакет чтения НЕ кладутся.
### 1.5. Оценка — слой 2: LLM-судьи (ВТОРИЧНО)
- **2 кросс-семейных судьи:** gemini-3.1-pro-preview + grok-4.3. **Семейство не судит свои выходы** (D13.3г): grok НЕ судит A3/A4/A6; gemini НЕ судит A5. glm/deepseek-армы судят оба. Плюс **нейтральный тай-брейкер** gpt-5-mini (OpenAI, армов нет → судит все) — только для позиций, где кросс-семейное правило оставляет 1 судью.
- **Ось СТИЛЬ:** listwise-ранжирование доступных судье армов на главу, презентация СЛЕПАЯ (метки пере-рандомизированы), **≥3 повтора со свапом порядка предъявления**, агрегат — **медиана ранга**.
- **Ось ВЕРНОСТЬ (билингвально, против zh-исходника!):** каждый судья оценивает каждый арм 15 против исходника, ≥3 повтора, медиана. Раздельно от стиля.
- **Гейт «гладко-неверное» (D1.1):** арм, выигравший ЧТЕНИЕ владельца, обязателен к билингв-сверке смысла — если он в низах верности, это фиксируется явно, «гладко-неверное» не побеждает молча.
- **Слой 3 (третичный, ultracode):** слепая читательская панель Claude-агентов (Anthropic — вне армов, кросс-семейно; свободна от grok/gemini self-judging) — доп. ранжирование по стилю на тех же слепых пакетах. Информативно, не замена слоям 12.
### 1.6. Root-cause разбор текущих 25 глав
Владелец даёт **1020 худших мест** своего чтения → каждое классифицирую по фактам (draft vs final vs исходник): `ошибка черновика (смысл)` / `редактор ухудшил/не спас` / `скованность от инъекции терминов` / `оформление диалогов/пунктуация` / `другое`. Распределение + примеры (цитаты ≤15 слов) — в отчёт.
До получения мест владельца — **предварительный автоматический разбор** (draft↔final diff по всем 25 главам: где редактор менял мало/много, дефис-диалоги, канцелярит-маркеры) как затравка.
---
## 2. РЕЗУЛЬТАТЫ
Армы: 36 вызовов, 0 ошибок, все finish=stop, **$0.779**. Судьи: 27 вызовов, **$1.31**. Демо §2.6: 1 вызов ~$0.13. **Итого потрачено ≈ $2.22 из капа $5.** Скрипты: `eval/exp12/` (сгруппированы D38.2); артефакты (тексты, JSON) — `/home/ubuntu/books/gu-zhenren/diag/` (ВНЕ git). Дефолт-конфиг НЕ менялся (D26.2).
### 2.1. Контроль рига (A1 ≈ A1) — ПРОЙДЕН
A1 (glm-5-моно моим ригом) vs A1 (store, боевой): similarity слов **0.9841.0** по 6 чанкам. Rig воспроизводит боевого редактора → контрасты A1↔A2 и др. не конфаундятся источником блока. Реконструкция инъекции верна.
### 2.2. МЕХАНИЧЕСКАЯ находка — редактор в моно-режиме ПАССИВЕН (ядро диагноза)
Активность редактора = `1 similarity(final, draft)` (выше = больше переписал), медиана по 6 чанкам глав 5/7/14:
| Арм | Активность | Чтение |
|---|---|---|
| A3 grok-4.3 моно | **0.001** | буквальный **no-op** (3/6 чанков char-identical черновику) |
| A6 grok-4.3 моно без констрейнтов | 0.004 | no-op (снятие констрейнтов почти ничего не меняет) |
| A4 grok-4.3 **билингв** | 0.006 | **всё ещё no-op даже с исходником** |
| A1 glm-5 моно (= этап A) | 0.013 | почти пассивен (12 правки на абзац, остальное копирует) |
| A2 glm-5 билингв | 0.137 | активен (~14% переписал, сильнее на нарративе) |
| A5 gemini-3.1-pro билингв | **0.343** | реально перерабатывает |
**Два жёстких вывода (мех., до чтения владельца):**
1. **Монолингвальный режим (оспоренный D1) → почти нулевая редактура** у обеих моделей (glm 0.013, grok 0.001). На всём срезе этапа A (54 чистых чанка) медиана draft→final similarity = **0.978**, редактор снял **0** канцелярит-маркеров. То, что владелец назвал «нечитаемо, слабейшее звено редактура» = **редактор почти не редактирует**; нечитаемость унаследована от черновика и не спасена.
2. **grok-4.3 при `reasoning_effort:"none"` (боевой конфиг!) инертен в ОБОИХ режимах** (0.001 / 0.006). exp04-ранг-1 grok был на ДЕФОЛТНОМ reasoning (low) и БИЛИНГВАЛЬНО; боевой reasoning-off превращает его в no-op-редактор. Это ровно «quality-transfer риск» exp08/D26, подтверждённый числами. **Grok как редактор жизнеспособен только с reasoning-ON** (аддитивный биллинг — заблокирован до резерва в EstimateUSD, D6.2/F3; отдельная проба — follow-up).
3. Реально редактируют только **gemini-биллингв (0.34)** и **glm-биллингв (0.14)**оба видят исходник. Активность ≠ качество (может плодить кальки — исходный страх D1); вердикт «лучше ли» — за чтением владельца (§2.4 primary) + fidelity-судьёй (§2.3, «гладко-неверное»).
### 2.3. LLM-судьи (вторично) — билингв побеждает, fidelity-гейт ПРОЙДЕН
Панель gemini-3.1-pro + grok-4.3 + gpt-5-mini (кросс-семейно, self-family exclusion соблюдён: gemini не судил A5, grok не судил A3/A4/A6), 3 повтора со свапом позиций, слепые метки. Парс **26/27 (96%)**, **$1.31** (кап $3). Стиль = медиана нормализ. ранга (0=лучший…1=худший), верность = медиана 15 билингвально против zh.
| Арм | Стиль (0=лучш) | Верность | Читается как |
|---|---|---|---|
| **A2 glm-5 билингв** | **0.056** | **5.0** | **#1 у ВСЕХ трёх судей** (gemini 0.0 / grok 0.0 / gpt5 0.17) |
| A5 gemini-3.1-pro билингв | 0.167 | 4.5 | #2 |
| A1 glm-5 моно (= этап A) | 0.456 | 4.33 | середина |
| A4 grok-4.3 билингв | 0.633 | 4.0 | низ |
| A0 черновик | 0.656 | 4.0 | низ |
| A6 grok моно без констрейнтов | 0.716 | 4.5 | низ |
| A3 grok-4.3 моно | 0.817 | 4.25 | **худший** |
**Выводы судей (вторично):** (1) **билингв ≫ моно** — A2/A5 наверху, моно/grok-off внизу; консенсус на A2 единогласный. (2) **Fidelity-гейт «гладко-неверное» ПРОЙДЕН:** победитель стиля A2 одновременно **максимум верности (5.0)** — билингв НЕ купил гладкость ценой смысла (исходный страх кальки D1 на этом срезе не подтвердился). (3) grok-off-армы (A3 худший, A6 предпоследний) — ниже даже сырого черновика: корроборирует no-op §2.2.
**⚠ Оговорка (важно):** судьи сравнивают ПОЛИРОВКУ прозы при ОДИНАКОВОЙ построчной вёрстке (все армы её сохраняют — §2.5-S) → они **недооценивают** структурный дефект, который доминировал в вердикте владельца. Судьи валидируют выбор **модель×режим** (билингв-glm), но НЕ фикс вёрстки (§2.6) — его подтверждают демо + чтение владельца. Плюс верность сжата (gpt-5-mini всем 5.0 — слабый дискриминатор); дискриминативнее ось стиля. A1 (моно, что читал владелец) у судей 3/7 — мягче человеческого вердикта ровно потому, что вёрстку они не штрафуют.
### 2.4. Слепое чтение владельца (ГЛАВНЫЙ сигнал)
*(pending — пакеты `diag/reading/глава_{5,7,14}.md`, 7 слепых вариантов/глава; ключ `_КЛЮЧ_НЕ_ОТКРЫВАТЬ.json` держать закрытым до ответов)*
### 2.5. Root-cause — разбор мест владельца (второй трек, D26.2)
Владелец прислал ~8 кейсов из прочитанных 25 глав (все — пролог гл.1, сцена смерти 第一节, editor=glm-5, чанки редактировались — не сырой черновик). Классификация по факту (исходник zh сверен):
| # | Место (RU, ≤12 слов) | Исходник zh | Диагноз | Класс |
|---|---|---|---|---|
| **S** | каждое предложение — отдельный абзац | 一句一行 (кит. вебновелла) | оба промпта велят «Сохраняй разбивку на абзацы» → пайплайн ВЕРНО копирует кит. построчную вёрстку, для ru — деструктивно | **оформление/дизайн промпта (ВСЕ главы)** |
| 1 | «три шичэна» | 三个时辰 | 时辰 (≈2 ч) не переведён/не глоссирован; транслит непоследователен («шичэна»/«шичэня») | черновик-realia; редактор не спас; глоссарий-пробел |
| 2 | «фракции праведного пути» | 正道各大派 | 派 = секта/школа (конвенция сянься); «фракции» — генерик-калька | черновик-жанр; редактор не спас |
| 3 | «затем ударил головой» | 磕头 | 磕头 = земной поклон; «ударил головой» — калька (磕 бить + 头 голова) | черновик-калька жеста; редактор не спас |
| 4 | «чему ты смеёшься» | 你笑什么 | грамматично, но неживо в реплике; «чего/над чем/почему» естественнее | стиль; редактор не сгладил |
| 5 | «отнял мою невинность» | 夺走了我的清白之身 | 清白之身 = целомудрие → «невинность» ВЕРНА; «обесчестил» читается натуральнее | стиль (НЕ ошибка верности; «гладко-неверное» не подтвердилось) |
| 6 | «ради совершенствования цикады» | 为了练成春秋蝉 | 练成 (выпестовать гу) → «совершенствование цикады» криво; «взрастить/вскормить» точнее | черновик-слововыбор; редактор не спас |
| 7 | «Весенне-осеннюю цикаду» | 春秋蝉 | approved-dst сида; владелец хочет «Цикада Весны и Осени»; констрейнт ЛОЧИТ редактора на текущей форме | курация глоссария (зона полигона) |
**Распределение:** оформление 1 (но бьёт по всем главам, №1 по воспринимаемости) · ошибки черновика, не спасённые редактором 4 (№1,2,3,6) · стиль 12 (№4, частично №5) · курация глоссария 12 (№7, №1) · ошибок верности (smooth-wrong) — 0 подтверждённых (№5 проверен — верен).
**Ключевой вывод:** почти все кейсы — ошибки ЧЕРНОВИКА (deepseek), а не редактора. Но **монолингвальный редактор структурно НЕ МОЖЕТ их починить**: видя в черновике «ударил головой», без исходника он не знает, что там 磕头 = земной поклон. То есть моно-редактор (D1) ограничен вдвойне — он и пассивен, и слеп к искажениям смысла. Чинит такие места только билингв-редактор (видит 磕头/派/时辰) или лучший черновик.
### 2.6. Экслораторная демонстрация фикса (пост-фидбек, ВНЕ слепого бейк-оффа)
Один вызов gemini-3.1-pro билингв на сцене смерти (пролог гл.1) с промптом, ЯВНО разрешающим переверстать абзацы по-европейски + чинить конвенции (派→секты, 磕头→земной поклон, 时辰→перевод). Результат (`diag/reflow_demo/reflow_gemini.txt`):
- **абзацы 49 → 25** строк (нарратив собран в логические абзацы, реплики — отдельными строками с тире);
- «фракции» → «**школы** Праведного пути»; «ударил головой» → устранено; «шичэн» → переведён; «отнял невинность» → «**обесчестил меня**» (предпочтение владельца);
- бонус: идиомы, сплющенные черновиком, восстановлены (罄竹难书, 诛九族).
Один вызов чинит ПРАКТИЧЕСКИ ВСЕ кейсы владельца сразу → фикс лежит в связке **билингв-редактор + разрешение реверстать абзацы + жанровые правила в бриф**, а не в одной смене модели.
---
## 3. РЕКОМЕНДАЦИЯ КОНФИГА (provisional — до чтения владельца; смену дефолта ратифицирует оркестратор, D-блоком)
Диагноз читаемости — НЕ «плохая одна ллмка», а связка трёх ортогональных дефектов, каждый со своим фиксом:
1. **Оформление (самый дешёвый, самый заметный):** снять из брифа переводчика И редактора «Сохраняй разбивку на абзацы» для zh→ru; дать редактору ЯВНОЕ разрешение/мандат собирать предложения в логические европейские абзацы (реплики — отдельно). Демо §2.6 подтверждает эффект. Правит промпты → `prompt_version` bump → resnapshot.
2. **Режим редактора (ядро):** **билингв, не моно** — моно-режим даёт почти нулевую редактуру у всех моделей и структурно слеп к искажениям черновика (§2.2, §2.5). Это прямой флип оспоренного **D1/D17** — ратификация оркестратора обязательна. Fidelity-судья (§2.3) должен подтвердить, что билингв не плодит кальки/«гладко-неверное» (исходный страх D1).
3. **Модель редактора:** кандидат по value — **glm-5 билингв****единогласный #1 у судей по стилю И максимум верности 5.0** (§2.3, fidelity-гейт пройден), активен 0.14, **$0.42/25 гл** editor-стадия, ~$0.019/глава конфиг целиком; премиум-потолок — **gemini-3.1-pro билингв** (#2 у судей, активен 0.34, чинит конвенции в демо, но **$5.6/25 гл** ≈ ×13 → селективно, не дефолт). **grok-4.3 reasoning-off — снять с рассмотрения как редактор** (инертен §2.2, худший у судей §2.3); при желании грока — отдельная проба reasoning-ON (упирается в D6.2-резерв).
4. **Черновик (корень большинства кейсов):** ошибки realia/калек/слововыбора рождаются на стадии draft (deepseek). Билингв-редактор их частично чинит; полное лечение — сильнее черновик и/или глоссарий realia. → вход в пилот Ф2.5 (draft-модель — часть ядра).
5. **Глоссарий (зона полигона):** пере-курация с владельцем — 春秋蝉 «Цикада Весны и Осени»? · seed 派→секта/школа · 时辰→«стража»/глосса · 磕头 в realia. Правит memory content-hash → тот же resnapshot.
**Дорожка:** ратификация оркестратором (режим+оформление = D-блок, флип D1) → пере-прогон 25 глав кандидатом (glm-5 билингв + реверстка + правки глоссария, ~$0.5) → чтение владельца → читаемо → этап B. Чтение владельца (§2.4) — арбитр между glm-биллингв и gemini-премиум.
**Что НЕ делаю (дисциплина):** дефолт-конфиг сам не меняю (D26.2); пре-регистрацию §1 не трогаю; §2.6 и grok-ON — помечены экслораторными, вне слепого бейк-оффа.
---
## 4. ВТОРОЙ РАУНД — чтение владельцем + монитор + глоссарий как первоклассная проблема
Владелец прочитал слепые пакеты и дал развёрнутый фидбек. Вердикт: **ни один из 7 вариантов не дотягивает до чтения** — «машинный перевод, модели не следят за смыслом/сюжетом». Слепой ранг (пост-фактум расшифрован): в гл.5 лучший — gemini-билингв (A5), в гл.7 gemini (A5) **испортил** себя утечкой преамбулы. Новые находки:
1. **⚠ gemini-3.1-pro (A5) ТЕЧЁТ служебной преамбулой** в выход: «Вот отредактированный перевод… с соблюдением всех терминов из глоссария…» перед текстом (wire-verified в 7_0, 7_1, 14_0, 14_1). glm/grok — чисто. Следствия: (а) реальный дефект gemini как продакшн-редактора (нужна пост-очистка вывода или он засорит книгу); (б) моя метрика активности A5 (0.34) частично **раздута** этой преамбулой; (в) судьи видели её (A5 всё равно #2 — но с оговоркой). **gemini понижается**: премиум-прозу даёт, но не follow-instructions-надёжен.
2. **Глоссарий — первоклассная, сквозная проблема (владелец прав).** Все констрейнт-армы делят ОДИН реконструированный сид → все наследуют его dst. Разбор терминов владельца (сверено с сидом):
| src | текущий dst (сид) | тип | владелец хочет | заметка полигона |
|---|---|---|---|---|
| 修炼 | *(НЕ в сиде → «совершенствование» = выбор модели)* | GAP | **культивация** | согласен, жанр-стандарт; засидить |
| 人祖 | *(НЕ в сиде → «Первопредок» = выбор модели)* | GAP | Рен Зу / имя | 人祖=Жэнь Цзу, конкретный Праотец; имя+глосса ИЛИ «Праотец»; на решение владельца |
| 蛊师 | гу-мастер | lock | Мастер Гу | ⚠ 蛊真人 (титул ГГ) ≠ 蛊师 (профессия); «Мастер Гу» под профессию спорно; обсудить |
| 蛊虫 | гу-тварь | lock | Черви Гу | 虫=червь; «гу-червь»/«черви гу» ок |
| 甲乙丙丁等 | разряд А/Б/В/Г | lock | ранг | ⚠ это ГРАДАЦИЯ ТАЛАНТА, НЕ ранг гу-мастера (转=ранг 19); «ранг» уже занят; вариант «класс/сорт таланта A» |
| 花酒行者 | Винный Странник | lock | Монах Цветочного Вина | 花酒=цветочное вино, 行者=странник/паломник-монах; «Странник Цветочного Вина»? обсудить |
| 真元 | истинная энергия | lock | (?) | владелец засомневался; вариант «изначальная ци»/оставить |
**пере-курация сида с владельцем (моя зона, после утверждения каждого термина).** GAP-термины (修炼/人祖) — засидить; lock-термины — переголосовать. Меняет memory content-hash → resnapshot.
3. **Идея «модель гуглит термины» (владелец спросил «мы это где-то упоминаем?») — В ДОКАХ НЕТ.** Ближайшее: D25.5 (веб = **недоверенные ДАННЫЕ**, webfetch за action-security-гейтом = блокер **Ф3**) и детерминированный Terminologist/глоссарий (не веб-лукап). → Автолукап жанр-терминов = архитектурно Ф3+ (нужен action-gate), НЕ Ф1. Практический near-term эквивалент без веба = **засидить глоссарий из устоявшихся фан-конвенций** (п.2). **Пинг оркестратору:** зафиксировать это как owner-raised предложение в архитектуру (моя зона доков — только exp12).
4. **Реверстка абзацев в слепых армах ОТСУТСТВУЕТ by design** (все 7 несут «Сохраняй разбивку на абзацы» — §2.5-S; фикс §2.6 в пакеты НЕ входил). Владелец справедливо заметил «редактуры по абзацам нет». Кандидат-фикс §4.5 её включает.
5. **Кандидат-фикс (glm-5 билингв + реверстка + жанр-конвенции, `diag/arms/CAND/`):** применяет культивация/секты/земной поклон, чище прозой, БЕЗ утечки; но **реверстку абзацев делает НЕПОСЛЕДОВАТЕЛЬНО** (гл.7 — да, гл.5 — частично). Вывод: glm-5 — приемлемый, но не идеальный исполнитель реверстки; layout-часть надёжнее возьмёт (а) более сильная модель, (б) детерминированный reflow-пасс, или (в) gemini с пост-очисткой преамбулы.
6. **Монитор для владельца (СЛЕПОЙ):** `diag/reading/monitor.html` (локальный, вне git/хостинга — текст копирайтный, в отличие от PD-фрагментов exp04) — оригинал zh + все 8 вариантов (7 армов + кандидат) по 3 главам под нейтральными метками «Вариант 1…8», **имена моделей скрыты, перестановка своя в каждой главе** (D13.5), ключ в отдельном `_МОНИТОР_КЛЮЧ.json` (держать закрытым). Кнопки «копировать оригинал+перевод» для флагман-сверки (Fable 5/5.6, слепо — имя модели не копируется), слот под любительский перевод. **Утечка преамбулы A5 снята в мониторе** для честного сравнения прозы (сам дефект — п.1).
**Обновление рекомендации (provisional):** к трём фиксам §3 добавляется **пере-курация глоссария (4-й равноправный фикс)** — сквозная, бьёт по всем вариантам; и **layout-часть надёжнее делать отдельным шагом** (детерминированный reflow ИЛИ сильная модель), т.к. glm-5 реверстывает нестабильно. gemini — понижен (утечка преамбулы). Ядро выбора glm-билингв-vs-премиум — по-прежнему за флагман-сверкой владельца через монитор.
### 4-аддендум (exp13, 2026-07-12): провенанс сида v2 и делегация владельца (дефект провенанса из ревью D30.5)
Ревью D30.5 отметило: v2-сид и делегация владельца были раскрыты только в докстринге скрипта, не в отчёте. Фиксирую здесь.
- **Делегация:** владелец делегировал пере-генерацию глоссария («перегенерируй без меня»). Термины-рекомендации — консенсус двух флагманов (GPT+Claude, `diag/reading/ОЦЕНКА_ФЛАГМАНА.md`) + явные пожелания владельца из фидбека раунда 2 (таблица §4.2).
- **Провенанс генерации:** первый прогон — `eval/exp12/exp12_glossary_v2.py` (нёс дефект: спорные термины со `status:approved` → ушли бы в CONFIRMED-hard-constraints до подписи, `memory.go:419/473`; тихие промоушены draft→approved у 花酒行者/本命蛊, причём 花酒行者 перезаписывал пожелание владельца «Винный Странник»). **Супрсежено** единым воспроизводимым трансформом `eval/exp13_seed_v2.py` (D30.5): спорные (修炼/修行, 人祖, 花酒行者, 蛊虫, 本命蛊 + род «гу») → `status:draft`; бесспорные 8 правок + 5 добавлений → approved; влито обогащение мн.ч. (D24.4). Итог: `guzhenren-seed-v2.yaml` (57 терминов) + таблица на подпись `diag/glossary_v2_signoff.md`.
- **Гейт:** ничего не уходит в прод без подписи владельца по спорным + resnapshot. Спорные инъектятся как `⟨проверить⟩` (не hard-constraint), пока draft.
---
## 5. ТРЕТИЙ РАУНД — слепая флагман-сверка (GPT + Claude), un-blind по ключу монитора
Владелец прогнал монитор через ДВА фронтир-флагмана (GPT-класс + Claude-класс) слепо + любительский релейный перевод (`translate.txt`) как контроль. Полный разбор Claude — `diag/reading/ОЦЕНКА_ФЛАГМАНА.md`; un-blind — `diag/reading/_РАСШИФРОВКА_ФЛАГМАНОВ.md`.
**Корректность (проверено):** оба флагмана читали `monitor.html` (8 вариантов — столько ТОЛЬКО у монитора; у пакетов `глава_N.md` 7) + `translate.txt`; ключи не открывали. Конфаундинга меток монитор↔пакеты НЕТ (оба дали чистые 8-вариантные ранги). «Какие варианты — переработки» флагманы вывели ЧТЕНИЕМ, и это un-blind'ится ровно в {A5, A2, CAND} — доказательство слепоты. Единственный de-blind-артефакт — **gemini (A5) сам себя палит утечкой** (`A5/5_1` хвостовой блок «Основные правки для справки»; `7_*/14_*` — ведущее «Вот отредактированный перевод») — реальный дефект, не ошибка оценки. (Мой стриппер снял ведущую форму, но пропустил хвостовую в 5_1 — учесть.)
**Конфиг-уровень (агрегат 3 глав, оба флагмана СОГЛАСНЫ):**
| Конфиг | GPT «строго» (сред.) | Claude ср. ранг (1=лучш) | Итог |
|---|---|---|---|
| **gemini-3.1-pro билингв (A5)** | **7.7** | **1.0** (#1 во всех главах) | лучшее ЯДРО, но ⚠ течёт → не прод-надёжен |
| **glm-5 билингв (A2)** | 7.3 | 2.7 | практич. лидер (без утечек) |
| **КАНДИДАТ (glm-билингв+реверстка+конвенции)** | 7.2 | 2.3 | сильный, без утечек |
| glm-5 **МОНО (= этап A, что читал владелец)** | 6.2 | 6.0 | **НИЗ — подтверждает «нечитаемо»** |
| черновик / grok-моно / grok-билингв / grok-безглосс | ~4.85.4 | ~57 | no-op семья, дно |
**Тройная триангуляция:** механика активности (§2.2) + LLM-судьи (§2.3) + ДВА флагмана слепо — **все** дают одно: **билингв-переработка ≫ моно/пассив**; текущий glm-моно — в нижнем тире; практич. выбор — **glm-билингв или КАНДИДАТ** (gemini лучшее ядро, но утечки).
**Ключевая находка флагманов (структура выборки):** 8 вариантов — это НЕ 8 переводов, а **~5 почти идентичных копий черновика** (A0/A1/A3/A4/A6 — косметика поверх draft) + **3 настоящие переработки** (A5/A2/CAND). Внутри «семьи» различия = шумовые порчи правки. → сравнивать надо «глубокая переработка vs лёгкая правка», и глубокая выигрывает во всех главах.
**Что флагманы добавили СВЕРХ моей диагностики (важно):**
1. **Никто не publishable** — лучшие = «крепкий сетевой перевод», не издательская проза. Инкрементальные фиксы дают «победить фан», НЕ «издательский уровень».
2. **Три вещи, чтобы победить фан-перевод** (у фана они есть, у нас нет): (а) **сквозной принудительный глоссарий**, (б) **европейская абзацная вёрстка + тире для речи**, (в) **сноски на аллюзии** (Су Ши, 采花=эвфемизм изнасилования — фан дал сноску, мы нет).
3. **Нужен output-санитайзер** (дёшево, ловит «мгновенную нечитаемость»): утёкшие заметки редактора, непереведённые слова («cultivation»), латиница в кириллице («vалуне»), диакритики («источа́ло»), битые словоформы («клёцок», «Первок предок», «Силённый»). Это класс дефектов ВНЕ моих гейтов — новая задача.
4. **Сквозные ошибки ЧЕРНОВИКА (в ВСЕХ вариантах, deepseek-корень):** 族长 глава клана ≠ 家老 старейшина (рушит иерархию); 本命蛊 = жизненный гу (не вид «гу Жизни»); 长生 = бессмертие (не «долголетие» — тема книги, 5/8 вариантов провалили); 失神 ≠ потерял сознание; 花酒行者 теряет 花 (= блуд, злодей-насильник); 青 = зелёный (не синий); 供奉/供养 инверсии. → лечит билингв-редактор ИЛИ более сильный черновик.
5. **Экспертный глоссарий:** оба флагмана дали детальные таблицы «оригинал→рекомендация→альтернативы» (в `ОЦЕНКА_ФЛАГМАНА.md` + чат) — прямой материал для пере-курации сида с владельцем. Точки согласия: врата→**апертура**, 真元 не «истинная энергия», 本命蛊→жизненный гу, 长生→бессмертие, 族长/家老 развести, 花酒行者 сохранить 花. Спорное (Первопредок vs Жэнь Цзу; культивация vs совершенствование; гу-мастер vs Мастер Гу) — решает владелец.
**Стратегический вывод (честно):** это сценарий **A+B** из strategic-развилки. Инкрементальные фиксы (билингв + глоссарий + вёрстка + санитайзер + сноски) реально сдвигают к «лучше фана / хороший сетевой перевод». Но «издательская проза» ими не достигается — для неё нужен более сильный базовый переводчик/подход (вопрос ЯДРА, пилот Ф2.5). Диагностика exp12 своё сделала: локализовала потерю и дала конфиг-кандидата; «потолок читаемости» — теперь вопрос выбора ядра, который надо поднимать в приоритете.
---
## 6. Стратегический разбор (по запросу владельца «какой план, это перебор моделей?») — escalation оркестратору
Мультиагентный разбор (4 угла: механизм/экономика/рынок/архитектура + синтез + адверсариальный ред-тим), заземлён на доки. Полный текст + ред-тим: `diag/reading/СТРАТЕГИЧЕСКИЙ_МЕМО.md`; перспективы: `СТРАТЕГИЯ_перспективы.md` (ВНЕ git). Это **продуктовая стратегия — зона оркестратора/владельца, не полигона**; фиксирую как escalation, решение не моё.
**Ядро:** «перебор моделей» — ложная рамка. Наибольший скачок дал режим-флип на ОДНОЙ модели + почти-бесплатные детерминированные механизмы (вёрстка/санитайзер/глоссарий/сноски) закрывают ~8090% разрыва «нечитаемо→лучше фана» при COGS ~$12/ранобэ. Наука: специализированная LitMT-8B ≈ фронтир на литпереводе (research/03) → боттлнек = пайплайн, не размер модели. Издательский уровень чистым LLM — фронтир-предел индустрии, не дефект стека; достижимо «в целом неотличимо, проигрывает в деталях» (и это уже продаётся).
**⚠ Ред-тим (честные оговорки, важно):** (1) эмпирика exp12 — ПРЕДВАРИТЕЛЬНА (одна книга, ~8 кейсов, LLM-судьи = циркулярность, прокси-метрики) → флип D1 и веса рычагов ГЕЙТИТЬ на реальном вебновелл-срезе, не D-блоком сейчас; (2) число COGS не сходится: $0.69→$1.52 это +117190%, а не «+1520% от флипа D1» — в тезис негласно вложены память+эскалация (уже Опция B); чинить арифметику до подписи; (3) глоссарий/память-состояния = САМЫЙ дорогой, человеко-кураторский, наименее доказанный слой (реестр рисков памяти) — не продавать как «дешёвый ров»; (4) рыночное окно = supply gap, НЕ доказанный WTP → нужна проба спроса (Rulate vs бесплатный фан) + оценка ToS/юр 18+.
**Рекомендация (мемо+ред-тим):** механизмы 25 (reflow, санитайзер, глоссарий-энфорс, сноски) катить как фикс пола читаемости НЕМЕДЛЕННО (правильно в любом сценарии); **флип D1 по умолчанию, ре-тезис COGS, ставку на серию-консистентность — за гейтом вебновелл-среза + пробы спроса**; Опция C (издательский) — premium-апсайд/B2B, НЕ блокер запуска.
**Владельцу на решение:** планка запуска (лучше-фана vs издательский) · готовность к честному COGS (~$1.52, верифицировать) · go/no-go на микро-пробу спроса. **Оркестратору:** ратификация (гейтированная) флипа D1, output-санитайзер в скоуп Ф1, разморозка reflow-вёрстки — D-блоком; полигон дефолт не трогает.