37 KiB
Целевая архитектура и дорожная карта (арх-ресет 2026-07-13)
Статус: проектный документ оркестратора, ратифицирован D39 (
05-decisions-log.md). Рождён из арх-ресета (../archive/prompts/ORCHESTRATOR_ARCH_RESET_PROMPT_2026-07-13.md, 5 концернов владельца) и синк-аудита «сломанного телефона» (../archive/architecture/08-sync-audit-ledger.md, 65 находок, адверсариально верифицированы; архивирован 25.07 как отработанный). Решения владельца по подходу: фазовый (build-now ∥ ресёрч, пере-прогон после) + слой пар языков = сеам сейчас, контент только zh→ru.Это карта «куда и почему», а не пошаговая спека. Спеки — в хендофф-промтах сессий; контракт — в D-логе.
⟶ СТАТУС СТРОЙКИ (освежён 22.08 оркестратором №18: пак платформы P8-FIX ПРИНЯТ и ЗАЛЕНДЕН — голодание свипа
PD-169закрыто четырьмя механизмами (фазы прохода · отсрочка с бэкоффом · порогStalledAfterс гейджем и CLI · терминальный вердикт оператораrun abandon), оба бюджета стали операторскими ручками, снят пер-термный write-путь банка по D39.144 — открытой осталась контрактная половинаPD-370(строка 206). Ранее 20.08: пак P7 платформы ПРИНЯТ и ЗАЛЕНДЕН — читающая поверхность построена целиком (главы · юниты · замечания · проекция банка · SSE · модель ошибок · условные чтения · идемпотентность), D39.153; канон контракта — 0.4.0, ратифицирован D39.152; пак движка «честные числа и статусы» принят с фикс-листом, D39.149. Предыдущий срез — 16.08 оркестратором №17: контракт-ревью ПРИНЯТО (research/28, D39.138), ломающий батч 0.3.0 ИСПОЛНЕН и принят с дофиксом (D39.142–145: конвейер снят с провода, машинная модель ошибок, /capabilities, поток на книгу, подпись банка = один ОК D39.144; жанр из продукта ВЫКИНУТ — строка 184); P7 платформы ЗАПУЩЕН по финальному канону. Ранее 15.08: эмиттер шва ПОСТРОЕН И ПРИНЯТ —events.jsonlStreamVersion 1.1, exit 4/5 + полоса отказов 10–19 (D39.131); платформа P6 + дофикс приняты — потребительская половина шва, интейк формы Б, дев-стенд, PD-113/PD-196 закрыты (D39.132);tmctl migrateпринят — exit 13 финализирован, деадлок деплоя v15 разорван (D39.134); фронт S4 принят — путь «файл → загрузка → запуск → прогресс» в мире моков, контракт 0.2.3 в каноне (D39.135). Ранее 14.08 №16: платформа достроена до интейка книг P5 —POST /booksс сентинелом хранилища, стоп/резюм с намерением, Prometheus, Go-floor 1.26.6 (D39.130); фронт — S3.5–S3.7 приняты (оболочка · слой данных · i18n; D39.127/129). Ранее 09.08, пост-D39.125: шов движок↔платформа ратифицирован — транзиентный systemd-юнит на прогон +events.jsonl-outbox в каталоге книги, платформа НЕ родитель (D39.106); платформа достроена до раннера P4 (D39.109/114/123 — River-очередь, холд-до-спавна, реконсилятор; дефекты —platform/docs/DEFECT_REGISTER.md); фронт — слой данных S3, контракт 0.2.0→0.2.1 (D39.115/123); движок отдал блокеры контракта —tm-manifest-v2,unit.idс тегом разреза, пофазные счётчики на главу,--ceiling-usd(D39.122); слой 4 добит фикс-паком банка — семьи термов со-батчатся юнитами, bankdata-плоскость (D39.118). Ранее 04.08, пост-D39.105: слои 4/5 добраны паками банка/чекеров D39.69/78/82; репо на стандартах —make battery, tmvet/archguard, D39.96/97; контракт API v0 =14-api-contract/(D39.99), платформа = зонаplatform/, открыта D39.100. Баннер — не переписывание, тело ниже = замысел арх-ресета 13.07). Карта «слой → статус → пак/D»:
Слой Статус Пак / D 1 Сегментация ✅ ПОСТРОЕН: бюджет в выходных токенах снапшот-folded ( chunk.SegBudget), edit-единицы декаплены; когезия/carryover — НЕ строится (D39.7/8: эффекты под floor 0.126; кнобыSTMDepth/OverlapTokensУДАЛЕНЫ, WS2 §2а), границаlogical— не рычаг (exp15), greedy осталсяпак-11 (D39.13 WS2 · D39.17 волны · D39.18 c-lite) 2 Пары ✅ СЕАМ ПОСТРОЕН: internal/lang+langpacks (embedded · книго-overlaylangpack_extend) · пар-агностичные чекеры ·configs/pairs/· промпт-конвенцияprompts/<пара>/<роль>.md; открыто: извлечение дискурс-норм/few-shot из ТЕЛА промтов (форсинг = ja→ru)D39.16 · пак-14 · пак-15 (D39.23г) 3 Контракт t/e ✅ ПОСТРОЕН ЗА enabled:false:checks.RepairCandidates(позиционная детекция) · read-only скан остатка · машинерия ремонта §15.2; включение платного пути = решение владельца по замеру остатка; ⚠ эмпирика контракта — экспы 19/20 (D39.108): гейт Q4b — диффы ОТЛОЖЕНЫ (D21.4/D21.10 закрыты); итог эксп-21 (D39.117): full-regen ПОДТВЕРЖДЁН (точечная починка как замена редактора отклонена; принята формой «механический пре-гейт ПЕРЕД редактором» — строка 142; строка 106 понижена)пак-16 (D39.24), D39.108, D39.117 4 Память ✅ ПОСТРОЕН + ДОСТРОЕН паком-20: disposition-gated suppressor · ТЕРМИНОЛОГ (роль пар-пака: смердженный банк + KWIC → консолидированный dst, durable-деньги) · флаговый стоп --verify-bank(дефолт=авто) · ДВУХСЕКЦИОННАЯ редакторская инъекция (CONFIRMED + ⟨проверить⟩; все строки фолдятся в версию; ⚠ D39.104: схлопывается в ЕДИНЫЙ закон-блок, маркер с провода снимается — внесение = строка 134 ПОСЛЕ пробы 18) · точечная ре-редактура (bank-only → пере-пин $0) · банкнота отдельным шиппинг-файлом · языковой экранtarget_script· дисциплина банкноты (кавычки/агрегация); жанровый словарь ОТМЕНЁН (D39.47)пак-1 · пак-11 · пак-20 (D39.41–45/47/50–53) 5 Качество ✅ детерм. часть: QualityReport· число/omission-гард · DC/пак-13-чекеры · repair-остаток; семантический span-судья/полярность — НЕ строился (защита = editor-swap, D38.4)D39.2 · D38.3 · пак-13 ( 2f91b04) · пак-166 Export ✅ ПОСТРОЕН: checks.ExportNormalizeна каждом финале; санитайзер-классы strip+exportD39.2 · D38.3 7 Гигиена ✅ ПОСТРОЕН: реестр role→инъекция · вынос foldModelWire· снос сирот/gatesEnabled· target-aware гейты ПО ДАННЫМ — П1 «цель-шов» (фаза 2, D39.64:isRuTargetудалён,TargetActive/TargetScriptNonLatin, токенизатор цели изword_script); остаток — ё-фолд/segmentation за подписью (бэклог-строка 14)D39.2 · паки 11–16 · фаза 2 (D39.64) Актуализация 01.08: пак-19 «голос/состояние» построен (D39.54–56: схема голоса/обращений v13/v14 c условным фолдом · tu-vous- и спойлер-флаггеры). Карта языковой привязки ВСЕГО движка —
../archive/reports/GENERALITY_RESEARCH_2026-07-31.md(D39.60); фаза 2 общности ИСПОЛНЕНА И ПРИНЯТА (D39.64, отчёт../archive/reports/GENERALITY_PHASE2_2026-08-01.md): П0 хеш эмбед-данных (embedded_versionв снапшоте) · П1 цель-шов (слой 7) · П2 скрипт-шов источника (lang-script.txt, ko-баг закрыт) · П3 нарезка/оценка (話 · sourceAbbrevs · generic-главы · один домDenseScript) · П4 манифест-по-каналам (обратно-совместим,packAlgoVersionне бампался); голден вердикт-нейтрален (0/172); П5 майнер гейтится второй книгой; пак-21 растворён; 9 флагов §5 — очередь владельца (бэклог-строка 14). §1 «как есть» читать как снимок ДО стройки (const-чанкер · glm-редактор · мёртвыеSTMDepth/OverlapTokens— всего этого больше нет). §4 отработан целиком: трек B исполнен (exp15/exp16 — программа ЗАВЕРШЕНА, D39.7/D39.10), гейт пере-прогона пройден фактом rerun2 (D39.20; планка ≤2 НЕ пройдена, эксп ЗАКРЫТ D39.22, редактор = deepseek-v4-pro интерим). Канал B — пак-17 ЗАКРЫТ ЦЕЛИКОМ (дизайн D39.26 + стройка D39.27 + дельта D39.28: механизм лейблов живой, действияroute|allow|terminalс одним инвариантом, golden байт-идентичен,permissive/Stage.Channel/D4.1-блок отставлены,failover.goудалён; вокабуляр = ПАРАviolence/sexually-explicit;accepts_labelsпусты до ФАКТОВ ToS — fail-closed); дизайн РАТИФИЦИРОВАН D39.26 (лейблы вне хешей — назначенный слой D20.2-Q3 = резолвнутая модель стадии пер-стадийно/пер-волново · резолв ДО валидации, «достижимое» лейбл-зависимо · один хопchain[0]· гранулярность = книга ·content_labels(книга) ⊆accepts_labels(модель) ·Stage.Channel/permissive/D4.1-блок отставляются одним диффом), фаза 2 = стройка; инженерная форма переопределена D39.25: в движке НЕТ понятия «18+» — generic content-labels × provider-capabilities, refusal причино-агностичен; «18+ линия» в §6 читать как продукт-линию, не механизм движка.
0. Стратегический вывод аудита (почему ресет)
Потолок художественности сейчас — в НАШЕЙ организации пайплайна, а не в моделях. Эмпирика (exp12–14b) и код-аудит сошлись: дефекты, которые владелец назвал «крайне слабо художественно» (рубленые абзацы + «непонимание связей»), рождаются из нарезки, структуры редакторских проходов, контракта переводчик/редактор и отсутствия меж-чанковой когезии — всё это архитектура, не выбор модели. Это подтверждает трек «дешёвые модели сейчас» (D30.7) и переопределяет источник следующего прироста качества: он архитектурный.
Ключевое свойство проблемы: рычаги сцеплены. Редактор репараграфизует ВНУТРИ ~1500-токенного чанка → он физически не может чинить когезию через границу чанка → нарезка (концерн 2) жёстко ограничивает потолок дискурс-переверстки, которую мы требуем от редактора (концерн 1). Поэтому чинить их порознь = снова получить локальный оптимум на неверно нарезанном тексте (ровно «слабый тест» exp14). Концерны 1, 2, 4 проектируются вместе.
0.1 Инвариант общности (поправка владельца, 2026-07-13) — НЕСУЩИЙ
Цель — перевод ЛЮБОЙ книги, ЛЮБОЙ пары языков, написанной ПО-РАЗНОМУ. Ни один компонент не смеет предполагать структуру конкретной книги (蛊真人) или конкретную пару (zh→ru). Из этого:
- Чанкер = ОБЩИЙ адаптивный модуль: характеризует структуру КАЖДОГО входа в рантайме (плоский CJK line-per- sentence · сцен-маркированный · длинно-абзацный европейский роман · ja-ранобэ · смешанный) → выбирает стратегию границы → фоллбек-лестница. Он обязан работать корректно на всём спектре, а не на одной форме.
- Разница «продукт» vs «эксперимент» (моя ошибка, которую поправил владелец): чтобы ИЗМЕРИТЬ рычаг эмпирикой, нужен тест-текст, который его задействует — это ограничение ДИЗАЙНА ЭКСПЕРИМЕНТА (валидируй на разнообразном корпусе), и оно никогда не переносится в scope продукта («книга плоская → урежем нарезку» — ЗАПРЕЩЕНО).
- Пер-язык (слой 2) — та же логика: строим ОБЩИЙ сеам, контент наполняем инкрементально (zh→ru сейчас); новая книга/пара = данные (пакет конвенций), не переделка кода. «Бэкенд только под русский/под одну книгу» = антицель.
- Эмпирика валидирует ОБЩНОСТЬ (корректность+near-оптимум на структуро- и языко-разнообразном корпусе), не оптимизирует под книгу на стенде.
1. Текущая архитектура (как есть, grounded)
Пайплайн = линейный проход по плоскому списку чанков; на каждый чанк — стадии по порядку из pipeline-*.yaml:
книга → ingest (главы) → SplitChunks (чанкер) → [ по чанку: translator(draft) → editor(edit) ] → export
↑ память v2 (Select→inject) + детерм. гейты
- Нарезка (
chunker.go): жадная упаковка целых абзацев в бюджетtargetChunkTokens=1500(const, в единице «оценка символов исходника», не выходные токены), спуск до предложений при оверсайзе. Граница — там, где накопление пересекло бюджет; логической/сценовой границы нет. Единица одна и для черновика, и для редактуры. - Переводчик (
translator.md, deepseek-v4-flash): подстрочник + слабая однострочка про вёрстку; на верности валидирован (exp13), на художественность/структуру — не мерен никогда (D30.6). - Редактор (
editor.md, glm-5, БИЛИНГВ): ОДНА полная перегенерация чанка с 4 мандатами сразу — верность, стиль, глоссарий, дискурс-reflow (техники Ван Цуй + few-shot). - Память v2 (
memory.go): Aho-Corasick матч → disposition → инъекция per-role (переводчику src→dst, редактору CONFIRMED-dst-констрейнты) → детерм. post-check. Единственная меж-чанковая память. Меж-чанковой когезии (summary/carryover) НЕТ — есть мёртвые config-заглушкиSTMDepth/OverlapTokens, которые код не читает. - Гейты (детерминированные): intrinsic-классификатор (echo/empty/refusal/length), coverage/excision (только translator), output-санитайзер (только final), glossary post-check (флаггер), cheap style-флаггеры, regression-guard. Семантического/качественного сигнала в контуре нет.
- Промты: единые zh→ru-файлы, выбор по фикс-пути из yaml;
{{source_lang}}— поверхностный шаблон; правила захардкожены; язык промпта всегда русский.Book.LangPair()— мёртвый код.
Хорошее, что подтвердил аудит (не ломать): деньги/durability (reserve→settle+checkpoint, committed==SUM, kill-9),
snapshot-дисциплина, эталонные сеамы config→stage-list и baseRequestLog, дословный перенос техник Ван Цуй,
структурные (не «правильно-переводные») few-shot, осознанность разделения переводчик/редактор.
2. Целевая архитектура — 7 слоёв с чистыми сеамами
⚠ ЧИТАТЬ КАК ЗАМЫСЕЛ 13.07, А НЕ КАК ДЕЙСТВУЮЩЕЕ ПРЕДПИСАНИЕ (баннер дописан 22.08 аудитом доков: у §1 и §4 такие оговорки были, у §2 не было — и его читали как норму). Что этот раздел предписывает, а стройка с тех пор отменила, видно из ШАПКИ-ТАБЛИЦЫ ЭТОГО ЖЕ ФАЙЛА: например меж-единичная когезия («оживить
STMDepth/OverlapTokens») — эти кнобы УДАЛЕНЫ, эффекты замерены под флором и когезия НЕ строится (D39.7/D39.8, слой 1). При расхождении раздела с шапкой первична шапка, при расхождении шапки с D-логом — D-лог.
Вместо 65 заплаток — слои, каждый первоклассный, независимо конфигурируемый и снапшот-folded. Ровно они закрывают 5 концернов.
Слой 1 — Сегментация (чанкер-модуль) · концерны 1+2
- Размер бюджета — снапшот-folded config-кноб в ВЫХОДНЫХ токенах (не const, не в símволах исходника), чтобы
пре-регистрированная кривая полигона могла приземлиться как настройка. Механизм fold уже есть (
coverageSnap). - Стратегия границы — first-class ось:
greedy(как сейчас) |logical(сцена/диалог/тема) — с фоллбек-лестницей и инвариантом «никогда не резать предложение». Наполнение стратегииlogical— по интернет-best-practices + ресёрч. - Декаплинг edit-единицы от draft-единицы (бывший фантомный «D35.7»): черновик — мелкий чанк (COGS/coverage/ выравнивание); reflow/edit — крупная дискурс-единица (глава/сцена), где антецеденты со-встречаются.
- Меж-единичная когезия: оживить
STMDepth/OverlapTokens— running bilingual summary + carryover соседних единиц как read-only контекст. (⚠ exp14 «крупнее лучше» и research/18 §A «мелкий чанк + carryover» конфликтуют — решает ресёрч-матрица, см. §4.)
Слой 2 — Конвенции пары языков (pair-keyed pack) · концерн 4
Консолидированная заметка по всей промпт-теме (инвентарь, статусы, открытое) —
10-prompt-architecture.md.
- Версионируемый пакет, ключ
src→tgt[×genre], снапшот-folded (правка = громкий--resnapshot, какchunkerVersion). - Держит: дискурс-правила, few-shot (в языке пары), транскрипцию/хонорифики, и язык самого промпта (свойство пакета — не хардкод русского).
- Стадия резолвит промпт/правила из слоя по паре книги, а не из фикс-пути.
Book.LangPair()оживает как ось выбора. - Высота сейчас (решение владельца): построить СЕАМ, наполнить только zh→ru; другие пары — когда придёт книга. Убирает латентный баг (ja-книга едет через «китайский паратаксис»-промпт) и разблокирует расширяемость дёшево.
- ⟶ Реализация (обновление 25.07): данные-часть РЕАЛИЗОВАНА (D39.16: zh/Палладий-инвентари вынесены из
pipeline/-констант вconfigs/langpacks/<lang|pair>/через leaf-пакетinternal/lang; граница компиль-enforced; резолв поBook.LangPair(); байт-точно — парити EXACT, golden байт-идентичен) и ДОСТРОЕНА паками 14/15: пар-агностичные чекеры + embedded-данные + книго-overlaylangpack_extend(пак-14) · пар-калибровкиconfigs/pairs/+ промпт-резолв конвенциейprompts/<пара>/<роль>.md(D39.23г). Извлечение правил из ТЕЛА промтов (дискурс-нормы, few-shot) — ещё открыто (форсинг-функция = ja→ru-реплика).x/text/language.TagОТВЕРГНУТ для гейт-предикатов (CLDR-инстабильность в снапшот-вердиктах); → исполнено иначе D39.64:isRuTargetудалён, гейт-предикаты =TargetActive/TargetScriptNonLatinиз данных пары — отказ отlanguage.Tagв силе.
Слой 3 — Контракт переводчик/редактор (роли = узкие проходы) · концерн 1
- research/07 предписывает узкие мандаты + диффы, а не полную перегенерацию — сейчас ровно наоборот (4 мандата, full-regen), что и породило хвост инверсий.
- Целевой контракт: переводчик отдаёт структурный ~верный черновик; редактор — узкая правка смысла+стиля, в идеале diff-based (search/replace-спаны + детерм. Go-apply → ограниченный blast-radius, дешевле, аудируемо, структурно omission-safe). Между проходами — гейт.
- ⚠ Арм «переводчик отдаёт структуру» никогда не тестировался — решает ресёрч-матрица (§4), а не догадка.
Слой 4 — Память (код-корень) · концерн 3
- Починить disposition-слепой
suppressContained: более длинный НИЗКО-доверенный ключ (draft/ambiguous) не должен подавлять вложенный ВЫСОКО-доверенный (approved/confirmed). Это закрывает терм-дрейф в КОДЕ (сейчас — сид-воркэраунд). - Тихие дропы → в громкие: подавленный approved-термин обязан попадать в retrieval-state (обещание research/13).
- Убрать устаревшую D1-моно-рационализацию из
renderEditorConstraintBlock(редактор теперь БИЛИНГВ, D30.1); открытый вопрос — давать ли билингв-редактору src→dst-мэппинг, а не голые dst-формы.
Слой 5 — Измерение качества в контуре · главная цель + концерн 5
- Per-run/per-segment авто-сигнал: детерминированный структурный KPI (предл./абзац, диалог-тире, CJK-утечка, глоссарий-консистентность) — дёшево, build-now — + дешёвая span-проверка смысла (полярность/число/ранг/пропуск → тот самый inversion/omission-бэкстоп; семантический span-судья — ресёрч-зависим, позже).
- Даёт то, что владелец просил (телеметрия качества с 1-го дня, п.25/п.31) и делает КАЖДУЮ правку ниже измеримой; предпосылка самоулучшения.
Слой 6 — Export-contract (нормализация) · концерн 3
- Единая нормализация КАЖДОГО финального текста (NFKC-fold + пробелы/CJK-пунктуация/U+3000) — тот самый D29.1a-слой, который D-лог откладывает. Санитайзер сводится к чистому детектору (флагует только по-настоящему невосстановимое).
- Убирает: дефект чинится на флагнутом чанке, но уезжает сырым на чистом; дубль NFKC; churn регексов v1→v4.
Слой 7 — Гигиена расширяемости · концерн 3 п4
- Реестр
role→инъекция(map/стратегия из конфига) вместо рукоправимого switch — чтобы Ф2-annotator/voice добавлялся данными, не хирургией. - Target-aware гейты: readability-набор за
TargetLang(сейчас слеп — любой не-ru target даст ложные флаги). - Де-размазать strip-and-export (5 файлов → один resolver
classification→(disposition, exportText)). - Снести сироты-промпты (
analyst.md/terminologist.md/дубльeditor-mono.md), мёртвыйgatesEnabled(); вынестиfoldModelWire()(tripwire на 3-ю модель-ось уже стоит). - Эталоны для копирования:
config→stage-list,baseRequestLog.
3. Карта находок → слои (полный ледджер — ../archive/architecture/08-sync-audit-ledger.md)
| Слой | Несущие находки (HIGH, CONFIRMED) |
|---|---|
| 1 Сегментация | L2-1500-untested-apriori, L2-budget-wrong-unit, L2-token-budget-not-semantic, L2-edit-unit-equals-chunk, L2-cross-chunk-only-glossary, L2-d357-phantom-decision, H1-smart-chunking-never-formalized, L2-no-boundary-algo-research |
| 2 Слой пар | L4-prompts-not-per-pair-zh-baked, L4-convention-pack-layer-never-built, L4-prompt-language-always-russian, H2, L4-adding-a-pair-is-a-rewrite-not-config |
| 3 Контракт t/e | L1-editor-four-mandates-one-fullregen-pass, L1-fidelity-has-no-owner-in-cheap-path, L1-diff-editing-never-built, H3/H4, L1-translator-structure-arm-never-tested |
| 4 Память | L3-seed-workaround-not-code-root, L3-recurrence-draft-longer-eats-approved-shorter, L3-suppressor-disposition-blind-right-fix, L3-editor-block-stale-monolingual-D1 |
| 5 Качество | H5-no-in-loop-quality-signal, H14-inversion-guard (D37 §2г), H12-cross-boundary-coherence-untested |
| 6 Export | L5-normalization-fused-to-flag-path, L5-broken-word-class-*, L5-diacritics-class-lost, L5-legit-cjk-gloss-stripped, L6-technique-not-norm-overclaim |
| 7 Гигиена | L8-* (target-blind gates, role-switch, strip-smear, prompt-orphans, dead gatesEnabled, foldModelWire) |
| Процесс (к.5) | H18-no-standing-findings-ledger-process + незакрытые владельческие: H6 running-summary, H7 input-size-limit, H8 abuse-prescreen, H9 parallelism/speed (V4-п1), H15 glossary-auto-build (V4-п4), H10 user-stop, H16 self-improvement |
4. Дорожная карта — две параллельные фазы (решение владельца: фазово)
Трек A — Build-now (бэкенд, ресёрч НЕ нужен, высокий ROI, низкий риск)
Порядок ≈ по ROI/риску; всё под мандат самопроверки исполнением (CLAUDE.md):
- Слой 4 память-корень — disposition-gate на suppressor + громкий лог дропа. Мал, хирургичен, закрывает терм-дрейф в коде (снимает вечную зависимость от сид-воркэраунда).
- Слой 5 (детерм. часть) — per-run структурный quality-report + inversion/omission-бэкстоп (полярность/число/ ранг/пропуск, span). Измеряет всё остальное.
- Слой 6 export-contract — нормализация каждого финала; санитайзер → детектор.
- Слой 7 гигиена — реестр role→инъекция, target-aware гейты, де-размазка, снос сирот. (Разблокирует слой 2 сеам.)
- Слой 2 сеам (после гигиены) — pair-keyed резолв промпта/правил; наполнить zh→ru; язык промпта = свойство пакета.
- Док-долг оркестратора: формализовать/вычистить фантомный «D35.7»; ратифицировать диспозиции незакрытых владельческих идей (input-limit / abuse-prescreen / parallelism / glossary-auto-build — явное решение, даже если «Ф2/Ф3»).
Трек B — Ресёрч ПЕРЕД постройкой (концерны 1+2+4 — сцеплены)
- Единая полигон-матрица:
{граница: greedy|logical} × {edit-единица: чанк|глава} × {когезия: нет|summary/carryover} × {где reflow: переводчик|редактор|отдельный-пасс}на реальном вебновелл-срезе. ⚠ exp14 vs research/18 §A прямо конфликтуют по размеру чанка — это ключевой вопрос, который матрица решает эмпирически, не догадкой. - Полигон-синк (13.07) — ТОЛЬКО про дизайн эксперимента, НЕ про продукт (инвариант общности §0.1): exp14
«пробелы» по сцен-границе/кросс-границе/translate-стадии — не отрицательные результаты, а непротестированные
допущения, потому что тест-срез (ранняя арка 蛊真人) плоский (1 предл./строка, мало сцен-маркеров) и физически
не задействует эти рычаги. Это чисто экспериментальное ограничение: чтобы ИЗМЕРИТЬ рычаг границы/когезии, нужен
текст, который его задействует. → эмпирика валидирует чанкер на РАЗНООБРАЗНОМ корпусе (плоский CJK line-per-
sentence · сцен-маркированный · длинно-абзацный европейский · ja-ранобэ · …), а не на одной книге. Плоская книга —
ОДНА точка спектра, который общий чанкер обязан обрабатывать, никогда не повод сузить продукт. Реюз: кривая +
A-ref-prev/both как есть; дозаказать
A-ref-next+ translate-плечо + добрать структурно-разные срезы. - Интернет-best-practices по логической/семантической нарезке крупных текстов (владелец просил явно) + фоллбеки.
- Дизайн слоя 2 (форма pair-pack, язык промпта) — под данные матрицы (§D-3 research/18: форма не разрешена).
- Методика-guard D32.4 (fidelity-first, leave-one-out, катастроф-скрин — полигон трижды собирал ложную сходимость).
Гейт пере-прогона
Пере-прогон 3–10 глав — только после трека B (иначе снова слабый тест на голом конфиге) и приёмки ключевых build-now (память-корень + quality-сигнал + export-contract). Планка — 2 претензии владельца (интерим, не пилот Ф2.5).
5. Процесс против «сломанного телефона» (концерн 5)
Постоянный findings-ledger как повторяющийся шаг оркестратора (этот аудит — первый экземпляр, 08-*):
- Каждая находка полигона/ресёрча/аудита получает явную диспозицию (FAITHFUL/DISTORTED/LOST/WORKAROUND_NOT_ROOT/ UNTESTED_ASSUMPTION/NEVER_CLOSED/CODE_SMELL) и трекается до закрытия (fixed / ratified-deferred / retracted).
- Вопросы «к бэкенду» из ресёрча (research/18 §D) обязаны получать ответ, маршрутизируемый обратно (сейчас висят).
- Периодический completeness-critic прогон (как этот) на границе фаз — не разовый.
6. Что НЕ демонтируется
Столпы (деньги/durability, snapshot-дисциплина, детерминированный банк памяти как ставка, echo-гейт, 18+ линия, дешёвый трек, конфиг-первое ядро) — целы. Целевая архитектура — это декомпозиция и до-стройка существующей машинерии по чистым сеамам, а не переписывание. Фронтир-тир остаётся «потом» (новый yaml, не переделка кода).