# Промт: ресёрч-сессия «Голос и состояние» — контекст-инжиниринг сверх терминологии (2026-07-09)

---

## Кто ты и зачем ты

Ты — **исследовательская сессия** проекта **TextMachine** (Go-бэкенд издательского перевода ранобэ/вебновелл zh/ja/en→ru мультиагентным LLM-пайплайном), по образцу сессий «Валидация банка памяти» (`docs/research/13`) и «Адаптивная память» (`docs/research/14`): мультиагентный веб-ресёрч + адверсариальная верификация каждого клейма + дешёвые живые пробы. Твоя зона записи: **`docs/research/15-voice-and-state.md`** + своя секция в `docs/PROGRESS.md` («## Голос и состояние», после §Память). `architecture/*`, `backend/`, `eval/` — НЕ редактировать: механизмы и расхождения оформляй пингами оркестратору/бэкенду/полигону в журнале. Пробы — в scratchpad-директории сессии; полезные скрипты предлагай полигону пингом, не клади в `eval/` сам. **Ничего не коммить** — оркестратор примет и закоммитит после ревью.

Гардрейлы из `CLAUDE.md` (автозагружен) жёсткие: `.env` не читать; уровень 3 (несовершеннолетние в сексуальном контексте) — не обрабатывать; текст книги владельца и производные — вне git; никаких деструктивных git-операций.

## Мотивация (постановка владельца, 09.07)

Запрос в LLM-API — **стейтлесс**: модель до промта не знает ни книги, ни сцены, ни персонажей; дообучения нет; плюс модели галлюцинируют. Вся архитектура TextMachine — «протез состояния»: кэшируемый префикс (system + бриф + style sheet + резюме) → селективная инъекция (глоссарий + STM) → чанк. **Слоты под состояние есть все; заполнена — терминологическая треть** (детерминированный банк имён/терминов с пост-чеком). Не застроено: эпистемическое состояние (резюме, «что читатель уже знает»), состояние сцены («кто где, с кем, что скрывает»), **голоса персонажей** — в стратревью честно помечены «болями без механизма». Твоя работа — застроить эту землю знанием: что доказано, что фольклор, что никто не делал.

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

1. `CLAUDE.md` → `docs/README.md` → CURRENT-STATE в `docs/PROGRESS.md`.
2. `docs/architecture/05-decisions-log.md` (контракт D1–D18) + `07-strategic-review.md` §4–5 (что подтверждено наукой-2026, где боли без механизма).
3. **`docs/research/12-common-failures.md` §3–4, §11 (голоса/сглаживание/модальность) и `12-architecture-as-antipattern.md` §4–7, §15 (голос, book bible, память)** — две внешние бумаги, вокруг которых постановка; их клеймы без источников НЕ считать фактами (провенанс-шапки читай).
4. `docs/architecture/04-unhappy-paths.md` (карта отказов; Annotator «питает 8+ режимов»), `06-memory-risk-registry.md` (как выглядит наш формат «сценарий→механизм→слой→фаза»), `docs/research/07-translation-methodology.md` (издательская методология), `13`/`14` (образец дисциплины вердиктов).
5. Код слотов (только читать): `backend/internal/pipeline/render.go` (сборка промпта, место инъекции), `memory.go` (селективный Select — твои voice-exemplars поедут этим же механизмом), `backend/prompts/*.md` (текущие промпты ролей), `backend/configs/pipeline-c1.yaml` (фактические temperature/reasoning стадий — сверь, не бери по памяти).

Уже установлено проектом (НЕ передоказывать, экономь бюджет): простой general-промпт редактора > error-taxonomy-промптов (arXiv:2605.13368); step-by-step CoT переводу не помогает, reasoning в прямом переводе — плато/вред (2506.04521, 2510.06471); in-context демонстрации консистентность не поднимают (research/14 M1, стиль не мерен — рука пилота); kNN-MT/LoRA на флагманах физически блокированы (research/14); терминологическая инъекция работает (WMT25).

## Шесть направлений

### 1. Голос персонажа (центр мандата)
SOTA speaker-aware / persona-consistent перевода и длинной генерации; **проверь клейм antipattern-дока «voice exemplars > прилагательных-дескрипторов»** (у него нет источника — найди или опровергни); SAMAS (2602.19840) и стилевые спектры; практики сообществ, которые решают стейтлесс-голос ЕЖЕДНЕВНО: **SillyTavern character cards / NovelAI / AI Dungeon / долгие RP** (какие форматы карточек персонажей реально держат голос на дистанции — это готовая полевая эмпирика, которую академия не видит) и **game localization** (голосовые глоссарии персонажей в игровой локализации — индустриальный стандарт, чему учиться). Дизайн-выход: схема voice-профиля в нашем банке (расширение колонки `speech` → exemplars: сколько реплик, какие оси — обращения/лексикон/синтаксис), правило инъекции (каждое появление персонажа? только диалоговые чанки?), цена в токенах, **дешёвый детерминированный детектор отклонения голоса** (маркеры per speaker: ты/вы, просторечие/канцелярит, характерные словечки — по духу наших флаггеров).

### 2. Состояние сцены и знание читателя
«Модель не знает, где она»: минимальная достаточная схема scene-state (кто в сцене / где / время / отношения / что скрыто) и epistemic-state («что читатель уже знает» — против случайных спойлеров формулировкой и неверной определённости референции); прайор-арт: interactive fiction, агентные memory-системы, лорбуки; **скоуп Annotator-pre-pass для Ф2** — что аннотировать обязательно, что мусор (его цена входит в COGS каждой главы); креатив-вопрос: dramatic irony / foreshadowing registry — делал ли кто-то, стоит ли нам (наши спойлер-окна — половина этого механизма).

### 3. Промптинг литперевода (V1-буллеты владельца — затравки, не рамки)
Что ВАЛИДИРОВАНО сверх уже известного нам: гайды провайдеров (Anthropic/OpenAI/Google/DeepSeek/xAI) — что из них применимо к переводу с инъекциями; **формат и позиция инъецируемых блоков** (таблица vs строки vs теги; инструкции в начале vs конце; разбавление контекста при больших инъекциях — lost-in-middle на НАШИХ размерах промпта, а не 100k); анти-галлюцинационные приёмы (негативные констрейнты «не добавляй фактов», uncertainty-каналы NO_CHANGE/AMBIGUOUS из antipattern-дока — какова их цена в качестве); «переводи как будто прочитал всю книгу» (V1.13): двухпроходность в одном вызове («сначала прочти и выпиши опоры, потом переводи») — работает или жжёт токены.

**3-bis. Эхо-мода на плотном CJK (приоритетный под-вопрос владельца, 09.07).** Замерено проектом: модель вместо перевода возвращает исходный китайский; усилители — плотность CJK, знакомость текста из претрейна, ВЫКЛЮЧЕННЫЙ reasoning (DeepSeek thinking-off = эхо-мина; grok-4.3 reasoning-none — 40% эха на 蛊真人, reasoning-on — 0/10; DeepSeek 25% даже при thinking-ON на реальной вебновелле; Mistral 0/10). Рабочая гипотеза — копирующий аттрактор (induction heads) побеждает инструкцию, thinking работает ре-анкорингом задачи. Исследуй: (а) что известно науке/сообществам про copy-collapse в переводе и его митигации; (б) **промпт-митигции**: инструкция ПОСЛЕ текста, префилл первых токенов ответа целевым языком (DeepSeek beta prefix-completion; какие ещё провайдеры умеют assistant-prefix?), микро-few-shot формата, языковой констрейнт; (в) ПРОБА в бюджете: на эхо-провоцирующих чанках 蛊真人 (deepseek thinking-ON и grok reasoning-none) A/B промпт-митигций — снижает ли частоту эха, какой ценой. Рамка: промпт-митигция = снижение частоты (экономия на эскалациях), НЕ замена детект+эскалации — не рекомендовать ослабление echo-гейта.

### 4. Параметры запроса (V1.8)
Temperature/top_p/penalties для художественного перевода: свежая эмпирика (не фольклор); per-stage логика (draft-верность vs editor-стиль — наши фактические значения сверь в конфиге); есть ли доказанная причина что-то менять; дизайн дешёвого параметр-свипа как арма пилота/полигон-эксперимента (готовое ТЗ полигону).

### 5. Прайор-арт наших «уникальных» вещей (моё сомнение — проверь, что мы реально первые)
Стратревью утверждает «аналогов не найдено» для: спойлер-окон since/until, детерминированного no-LLM горячего пути, (будущих) scene-state инъекции и voice-exemplars-в-переводе. Копни ГЛУБЖЕ академии: RP-тулинг, фан-переводческий стек, CAT/игровая локализация, патенты. Если найдёшь прайор-арт — это НЕ провал, а учебник: что у них работает/сломано. Если не найдёшь — зафиксируй границы поиска честно («не найдено при таких-то запросах», не «не существует»).

### 6. Креатив (полная свобода, всё помечать как гипотезы)
Что ЕЩЁ может инъектить протез состояния, чего не делает никто; «переводческие тулзы» агентного бэкенда (бриф п.32 — владелец сам не знает, какие); нестандартные/«костыльные» решения в духе V1.35 («всё новое — хорошо забытое старое»: доцифровая переводческая практика, карточки персонажей у живых переводчиков). Правило креатива: каждая идея обязана указывать **слот в существующей архитектуре** (префикс / селективная инъекция / детерминированный флаггер / арм пилота) — идеи «перестроить архитектуру» не принимаются без доказательства, что слотов не хватает.

## Живые пробы (разрешены, дисциплина research/14)

Бюджет **≤$4 суммарно** (deepseek/grok/gemini/mistral; ключи скрипты читают из `eval/.env` сами — сам файл не открывай). Материал: `/home/ubuntu/books/gu-zhenren/guzhenren-gb18030.txt` (GB18030 — конвертируй iconv'ом; выбирай **SFW-чанки** с контрастными голосами персонажей — их там много; текст и производные вне git). Кандидаты проб (по усмотрению, не все): voice-exemplar инъекция A/B (2–3 персонажа, держится ли голос с exemplars vs без — слепая мини-оценка), формат инъекции (таблица vs строки), двухпроходность-в-одном-вызове. Пробы — индикатив (малый N), помечай честно; их скрипты — в scratchpad. Ollama-модель полигона не выселять.

## Метод и БАР

Проектная дисциплина: фан-аут по направлениям → **адверсариальная верификация каждого не-тривиального клейма по первоисточникам (refute-by-default)** → completeness-критик («какая модальность поиска не прогнана?»). Каждый факт — URL+дата, препринт ≠ peer-review, вендор-клейм ≠ замер. Вердикты по образцу research/13/14: CONFIRMED / PLAUSIBLE / REFUTED + «Честные слабые места» отдельной секцией.
**БАР рекомендации:** {механизм → слот архитектуры → ожидаемая цена COGS/токены → как мерить (арм пилота / полигон-эксп / детерминированный флаггер) → фаза}. Рекомендация без пути измерения — не рекомендация. Помни экономику: редактор уже ≈90% стоимости; всё, что раздувает промпт каждого чанка, считай в долларах (exp08-модель).

## Deliverable и приёмка

1. `docs/research/15-voice-and-state.md` — дата/метод/охват, шесть направлений с вердиктами и источниками, таблица «боль → механизм → слот → цена → как мерить → фаза» (формат 04-unhappy/06), результаты проб с провенансом, «Честные слабые места».
2. Пинги в PROGRESS (своя секция): **оркестратору** — что ратифицировать (механизмы в реестр/план, новые армы пилота, скоуп Annotator Ф2); **полигону** — готовые ТЗ экспериментов (параметр-свип, voice-A/B); **бэкенду** — требования к схеме (voice-профиль, scene-state поля) на будущую веху, НЕ код сейчас.
3. Ничего не закоммичено; зоны чужие не тронуты; следы проб убраны.
