@startuml pipeline title TextMachine — поток перевода книги (v2 2026-07-04, после ревью) skinparam wrapWidth 260 start :Импорт книги (txt / epub v1: текст глав по spine); :Сегментация: главы -> чанки 1-2k токенов (по абзацам, перекрытие = read-only контекст); :Analyst: чтение всей книги (map-reduce) -> book brief + translation brief пользователя (18+, слайдер Venuti, хонорифики, транскрипция) -> brief_hash в ключ TM; :Terminologist: автогенерация глоссария и style sheet ДО перевода (паттерн preparation из TransAgents); note right Analyst / Terminologist / судья / книжный QA — батчуемые стадии (-50%); черновик и редактура чанков — последовательные (STM-зависимость) end note while (Остались главы?) is (да) while (Остались чанки главы?) is (да) :Сборка контекста чанка: кэшируемый префикс (system + brief + style sheet + резюме книги/арки), после кэш-брейкпоинта — селективный глоссарий + STM + чанк; :NSFW-классификатор (локальный, 0-3); if (Уровень 3: несовершеннолетние?) then (да) :Чанк НЕ переводится: скип + флаг в отчёте (глава и книга продолжаются); else (нет) if (Уровень 2?) then (да) :Канал B: Grok, open-weights, локальная abliterated (Anthropic исключён структурно); else (0-1) :Канал A: DeepSeek V4 Flash; endif :Translator: черновик (C2/C3: N кандидатов разных семейств, T=0.6-1.0); if (Ядро C2/C3: селекция?) then (да) :Judge-селектор: попарное сравнение кандидатов (T=0, дешёвый прескрининг CometKiwi/MBR); else (C1) endif :Stylist/Editor: художественная редактура (сильнейшая ru-модель канала, диффы, узкий мандат); :QA-гейты без LLM: CJK-артефакты, глоссарная консистентность (approved, по decl), coverage-гейт v1 (сегментация, длины, refusal-blacklist); if (Гейт сработал?) then (да) if (Премиум-бюджет книги не исчерпан?) then (да) :Эскалация channel-aware: канал A - Opus / Gemini Pro, канал B - Grok 4.3 / Gemini safety-off; else (нет) :Флаг чанка в отчёт (ненулевой exit code); endif else (нет) endif :Чекпоинт чанка: сырой ответ -> store (сразу после settle), перевод -> TM (коммитится только прошедший гейты); endif endwhile (нет) :Граница главы: обновить резюме (глава/арка/книга), батч-подтверждение новых терминов (auto -> approved), series-bible-lite (род, матрица ты/вы), телеметрия главы; note right Фаза 2+: Line Editor (чек-лист Галь), Continuity Editor, анти-translationese пасс, CometKiwi-оценка, морфодетектор канцелярита end note endwhile (нет) :Книжный QA-проход: консистентность имён/терминов по всей книге, регрессия ты/вы (батчуемая стадия); :Экспорт txt/epub/TMX + отчёт (стоимость и cache-hit по стадиям, флаги, журнал творческого вклада); stop @enduml