textmachine/docs/prompts/done/BACKEND_SESSION_PROMPT.md

51 lines
9.9 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.

# Промт для сессии «Бэкенд» (Фаза 0 → Фаза 1)
Скопируй текст ниже в новую сессию Claude Code в каталоге `/home/ubuntu/projects/textmachine`.
---
Ты — инженерная сессия проекта TextMachine: бэкенд AI-перевода крупных художественных текстов (ранобэ/вебновеллы, zh/ja/en→ru) мультиагентным пайплайном. Твоя зона владения — каталог `backend/` (создай); архитектурная документация и исследования уже готовы и прошли адверсариальное ревью — ты их исполняешь, но сначала перевалидируешь (шаг 0).
## Контекст и порядок чтения (обязательный минимум)
1. `docs/architecture/01-decisions.md` — 10 решений v2 (язык, ядро пайплайна, банк памяти, модельный стек/NSFW-роутинг, экономика по контурам ключей, durable jobs, телеметрия, право, прайсинг, риски).
2. `docs/architecture/02-mvp-plan.md` — фазы 03, критерии приёмки. Твоя работа — Фаза 0, затем Фаза 1.
3. `docs/research/10-vojo-ai-bot-review.md` — разбор донорской кодовой базы `/home/ubuntu/projects/vojo/apps/ai-bot` (Go, код владельца — копировать можно и нужно): что портировать, что переписать, известные ловушки.
4. `docs/architecture/components.puml`, `pipeline.puml` — структура компонентов и поток перевода (v2). Диаграммы владелец смотрит PlantUML-расширением VS Code — **картинки не рендерить**.
5. `docs/PROGRESS.md` — журнал всех сессий. Секция «Полигон» — эмпирика от параллельной сессии: там уже есть критичные для тебя факты (см. «Вводные из полигона» ниже).
6. Остальные `docs/research/*` — по мере надобности (это источник истины при спорах с решениями).
Проект ведут три сессии: ты (`backend/`), «Полигон» (`eval/`, `docs/experiments/` — не трогай), сессия-оркестратор (доки, ревью). Координация — через `docs/PROGRESS.md`: заведи секцию `## Бэкенд` и фиксируй там вехи (13 строки на веху), читай чужие секции перед крупными решениями.
## Шаг 0 — перевалидация (до первой строчки кода)
Прочитай обязательный минимум и **проверь решения на исполнимость свежим взглядом** — предыдущее ревью было документным, ты первый, кто смотрит глазами реализатора:
- внутренние противоречия Р1Р10 ↔ план MVP ↔ диаграммы;
- реализуемость в Go конкретных обязательств Фазы 01 (chunk-чекпоинты, TM-ключи, coverage-гейт, cache-раскладка промпта);
- сверка с донорским кодом vojo: подтверди на реальных файлах то, что research/10 обещает портируемым (llm.go, httpllm.go, failover.go, pricing.go, telemetry.go, store.go).
Вердикт запиши в `docs/architecture/03-implementation-notes.md`: что подтверждаешь, что предлагаешь изменить и почему. Мелкие правки реализации — просто фиксируй там; противоречие уровня решений (Р1Р10) — пометь в PROGRESS с тегом `[НУЖНО РЕШЕНИЕ]` и жди владельца/оркестратора, не переписывай архитектурные доки сам. Валидацию можешь усилить воркфлоу-критиками (23 линзы), если сочтёшь нужным.
## Задание: Фаза 0 (каркас), затем Фаза 1 (книга целиком)
Скоуп и приёмка — в `02-mvp-plan.md`, здесь только уточнения реализации:
- **Первые шаги:** `git init` в корне проекта (репо ещё нет; .gitignore: `eval/.venv`, `eval/data`, `*.env`, артефакты сборки), установка Go toolchain (в системе его нет), скелет `backend/` (свой go.mod; предлагаемая раскладка: `cmd/tmctl/`, `internal/llm|ledger|obs|store|pipeline|memory/`, `configs/`, `prompts/`).
- **Портирование из vojo** — копированием файлов с адаптацией в пакеты, не импортом (там почти всё в package main). Сохраняй дисциплину донора: биллинг по usage из ответа API (включая reasoning-токены — там уже ловили недоучёт 3044%), `LLMResponse.Model` = фактически ответившая модель, reserve/settle, request_log, fail-fast конфиг, table-driven тесты.
- **Новый код Фазы 0:** нативный Anthropic-адаптер (Messages API, `cache_control`; сверь текущую семантику биллинга thinking-токенов и cache-write онлайн), chunk-чекпоинты в store (сырой ответ персистится сразу после settle; kill -9 теряет ≤1 вызов — обязательный тест), translation brief как конфиг с `brief_hash`, YAML-конфиг ядра C1 + скелет C2 (граница «конфиг vs код раннера» — по Р2: циклы/ветвления/эскалация зашиты в раннер, конфиг задаёт состав стадий/модели/версии промптов/пороги).
- **Модели и цены — только в `configs/models.yaml`** с датой проверки. Дедлайн: `deepseek-chat` отключается 24.07.2026 — сразу целься в `deepseek-v4-flash`.
- **Промпты ролей** — в `prompts/` как версионируемые файлы-шаблоны; для Фазы 01 достаточно рабочих черновиков (Analyst/Terminologist/Translator/Editor), полноценную промпт-инженерию позже сделает отдельная сессия «Редакция» — не вылизывай.
- **Ключи** — из `backend/.env` (gitignored); у полигона свои в `eval/.env`. Реальные API-вызовы в тестах — за флагом, дешёвой моделью, с потолком $ (ledger обязан работать и в тестах).
## Вводные из полигона (уже добытая эмпирика — учитывай в коде)
- **Таймауты:** реальные чанки на локальной модели идут 63278 с — 45-секундный профиль vojo непригоден, нужен свой профиль per-провайдер/per-роль.
- **Токен-калибровка** (`docs/experiments/01`): русский выход для zh→ru ≈ 1.9× входа в токенах — влияет на дефолты max_tokens, оценщик стоимости и валидатор длин; коридоры len_ratio для coverage-гейта бери из эксперимента 01/02 (полигон сузит их после прогонов).
- **Стенд владельца** (память `textmachine-local-stand`): WSL2, GTX 1070 8GB; **в env прописан webshare-прокси, а `NO_PROXY=<local>` — виндовая нотация: любой запрос из Go на 127.0.0.1 уйдёт на прокси и получит 403**. В HTTP-клиенте локального провайдера явно обходи прокси для localhost. Боевой env ollama и скорости — там же.
## Финал каждой фазы — агентное селфревью
По завершении Фазы 0 (и отдельно Фазы 1): прогони адверсариальное ревью кода воркфлоу-критиками по линзам «архитектура и соответствие решениям v2», «корректность и happy paths (включая деньги: reserve/settle, недоучёт usage)», «чистота/идиоматичность Go», «устойчивость к сбоям (обрыв провайдера посреди главы, мусорный ответ, рестарт)» + прогон `/code-review`. Найденное — исправить, вердикт и остаток техдолга — в PROGRESS (`## Бэкенд`). Приёмку фазы из 02-mvp-plan продемонстрируй исполняемо (команды + вывод), а не декларативно.
Правила: не трогай `docs/research/*` и `docs/architecture/01|02` (правки — через `03-implementation-notes.md` и PROGRESS), не публикуй ничего наружу, коммить осмысленными шагами. Вопросы, требующие владельца (ключи, спорные решения), — списком в PROGRESS, не блокируйся: параллельно делай то, что не зависит.