textmachine/docs/archive/prompts/POLYGON_SESSION_PROMPT_EXPLICIT_AND_MIRROR.md

12 KiB
Raw Permalink Blame History

Промт: полигон-сессия — 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).