# Промт для сессии «Бэкенд» (Фаза 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` — фазы 0–3, критерии приёмки. Твоя работа — Фаза 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`: заведи секцию `## Бэкенд` и фиксируй там вехи (1–3 строки на веху), читай чужие секции перед крупными решениями.

## Шаг 0 — перевалидация (до первой строчки кода)

Прочитай обязательный минимум и **проверь решения на исполнимость свежим взглядом** — предыдущее ревью было документным, ты первый, кто смотрит глазами реализатора:

- внутренние противоречия Р1–Р10 ↔ план MVP ↔ диаграммы;
- реализуемость в Go конкретных обязательств Фазы 0–1 (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 с тегом `[НУЖНО РЕШЕНИЕ]` и жди владельца/оркестратора, не переписывай архитектурные доки сам. Валидацию можешь усилить воркфлоу-критиками (2–3 линзы), если сочтёшь нужным.

## Задание: Фаза 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-токены — там уже ловили недоучёт 30–44%), `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/` как версионируемые файлы-шаблоны; для Фазы 0–1 достаточно рабочих черновиков (Analyst/Terminologist/Translator/Editor), полноценную промпт-инженерию позже сделает отдельная сессия «Редакция» — не вылизывай.
- **Ключи** — из `backend/.env` (gitignored); у полигона свои в `eval/.env`. Реальные API-вызовы в тестах — за флагом, дешёвой моделью, с потолком $ (ledger обязан работать и в тестах).

## Вводные из полигона (уже добытая эмпирика — учитывай в коде)

- **Таймауты:** реальные чанки на локальной модели идут 63–278 с — 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, не блокируйся: параллельно делай то, что не зависит.
