# research/22 — Доменные харнессы перевода: конкуренты vs наш бэкенд > **РЕВЬЮ-ШАПКА ОРКЕСТРАТОРА (лендинг 24.07.2026).** Отчёт прошёл ДВА рубежа самой сессии (19-агентный по чужому коду + 9-агентный адверсариал собственного синтеза, поймавший её же факт-ошибки — ревизия 2 их вшила). Мой спот-чек при лендинге: 5/5 несущих клеймов сошлись байт-в-байт (наши `detectCJKLeak sanitizer.go:188/411` · `cheapgate-v4 cheapgates.go:55` · `ledger Reserve/SettleWithCheckpoint` — существуют; их AiNiee `ProofreadTask` typed-error→адресный proofread и GalTransl `GenDic` greedy set-cover — ровно как заявлено). **Флаг «D39.7-коллизия» разрешён: коллизии нет** — «риг-стандарт D39.7» в промтах/доках означает стандарт, УСТАНОВЛЕННЫЙ решением D39.7 (exp15: per-vote/полные окна/floor), а не отдельный D-номер рига; подпись в `eval/rerun2_judge/judge.py` корректна как ссылка на стандарт. Рекомендации §2 — кандидаты, абсорбция по решениям в PROGRESS/D-логе; оценка важности и маппинг в планы — отчёт оркестратора владельцу 24.07. > **→ ПОСТРОЕНО (25.07, оркестратор №7):** разрыв Q6 «gating+repair» закрыт паком-16 (D39.24, `2d7f589`) — слой-3 diff-редактор по прецеденту AiNiee ProofreadTask: позиционная детекция `checks.RepairCandidates` (`internal/checks/repair.go`) + read-only скан остатка + машинерия ремонта за `enabled:false`; включение платного пути = решение владельца по замеру остатка; промпты ремонта — `prompts/<пара>/repair/<класс>.md`. > **Ресёрч-сессия, 2026-07-24. Роль — ресёрч ($0: ни одного вызова моделей, чужие тулзы не > запускались, ключи не тронуты; `backend/` read-only). НЕ закоммичено — лендит оркестратор.** > **РЕВИЗИЯ 2 (после второго адверсариального рубежа, см. §0).** Сиквел research/21 (транспорт > агент-CLI) И **углублённый file:line-разбор конкурентов, УЖЕ обозренных на маркет-уровне в > `research/02-competitors` и на уровне глоссарий-кода в `research/05-memory-glossary`** (этот > отчёт — их продолжение, не первичное открытие; ценность = file:line-глубина + Q6-чекер-таксономия > + новички + датированный Q7-корпус, НЕ вердикт — его 02/05/15 уже вынесли). ## §0. Дисциплина верификации (два рубежа, мандат 12.07) **Рубеж 1 — атомы (клеймы о чужом коде).** Мульти-агентный воркфлоу (19 агентов, 0 ошибок): по ридеру на репо → адверсариальный верификатор (author≠reviewer, открыть каждый несущий `file:line`). Код-верифицированных несущих клеймов **~88** (AiNiee 22 · GalTransl 15 · Luna 14 · TransAgents 14 · bbm 12 · translation-agent 12): **CONFIRMED все кроме 4 IMPRECISE** (сдвиг строки-якоря, клейм верен), **0 REFUTED**. README≠код поймал 2 вендор-овер-клейма (bbm «summary», TransAgents «beyond human»). **Рубеж 2 — синтез (сам этот отчёт).** 9 агентов сквозняком по всей архитектуре (01–11), всему research (01–21), всем backend-пакетам, eval + критик полноты. **28 MAJOR / 23 MINOR находки — ревизия 2 их впитала.** Крупнейшие правки (все сверены мной по HEAD `b8a7863`): - **Факт-ошибка (была):** пак-13 и пак-12 **ЗАЛЕНДЕНЫ** (`2f91b04`, `7fe0a5b`), пак-14 в работе. Первая версия писала «пак-13 строит/UNBUILT/закрывает разрыв» — неверно. Чекеры percent/latin/ broken-word ПОСТРОЕНЫ (`cheapgates.go:55` `cheapgate-v4-percent-latin-brokenword`), но **observability-only** — разрыв с их gating+repair НЕ закрыт (см. Q6). - **Ложный негатив (был):** у нас ЕСТЬ residual-CJK-детектор на выходе — `detectCJKLeak`/ `isCJKLeakRune` с gloss/ruby-whitelist (`sanitizer.go:188,411,83`) = аналог AiNiee. Первая версия писала «нет / пак-13 строит». - **Пропущенная ось:** COGS-телеметрия (`store/ledger.go` Reserve/Settle + потолки BookUSD/DayUSD; `ledger/pricing.go` CacheWrite-премия) — мы лидируем **безоговорочно vs все 7**; prompt-cache вшит (`render.go:223`, `provider_anthropic.go`). NovelTrans-Stripe = биллинг клиентов, не COGS. - **Кредит прайор-арта:** база нашего глоссария (src→dst/#info, matched-only, sticky, токен-бюджет) сознательно взята у GalTransl/SakuraLLM/SillyTavern (`research/05:66-84,146,152`); уникальна — только КОМПОЗИЦИЯ (род+склонение+скоуп+trust+priority-eviction). SakuraLLM (следование глоссарию через ДООБУЧЕНИЕ) — пропущенный Q1-механизм. ## Лицензии материала (сверены 23–24.07) | Репо | Лицензия | Код в клоне | Метод | |---|---|---|---| | AiNiee | **AGPL-3.0** | 45.7k Py LOC | читать+описывать; копировать НЕЛЬЗЯ | | GalTransl | **GPL-3.0** | 32.9k Py LOC | читать+описывать; копировать НЕЛЬЗЯ | | LunaTranslator | **GPL-3.0** | 71.6k Py (в скоупе ~перевод/глоссарий) | читать+описывать; копировать НЕЛЬЗЯ | | TransAgents | Apache-2.0 (⚠ README-бейдж CC BY 4.0) | **НЕТ кода** — README+outputs | README/артефакты only | | bilingual_book_maker | MIT | 9.0k Py LOC | описание паттернов | | translation-agent | MIT | 1.8k Py LOC | описание паттернов | | KeywordGacha | **БЕЗ лицензии** | клон удалён | ТОЛЬКО онлайн README/DeepWiki/issues | **Ни строки чужого кода в textmachine. Все клеймы о коде — `repo/file:line`, README помечен «(README)».** --- ## §1. Вердикт: кто впереди по осям (и по планам/подходам) **Кратко: мы впереди на защищаемом ЯДРЕ (память-банк-КОМПОЗИЦИЯ Q1, экономика/детерминизм майнинга Q2, строгость связности Q3 [предварительно], доказательность ролей Q5) + на трёх осях, которых нет у конкурентов вовсе (деньги, 18+, общность языка/структуры). Позади на ВЫПУСКЕ (Q4). Q6 — детекция теперь построена (паки залендены), но GATING+REPAIR-петля у них есть, у нас нет.** | Ось | Кто впереди | Почему (с поправками ревизии 2) | |---|---|---| | **Q1 глоссарий** | **МЫ — но на заимствованной базе** | База (src→dst/#info, matched-only, sticky, токен-бюджет) взята у GalTransl/SakuraLLM/SillyTavern-WorldInfo (`05:77,94,152`); **уникальна только КОМПОЗИЦИЯ** — per-терм род+склонение+`since/until`-скоуп+trust-диспозиция+priority-eviction (`15:16` прайор-арт-скрин подтверждает уникальность этой формулы, и что matched-инъекция НЕ уникальна). SakuraLLM — 4-й Q1-подход (дообучение). ⚠ Композиция НЕ измерена на вебновеллах; авто-DST-рендер = «главный продуктовый гэп» (`07:148`). | | **Q2 автодобыча** | **Раскол** | Мы: $0-детерм-код, verified-канон, компактная подпись, **измеренный recall** (0.932 held-out / 0.965 full-slice, `eval/design11/ws3`). Они: LLM-NER ловит редкое (dst неверифицирован) + **одноклик-автопопуляция без подписи** — скорость, которую фабрика-юзер может предпочесть (наш verified-dst = осознанный correctness-trade). Set-cover GalTransl — техника для LLM-тира, которого у нас НЕТ. | | **Q3 связность** | **МЫ по строгости (предварительно)** | Единственные среди ХАРНЕССОВ с эмпирикой (exp15). НО: (а) exp15 на PD-классике/претрейне = **предварительно** (`ourmap:115`, дисциплина CLAUDE.md); (б) наш банк закрывает лишь **~14%** ru-дискурс-ошибок, СТРУКТУРНО мимо дейксиса ~37% / эллипсиса ~29% (`08:113-114`) → «обходим провал» → «частично замещаем»; (в) **DelTA** (академ., измерил +4.58пп LTCR-1, +15.5…32.7пп на вебновеллах, `03:11`,`05:110`) — не «никто не мерил память». Наш чанкер «никогда не режет предложение» нейтрализует класс `chunk-boundary-split`, на который жалуются юзеры bbm/TA. | | **Q4 выпуск/форматы** | **ОНИ (явно)** | bbm/AiNiee — зрелый epub-билингв (in-place tag-rewrite, TOC/сноски/CSS), PDF; **Immersive Translate (18097★, `02:26`) — крупнейший Q4-конкурент**, book-mode параллель-текст. У нас — JSON-export, ридер-IDE только в research/16. Наш крупнейший гэп; отложен планом (Ф3). Авторинг сносок/колонки — ни у кого. | | **Q5 мульти-агент** | **МЫ по доказательности** | Единственные с ИЗМЕРЕННЫМ вкладом ролей (D39.20 ×3; + внешняя опора, которую мы недокредитовали: WMT24 zh→ru метрика-инверсия — Google-NMT обошёл ВСЕ мультиагент по d-BLEU, `18:161`; TransAgents = наш ближайший аналог, `18:118`). Их роли — театр (часть — single-call CoT). TransAgents-omission: 7 ролей **не починили** omission (базовый gpt-4 тоже омитит) — датапоинт ЗА нас. Живой судья у нас = eval-side, в проде НЕ подключён (честно). | | **Q6 выпускной QA** | **Раскол: детекция ~вровень, GATING+REPAIR — они** | Пак-12/13 **ЗАЛЕНДЕНЫ** (`2f91b04`): percent/latin/broken-word/юнит/число-чекеры + `detectCJKLeak` = детекция теперь широкая. НО все — **observability-only** (флаг, не диспозиция; промт-пак-13 пп.3/10). У AiNiee/GalTransl чекеры **ГЕЙТЯТ + драйвят ре-перевод** — этой петли у нас нет (= рек №1). Плюс: часть классов $0-детерминизмом не берётся вовсе (DC5 стих 42–74% FP, `eval/design11/ws5`). Мы впереди по семантик-сигналу (план слой-5) + числам/единицам. | | **Деньги/COGS** ⭐НОВОЕ | **МЫ безоговорочно** | `store/ledger.go` reserve→settle (kill-9-атомарно) + потолки BookUSD/DayUSD; `pricing.go` пер-модель с CacheWrite-премией; prompt-cache вшит; ~$0.85/ранобэ (D30.4). **Ни один из 7 не публикует замера COGS.** NovelTrans = Stripe-биллинг (продуктизация, не телеметрия). Owner-north-star `07:32`. | | **18+/канал B** ⭐НОВОЕ | **МЫ** | Роутер Mistral+grok+abliterated (D14/D19.1/D22). DazedMTL/OpenNovel/Sakura-local делают NSFW, но **не в паре с качество+консистентность+ru** (`02:110` §6.6). | | **Общность языка/структуры** ⭐НОВОЕ | **МЫ** | Все 7 + новички — zh/ja→EN или структуро-специфичны (VN-hook/galgame/RPG-JSON). Наш адаптивный чанкер + pair-keyed langpack (§0.1 `09:29-31`, D39.16) обобщают ДАННЫМИ. ⚠ ja→ru сеам-построен, но НЕ протестирован (честный гэп). | ### Стратегический слой (планы/подходы) 1. **Рынок сходится к НАШЕЙ архитектуре, но без нашей эмпирики.** `NovelTrans` (новичок, MIT, 04.2026; **⚠ имя коллизирует с WMT24-статьёй NovelTrans `11-gap-3:173` — разные проекты**) — зеркал: мульти-агент + RAG-память (Redis HNSW) + Stripe-биллинг + Chrome-ext. НО 33★, 0 измерений → референс архитектуры. Аналогично prior-art: `Nuanxed` (B2B AI+human-post-edit, HarperCollins, `02:51`/`09:155`) — продуктизация, которую мы не строим. 2. **Bolt-on глоссарий-тул проигрывает fused-майнингу.** Автор `KeywordGacha` (neavo) сам soft-депрекейтил свой майнер (#150) в пользу встроенного в `LinguaGacha`. Подтверждает наш W1.5-курс (майнинг ВНУТРИ волнового цикла). 3. **Ближайший конкурент по НАШЕЙ паре — `LinguaGacha`** (zh/ja→русский; **уже обозрен 04.07, `02:33`,`05:82` — НЕ новичок**; его one-click-глоссарий + retranslation-by-keyword мы уже пометили «must-have»). Single-pass + неверифицированный dst → упрётся в консистентность, которую мы механизируем. Бенчмарк-кандидат №1. 4. **Форвард-роадмапы конкурентов** мы разобрали ТОНКО (только сигнал #150) — честный остаточный гэп: открытые milestones AiNiee/GalTransl/LinguaGacha не свипнуты. Наш план — стадийный (паки-12/13 залендены → масштаб книги · канал B · Ф2 · ja→ru). --- ## §2. Топ-рекомендации по импакту (пересмотрены ревизией 2) Приоритет = импакт на north-star (верность) × дешевизна × вписанность в план. **Многие «взять» оказались УЖЕ В ПЛАНЕ** — переформулированы как «расконсервировать/подтверждает», не «новое». 1. **[ВЫСОКИЙ] Замкнуть петлю «чекер→типизированная-ошибка→адресный ремонт спана».** Наши чекеры (пак-13 залендён, но observability-only) флагают, НЕ чинят. AiNiee: флаг С типом → single-line proofread (`ProofreadTask.py:250`); LinguaGacha — retranslation-by-keyword. **Уже в плане:** целевой слой-3 = diff-редактор (search/replace-спаны + детерм. Go-apply, ограниченный blast-radius, omission-safe, `09:107-111`) → **расконсервировать Q4b-diff-редактор с прецедентом AiNiee/LinguaGacha**, не «новая кража». *Метрика: defect-residual.* 2. **[СРЕДНИЙ, был ВЫСОКИЙ] Только offline language-ID mismatch.** Residual-source-script у нас УЖЕ есть (`detectCJKLeak`, `sanitizer.go:188/411`); language-ID-на-абзацах тоже **уже план** (`04-unhappy-paths:54`). Net-new = лишь mediapipe/ONNX-реализация (`LanguageChecker.py:309`) — и она **конфликтует с default-B** («код≥локаль», пак-13 отверг даже pymorphy, `11-plan:31`) → флажить как policy-исключение, НЕ «$0/offline». *Метрика: wrong-language rate.* 3. **[НИЗКИЙ, был СРЕД-ВЫСОКИЙ] Set-cover бюджет-кап — условно/отложено.** GalTransl `GenDic.py:591`. Контингентно на LLM-тир майнера, которого НЕТ и нет в near-term-роадмапе; текущий COGS майнинга = $0. Держать как опцию ЕСЛИ строим LLM-тир слепых зон §B4. *Метрика: 0 сейчас.* 4. **[СРЕДНИЙ] In-place epub tag-rewrite (bbm/AiNiee) — БЕЗ resume.** `helper.py:19` insert_trans + exclude-tag + TOC-uid-fix. **Resume ВЫЧЕРКНУТ из кражи:** у нас УЖЕ сильнее — checkpoint-keyed, kill-9-атомарный, cross-run, $0-резюм ×3 доказан (`store/ledger.go:117-123`, D39.20); их pickled-resume = process-crash in-memory. *Метрика: publishable-robustness (не верность).* 5. **[СРЕДНИЙ, с оговоркой] 12-класс Problem.py как чек-лист — но reflow-aware.** GalTransl `Problem.py`. ⚠ punctuation add/drop + line-parity **воюют с нашим editor-reflow** (их VN = line-by-line без reflow; наш редактор легитимно сливает пунктуацию/абзацы) — брать нельзя вслепую; у нас уже есть alignment-protected repetition-детектор + dialogue-linter в плане (`04:77,95`). Брать: char-freq-degeneration, control-code-loss. *Метрика: детекция.* 6. **[НИЗК-СРЕД, A/B] Явный critique-артефакт — УЖЕ обозрен.** translation-agent `utils.py:100`; но TEaR/Trilateral Collaboration уже в `03-academic:51,113` и в нашем дизайне (`07:32`). Открыт лишь ЭМПИРИЧЕСКИЙ фит на вебновелл-срезе, не новизна. НЕ веровать (issue #10 «negative optimization»). 7. **[НИЗКИЙ] Halve-chunk-on-retry (AiNiee `TaskExecutor.py:393`)** для волнового ретрая. 8. **[НИЗК-СРЕД] Q7-леджер: детекция многого УЖЕ в плане.** Omission/inversion-ДЕТЕКЦИЯ = слой-5 reflow-бэкстоп (`11-plan:683-689`, пак-4) — не «неосвоенная идея», только REPAIR-половина открыта. **Добавить в леджер-кандидаты** (из `12-*`-таксономий, north-star-класс): консистентность времени/вида глагола (BlonDe 38.7%, ru-вид `12-error-taxonomies:8`), addition/фабрикация, voice-flattening; + `chunk-boundary-split` (мы нейтрализуем конструкцией — усиливает Q3). --- ## §3. Таблицы «есть у них / нет у нас» (Q1, Q2, Q6) ### Q1 — глоссарий-системы Ось асимметрична в нашу пользу, НО база заимствована (`02`/`05`). «Есть у них / нет у нас»: | Механизм | У кого | У нас | |---|---|---| | Следование глоссарию через **ДООБУЧЕНИЕ модели** | SakuraLLM (`05:77`) | НЕТ (мы — промпт-инъекция; фронтир достигает того же промптом) | | Одна колонка src = литерал ИЛИ regex | AiNiee `GlossaryHelper.py:90` | НЕТ (мелочь) | | Богатый персона-профиль в промпт | AiNiee `PromptBuilder.py:690` | Частично (Speech/FirstPerson, не полный) | | **Одноклик авто-DST-рендер без подписи** | AiNiee/GalTransl/KeywordGacha/LinguaGacha | НЕТ — осознанный correctness-trade (майнер не пишет dst); наш «главный продуктовый гэп» `07:148` | Наш перевес (уникальна КОМПОЗИЦИЯ, не части — `15:16`): per-терм Gender/Decl(JSON-формы)/Speech/ FirstPerson/Nickname (`glossary.go:19-48`) · спойлер-скоуп since/until (`memory.go:454-464`) · trust-диспозиция confirmed/ambiguous/reject + trustGateEvent (`memory.go:89-93,718-793`) · токен-бюджет priority-eviction (**паттерн SillyTavern World Info `05:94,152`, заимствован+расширен**, `memory.go:437-451`) · role-рендер (`memory.go:539-600`). *matched-only инъекция СОВПАДАЕТ (не наш эксклюзив, `15:16`): у нас `memory.go:358-452`, у них `GlossaryHelper.py:212`/`noundict.py:82`.* ### Q2 — автодобыча термов | Механизм | У кого | У нас | |---|---|---| | Set-cover бюджет-кап LLM-NER | GalTransl `GenDic.py:591-684` | НЕТ (LLM-тира нет; см. рек №3) | | Map-reduce 2-й LLM-пасс dedup/тип | AiNiee `AnalysisTask.py:362,514` | Частично (алиас-кластеризация ДЕТЕРМ PROP-слой `miner_alias.go:71`; NOM-слой в LLM не построен) | | LLM-NER recall редкого/полисемии | AiNiee/KeywordGacha | Частично (V-C паттерны + banknote; floor=3 слеп к редкому by construction) | | **Одноклик авто-популяция без подписи** | AiNiee/GalTransl/KeywordGacha/LinguaGacha | НЕТ — verified-dst-дисциплина (осознанно) | | Gender при экстракции | KeywordGacha 角色性别 | Частично (evidence-счётчики + подпись владельца) | | Cross-chunk voting: один dst | GalTransl/KeywordGacha `find_best` | Есть сильнее — canon-по-ВСЕМ-вхождениям (research/20 §C2) | | Verbatim-occurrence guard | KeywordGacha `search_for_context` | Есть BY CONSTRUCTION (майнер читает source) | **Наш перевес:** $0/детерминизм, **ИЗМЕРЕННЫЙ recall** (0.932 held-out / 0.965 full-slice, `eval/design11/ws3_miner_verify.py:8`; competitors 0 замеров), verified-канон. **Острие: наш майнер на полной книге gu-zhenren = 13618 кандидатов** (паритет-тест D39.16), capped `emitRankCap=200` + precision30 (`miner_emit.go:23-207`). У AiNiee юзер видит каждого выжившего (unbounded); у KeywordGacha sign-off-UI НЕТ; наша подпись per-КЛАСТЕР — впереди по UX, но авто-DST мы отдаём владельцу. ### Q6 — выпускной QA ⚠ Пак-12/13 **ЗАЛЕНДЕНЫ** (`2f91b04`) — детекция построена, но **observability-only** (флаг, не гейт). | Дефект-класс | У кого gating+repair | У нас (после паков) | |---|---|---| | Checker→typed-error→scoped repair | AiNiee `ProofreadTask.py:250`; LinguaGacha retrans-by-keyword | **НЕТ** (флагаем, не чиним) — рек №1 / план слой-3 | | Residual-source-script на ВЫХОДЕ | AiNiee `AdvancedChecks.py:173` (гейт) | **ЕСТЬ детекция** `detectCJKLeak` gloss/ruby-whitelist (`sanitizer.go:188,411`) — но observ-only | | Offline language-ID (модель) | AiNiee `LanguageChecker.py:309` | НЕТ (план `04:54`; модель конфликтует с default-B) | | Degeneration char-freq | GalTransl `Problem.py:69` | Есть loop-detect (не char-freq) | | Punctuation add/drop, line-parity | GalTransl `Problem.py:74` | Осознанно НЕТ (воюет с editor-reflow, `04:95`) | | Control-code/placeholder-preservation | AiNiee `check_regex.json` | Частично (sanitizer-классы) | | Number/unit-magnitude equality | — (у них НЕТ) | **ЕСТЬ** DC1/DC2 + percent (`cheapgates.go:92`, залендено) — наш эксклюзив | | Стих/аллюзия | — | Не берётся $0-детерм (42–74% FP `eval/design11/ws5`) → owner-curation | Наш перевес (helper-фиксы ревизии 2): echo-детектор — `disposition.go:210,263-266` (не `:281-298`); AiNiee Jaccard — kanji-exclusion гейтит line-skip, НЕ сам Jaccard (не «kanji-excl»). Двухъярусный sanitizer + семантик-сигнал (план слой-5 `09:122` — ось, которой у них нет). --- ## §4. Per-question разборы (сжато; полные «их спектр» — в ревизии 1, здесь дельты ревизии 2) **Q1.** Их спектр: AiNiee (двойная система, gender в character-табл, matched-only, БЕЗ бюджета/ скоупа/склонения) · GalTransl (src\tdst\tnote, gender free-text) · Luna (GptDict+info, VNDB-gender) · bbm (нет; только Qwen-MT vendor `terms`) · **SakuraLLM (ДООБУЧЕНИЕ под глоссарий, `05:77`)** · KeywordGacha (онлайн). Наш механизм — `glossary.go:19-48` + `memseed.go` + `memory.go`. **Вердикт: мы впереди по КОМПОЗИЦИИ, база заимствована (02/05), уникальность формулы = `15:16`.** Взять: SakuraLLM-подход (для локального канала B?); soft>hard-constraint (`05:14,156`) подтверждает наш no-hard-constraint выбор. **Q2.** Разобрано §3. Дельта: авто-популяция = их продуктовое преимущество (наш `07:148`-гэп); recall у нас ИЗМЕРЕН (0.932 held-out); KeywordGacha #150→LinguaGacha = fused-майнинг > bolt-on. **Q3.** Их: rolling-src (AiNiee) / rolling-dst (GalTransl contextNum=8, Luna, bbm N=3, все OFF/ переврано) / весь-source (translation-agent, катастрофа на масштабе). Наш: волны + edit-единицы + sticky, carryover ОТВЕРГНУТ (exp15). **Дельты ревизии 2:** (а) exp15 = PD-классика = предварительно; (б) банк ≈14% ru-дискурс-ошибок, дейксис ~37%/эллипсис ~29% СТРУКТУРНО открыты (`08:113`); (в) **DelTA/DocMTAgent** (Apache-2.0, измерил память +4.58пп/+15.5-32.7пп на вебновеллах, `03:11`,`05:110`) = ближайший академ-аналог, «никто не мерил память» — неверно, сузить до ДЕПЛОЙ-харнессов; DelTA ПОДТВЕРЖДАЕТ нашу ставку структурная-память>длинный-контекст. Наш чанкер нейтрализует `chunk-boundary-split` (`chunker.go:286` never-split-sentence). **Q4.** Их: bbm (epub sibling-insert, PDF, `helper.py:19`) · AiNiee (in-place `EpubWriter.py:46`) · **Immersive Translate (18097★, `02:26`) — крупнейший** · Ebook-Translator-Calibre-Plugin (2538★, `02:31`). Наш: `tmctl export` JSON + `--pairs`; banknote срезает сноски но НЕ ре-аттачит; ридер-IDE = research/16 only. **Они впереди явно** (наш крупнейший гэп, отложен Ф3). Взять: epub tag-rewrite (БЕЗ resume — наш сильнее). Авторинг сносок/колонки — ни у кого → banknote-в-сноску = дифференциатор. **Q5.** Их: TransAgents (7 ролей, код-less, персона-театр; **omission — роли НЕ починили, базовый gpt-4 тоже омитит** `verify__TransAgents`, не «роли ВЫЗВАЛИ») · translation-agent reflect→improve (README «BLEU sometimes worse») · bbm/AiNiee single-call CoT · GalTransl same-model proofread · NovelTrans (33★, 0 замеров). Наш: линейный translator→БИЛИНГВ-editor; **судья Ф2 НЕ подключён в проде** (`pipeline.go:285`), живой судья = eval-side (⚠ D39.7 — коллизия нумерации: ратиф. D39.7 = exp15-floor, rerun2-риг помечен D39.7 лишь в eval-коммите `cd107e1` → флаг оркестратору). **Мы впереди по доказательности** — недокредитованная внешняя опора: WMT24 zh→ru инверсия (`18:161`), TransAgents-аналог (`18:118`). Взять: рек №1 (=план слой-3), critique-артефакт (=`03:51,113`+`07:32`). **Q6.** Разобрано §3. Ключ: паки залендены → детекция широкая, но observability-only; GATING+REPAIR (их сила) = наш открытый гэп = рек №1; часть классов $0-недостижима (стих). **Q7.** Датированный корпус (полная таблица — ревизия 1) + **пропущенные классы из `12-*` (north-star, не только issue-трекеры):** консистентность времени/вида глагола (`12-error-taxonomies:8`), addition/фабрикация, voice-flattening, `chunk-boundary-split` (мы нейтрализуем). **Уже в плане (не «неосвоено»):** omission/inversion-детекция = слой-5 (`11-plan:683`). Три кандидата ревизии 1 (omission-имя, кросс-глава-контекст #967, export-revert #1044) остаются, но omission-детекция — уже план; открыт лишь repair. --- ## §5. Фаза-0: новички vs прайор-арт (ревизия 2: половина — НЕ новички) | Проект | Лицензия | Статус | Примечание | |---|---|---|---| | **Glossarion** (Shirochi-stack) | MIT | **Новичок** (94★, 8224 коммита) | mine→translate→rebuild + QA-scan; single-pass | | **NovelTrans** (YuBing-link) | MIT | **Новичок** (33★, 04.2026) | мульти-агент+RAG+Stripe+ext; 0 замеров; ⚠ имя ≠ WMT24-NovelTrans (`11-gap-3:173`) | | LinguaGacha (neavo) | НЕТ | **НЕ новичок** — обозрен 04.07 (`02:33`,`05:82`) | zh/ja→ru; бенчмарк-кандидат №1; features уже «must-have»-помечены | | DocuTranslate (xunbu) | MPL-2.0 | **НЕ новичок** — `02:34` (1165★→1218★) | тот же проект +50★ | **Крупные прайор-арт-конкуренты, которые отчёт-ревизия-1 пропустил (все в `02-competitors`):** Immersive Translate (18097★, крупнейший Q4) · Ebook-Translator-Calibre (2538★) · SakuraLLM (4635★, дообученная модель, Q1-подход + backend для GalTransl/AiNiee/Luna) · DazedMTL (18+ pipeline, `02:36`) · Nuanxed (B2B human-post-edit, `02:51`) · DelTA/DocMTAgent (академ., Apache-2.0, измеренная память, `03`/`05:110`). **Вывод свипа держится:** measured-литкачество не опубликовано ни одним ДЕПЛОЙ- харнессом (DelTA — академ-исключение, мерил консистентность памяти, не худож. качество). --- ## §6. Appendix per-repo (Без изменений от ревизии 1 — верификация рубежа-1: AiNiee 21/22 CONFIRMED · GalTransl 15/15 · Luna 13/14 · TransAgents 13/14 · bbm 12/12 · translation-agent 11/12; 4 IMPRECISE, 0 REFUTED. KeywordGacha/новички — онлайн, confidence=low.) Полные разборы «их спектр» — в git-истории ревизии 1. --- ## §7. Форвард-роадмапы конкурентов vs наш план (веб-свип 24.07, $0) Метод: 3 агента, 13 проектов — GitHub Milestones + ROADMAP.md + pinned/enhancement-issues + README «планы/计划» + траектория релиз-ноутов. **Ключевой факт: формального роадмапа НЕТ почти ни у кого** (11 из 13 без Milestones и ROADMAP → «планы» = инференс из релизов, confidence low). Формальный роадмап только у: SakuraLLM (TODO #42), NovelTrans (README-таблица), translation-agent (README TODO, но заморожен), TransAgents/DelTA (paper future-work). ### §7.1 Куда они идут (вектор) | Проект | Роадмап | Вектор движения | Релевантно нам | |---|---|---|---| | AiNiee | нет (low) | больше форматов/плагинов, ASR (FunASR); neavo УШЁЛ на v5.2 | — (breadth) | | GalTransl | нет (low) | ещё движки/провайдеры/языки (qwen-mt, 302.AI, тай/хинди/вьет), GUI-зрелость | — | | LunaTranslator | нет (low) | rolling-инкремент: игры/OCR/TTS/оверлей (релиз каждые 1–3 дня) | — | | **SakuraLLM** | **TODO #42 (med)** | Qwen3+RL/GRPO, **двунаправленный zh↔ja↔ko**, квантизация, ~6GB VRAM | ⚠ канал B / локаль-ассист / ja→ru — следить | | LinguaGacha | нет (low) | нативная консистентность имён, ARM, CLI; **явно НЕ в мульти-агент/редактор** | ⭐ наш редактор-слой — НЕ на их пути | | KeywordGacha | **заморожен** (v0.20.2, ~13 мес) | поглощён LinguaGacha (Name Field v0.102.0, 2026-06) | ⭐ fused>bolt-on подтверждён живьём | | Glossarion | нет (low) | ширь: форматы/провайдеры/**манга**/QA-глубина (quotation/header-чекеры) | QA растёт | | NovelTrans | **README-таблица (med)** | **100% инфра/скейл/observability** (Nginx HA, Resilience4j, RabbitMQ, Jaeger, Milvus) — НОЛЬ про качество/редактора | зеркал архитектуры, но роадмап = продакшн, не верность | | DocuTranslate | нет (low) | format-fidelity (DOCX/EPUB) + провайдер-ширь (DeepSeek-V4) | — | | bilingual_book_maker | нет (low) | **PDF-layouts, structure-aware MD, EPUB-tag-safety** (коммиты 07–19.07.2026) | ⚠ Q4-разрыв растёт | | translation-agent | README TODO (заморожен, ~29 коммитов) | глоссарий-создание/инъекция + doc-level human-eval | «те же задачи, что мы» — но мёртв | | TransAgents | paper (заморожен, апр-2025) | лучше human-eval длинных текстов; **omission = главная нерешённая слабость** | ⭐ назвали нашу D39.20-проблему, не решили | | **Immersive Translate** | нет (med, closed) | **мультимодал (манга/картинки/видео), мобайл (Babel Browser), документ (BabelDOC), AI-Expert (роль-ассайн)** | ⚠ Q4/формат-лидер (18.3k★) уходит вперёд; AI-Expert ~ prompt-роли | | DelTA/DocMTAgent | paper (заморожен, янв-2025) | **удешевить память-агента: детерм-NER вместо LLM, dense-retrieval, меньше вызовов** | ⭐ их «будущее» = то, что мы УЖЕ построили ($0-майнер) | ### §7.2 Их вектор vs наш план Наш план (паки-12/13 залендены, пак-14 в работе): **масштаб целой книги · канал B (18+) · Ф2-механизмы (голос/состояние D21, native-Gemini судья) · ja→ru §B5 → пилот Ф2.5**; target-arch слой-3 diff-редактор, слой-5 семантик-сигнал. - **Нашей north-star (верность/translationese через ИЗМЕРЕННУЮ редакторскую глубину) НЕТ ни на одном роадмапе.** Фан-тулзы идут в ширь; LinguaGacha ЯВНО отказывается от мульти-агента; NovelTrans-роадмап = чистая инфра; Immersive = потребительский мультимодал. → **окно «первого с памятью серии + измеренной редактурой» остаётся открытым.** - **Два подтверждения нашего курса ЧУЖИМИ роадмапами:** - ⭐ **fused-майнинг > bolt-on — доказан событием:** neavo ушёл из AiNiee (v5.2) строить LinguaGacha; KeywordGacha ЗАМОРОЖЕН ~13 мес, а LinguaGacha ПОГЛОТИЛ его экстракцию терминов нативно (Name Field v0.102.0). Отдельный тул умер, встроенный живёт — ровно наш W1.5. - ⭐ **Роадмап DelTA = наш пройденный путь:** их future-work (заменить LLM-NER детерм-выравниванием/ скриптами, dense-retrieval вместо LLM, срезать вызовы) — направление, которое мы УЖЕ реализовали ($0-детерм-майнер, recall 0.932 held-out). Мы впереди заявленного шага академ-фронтира. - **TransAgents назвали нашу проблему, но не решили:** их paper-flag «content-omission — главная нерешённая слабость» + «почему LLM-судьи любят flair» = наша D39.20 анти-корреляция гладкость↔верность. Мы механизируем против того, что они только диагностировали. - **Где ИХ роадмапы уводят вперёд (честно):** - ⚠ **Q4/форматы разрыв РАСТЁТ:** bbm (PDF-layouts), Immersive (BabelDOC/мультимодал), DocuTranslate (format-fidelity) активно куют выпуск, пока наш Q4 отложен. Аргумент за то, чтобы epub-tag-rewrite (рек №4) не откладывать до Ф3 бесконечно. - ⚠ **SakuraLLM** (Qwen3+RL, двунаправленный CJK, 6GB VRAM) — релевантен каналу B / локаль-ассисту / ja→ru; готовая специализированная модель, мониторить. ### §7.3 Итог «по планам» Мы **впереди по НАПРАВЛЕНИЮ** (единственные строим измеренную редакторскую глубину + композитную память + канал B + деньги — рынок это НЕ роадмапит), **и наш путь дважды подтверждён чужими роадмапами** (fused-майнинг живёт/bolt-on мёртв; академ-DelTA хочет прийти туда, где мы уже стоим). **Позади — только выпуск (Q4), и там конкуренты активно двигаются** — единственная ось, где промедление стоит позиции. --- ## Самопроверка сессии (мандат 12.07) - **Два рубежа исполнением** (§0): рубеж-1 верифицировал ЧУЖОЙ код (~88 клеймов, 4 IMPRECISE, 0 REFUTED); **рубеж-2 (9 агентов сквозняком по всему репо) верифицировал МОЙ СИНТЕЗ** и поймал: факт- ошибку (пак-13 залендён, не unbuilt), ложные негативы (detectCJKLeak/cost-ledger/prompt-cache/ resume — у нас ЕСТЬ), непрокредитованный прайор-арт (02/05/15/18), 3 пропущенные оси (деньги/18+/ общность), overstated-вердикты (Q1-независимость, Q3-абсолютизм, «пак-13 закрывает»). **Все несущие правки сверены мной по HEAD `b8a7863` (git log, cheapgates.go, sanitizer.go, ledger.go).** - **README≠код**, лицензионная дисциплина, $0 — соблюдены; refusal_corpus не тронут. - **Что ДЕРЖИТСЯ (22 CONFIRM):** ядровые вердикты — мы впереди по Q1-композиции/Q2-экономике/Q3- строгости[предв.]/Q5-доказательности + 3 новые оси; позади по Q4; Q6 = детекция построена, gate+repair открыт. Анти-корреляция гладкость↔верность, fused>bolt-on, verified-dst-trade — все подтверждены прайор-артом. - **Форвард-роадмапы конкурентов свипнуты (§7, 3-агентный веб-свип 24.07):** 11 из 13 без формального роадмапа; каждый planned-item несёт source-url + дату; инференс из релизов помечен confidence=low (фичи не выдуманы). Итог усилил вердикт «по планам»: наш курс дважды подтверждён чужими роадмапами. - **Остаточные честные гэпы сессии:** D39.7-коллизия нумерации — оркестратору; отчёт НЕ закоммичен.