9.9 KiB
Промт для сессии «Бэкенд» (Фаза 0 → Фаза 1)
Скопируй текст ниже в новую сессию Claude Code в каталоге /home/ubuntu/projects/textmachine.
Ты — инженерная сессия проекта TextMachine: бэкенд AI-перевода крупных художественных текстов (ранобэ/вебновеллы, zh/ja/en→ru) мультиагентным пайплайном. Твоя зона владения — каталог backend/ (создай); архитектурная документация и исследования уже готовы и прошли адверсариальное ревью — ты их исполняешь, но сначала перевалидируешь (шаг 0).
Контекст и порядок чтения (обязательный минимум)
docs/architecture/01-decisions.md— 10 решений v2 (язык, ядро пайплайна, банк памяти, модельный стек/NSFW-роутинг, экономика по контурам ключей, durable jobs, телеметрия, право, прайсинг, риски).docs/architecture/02-mvp-plan.md— фазы 0–3, критерии приёмки. Твоя работа — Фаза 0, затем Фаза 1.docs/research/10-vojo-ai-bot-review.md— разбор донорской кодовой базы/home/ubuntu/projects/vojo/apps/ai-bot(Go, код владельца — копировать можно и нужно): что портировать, что переписать, известные ловушки.docs/architecture/components.puml,pipeline.puml— структура компонентов и поток перевода (v2). Диаграммы владелец смотрит PlantUML-расширением VS Code — картинки не рендерить.docs/PROGRESS.md— журнал всех сессий. Секция «Полигон» — эмпирика от параллельной сессии: там уже есть критичные для тебя факты (см. «Вводные из полигона» ниже).- Остальные
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, не блокируйся: параллельно делай то, что не зависит.