43 KiB
research/22 — Доменные харнессы перевода: конкуренты vs наш бэкенд
РЕВЬЮ-ШАПКА ОРКЕСТРАТОРА (лендинг 24.07.2026). Отчёт прошёл ДВА рубежа самой сессии (19-агентный по чужому коду + 9-агентный адверсариал собственного синтеза, поймавший её же факт-ошибки — ревизия 2 их вшила). Мой спот-чек при лендинге: 5/5 несущих клеймов сошлись байт-в-байт (наши
detectCJKLeak sanitizer.go:188/411·cheapgate-v4 cheapgates.go:55·ledger Reserve/SettleWithCheckpoint— существуют; их AiNieeProofreadTasktyped-error→адресный proofread и GalTranslGenDicgreedy 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:55cheapgate-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.goReserve/Settle + потолки BookUSD/DayUSD;ledger/pricing.goCacheWrite-премия) — мы лидируем безоговорочно 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 сеам-построен, но НЕ протестирован (честный гэп). |
Стратегический слой (планы/подходы)
- Рынок сходится к НАШЕЙ архитектуре, но без нашей эмпирики.
NovelTrans(новичок, MIT, 04.2026; ⚠ имя коллизирует с WMT24-статьёй NovelTrans11-gap-3:173— разные проекты) — зеркал: мульти-агент + RAG-память (Redis HNSW) + Stripe-биллинг + Chrome-ext. НО 33★, 0 измерений → референс архитектуры. Аналогично prior-art:Nuanxed(B2B AI+human-post-edit, HarperCollins,02:51/09:155) — продуктизация, которую мы не строим. - Bolt-on глоссарий-тул проигрывает fused-майнингу. Автор
KeywordGacha(neavo) сам soft-депрекейтил свой майнер (#150) в пользу встроенного вLinguaGacha. Подтверждает наш W1.5-курс (майнинг ВНУТРИ волнового цикла). - Ближайший конкурент по НАШЕЙ паре —
LinguaGacha(zh/ja→русский; уже обозрен 04.07,02:33,05:82— НЕ новичок; его one-click-глоссарий + retranslation-by-keyword мы уже пометили «must-have»). Single-pass + неверифицированный dst → упрётся в консистентность, которую мы механизируем. Бенчмарк-кандидат №1. - Форвард-роадмапы конкурентов мы разобрали ТОНКО (только сигнал #150) — честный остаточный гэп: открытые milestones AiNiee/GalTransl/LinguaGacha не свипнуты. Наш план — стадийный (паки-12/13 залендены → масштаб книги · канал B · Ф2 · ja→ru).
§2. Топ-рекомендации по импакту (пересмотрены ревизией 2)
Приоритет = импакт на north-star (верность) × дешевизна × вписанность в план. Многие «взять» оказались УЖЕ В ПЛАНЕ — переформулированы как «расконсервировать/подтверждает», не «новое».
- [ВЫСОКИЙ] Замкнуть петлю «чекер→типизированная-ошибка→адресный ремонт спана». Наши чекеры
(пак-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. - [СРЕДНИЙ, был ВЫСОКИЙ] Только 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. - [НИЗКИЙ, был СРЕД-ВЫСОКИЙ] Set-cover бюджет-кап — условно/отложено. GalTransl
GenDic.py:591. Контингентно на LLM-тир майнера, которого НЕТ и нет в near-term-роадмапе; текущий COGS майнинга = $0. Держать как опцию ЕСЛИ строим LLM-тир слепых зон §B4. Метрика: 0 сейчас. - [СРЕДНИЙ] In-place epub tag-rewrite (bbm/AiNiee) — БЕЗ resume.
helper.py:19insert_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 (не верность). - [СРЕДНИЙ, с оговоркой] 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. Метрика: детекция. - [НИЗК-СРЕД, A/B] Явный critique-артефакт — УЖЕ обозрен. translation-agent
utils.py:100; но TEaR/Trilateral Collaboration уже в03-academic:51,113и в нашем дизайне (07:32). Открыт лишь ЭМПИРИЧЕСКИЙ фит на вебновелл-срезе, не новизна. НЕ веровать (issue #10 «negative optimization»). - [НИЗКИЙ] Halve-chunk-on-retry (AiNiee
TaskExecutor.py:393) для волнового ретрая. - [НИЗК-СРЕД] 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 (флаг, не гейт).
⚠ Поправка D39.108 (приёмка экспа 20): строка таблицы «detectCJKLeak — но observ-only» УСТАРЕЛА — с включением санитайзера класс работает вердикт-гейтом D30.3 (chunkrun.go isFinal-тройка), подтверждено исполнением на утёкших финалах; observ-only остаётся верным только для НЕ-финальных стадий (строка 46).
| Дефект-класс | У кого 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; явно НЕ в мульти-агент/редактор ⚠ ЭРРАТА 05.09: ПРОТУХЛО И ОПРОВЕРГНУТО. С 31.07.2026 проект строит агентный редактор — замер research/30 §4.1 (03.09): 305 коммитов за 25.07–03.09, 104 из них в агентных каталогах, восемь скилов, обзор по четырём осям. Утверждение оставлено телом как улика, а не как факт. ⇒ срок годности харнесс-обзора — НЕДЕЛИ, а не месяцы; ни одна строка этой таблицы не цитируется без пере-проверки даты |
⭐ наш редактор-слой — НЕ на их пути |
| 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-коллизия нумерации — оркестратору; отчёт НЕ закоммичен.