textmachine/docs/POLYGON_SESSION_PROMPT_EXPLICIT_AND_MIRROR.md

50 lines
12 KiB
Markdown
Raw 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.

# Промт: полигон-сессия — 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` ЦЕЛИКОМ** (контракт D1D18). Твой мандат: §«Ратификации 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-ось, M0M3, 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-числа (8595) НЕ приняты — сырых выходов и судейских вердиктов в репо нет. Переснять пробу базового качества (35 фрагментов 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. **Корпус**: отбери 815 жёстких сцен (насилие/жестокость/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-глоссария. Собери **стартовый сид ~3060 записей** по первым 2030 главам: главные имена (方源/Фан Юань и т.д.), ранги/титулы гу-мастеров (仙/尊 и иерархия), рекуррентные термины (蛊 и производные). Формат — 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` с прогонами 3a3d и честными оговорками; сид-глоссарий передан бэкенду (счётчики в журнале); терсный precision-бакет закрыт цифрами; всё с провенансом. Запись в `docs/PROGRESS.md` §Полигон: итоги, цифры, вопросы владельцу/оркестратору. Порядок: 1 → (2 ∥ 3) → 4 → 5 (3 — приоритет: последний critical).