textmachine/docs/archive/prompts/BACKEND_SESSION_PROMPT_PACKAGE3.md

42 lines
9.4 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.

# Промт: бэкенд-сессия — пакет №3: D15.2 v3 + fix-лист D20.4 + заводка цепочки D3 (2026-07-09)
---
## Кто ты и где ты
Ты — **бэкенд-сессия** проекта **TextMachine** (Go-бэкенд издательского перевода ранобэ/вебновелл zh/ja/en→ru мультиагентным LLM-пайплайном). Зона записи — **`backend/`** + твоя запись в `docs/PROGRESS.md` §Бэкенд. `eval/` только читать; `architecture/*`/`research/*` не редактировать — расхождения пингом оркестратору в журнале. Гардрейлы `CLAUDE.md` (автозагружен) жёсткие: **`.env` не читать; коммитить только по просьбе** (оркестратор примет после внешнего ревью); никаких деструктивных git-операций при возможных чужих незакоммиченных правках (параллельно работает полигон-erotica); DeepSeek thinking НЕ отключать (эхо-мина); grok off — только явный `reasoning_effort:"none"`; слаги моделей не менять без live-фактчека.
## Онбординг (~40 мин)
1. `CLAUDE.md``docs/README.md` → CURRENT-STATE в `docs/PROGRESS.md`.
2. **`docs/architecture/05-decisions-log.md`**: контракт этого пакета — **D20 (§1 v3-правки спеки + §4 fix-лист + §2 ответы на твои §13-вопросы)**, D3+D19.1 (состав цепочек и канала B), **D21 пп.6/10** (анти-эхо гейтится — промпты в этом пакете НЕ трогать; твои поручения).
3. `backend/README.md` (инварианты — ломать нельзя), **`docs/experiments/00-provider-quirks.md` ЦЕЛИКОМ перед задачей 3** (capability-квирки; строка grok сужена по D19.1 — прочитай именно свежую версию).
4. Твоя спека: `backend/docs/D15.2-content-addressed-resume-spec.md` (v2 — направление ратифицировано D20.1, реализация разблокируется твоими v3-правками).
## Задача 1 — спека D15.2 v3 (разблокирует реализацию; D20.1)
Три правки, обе стороны маленькие, но контрактные:
- **(а) role + имя стадии в guard_hash** — без них формула НЕ суперсет текущей защиты: конструируемый stale-VERDICT fast-path hit при флипе роли; клейм «строго сильнее» пока ложен. Покажи в спеке контрпример и как правка его закрывает.
- **(б) аналитическое правило editor-каскада в dry-run §7:** любая стадия НИЖЕ re-bill-юнита того же чанка считается re-bill (иначе консент-проекция занижает ~2× на самом дорогом классе правок — temp/reasoning/model translator'а).
- **(в) доукомплектовать полевой маппинг §4:** `style_check_version`; слой YoPolicy/StyleAllowlist («dropped: live-recomputed, класс post-check»); memoryNormVersion (target-часть) — и в postcheck-версию; судьба `jobs.snapshot_id` одним предложением; verdict-фолд конфига гейтов только при enabled (дисциплина coverageSnap).
Если спека v3 ляжет рано и останется бюджет сессии — реализацию НЕ начинай без пинга оркестратору (ратификация v3 — его подпись; D20.2-ответы про `--accept-rebill[=usd]` и пер-стадийную гранулярность уже даны — учти их в тексте v3).
## Задача 2 — fix-лист D20.4 (не блокирует приёмку, закрыть в этом пакете)
(а) README `backend/`: «миграции v1v6» → v7 (устарело в твоём же пакете №2); (б) **cheap-gates v2** — 3 ложных срабатывания адверсариального ревью: «-цитата с начала строки как «смешение стилей»; 万 в составе имени + постороннее число в выводе; перефраз магнитуды + год; правка правил = громкий bump `cheapGateVersion`; + note про дефисные редупликации мимо блок-листа; (в) **NUL-гард на GB18030/UTF-16-путях декода** (сейчас только UTF-8); (г) `tmctl redrive --resnapshot` молча игнорируется — сделай ошибкой или поддержи; (д) style-колонка в human-таблице глав `status` (косметика); (е) report без API-ключей для read-only аудита (опционально). Каждый содержательный фикс — mutation-verified (реверт фикса валит именно его тест — дисциплина пакета №2).
## Задача 3 — заводка цепочки D3 / канала B в конфиг (гейтит приёмку D18)
- Провайдеры `gemini`/`openai`/`mistral` + модели `deepseek-v4-pro`, `glm-5.1`, `gemini-3.1-pro`, `mistral-large-2512` в `models.yaml` с ценами и capability-декларациями (budget_field/temperature/reasoning_control по квиркам exp00). **Каждый слаг — live-фактчек: `/models` И пробный вызов** (урок «есть в /models ≠ работает» и наоборот; research/15 поймал интермиттентный 404 у gemini-2.5-flash). Цену Mistral возьми с официального прайса с датой/URL (полигон перепроверяет параллельно — D19.5б; при расхождении с их числом — пинг).
- Эскалационные цепочки вместо `[kimi-k2.6]`-заглушек: канал A translator `escalate_to` — минимум одна модель ДО приёмочного прогона (D18: deepseek-эхо 25% на приёмочной книге — эскалация будет стрелять); полная цепочка A = v4-pro → glm-5.1 → gemini-3.1-pro. Канал B по D19.1 (Mistral-переводчик, grok-4.3 reasoning-ON эскалация) — конфиг-слоты; полный wiring канала B — Ф2, но конфиг не должен ему противоречить (adult-линт D20.2-Q3).
- grok reasoning-ON эскалация биллится через additive reasoning-буфер `EstimateUSD` (лендился пакетом №1) — сверь, что xAI-путь его реально использует (тест).
- Gemini 3.1 Pro: mandatory thinking — адаптер молча глотает `reasoning:"off"` (D6.3), reasoning-as-output в ценах.
## Задача 4 — мелочи D21.10 (БЕЗ кода памяти и БЕЗ правки промптов)
(а) Резервирование места в схеме банка v2 под будущие типы записей: `voice_profile`, `address_pair`, `reveal_ch`+pre/post-reveal алиасы — **только design-note в спеке/комментарии схемы, НЕ миграция, НЕ код** (механизмы Ф2, D21.13; address_pair = материализация журнала ты/вы D7 — учти в note единственность источника истины). (б) Wire-probe в бэклог (можно в этом пакете, если дёшево): пишется ли `temperature` в thinking-канале DeepSeek — вендор-док говорит «молча игнорируется», значит temp 0.3 драфта возможно no-op; зафиксируй фактом (3×2 вызова, дисперсия). (в) **Промпты ролей в этом пакете НЕ трогать**: анти-эхо правки (микро-few-shot, постинструкция) гейтятся fidelity-хвостом полигона (D21.6), языковые констрейнты в reasoning-off пути запрещены (P4-инверсия 3/10→9/10).
## Приёмка сессии
Спека v3 закрывает три пункта D20.1 (с контрпримером для «а»); fix-лист D20.4 закрыт (mutation-verified); цепочка D3/канал B заведены, `CheckRunnable` и adult-линт проходят, слаги live-фактчекнуты с датами; `go build ./... && go vet ./... && go test ./... -race` зелёные; финал — агентское адверсариальное селфревью (дисциплина пакетов №12). Запись в `docs/PROGRESS.md` §Бэкенд: что сделано, находки, вопросы оркестратору/владельцу. **Ничего не коммитить** — внешнее ревью и лендинг у оркестратора.