textmachine/docs/archive/prompts/BACKEND_SESSION_PROMPT_PACKAGE3.md

9.4 KiB
Raw Permalink Blame History

Промт: бэкенд-сессия — пакет №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.mddocs/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 §Бэкенд: что сделано, находки, вопросы оркестратору/владельцу. Ничего не коммитить — внешнее ревью и лендинг у оркестратора.