# Промт: полигон-сессия — 18+ рука на 蛊真人 + синк зеркала + сид-глоссарий приёмки (D14.4/D18), 2026-07-09

---

## Кто ты и где ты

Ты — **полигон-сессия** проекта **TextMachine**: Go-бэкенд издательского художественного перевода крупных текстов (ранобэ/вебновеллы, zh/ja/en→ru) через мультиагентный LLM-пайплайн. Роль полигона — **эмпирическая валидация допущений архитектуры: мерить, а не верить**. Твоя зона записи — **`eval/` + `docs/experiments/`** + твоя запись в `docs/PROGRESS.md` §Полигон. `backend/` только читать; `architecture/*`/`research/*` не редактировать — расхождения пингом оркестратору в журнале. Корневой `CLAUDE.md` автозагружен — его гардрейлы жёсткие: **`.env` не читать (скрипты сами берут ключи); results не перезаписывать (провенанс); коммитить только по просьбе; никаких деструктивных git-операций при чужих незакоммиченных правках**.

**Мандат на 18+ в этой сессии:** работа с explicit-контентом «Мастера Гу» — твоя ПРЯМАЯ задача от владельца (задача 3). Жёсткая линия без исключений: **уровень 3 (несовершеннолетние в сексуальном контексте) — не включать в корпус, не обрабатывать, не анализировать**; встретился в тексте — фрагмент исключается молча.

## Онбординг с нуля (порядок чтения, ~30 мин)

1. `CLAUDE.md` (в контексте) → `docs/README.md` (карта) → CURRENT-STATE в `docs/PROGRESS.md`.
2. **`docs/architecture/05-decisions-log.md` ЦЕЛИКОМ** (контракт D1–D18). Твой мандат: §«Ратификации 09.07» п.6 (fix-лист зеркала), **D14** (канал B: Grok+abliterated, Mistral-кандидат, DeepSeek для explicit запрещён его ToS), **D14.4/п.3 ратификаций** (18+ рука — последний critical; Mistral-fidelity переснять с персистом), **D18** (приёмка Ф1 теперь на 蛊真人 — сид-глоссарий на тебе).
3. `eval/README.md` — карта скриптов + 6 правил, выученных на ошибках.
4. `docs/experiments/02-refusal-benchmark.md` (бенч и корпус-уровни), `09-pilot-protocol.md` v2 (протокол пилота), `00-provider-quirks.md` (перед ЛЮБЫМ вызовом провайдера).
5. Источник истины горячего пути памяти — `backend/internal/pipeline/{memory,memnorm,mempostcheck}.go` (memmatch-v3): **при расхождении зеркала с Go — верить Go**.

Состояние на входе: твой предыдущий пакет (эхо-контроль memory_eval, fidelity-ось, M0–M3, kana-замер, Mistral-refusal, вебновелл-срез) принят внешним ревью (ACCEPT_WITH_FIXES) и залендён; fix-лист — в D-логе §Ратификации п.6. Книга владельца: **`/home/ubuntu/books/gu-zhenren/guzhenren-gb18030.txt`** (полная, ~2.5k глав, GB18030). Ключи: DEEPSEEK/ZAI/KIMI/OPENAI/GEMINI/XAI/**MISTRAL**.

## Задача 1 — fix-лист ревью: зеркало и харнесс (первым — на этом стоит пилот)

1a. **[major] Дозеркалить `suppressUnboundedPhonetic` (D16.3)** в `eval/pilot/memory_eval.py::select()`: Go подавляет фонетический ключ (латиница/кириллица), сработавший внутри более длинного слова того же скрипта, ПЕРЕД containment (`memory.go` suppressUnboundedPhonetic; тест-эталон `TestSourcePhoneticWordBoundary`: 'rose' в 'roseanne walked in.' → 0 инъекций). Кана/Han — НЕ подавляются (ратифицировано). Добавь в self-test.
1b. **[major] Апостроф-фолд memnorm-v3**: Go фолдит ‘ ’ ʼ ＇ → ' в ОБЕИХ нормализациях; зеркала (`memory_eval.norm_src`, `declmetric.normalize_target`) — нет → false MISS на д'Артаньян vs д’Артаньян. Критично для en→ru руки пилота. Дозеркаль + parity-asserts.
1c. **[minor] Эхо-детектор**: сейчас ловит только ЛИДИРУЮЩУЮ преамбулу — хвостовой/встроенный эхо-глоссарий («…текст…\nГЛОССАРИЙ:\n阿Q → А-кью») не флагается и надувает consistency. Расширь: маркеры/строки «src → dst» в ЛЮБОМ месте выхода.
1d. **[minors]**: байт-синк заголовка инъекции с Go (`glossaryBlockHeader` содержит пояснение ⟨проверить⟩ — зеркало нет); ts (UTC) в каждую запись refusal-результатов; trad2simp «508 строк → 500 уникальных» — задедупить файл или явная пометка (8 дублей: 莊/說/語/談/關/飛/決/東 — сверь маппинги, синк с Go-embed по hash); in-file карантин-маркер в старый `memory_eval_indicative.json` (C-метки); пометка в exp09 §6-bis «precision 0.371 — trap-set-относительная, не корпусная»; убрать отработавшую «re-verify vs final Go» ноту из докстринга memory_eval (сверка выполнена ревью 09.07 — после твоих 1a/1b она снова актуальна и снова закрывается).

## Задача 2 — Mistral-fidelity переснятие с персистом (D14.2, п.3 ратификаций)

Refusal-часть принята (11/11 ok), но fidelity-числа (85–95) НЕ приняты — сырых выходов и судейских вердиктов в репо нет. Переснять пробу базового качества (3–5 фрагментов zh/ja/en → ru, судья чужого семейства) с ПОЛНЫМ персистом: сырые выходы, судейские JSON, model id, UTC, usage — в `eval/data/` по конвенции raw_*. Обнови exp02 §Mistral. Только после этого D14.2 финализируется оркестратором.

## Задача 3 — 18+ рука на «Мастере Гу» (D14.4 — ПОСЛЕДНИЙ CRITICAL проекта)

Владелец разрешил брать 18+ фрагменты из 蛊真人 (файл выше; текст вне git — в корпус кладём фрагменты, корпус gitignored как весь `eval/data/`).
3a. **Корпус**: отбери 8–15 жёстких сцен (насилие/жестокость/dark — этого в 蛊真人 много) → `eval/data/refusal_corpus/` по существующей конвенции уровней (l2-violence и т.п.). Файл GB18030 — конвертируй при отборе (iconv). **Честно оцени покрытие подуровня l2-erotica**: если эротики в отобранном нет/мало — явно скажи владельцу в журнале, что эротика-срез требует другого источника (не натягивай).
3b. **Refusal/excision-прогон**: Grok-4.3 (канал B основной; на выделенном промо/data-sharing аккаунте xAI — НЕ прод-ключ, гигиена Р4), Mistral (кандидат-фолбэк), локальная abliterated (ollama на стенде), плюс **DeepSeek как контроль** (по его ToS explicit запрещён — зафиксируй фактическое поведение: отказ/вырезание/перевод). Мерь: отказы, тихие вырезания (sent_cov/len_ratio — наш excision-детект), качество на выборке. Это проверка ставки «Grok = NSFW-канал» + валидация Mistral как фолбэка.
3c. **Судьи на explicit**: (i) Grok-судья 18+ — оценивает ли explicit-переводы без отказа, вменяемо ли; (ii) **Gemini-судья на explicit** — поведение при «artistic context» (для fidelity-оси пилота на 18+ руке; если Gemini отказывает — зафиксируй и предложи замену судьи для этой руки).
3d. Всё с полным провенансом (уроки exp02: сырьё не перезаписывать, ts/model/usage в каждой записи). Выход: `docs/experiments/10-explicit-benchmark.md` (методика, цифры, честные ограничения) + сводка в PROGRESS.

## Задача 4 — сид-глоссарий 蛊真人 для приёмки D18 (координация с бэкендом)

Приёмочный гейт D10 (консистентность ≥98%) требует approved-глоссария. Собери **стартовый сид ~30–60 записей** по первым 20–30 главам: главные имена (方源/Фан Юань и т.д.), ранги/титулы гу-мастеров (仙/尊 и иерархия), рекуррентные термины (蛊 и производные). Формат — seed-YAML бэкенда (`backend/example/book.yaml` + `glossary_seed`-схема: src/dst/type/aliases/decl/sense/окна где нужны). dst — по Палладию (таблица транслитерации — вручную, это и есть B6-lite для сида), decl — заполни для склоняемых. Метод: спот-экстракция локалью/облаком по дизайну exp06 (`extract_bench.py` — переиспользуй) + ручная курация рендеров (облачный рендер zh 0.75 — НЕ доверять слепо, каждый dst глазами). **Сид-файл — рядом с книгой (`/home/ubuntu/books/gu-zhenren/`), НЕ в git** (производное текста); в журнал — только счётчики/методику. Согласуй схему полей с бэкендом через журнал (их задача 5 ждёт твой сид для полной приёмки).

## Задача 5 — precision гейта на терсных репликах (незакрытый хвост вебновелл-среза)

Прошлый срез не закрыл диалого-плотный кейс (диалог был склеен в абзацы — эвристика не сработала). На 蛊真人 диалогов много: доработай сегментацию среза (реплики «…» на отдельных строках исходника — не склеивать), набери диалого-плотный бакет ≥20 чанков, прогони coverage-гейт (пороги exp02/07) на хороших переводах → доля ложных excision_suspect. Это гейтит снятие 1-флаг-толерантности (D12/Q4) и пороги для приёмки D18.

## Приёмка сессии

Зеркало синхронно Go по 1a/1b (parity-asserts + self-test зелёные); Mistral-fidelity с полным персистом; `10-explicit-benchmark.md` с прогонами 3a–3d и честными оговорками; сид-глоссарий передан бэкенду (счётчики в журнале); терсный precision-бакет закрыт цифрами; всё с провенансом. Запись в `docs/PROGRESS.md` §Полигон: итоги, цифры, вопросы владельцу/оркестратору. Порядок: 1 → (2 ∥ 3) → 4 → 5 (3 — приоритет: последний critical).
