167 KiB
Журнал прогресса
⟶ ТЕКУЩЕЕ СОСТОЯНИЕ (обновляемый блок; на 2026-07-12). Источник истины по РЕШЕНИЯМ —
architecture/05-decisions-log.md(D1–D38); этот файл — ЖУРНАЛ, не спека.
- Фаза: 0 ✅; Ф1-машинерия ✅ (D21–D28); приёмка этап A ✅ (D24). Путь D26→D35: качество-первым. Флип D1 моно→билингв (D30, supersede D17), reflow+output-санитайзер (D30/D33), сид v2 подписан владельцем (D34.1), переводчик flash сохранён (exp13/D32 — pro отклонён). Пере-прогон 25 глав связкой ВЫПОЛНЕН; вердикт владельца: «лучше (из-за сида), но крайне слабо художественно» (2 претензии: абзацы/конвенции + понимание связей). ПИВОТ D35: цикл приёмочных прогонов ЗАКРЫТ (инфра ✅ подтверждена исполнением / читаемость ❌ = блок на непостроенной Ф2 — НЕ провал; диагноз «Ф2-недострой + near-term промпт/нарезка-рычаги, не баг» верифицирован; флор D24.3 валидирован в проде). Планка впредь = 2 претензии владельца (ИНТЕРИМ пре-скрин, НЕ пилот Ф2.5). Очередь «мерить→строить»: research/18 ЗАЛЕНДЕН (D36) → полигон exp14 ПРОГНАН+ратифицирован (D37, ACCEPT_WITH_FIXES): претензия-1 (абзацы) = рычаг ПРОМПТА/активации (F-base фронтир+старый промпт рубит хуже P0), дёшево — дискурс-промпт + крупный чанк; A-2pass отклонён (2-пасс дрейфует); разряды 甲乙丙 → кириллица «класс А/Б/В/Г» (владелец); re-gate хвост ~5-6 реальных редактор-инверсий (не 13 — kimi оверфлаг); претензия-2 хвост → exp14b ПРОГНАН+ратифицирован (D38): «только gpt-5.4» ОПРОВЕРГНУТО (дешёвые mistral/deepseek-pro чинят двойн.отриц, что glm-5+grok инвертируют; провалы разбросаны; фронтир в дефолт НЕ нужен — P1a≈F-disc по абзацам); корень терм-дрейфа = статус-draft сида (draft-термы не в editor-констрейнте + longest-match съедает верный approved) → promote грейды(А/Б/В/Г)+四代族长 approved; кандидат glm-5→mistral/deepseek-pro (дешевле+чинят) на бейк-офф ПРОЗЫ/omission → бэкенд под доказанный конфиг. Эмпирика сошлась на ОРГАНИЗАЦИИ (не моделях) — D30.7-трек подтверждён. h2h залендён (D38.1): ChatGPT↔Claude расходятся (фронтир-сильнее ↔ near-parity), сходятся — дефекты=инфра, никто не publishable без человека → разворот к СТРОИТЬ инфра-пак (
BACKEND_INFRA_PACK_SESSION_PROMPT.md), не ещё-один-editor-эксп. Бэкенд-фиксы (D35.4): экспорт-баг (ch5/ch20 пустые), ведущий###из draft, глоссарий разрядов 甲乙丙丁. Трек: дешёвые модели сейчас, фронтир потом (D30.7). Решающая точка — пилот Ф2.5 (блокеры: билингв-якорь/аннотаторы ≥3 — D25.9-Q1, корпус, судья-дублёр — D22.6). (Детальная хроника D30–D34 — в записях ниже + D-лог.) Консолидация D38.2 (док-гигиена): eval спент-скрипты сгруппированы вeval/exp12|13|14|14b/(живой сид/оракулы вeval/), статус-доки +.pumlактуализированы до D38.1, ссылки проверены (1799) — контракт-решения не тронуты. Инфра-пак D38.3 залендён (санитайзер strip+export + число/omission-гард, верифиц. исполнением: build/vet/test зелёные, 3 span-дефекта запинены); дискурс+чэнъюй editor (v3,0ac5f7a) + reseed (eb409f2) ЗАЛЕНДЕНЫ (D38.5). ⚠ ПЕРЕ-ПРОГОН ПРИОСТАНОВЛЕН арх-ресетом (2026-07-13): владелец остановил раунд — тактическое латание вместо архитектуры + «сломанный телефон» полигон→оркестратор→бэкенд. ХендоффORCHESTRATOR_ARCH_RESET_PROMPT.md(5 концернов + синк-план). → РАТИФИЦИРОВАНО D39 (13.07): синк-аудит (42 агента, $0, 65 находок / 0 refuted —architecture/08-sync-audit-ledger.md) → целевая 7-слойная архитектура + фазовый план (architecture/09-target-architecture.md). Вывод: потолок в НАШЕЙ организации (нарезка/проходы/контракт t-e/когезия), не в моделях. Владелец: фазово (трек A build-now ∥ трек B ресёрч, пере-прогон после трека B) + слой пар = сеам сейчас, zh→ru контент. Несущее: редактор=4-мандата-full-regen (причина инверсий); верности нет владельца (inversion-guard не построен); нарезка=потерянный рычаг (const в неверной единице, границы бюджетные, edit=draft-единица, когезия=мёртвые заглушки); терм-дрейф код-корень ЖИВ (сид-воркэраунд); ноль quality-сигнала в контуре; «D35.7» фантом→формализован. Дальше: хендофф-промты трека A (бэкенд) + трека B (полигон+ресёрч).- Стек (пост-D32): черновик — deepseek-v4-flash СОХРАНЁН (exp13/D32: смена на pro отклонена по данным — сфабрикованная сходимость + катастрофа 蛊→«гусеницы» + верность у flash не хуже; thinking ON; escalate_to=pro без изменений) · редактор — БИЛИНГВ (D30.1), кандидат glm-5-билингв (gemini — премиум-эскалация за санитайзером; grok reasoning-off из редакторов СНЯТ — no-op) · судья/апекс Gemini 3.1 Pro (слаг
-preview; mandatory thinking;additive_total— D22.3) · эскалация A: DeepSeek V4 Pro → GLM-5.1 → Gemini-preview · канал B (18+): Mistral · эскалация grok-4.3 reasoning-ON (⚠ не на архаичных zh — D22.5) · abliterated-скрининг · судьи: эротика — Grok (дублёр гейтится пробой D22.6), violence/SFW — Grok+Gemini (DeepSeek в explicit запрещён ToS — D14.1). 7 ключей.- Экономика:
experiments/08-cost-model-v2.md— до-флиповый ~$0.69 ранобэ / ~$10.94 вебновелла-500; после флипа D1 → ~$0.85/ранобэ (+15–25%, D30.4); «$1.5–2» = опция Б (селективный апекс+память, НЕ подписана); пере-съём = exp08 v3 (D21.8/D25.8). ⚠ Resume: любой--resnapshot= переоплата книги — онгоинг гейтится реализацией D15.2 (идёт, D30.9). Gemini-недоучёт 146×/вызов закрыт additive_total (D22.3).- Ждём от владельца:
подпись спорных терминов сида v2✅ ПОДПИСАНО (D34.1; владелец переопределил: Жэнь Цзу, Монах Цветочного Вина, гу Жизни, деревня Гуюэ, первобытный камень; род «гу» муж) · чтение 25 глав пере-прогона (арбитр читаемости — после связки+re-gate) · флагман-сверка exp13 (переводчики, monitor-паттерн) · DashScope-ключ для qwen-арма exp13 (опционально) · планка запуска (лучше-фана/гибрид/издательский + готовность к COGS опции Б ~$1.5–2 — мемо-эскалация exp12; интерим D30.7: «лучше фана» на дешёвом миксе) · решение по билингв-якорю пилота (D25.9-Q1) · «да/нет» митигации контаминации пилотного корпуса (D27.4) · publishable/waiver — при экспорте (D25.1) · FN-bound L3 — при спеке (D25.4) · провенанс 12-*-доков · юр-пакет (+rights manifest, D25.8).- Записи ниже — хронология; РАННИЕ (день-0, 04.07) содержат устаревшие цифры/решения (COGS $2–4, BYOK, Anthropic-Sonnet), переопределённые позже — см. блок выше и 05-decisions-log.
Полигон — reseed: промоут грейдов + 四代族长 в approved (POLYGON_RESEED_SESSION_PROMPT.md), 2026-07-12 (D38.5)
Направленный владельцем детерминированный фикс корня терм-дрейфа (exp14b D38 §3 / D-лог:499). Фактчек по D-логу+сиду ПЕРВЫМ (не по памяти): D-лог:499 направляет РОВНО 5 термов; D-лог:437 перечисляет остальные draft (南疆/沈嬷嬷/гу-имена) как «при желании владельца» — НЕ трогал (approved-инвариант). Одно уточнение против наивного «просто флипнуть статус»: грейды в сиде стояли dst «разряд X», а D37 направляет «класс X» → трансформ меняет И dst, И статус.
Трансформ eval/exp14b/exp14b_reseed_promote.py (паттерн exp13_seed_signoff; идемпотентен + байт-стабилен D30.5; сид ВНЕ git). Пре-снапшот diag/guzhenren-seed-v2.pre-reseed.yaml, лог diag/glossary_v2_reseed_promote.md.
| src | было (dst/status) | стало | что чинит |
|---|---|---|---|
| 甲等/乙等/丙等/丁等 | разряд А/Б/В/Г · draft | класс А/Б/В/Г · approved | грейды теперь в editor-констрейнте; развести с 转→«ранг» (D37) |
| 四代族长 | Четвёртый глава рода · draft | · approved | approved-длинный выигрывает longest-match; 族长 не съедается впустую (D38 §3) |
Само-проверка ИСПОЛНЕНИЕМ (не на веру):
diffпре-снапшот↔сид = РОВНО эти 5 термов (ничего лишнего); повторный прогон = байт-в-байт (идемпотентно, note не накапливается); approved 47→52 (Δ=+5); 5 остаточных draft не тронуты.- Enforce-зеркало (таргетный порт
memory.go:485-503memConfirmed-only +:615-641suppressContained; при расхождении верить Go) на синт.чанке (мой конструкт, не из книги): ДО — 四代族长/грейды draft⇒невидимы, в контексте главы рода якоря нет (рядом лишь 家老→«старейшина»); ПОСЛЕ — Δ = {«Четвёртый глава рода», «класс А», «класс В»} появляются; standalone 族长→«глава клана» и 家老→«старейшина» целы в обоих (家老=старейшина легитимно — фикс это не ломает); 五转→«пятый ранг» отдельно (развести 转/грейд соблюдено).
Оркестратору: трансформ eval/exp14b/exp14b_reseed_promote.py untracked — на ваш коммит (промпт: скрипт коммитит оркестратор; путь: владелец перенёс в папку exp14b/ по имени-конвенции, стдлиб+yaml, импорты не рвутся) + единый resnapshot (P1a-промпт + промоутнутый сид + инфра-пак, D30.9 — одна переоплата книги). Обновлённый сид на диске (ВНЕ git). ✅ Стейл-хвост грейд-заметок вычищен (по указанию оркестратора до снапшота: «Head разряд declines / owner may prefer первый/высший» убран; схема в заметке теперь «класс А>Б>В>Г»; трансформ авторит чистую заметку детерминированно, verify пере-прогнан — байт-стабилен/идемпотентен, стейл-фраз 0).
Полигон — уборка/консолидация зоны (POLYGON_CLEANUP_SESSION_PROMPT.md), 2026-07-12 (D38.2)
Сессия по промпту уборки (эксперименты закрыты D38, «мерить→строить» пройдена). Фактчек направления — ПЕРВЫМ (мандат промпта); аудит оркестратора уточнён:
- Задача 1 ✅ — индекс
docs/experiments/README.mdсоздан, каждая строка сверена по шапке дока + D-логу (легенда ⭐живой-reference/живой/закрыт/settled; дуга 12→14b; пропуск exp05 отмечен). Указатель на карту скриптов вeval/README. - Задача 2 — уборка
eval/: (а)exp14b_{arms,judge,monitor,score}.pyзакоммичены (path-scoped,0be3084) — дыра воспроизводимости за ратифицированным D38 закрыта. (б) Карта скриптов вeval/READMEрасширена (9feb115): все семьи exp12/13/14/14b + 18+/корпус-билдеры +dialogue/mistral_fidelity/local_bench— навигация плоского каталога без перемещения. - ⚠ ФАКТЧЕК ОПРОВЕРГ наивную «архивацию exp12/13»: прямое условие промпта («без живых импортов») выполнено (exp14b импортит
exp14_common, не exp12/13), НО нашлись живые цитаты по пути, которыеgit mvпорвёт:eval/exp13_seed_v2.py+exp13_seed_signoff.pyцитируются D-логом:400/437 как воспроизводимый провенанс ДЕЙСТВУЮЩЕГО сида v2 (D30.5) — это ЖИВЫЕ скрипты, не спент; плюс exp12/13/14 цитируются по пути из закрытых отчётов (12/13/14) и PROGRESS-прозы.memory_hotpath.py(README: УСТАРЕЛ) — в ~10 ссылках вкл.architecture/06:114. Перемещение = сирота-ссылки в зонах, что я не правлю (D-лог/PROGRESS/architecture) → нарушение D23.3. Вывод: уборка = индекс+карта, НЕ relocation; ничего не двигал. Гигиена gitignore уже чистая (нет трекнутого мусора). [⟶ СУПЕРСИДНУТО D38.2-оркестр (12.07): владелец выбрал полную логическую группировку кода по папкам; спент-семьи перенесены вeval/exp12|13|14|14b/, живой сид (exp13_seed_v2/signoff) и оракулы оставлены вeval/, ВСЕ цитаты+импорты починены и проверены (py_compile+find_spec); контракт (D-лог) не трогали. См. оркестр-запись ниже.] - Самопроверка (мандат):
py_compile4 exp14b-скриптов — OK;import exp14_common— чисто (Spender/cost_of на месте); импорты закрытых экспов не тронуты (0 перемещений).git statusперед каждым коммитом; staging пофайловый. - Мультисессия: живой бэкенд (infra-pack) держит WIP в
backend/internal/pipeline/{sanitizer,chunkrun,disposition}.go— не трогал (не моя зона).
Оркестратор — исполнение полной консолидации (D38.2), 2026-07-12
Владелец передал остаток оркестратору (апдейт всех доков + рефактор полигон-репо + архивирование; ссылки проверить; бэкенд-сессию не нарушить). После read-only карты (5 агентов: число-лаг / ссылки [1799 проверено] / .puml-дельта / граф цитирований eval / точность индекса):
- eval → логическая группировка по папкам (владелец поправил mid-flight: не «архив» — это код-репо): 30 спент-скриптов →
eval/exp12|13|14|14b/; живой сид (exp13_seed_v2/_signoff) + оракулы оставлены вeval/(контракт D-лог:400/437 не тронут). Импорты сохранены шимами (.parent.parentдляrefusal_bench;exp14b→../exp14);py_compile(30/30) +find_spec(вся цепочка) зелёные. Path-цитаты (experiments/12/13/14, eval/README) починены. - Доки до головы D38.1: статус-абзацы
CLAUDE.md/README/PROGRESS(были заморожены на D35); число-лаг «D1–D35/D31»→«D1–D38»;.pumlD17→D38.1 (targeted-patch: моно→БИЛИНГВ-редактор, +узлы санитайзер/диагностик-харнесс, канал-B v2, роли провайдеров; внутренние;в активити →·). - Ссылки: live битый
research/17→ архивный acceptance-путь; над-атрибуция индекса снята (exp04 →D30.1, exp12 →D30). Историч. D-лог:87/91 (runner.go, D12) и link-rot frozen-архива НЕ переписаны — D23.3 + прецедент D-лог:288. - Гигиена:
POLYGON_CLEANUPзаархивирован с баннером-исходом. 6 path-scoped коммитов; бэкенд-WIP (19 файлов) не тронут. Разбор — D-лог D38.2.
Инфра-пак читаемости залендён (D38.3), 2026-07-12
Бэкенд-сессия исполнила BACKEND_INFRA_PACK (4 задачи, backend/ only, не коммитила); оркестратор верифицировал ИСПОЛНЕНИЕМ (второй рубеж) и залендил (d5beefc, 19 файлов, path-scoped).
- Верификация:
go build/vet/test -race ./...зелёные; 3 span-дефекта запинены реальными тестами —却有CJK strip+export (TestSanitizerCJKLeak/TestStripCosmetic/golden ch8),### Главаmarkdown strip+export (golden ch7),44→«четыре десятых» number-drift (TestRegressionGuardNumberDrift). - Сделано: экспорт флагнутого-косметикой чанка (ch5/ch20 не пустые, D35.4a) · класс
cjk_leak(фолд полноширины123→123, U+3000 искл.) · opt-in число/omission-гард (наблюдаемость, НЕ drop) · reseed-enforce верифицирован (сид не трогал). - Самопроверка бэкенда: 19-агентный адверсариал → 4 CONFIRMED+1 UNCERTAIN, все починены до отчёта (вкл. MAJOR: полноширина-число теперь сохраняется фолдом, не удаляется).
- 3 дизайн-вопроса владельцу (не блокируют): порог гарда 40%; легит CJK-глоссы в скобках (
(羅漢拳)стрипается); кап на тяжёлую-под-эхо утечку. Разбор — D-лог D38.3. - Дальше: рычаг №1 (дискурс-промпт P1a→боевой editor, промпт-зона) + reseed (промоут грейдов) → единый resnapshot (D30.9) → пере-прогон 3–10 глав → чтение владельца.
Аудит полноты exp14/14b (D38.4), 2026-07-12
Владелец: «не забыли ли полезные выводы?» — ledger ВСЕХ выводов exp14/14b → диспозиция (субагент + спот-верификация по коду/промптам). 4 незакрытых + 1 минор:
- (1) ⚠ Чэнъюй-сплющивание ЗАБЫТ near-term (D38 §2г = рычаг промпта/глоссария; отсутствовал в P1a-атом-листе, editor.md, reseed) → дописан атом «идиомы/чэнъюй — оба компонента» в дискурс-промпт (окно открыто); долгосрочно Ф2 Annotator-маски (04-unhappy §124).
- (2) ⚠ inversion-гард D37 §2г НЕ строился (D38.3 = число/omission = длина/числа, НЕ полярность) → полярные инверсии (a1, glm валит независимо от промпта) закрывает лишь fidelity re-gate (скоринг пере-прогона) + editor-swap → свап = защита от инверсий, приоритет↑, кандидат в ДЕФОЛТ, не просто арм.
- (3) b1 word↔word число-дрейф покрыт ЧАСТИЧНО (гард видит только арабские цифры черновика;
四成四→«четыре десятых» слеп) → Ф2 / канон-глоссарий. - (4) крупная edit-единица («умное чанкование») = явный re-run-арм (тест на пере-прогоне; прод-нарезку не менять до подтверждения).
- (5) (минор) число/omission-гард opt-in → оркестратор включает тумблер
Gates.RegressionGuard.Enabledпри resnapshot.
Курс НЕ меняется; near-term конфиг пере-прогона уточнён. Разбор — D-лог D38.4.
АРХ-РЕСЕТ: раунд приостановлен, хендофф новой оркестратор-сессии (2026-07-13)
Владелец остановил раунд: тактическое латание вместо архитектуры с первых принципов + «сломанный телефон» полигон(ресёрч)→оркестратор(выводы)→бэкенд(реализация); триггер — чуть не потеряли «умное чанкование» (оркестратор о нём не вспомнил, пока владелец не вернул). Пере-прогон ПРИОСТАНОВЛЕН. Выдан docs/ORCHESTRATOR_ARCH_RESET_PROMPT.md — 5 концернов владельца: (1) translator/editor-разделение (абзацы легли на редактора — а переводчик? редактор переписывает всю главу? тестировали?); (2) чанкование НЕТРИВИАЛЬНО (влияет на структуру+смысл; глава>чанк→логическая нарезка; отдельный ресёрч, статический код, интернет-best-practices, фоллбеки); (3) аудит лендингов «сломанный телефон» (чисто/расширяемо/правильно ли залендено); (4) промты ПЕР-ЯЗЫК + где держать правила пар zh→ru/en→ru + few-shot-релевантность + русско-центричность (V4-п5 START_PROMT); (5) дыра в передаче знаний (что ещё забыли — систематический ledger). План: новая оркестратор-сессия синкается с полигоном, полигон с бэкендом; пере-прогон — только после архитектурной проработки. Эта сессия — ТОЛЬКО передача дел.
Оркестратор №6 — синк-аудит + целевая архитектура ратифицированы (D39), 2026-07-13
Онбординг + грунтовка по коду (chunker/chunkrun/stagerun/memory/промты — не по заголовкам). Вопросы к предыдущему оркестратору (через владельца) подтвердили: концерн 1 контрактно ОТКРЫТ (D30.2, 05:366 — «механизм реверстки открытый вопрос»; арм «переводчик даёт структуру» не тестировался); «D35.7» — фантом (бэклог-кандидат 05:471, не ратифицирован).
Синк-аудит (многоагентный воркфлоу, read-only, $0): 42 агента, 8 дорожек (по несущему рычагу: цепочка полигон→оркестратор→бэкенд), адверсариальная верификация refute-by-default. 65 находок: 25 CONFIRMED, 9 PLAUSIBLE, 0 REFUTED; верификаторы отделили настоящий «телефон» от осознанных ROI-деферов. Ледджер — architecture/08-sync-audit-ledger.md (первый экземпляр процесса концерна 5). Спот-верифицировал сам корневой пример: терм-дрейф-фикс = сид-воркэраунд (memory.go:489 CONFIRMED-only + suppressContained:615 disposition-слепой, код не тронут — git log подтвердил).
Ратификация D39: целевая 7-слойная архитектура + фазовый план — architecture/09-target-architecture.md. Решения владельца (AskUserQuestion): фазово (трек A ∥ трек B, пере-прогон после B) + слой пар = сеам сейчас/zh→ru. Док-долг трека A: формализовать/вычистить фантомный «D35.7»; диспозиции незакрытых владельческих идей (V2-п1/2/3, V4-п1/4). Мультисессия: дерево чистое (только START_PROMT.MD владельца); написаны 08/09 + D39-блок + актуальность-карта + этот журнал; НЕ коммичено (ждёт обзора владельца + git-status перед стейджем). Дальше — хендофф-промты трека A (бэкенд) и трека B (полигон+ресёрч).
Оркестратор №6 — трек B залендён (D39.1): research/19 нарезка+когезия+волны+пре-рег эмпирики, 2026-07-16
Ресёрчер исполнил RESEARCHER_CHUNKING_COHESION_* (архивирован с баннером; правки владельца в задаче-1 — роли при чанковании, lost-in-middle — закрыты §A.1/Q2c). Залендено БЕЗ оркестратор-ревью — прямое решение владельца 16.07 (сессия само-верифицирована: 52 клейма → 36 CONFIRMED/16 OVERSTATED-скорректированы, 65-агентный воркфлоу + 5-линзовое само-ревью, 8 MAJOR исправлены до сдачи). Несущее: конфликт exp14↔research/18 = ложная дихотомия (единица эмиссии ≠ окно чтения ≠ единица связности); Go-спека чанкера (профиль→B0–B5→целочисленная DP)+фоллбек-веер; когезия carryover/lookahead/детерм-стейт (не LLM-summary); волновая архитектура W0–W3 (вводная владельца 16.07 = V4-п1 параллелизм; W1.5-консолидация банка = V4-п4); §D пре-рег дизайн Q0–Q5 (двойной якорь, reflow-инвариантный omission, карта независимости сигналов, ~$8–15). Открытое: §E.1–4 владельцу (гибрид/пол-в-сиде/транскрипция/бюджет), §E.5–8-бис бэкенду (⚠ DeepSeek-слаги до 24.07; ⚠ вендор-чек кэша ZAI/GLM). Разбор — D-лог D39.1. V4-п6 (Cloudflare Workers AI) закрыт владельцем самостоятельно — «ловить нечего», в ресёрч-очередь не идёт.
Оркестратор №6 — трек A пак-1 залендён (D39.2, d3f6b34), 2026-07-16
Бэкенд исполнил T1–T4; верификация прямая, исполнением (мандат): build/vet/race-тесты зелёные (прогнал сам), golden-детерминизм PASS, пиновые тесты вербозно, несущие диффы прочитаны построчно, golden re-capture воспроизведён независимо (маскированный структурный дифф = 0 расхождений — только хеши/версии/2 новых пустых поля). ⚠ Мульти-агентный второй рубеж 3× упал на API-529 — зарегистрирован ДОЛГОМ (по восстановлении API; находки → фикс-лист пак-2, маршрут D37). Залендено: терм-дрейф закрыт в КОДЕ (trust-gated suppressor, memmatch-v4, громкий retrieval_state) · export-contract нормализация каждого финала (width.Fold, не NFKC — тот калечит «…»/«№») · pair-keyed промпт-сеам (fail-loud на не-zh-ru; Book.LangPair() ожил) · реестр role→инъекция · target-gated readability · tmctl report (детерм. quality-KPI). Снапшот: memmatch-v4+sanitizer-v5 → плановый единый resnapshot (и так требовался D38.5). Открытое → D39.2 (полигон-экспорт-поверхность ДО пере-прогона; CJK-глоссы — владельцу; билингв src→dst; ja-пример). Разбор — D-лог D39.2. Решения владельца (16.07, пост-D39.2): бюджет §D-эмпирики ≤$15 ✅ · поле gender в схеме сида ✅ (транспорт+подпись — в exp15-преп) · CJK-глоссы СОХРАНЯТЬ (против текущего стрипа → whitelist в фикс-лист пак-2; скоринг exp15 глоссы не штрафует) · W1.5-гейт — решить после Q3. Адверсариал-долг ПОГАШЕН (D39.4, 17.07): 8 осей по обоим пакам, 0 CRIT/1 HIGH/6 MED — ядро держится; HIGH = fold-first обход санитайзера (полноширинная сигнатура обходит детектор, exportNormalize изготавливает ASCII-дефект) + глосс-whitelist не ограничивает латиницу; пак-1.5 НЕ лендится до фикс-листа F1–F9 (вписан в BACKEND_TRACKA_PACK15 §T4; v6 не лендился → fold-first в тот же бамп v5→v6, один golden re-capture). Пакет банк-майнинга W1.5 ратифицирован (D39.3, по записке ресёрчера-19 через владельца): диспозиция H15/V4-п4 → активный пакет «ресёрч→полигон→бэкенд-дизайн»; гипотеза №1 владельца («код сам разметит») — проверяемая; промт RESEARCHER_BANK_MINING_SESSION_PROMPT.md ВЫДАН с HOLD-гейтом (запуск после фриза exp15). Промт exp15 ВЫДАН: POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md (исполнение research/19 §D: пре-рег фриз пинит бэкенд-HEAD/сид/промты; Q2b→Q1+Q3→Q2a/Q2c→Q4→Q0; преп: DeepSeek-слаги до 24.07, вендор-чек кэша ZAI/GLM, gender-транспорт).
Компоненты единого resnapshot залендены (D38.5), 2026-07-12
Оба параллельных deliverable исполнены сессиями + верифицированы оркестратором ИСПОЛНЕНИЕМ + залендены:
- Reseed (
eb409f2) — 5 термов промоутнуты (грейды→класс А/Б/В/Г+approved,四代族长→approved), enforce-Δ держится, идемпотентен; стейл-хвост вычищен. - Дискурс-editor (
0ac5f7a) — P1a-reflow (append к baseline=победительb3b4f604) + чэнъюй-атом D38.4 (SHAb3b4f604→95b1085= ровно чэнъюй) + few_shot-тумблер (ON=ядро+примеры / OFF=ядро для deepseek-pro swap; детерминизм тройной, golden цел).go build/vet/gofmt/test -raceзелёные, тесты snapshot-fold/wire/absent-noop/golden пройдены. - Все 3 компонента resnapshot ГОТОВЫ: editor v3 (P1a+чэнъюй+тумблер) · reseed-сид · инфра-пак D38.3.
- Дальше — единый resnapshot (D30.9, одна переоплата книги) + пере-прогон 3–10 глав: glm=P1a-few-shot дефолт + армы {mistral few-shot · deepseek-pro
few_shot:false· крупная edit-единица} +RegressionGuardON → чтение владельца (интерим-планка 2 претензии). Разбор — D-лог D38.5.
ФЛАГ-ЛИСТ (чужие зоны, в отчёт, НЕ делал):
- Владельцу:
/home/ubuntu/books/gu-zhenren/{diag,rerun,acceptance,exp14,research15-probes,exp14b}≈ 18M артефактов закрытых экспов/приёмки — можно чистить (исходники*.txt~38M +*-seed*.yamlНЕ трогать). Решение владельца. - Оркестратору: (1) если физическая архивация exp12/13 всё же желательна — она требует правок цитат в D-логе:400/437 + PROGRESS (ваша зона); я оставил всё на месте намеренно. (2)
.puml(components/pipeline) синхронны с D17 — на ~21 решение устарели (нет D30-билингв-флипа, D35-пивота) → баннер/обновление. (3)CLAUDE.md/docs/README.mdчисло-лаг «D1–D35»→D38 (косметика).
Полигон — exp14 эмпирика рычагов качества (нарезка×промпт + фронтир 2×2), ПАРТИЯ 1, 2026-07-12 (D36)
Сессия по POLYGON_QUALITY_EMPIRICS_SESSION_PROMPT.md. Пре-регистрация ЗАМОРОЖЕНА коммитом ДО первого платного вызова (D30.10; docs/experiments/14-quality-empirics.md §1 — trap-набор 6 трапов вкл. gl.7/gl.8 владельца, армы нарезка×промпт, метрики/гейты, бюджет-по-ключам). Харнес eval/exp14_*.py (call+3-режима-cost+per-call-кап+токенайзер+реконструкция инъекции из retrieval_state.injected_ids). Все выходы ВНЕ git (/home/ubuntu/books/gu-zhenren/exp14/). Бэкенд не трогал (0 правок).
ПАРТИЯ 1 (trap-набор, 9 чанков): 0 ошибок на 64 арм-вызовах; трата ARM $1.77 (ZAI $0.43 + OpenAI $1.34) + trap-судьи $0.50 (gpt-5-mini+kimi, кросс-семейно) ≈ $2.27 (глубоко в остатках). T1-катастрофа корроборирована независимой панелью (2/2 судьи флагают КАТАСТРОФУ на всех дешёвых армах, чистят фронтир). Фронтир = gpt-5.4 ($2.5/$15, live-фактчек 2026-07-11; GPT-5-линейка до 5.4/5.5/5.6, взят 5.4 standard).
ГЛАВНЫЙ ВЫВОД — потолок РАСЩЕПЛЁН по двум претензиям владельца (прямой ответ на «модели vs нарезка/промпт»):
- Претензия 1 (абзацы/конвенции) = наш ПРОМПТ/ПАЙПЛАЙН (активация), НЕ модель. Детерм. KPI предл./нарратив-абзац: P0 1.91 → P1a (дискурс-промпт) 2.61 → A-2pass (семантика→target-only reflow-пасс) 3.33 (лучший, доля-1-предл. 0.187, БЕЗ коллапса длины/CJK). Фронтир+СТАРЫЙ промпт (F-base 1.58) ХУЖЕ дешёвого P0 — «сильнее модель» абзацы НЕ чинит. A-layout (deformat черновика) улучшает абзацы (3.13), НО CJK-утечка ×20 (регресс-гард поймал) — deformat требует CJK-пост-гарда.
- Претензия 2 внутри-чанк (смысл) = дешёвая МОДЕЛЬ (capability floor). T1 (gl.7 двойное отрицание «все знали»): glm-5 инвертирует в «никто не знал» НЕЗАВИСИМО от промпта (P0 и P1a); gpt-5.4 чинит НЕЗАВИСИМО от промпта (F-base и F-disc). T2 (物是人非) — тот же знак. Промпт претензию 2 НЕ закрывает.
- Претензия 2 кросс-граница = НЕ доминирует в срезе. T5/T6 локально самодостаточны; ±1-reference (A-ref) дал байт-идентичный выход (чинить нечего); whole-chapter (P1c) единственный явно связал антецедент (1 датапоинт).
ПАРТИЯ 2 ВЫПОЛНЕНА (по запросу владельца добавлены Gemini+Grok фронтир-редакторы — честный тест в €2.3; итог обеих партий ≈$8.5 across 6 ключей, каждый под лимитом). Ключевые УТОЧНЕНИЯ:
- T1-«capability floor» — MODEL-SPECIFIC, не общий фронтир (поправка партии-1 n=1): gpt-5.4 чинит инверсию двойного отрицания, а grok-4.3 (фронтир, reasoning-ON) её НЕ чинит — инвертирует как дешёвый glm (заякорился на черновике; мини-проба grok на СВЕЖЕМ предложении верна → провал именно в РЕДАКТОРСКОЙ задаче). gemini-3.1-pro тоже ИНВЕРТИРУЕТ (первый батч был мис-конфигом max_tokens=8000 → обрыв; прицельный ре-тест с max_tokens=20000 на T1/T2 дал полные выходы: «не знал ни один человек» + «всё изменилось» = инверсия+сплющивание; плюс COGS-урок: Gemini-editor ≥16–20k×$12/M ×10 к glm/grok; итог €2.21, в лимите). grok-4.5 — регион-лок (403, оба ключа). ⇒ из 3 фронтир-семей ТОЛЬКО gpt-5.4 чинит смысл-ловушку — П2 чинит gpt-5.4 конкретно, не «любой фронтир».
- Абзацы (П1): grok-disc ЛУЧШИЙ (mean 4.22) но CJK+провал T1; A-2pass 3.33; кривая нарезки: крупнее чанк = ДЕШЕВЛЕ выходных токенов И лучше абзацы, 0 ретраев (оптимум 3200c/глава) → поддержка
edit=крупная единица(D35.7) по COGS И качеству. - Fidelity re-gate (D34.3): пере-прогон НЕ чист — средняя верность 88–94, но 13 катастроф + 21 инверсия редактуры на ~10 чанках (ch10.1 both-judge fid 60); класс инверсий D34.3 подтверждён на хвосте → флаги на span-ревью, пере-прогон засчитан НЕ полностью.
- Ранжирование финалистов (гл.19/17/18): стиль F-disc(gpt-5.4)>A-2pass>P0 (робастно); holistic-верность P0>прочих — НО P0 несёт T1-катастрофу, панель её не поймала = ЛИТЕРАЛ-СМЕЩЕНИЕ судей (урок exp12/мемо eval-aggregation) → доверять span-уровню, не holistic-скаляру.
Слепой пакет владельцу готов: exp14/monitor/monitor14.md (оригинал + 3 финалиста × 3 главы, нейтральные метки, ключ отдельно). Внешняя слепая оценка (2 нулевые сессии ChatGPT+Claude, промпт EXP14_BLIND_EVAL_PROMPT.md) — §2Б.7: 4-сигнальная сходимость (наш KPI+панель+2 внешних) — P0(прод) худшая проза (претензия-1 реальна, прод-специфична; рублёнка = рычаг промпта, не модели), F-disc(gpt-5.4) лучший по прозе И верности → подтверждает поправку «holistic-панель литерал-смещена, вернее F-disc». НОВОЕ: разряды 甲/乙/丙 плывут (обе сессии → D35.4c в приоритет); A-2pass несёт катастрофу верности (人上之人-инверсия, 2-й пасс дрейфует) → near-term = ОДИНАРНЫЙ дискурс-пасс, НЕ A-2pass. Лучший (F-disc) перешёл «лучше фана» у обеих. Near-term рекомендация (ратификация оркестратора): дискурс-промпт + крупная edit-единица (дешевле И лучше) под omission-гард; селективная эскалация на gpt-5.4 (не grok/gemini) по смысл-риску; CJK-гард на deformat/grok; ~10 re-gate-флагов на ревью. Планка = 2 претензии (ИНТЕРИМ пре-скрин, НЕ пилот Ф2.5). Детали — experiments/14-quality-empirics.md §2/§2Б/§3.
Ресёрчер — рычаги качества (research/18-quality-levers.md), 2026-07-12 (D35.5, вход полигону)
Сессия по RESEARCHER_QUALITY_SESSION_PROMPT.md (нейтральный/анти-анкоринг). Ничего не коммичено (лендит оркестратор после верификации первоисточников — как research/15/16/17). Отчёт: docs/research/18-quality-levers.md — §A (заморожена, sha256 44f90364…, построена ДО чтения стека/ChatGPT-отчёта; хеш байтов между маркерами BEGIN/END §A) · §B дифф · §C таблица-рекомендации полигону · §D вопросы.
- Протокол соблюдён: §A из ТОЛЬКО (2 претензии + сырьё rerun/ + механизм chunker.go/translator.md/editor.md + собств. внешний веб-ресёрч 52-агентным фан-аутом с адверсариальной верификацией). НЕ читал в фазе 1: D-лог/хендоффы/rootcause/приёмку. §A заморожена хешем ДО фазы 2.
- Главный результат — ТРОЙНАЯ независимая сходимость (моя §A ⟂ ChatGPT-§A ⟂ эмпирика D26→D35) на диагнозе и большинстве рычагов ⇒ высокое доверие карте «строить». Оговорка D25.10/D32.4: общая нога «внешняя MT-лит» у меня и ChatGPT — не 3 независимых голоса там.
- Замеры на сырье (независимо воспроизвёл): рубленость 41/51 нарратив-чанков ~1:1 абзац-на-строку; редактор структуро-СОХРАНЯЮЩ (слил 1/49) — reflow-инструкция инертна; ch5.0 черновик 5425 симв.→финал ПУСТ (
sanitizer_defect) = экспорт-баг D35.4a; CJK-глифы в 13 финалах. - Несущий вклад СВЕРХ команды И ChatGPT (§B2): (1) zh→ru дискурс-транформ как теория — паратаксис→гипотаксис (意合/形合), 流水句, прямая zh→ru peer-reviewed прескрипция Ван Цуй (Вестник МГУ Сер.22): 5 техник + причастные/деепричастные обороты ⇒ апгрейд research/16 «слияние дискреционно» → «обязательная дискурс-операция, и КАК»; прямой ответ владельцу «конвенция языка, не стиль автора»; (2) слой «пакет конвенций пары» версионируемый (идея владельца; research/07 держит контент как разбросанные brief-политики — отдельного слоя нет); (3) DocRepair EN→RU числа (монолингв. repair-пасс); (4) фертильность-налог кириллицы + cache-ordering + перевёрнутая-U; (5) метрика-инверсия zh→ru (WMT24 NMT>LLM d-BLEU) — не гейтить художественность на авто-метрике.
- Само-поправки §A (§B3, честно): ch5-void = экспорт-баг (не санитайзер); research/16 УЖЕ заземлила русские нормы (Розенталь §52-53/Лопатин/Правила-1956); source-line-strip не нов (exp12:174).
- §C = армы для D35.6: СЕЙЧАС (дискурс-reflow-промпт с zh→ru-контентом · discourse-move few-shot target-anchor · source-strip · детерм. reflow-постпроцессор ops b/c/d · guard пост-черновой регрессии · ±1 reference-контекст · кривая нарезки на retry-adjusted-output-cost · capability-vs-activation 2×2 + фронтир-арм · авто-Claude-судья: KPI-структура без судьи для претензии 1, span+comprehension-QA+perturbation для 2, владелец кросс-чек ChatGPT/вручную) vs Ф2 (running summary+entity-ledger DelTA · chapter-card · ZP-аннотация · монолингв. RU reflow-пасс). Архитектура: слой пары (зона оркестратора/бэкенда).
- Запросы владельца этой сессии учтены: (а) конвенция-vs-стиль отвечена источниками (§A/§B2.1); (б) «модель недоактивирована» → capability-vs-activation арм (§C #9); (в) авто-оценка качества → §C #10 + §D; (г) языковые карты в архитектуру → слой пары §C #15.
12.07 (№4): research/18 (ОБА отчёта) отревьюирован и залендён с ревью-шапками, ратификация D36. Мультиагентный воркфлоу 26 агентов ($0, refute-by-default, первоисточники + реплика сырья): §A-заморозка Claude sha256 44f90364… воспроизведена побайтно (MATCH) → не редактировалась; 57/57 несущих цитат СУЩЕСТВУЮТ (0 сфабрикованных — проверены ВСЕ «2026»-препринты); эмпирика воспроизведена (ch5.0/ch20.0-void ТОЧНО, CJK 13 финалов, 41/51 в допуске, gl.7-инверсия/gl.8-сплющивание фактически есть → на fidelity re-gate); Ван Цуй ПОДТВЕРЖДЁН по ТЕЛУ статьи (скептик декодировал CID/Identity-H шрифт: 5 техник + причастные/деепричастные + подчинение + прескриптивная необходимость — Вестник МГУ Сер.22 2024№3, рецензирован). Вердикты: Claude — ACCEPT_WITH_FIXES (5 поправок в ревью-шапке: DocRepair-числа принадлежат D19-1081 не P19-1116 — числа верны; TransAgents двойная-метка; Z5 автор Dingxu Shi не Li&Thompson; Ван Цуй = прескрипция ТЕХНИКИ, не «норма языка»; «пост-черновая регрессия > 2 претензий» пере-возвышена — ch5-void = экспорт-баг); ChatGPT — ACCEPT (цитатно-чист, §C — самый исполнимый скелет; оговорки: §A-заморозка НЕ воспроизводима из документа = дисконт на вес сходимости, §C4-гейт не ссылается на D34.3). Калибровка «тройной сходимости»: оговорка честна (D25.10 взята), но (а) вторая необъявленная общая нога — оба §A читали одно сырьё/код; (б) цитатные базы почти НЕ пересекаются (~3 общие) → где литература расходится, совпадение сильнее; (в) ChatGPT-заморозку — с дисконтом. Несущий вклад для «строить» держится: Ван Цуй-контент → в reflow-промпт полигона; экспорт-баг ch5/ch20 подтверждён двумя репликами (бэкенд-fix D35.4a). Выдан POLYGON_QUALITY_EMPIRICS_SESSION_PROMPT.md (D36: скелет §C ChatGPT + графт Ван Цуй/COGS/D34.3 из Claude; добавлены недостающая ячейка current-промпт×глава и явный P0-baseline; ch5/ch20 исключены из слепых пакетов).
12.07 (№4): D36.1 — гигиена доков + бюджеты (по запросу владельца). Заархивированы 5 спент-промтов (archive/prompts/, git mv, история не переписана — D23.3): ресёрчер/exp13/санитайзер-фикс/приёмка-v2/D152-этап-А. POLYGON_PACKAGE4 НЕ архивирован (проверка по запросу владельца): как сессия не запускался, отработана лишь task-1 сид-мн.ч. (в exp13/D32); residual жив (D22.6 судья-дублёр — блокер пилота, D25.7 echo-кал, миграция memory_eval с 2.5-flash, пилот-пре-рег, P4-хвост) — пилот/18+/echo-трек, ОРТОГОНАЛЬНО exp14 (не вносить); оставлен активным со статус-баннером как residual-трекер до активации пилота. Активны ORCHESTRATOR_* + POLYGON_QUALITY_EMPIRICS_* (exp14) + POLYGON_PACKAGE4_* (отложен); README-карта + титул D-лога D35→D36 актуализированы. Бюджеты подтверждены владельцем: OpenAI ~$9, Gemini ~€2.6, DeepSeek/ZAI/Kimi/xAI/Mistral ~$9; других нет; «полигон делает что нужно в рамках» → блокер фронтир-ceiling снят (exp14: GPT-5 основной фронтир, Gemini точечно/мета-ревьюер, grok не на ch1; per-call кап + пре-рег). D36.1 — в D-логе.
12.07 (№4): exp14 (эмпирика рычагов качества) отревьюирован и ратифицирован — D37. Полигон прогнал exp14 (нарезка×промпт 2×2 + аблации + фронтир 3-семейный gpt-5.4/gemini/grok + кривая + fidelity re-gate + слепые финалисты P0/A-2pass/F-disc), закоммитил 6 батчей САМ (отклонение — впредь фризить только пре-рег). Владелец прочёл монитор слепо (3 главы) + 2 внешние сессии (ChatGPT+Claude). Независимая верификация — 7-агентный воркфлоу span-уровнем ($0): (1) Претензия-1=промпт-рычаг ПОДТВЕРЖДЕНА (F-base фронтир+старый промпт 1.75 spp рубит хуже P0 1.95; дискурс-промпт реверстает у всех). (2) A-2pass-катастрофа 人上之人 РЕАЛЬНА (span; одинарный P0 её починил → одинарный дискурс безопаснее). (3) Разряды 甲乙丙 плывут (ch9.1 В→Б, ch18.1 «цинское качество») → владелец выбрал кириллицу «класс А/Б/В/Г». (4) T1-floor (только gpt-5.4 чинит двойное отрицание, grok/gemini инвертируют) ВЕРИФИЦИРОВАН, но n=1 + одно-судейно на фронтире → нога-2 (gpt-5.4-эскалация) НЕДО-МОЩНА, ХОЛД. (5) Поправки: «13 катастроф» завышено (~5-6 реальных; kimi оверфлаг, ошибся 29/55; ch11.0 — редактор УЛУЧШИЛ); §2Б.3 «панель литерал-смещена→P0 не вернее» = пере-натяжка (T1 в ch7 вне ранг-выборки; IN-SAMPLE спан выгораживает P0); «0 ошибок» неточно (36 ошиблись+билленулись $0.89). Деньги $8.67 (в 2%), капы соблюдены, Gemini €2.21=85% бюджета. Следующий шаг — exp14b (промт ВЫДАН, POLYGON_EXP14B_SESSION_PROMPT.md; владелец выбрал exp14b ПЕРЕД бэкендом — строить бэкенд один раз под финальный конфиг): батарея смысл-трапов (≥3-5 типов, детерм.-скоринг + ≥2 фронтир-судьи) для ноги-2 + ранг P1a head-to-head vs F-disc (финалисты его исключили); дешёвые фиксы (глоссарий А/Б/В/Г) параллельно. Курс не разворачивается; планка = 2 претензии ИНТЕРИМ; пилот не разбавляется. (Разбор — D37.)
12.07 (№4): exp14b (батарея смысл-трапов + P1a↔F-disc) отревьюирован и ратифицирован — D38. Полигон прогнал 5 DET-классов × 6 семей-редакторов + SOFT (≥2 судьи) + P1a↔F-disc; батчи НЕ коммитил (процесс-фикс D37 отработал); self-review сам поймал+починил 2 бага (мандат самопроверки CLAUDE.md отработал живьём). Независимая верификация — 3 агента span-читкой ($0). ГЛАВНОЕ (span-верифицировано): (1) «только gpt-5.4 чинит смысл» ОПРОВЕРГНУТО — на a1 (двойн.отриц) deepseek-pro «знал каждый» И mistral «знали все без исключения» чинят, glm-5+grok инвертируют в «ни один»; дешёвый mistral чинит то, что дефолт glm инвертирует, и дешевле; провалы разбросаны по модель×конструкция. (2) Фронтир в дефолт НЕ нужен — P1a(glm)≈F-disc(gpt-5.4) mean_spp тай (2.56/2.65). (3) Корень терм-дрейфа = статус-draft сида (verified memory.go:489 CONFIRMED-only + suppressContained съедает верный approved 族长) → promote грейды(А/Б/В/Г)+四代族长 draft→approved (владелец направил; reseed; owner-only). (4) Soft: 0 катастроф ≥2-глазами; чэнъюй-сплющивание универсально = промпт/глоссарий. ХОЛД: кандидат glm-5→mistral/deepseek-pro — бейк-офф их ПРОЗЫ+omission до смены дефолта (урок exp13). Провайдер-квирк gpt-5.4 reasoning=medium обрезает вывод → 00-provider-quirks (в роли редактора low). Деньги $1.36/13 ошибок точно. Стратегически: эмпирика сошлась на ОРГАНИЗАЦИИ, не моделях — фронтир НЕ нужен, D30.7-трек «дешёвые сейчас» подтверждён. Слепой h2h-пакет (exp14b/monitor/h2h.md) — владельцу на вердикт. ⚠ eval/exp14b_*.py untracked (полигон-зона — полигону закоммитить для воспроизводимости). (Разбор — D38.)
12.07 (№4): h2h залендён + разворот к ИНФРА-паку — D38.1. Владелец прогнал слепой h2h (P1a↔F-disc) через 2 внешние сессии: ChatGPT (фронтир заметно сильнее, дешёвый провалил QA 17–18, потолок гл.19 ~85–90%) ↔ Claude (near-parity, разрыв = инфра не модель) — расходятся на заголовке, СХОДЯТСЯ: дефекты = глоссарий+санитайзер, ни одна не publishable без человека (фронтир «издательский» тоже не покупает). Оркестратор span-проверил: 却有-CJK в русском (санитайзер не ловит Han), 丙→Б (статус-draft корень), «не брал/не бил» (точечно, у обеих). Разворот (уточняет D38): editor-бейк-офф даёт мало (сравнивали 4×); следующий = СТРОИТЬ инфра-пак (бэкенд: CJK-в-выходе + экспорт-фикс D35.4a + число/omission-гард ∥ reseed-глоссарий промоут) под доказанный ROI; editor-swap glm→mistral/deepseek-pro = почти-бесплатный арм в пере-прогоне, не отдельный эксп. Промт BACKEND_INFRA_PACK_SESSION_PROMPT.md выдан → единый resnapshot → пере-прогон 3–10 глав → чтение. (Разбор — D38.1.)
Приёмка Ф1 — ПЕРЕ-ПРОГОН 25 глав кандидат-конфигом (билингв glm-5 + reflow + сид v2 + санитайзер), 2026-07-12 (D30.9/D34.2)
Пере-прогон по ACCEPTANCE_SESSION_PROMPT.md. Ничего не закоммичено (лендинг — оркестратору). Все производные — ВНЕ git в /home/ubuntu/books/gu-zhenren/rerun/ (свежий store guzhenren-rerun.db, конфиги, выходы, отчёты, скрипты замеров). Дерево backend/ чистое — мои правки кода = 0 (throwaway-хелпер cmd/_dumpsrc для дампа исходных чанков — _-игнор Go-тулчейном, не коммичен, удалён после использования). Предусловия запуска (все 5) сверены: D15.2 этап A+D33.1 залендены; draft=flash сохранён (exp13/D32); сид v2 подписан владельцем (D34.1 — Жэнь Цзу/Монах Цветочного Вина/гу Жизни/деревня Гуюэ/первобытный камень/род «гу» муж — сверено в guzhenren-seed-v2.yaml); budget_usd>0; единый resnapshot.
ШАГ 0 (repoint, D34.2) — ВЫПОЛНЕН и ВЕРИФИЦИРОВАН исполнением
Приёмочный конфиг собран из БОЕВОГО pipeline-c1.yaml (HEAD, post-D33) + book-дельты, СВЕЖИЙ store (не store этапа A). Снапшот e754d3a7b321, сверен из store (snapshots.payload):
- draft
deepseek-v4-flashprompt_version:v1-reflow, escalate_todeepseek-v4-pro, floor max_tokens 8000 (D24.3 — стадия A имела 2048/3291). - edit
glm-5prompt_version:v2-bilingual-reflow, prompt_sha256 байт-в-байт совпал сbackend/prompts/editor.md. sanitizer.enabled:true(sanitizer-v2, post-D33.1), coverage off, postcheck_gate false (флаггер), glossary_injection selective, memory_version002716c2…(сид v2, 57 терминов ≠ сид v1).status --json: config_drift=false, snapshot_drift=false — текущий конфиг рендерит ТОТ ЖЕ снапшот, что в store (нет стейл-моно-конфига; repoint airtight).
A. Инфраструктура держится на НОВОМ снапшоте — таблица (каждое исполнением)
| # | Пункт | Как проверено | Результат |
|---|---|---|---|
| A1 | committed==SUM(checkpoints) | SQL на 4 срезах живого store | ✅ ТОЧНО: honest-stop $0.02163351==$0.02163351 (n=9); kill-9 $0.03187751==$0.03187751 (n=11); финал $0.47462791==$0.47462791==chunk_status-sum (n=116) |
| A1 | честный стоп потолка (committed+reserved) | book_usd=0.03 → отказ ch1/4 edit | ✅ committed=$0.021634 reserved=$0 denied estimate=$0.014533, «raise ceilings.book_usd or stop», exit 1 (стадия A этот код не фиксировала — теперь подтверждён) |
| A1 | настоящий kill -9 посреди in-flight glm-5 edit (ch1/5) | SIGKILL, инспекция store до resume | ✅ orphan reserved=$0.013373 виден до resume; на resume «recovered 1 stale reservation»; committed==SUM пережил краш; resume ре-атаковал РОВНО ch1/5 edit (≤1 вызов) |
| A1 | resume не переоплачивает | replay после kill-9/honest-stop | ✅ «stage resolved from chunk_status» ($0), первый платный = убитая/отклонённая стадия |
| A2 | echo-эскалация стреляет и ре-гейтится (LIVE) | ch16/0 flash draft | ✅ flash → flagged cjk_artifact → эскалация deepseek-v4-pro @ max_tokens=8000 → ре-гейт ok → edit прошёл. Валидирует фикс D24.3 живьём (стадия A: хоп наследовал 2048 → finish=length, эскалация-пустышка; теперь флор 8000 → rescue) |
| A2 | flag+skip+continue, мусор не в TM | 2 sanitizer-флага (ch5/0, ch20/0) | ✅ чанк flagged, edit НЕ закоммичен (final пуст), прогон продолжился; FinalText не течёт в TM/экспорт |
| A2 | tmctl redrive на реальном флаге |
ch5/0 sanitizer_defect: dry-run + real | ✅ dry-run план 1 (ничего не тронул); real сбросил+ре-атаковал+ре-гейтил → re-flagged (glm-5 детерминированно повторил «### Глава 5»); committed=$0.483486 ≥ SUM=$0.474670 (diff $0.008816 = сброшенная стадия; D15.3) |
| A2 | tmctl status живой (OpenReadOnly) |
status/--json ПРИ активном translate | ✅ работают без flock; snapshot/деньги/паспорта/config-drift корректны; --json exit 2 при флагах |
| A3 | санитайзер ловит классы exp12 | unit-тесты (исполнением, зелёные) + LIVE | ✅ LIVE 2 TP (markdown «### Глава 5», «# Глава 20»); unit: gemini-преамбула / «Основные правки для справки» / ### / латиница / гомоглиф — firing+non-firing, вкл. D33.1-FP-гварды («около колонны»/«стало талой») |
| A3 | НЕ даёт ложных на чистом тексте | 55 чистых glm-5-чанков | ✅ 0 false-positive (2 флага — оба реальные markdown-заголовки) |
B. Качество
- B4 re-gate ВЕРНОСТИ — НЕ ЗАПУСКАЛА (по контракту author≠reviewer): отдано полигону. Пакет
rerun/FIDELITY_REGATE_HANDOFF.md+rerun-parallel.txt(выровнено ОРИГ|ПЕРЕВОД, 57 чанков) +records.json+ store. ⚠ Пере-прогон НЕ ЗАСЧИТАН до пройденного независимого span-цитирующего re-gate (раздельно стиль/верность, охота на класс инверсий редактуры exp12, катастроф-скрин). Билингв-редактор мог купить гладкость ценой смысла — это ровно то, что не видно на поверхностном чтении. - B5 D10 консистентность (НЕЗАВИСИМЫЙ скрипт
rerun/d10_consistency.py, приложен — воспроизводимо, author≠native-matcher): presence 91.0% (647/711), occurrence 95.8% (3072/3207). По типам (presence): имена 98.6%, клички 100%, места 96.0%, термины 94.9%, титулы 78.7% (слабейший класс — как термины на этапе A). Классификация промахов: decl_gap 0 (фикс D24.4 «базовый dst всегда» держит), inflection_gap 54 (dst присутствует в НЕперечисленной в сиде форме — читатель видит верный термин; эффективная консистентность = (647+54)/711 = 98.6%), genuine_absent 10 (кандидаты дрейфа для span-сверки, НЕ подтверждённый дрейф). Alias-слепое пятно D24.2 обойдено (per-term substring, не longest-match): поймал 古月→Гуюэ ×2 (гл.18/0,20/1) — ровно класс, слепой для нативного матчера. Прочие кандидаты: 转→ранг ×6, 南疆→Наньцзян ×1 — отданы полигону (не подтверждаю дрейф сам). Порог 98% достижим на эффективной; строгий presence занижен местоимённой заменой/инфлексией, НЕ терминодрейфом (как на этапе A). - B6 вёрстка/reflow (скрипт
rerun/reflow.py): диалог→«—» в 49/55 чанков (404 dash-строки); нарратив местами слит (dst_paras/src_lines mean 0.96). Груборазмерная метрика «скопирована структура 38/55» — артефакт (эта вебновелла в ИСХОДНИКЕ ~одно-предложение-на-абзац + диалог легитимно 1:1); качественное чтение story-глав (гл.6, гл.8) показывает естественные многопредложные русские абзацы, НЕ построчную рубку exp12. Reflow работает.
C. Прочее
- C8 echo-rate: 1/57 flash-draft (1.75%, gl.16/0) — RESCUED эскалацией; финальный cjk_artifact=0. vs прайор книги ~25% (exp10/D18) и 3.5% этапа A. Резко ниже — v1-reflow-промпт + flash почти не эхают на этом срезе (front-matter гл.1, эхавшая на этапе A, тут переведена).
- C8 spine: 25/25 глав, 57/57 чанков, 0 молчаливых потерь. 55 чанков с закоммиченным переводом; 2 (гл.5/0, гл.20/0) flagged (см. находку 1).
- C9 деньги vs D30.4: committed=$0.474628; доля стадий: editor glm-5 87.1% ($0.4132), draft flash 11.6% ($0.0550), эскалация pro 1.4% ($0.0065). vs этап A $0.4081 (моно) = +16.2% — В КОРИДОРЕ D30.4 (+15–25% от флипа билингв; билингв +ток. редактора → editor-доля 83.3%→87.1%). Проекция полной книги (2283 гл.) ~$43 (этап A ~$37); НЕ подгоняю под до-флиповый $0.69.
Находки для оркестратора (НЕ чинил — вне зоны багфикса / зона пакета/промптов)
- [quality, НЕ инфра-баг] glm-5 детерминированно лепит
### Глава N: <title>на ~2/25 зачинах глав (гл.5/0, гл.20/0), ХОТЯ editor.md прямо запрещает markdown-заголовки. Санитайзер ловит (flag+skip), но redrive НЕ спасает (повторяется). Тело перевода этих чанков КОРРЕКТНО — дефект = только ведущая «### ». Рекомендация: export-нормализация ведущего#{1,6}с строки-заголовка (D29 уже отметил 8/54 финалов этапа A с ###; экспорт-контракт должен снимать) ИЛИ усиление промпта. Инфра отработала правильно — это находка о поведении модели. - [glossary, для владельца] B2 dst-коллизия: 修炼/修行 → «культивация» (сид v2, подписано владельцем) — читатель не различит два разных src. Раннер варнит на materialize. Подтвердить, что намеренно.
- [D10] 10 genuine-absent кандидатов дрейфа отданы полигону на span-сверку (转→ранг, 古月→Гуюэ, 南疆→Наньцзян) — НЕ подтверждаю дрейф сам (author≠reviewer).
ВЕРДИКТ
- Инфра-инварианты на новом снапшоте: ДЕРЖАТСЯ — деньги (committed==SUM/honest-stop-exit1/kill-9-orphan-recovery/resume$0/redrive-D15.3), диспозиции (echo-эскалация+ре-гейт LIVE, flag+skip, live OpenReadOnly-status), санитайзер (2 TP / 0 FP), spine (0 потерь), телеметрия/деньги (+16% в коридоре D30.4). Плюс: фикс эскалации-флора D24.3 валидирован ЖИВЬЁМ (то, что на этапе A возвращало эскалацию-пустышку, теперь rescue-ит эхо).
- Читаемо / не читаемо: АРБИТР — ВЛАДЕЛЕЦ (сэмплы
rerun/owner-sample.md). Приёмка даёт честный замер, НЕ приговор. Честно: на чистых story-главах (гл.8) этап A читался УЖЕ прилично — дельта инкрементальная (термины сида v2, нет эха, нет markdown, чуть плотнее), НЕ «нечитаемо→читаемо». Крупный рычаг билингва — ВЕРНОСТЬ смысла (сверка с исходником), не видна на поверхностном чтении → решает span-re-gate полигона. Не преувеличиваю сходимость сигналов (урок eval-aggregation). - Верность: PENDING (полигон re-gate; без него пере-прогон не засчитан — D1.1/D34.3).
Вопросы владельцу (отдельный блок — после чтения)
- Читаемо ли? Прочти
rerun/owner-sample.md(гл.6, гл.8 + контраст этап A↔пере-прогон) и/или полныйrerun/rerun-ru.txt(25 глав) холистически, как читал этап A. Перешло планку «лучше фана» (D30.7)? Да/нет. - Этап B (срез ~300 глав, ~$5–6): да / нет / потолок? При «да» — явный
ceilings.book_usd/day_usd(согласие на трату, Р6). Проекция: ~$0.019/гл × 300 ≈ $5.7; рекомендую book_usd≈8, day_usd по темпу. - markdown-заголовки (находка 1): ок ли план «export-нормализация ведущего ###» (не трогая промпт/модель), или усилить промпт glm-5? Гейтит чистоту зачинов глав.
- B2-коллизия 修炼/修行→«культивация» (находка 2): оставить (намеренно) или развести (напр. 修行→«совершенствование»)?
Вердикт владельца (прочитал выхлоп пере-прогона) — СТРАТЕГИЧЕСКАЯ РАЗВИЛКА
«Лучше, чем было (скорее из-за сида), но всё ещё крайне слабо художественно.» Две конкретные претензии: (1) нет логической редактуры по абзацам, не соблюдаются конвенции русского; (2) остаются места, где модель не понимает связей/смысла. Владелец ставит вопрос о жизнеспособности сетапа и о смысле дальнейших тестов/масштаба.
Диагноз приёмки (сверено с кодом/контрактом — НЕ баг, а недореализация): обе претензии = машинерия качества, которая ДИЗАЙНЕРСКИ есть, но НЕ ПОСТРОЕНА (Фаза 2): judge (role=judge не исполним — pipeline.go:170; C2/C3/fanout не реализованы — pipeline.go:159), annotator-пре-пасс (speaker-ID/регистр/чэнъюй — 04-unhappy §124), чтение-вперёд, конвенц-гейты (морфо-род/ты-вы/канцелярит-Галь). Текущий пайплайн = голый линейный черновик→редактор + детерминированные гейты, ноль оценки качества в контуре, ноль per-segment сигнала «где смысл поехал». Черновик flash как ПЕРЕВОДЧИК на художественность не мерен НИКОГДА (D30.6). Владелец сам назвал обе проблемы в START_PROMT.MD (п.4-конвенции, п.33-чтение-вперёд) и предложил «судью над пайплайном» (п.3 разд.2) — реализован лишь разово как флагман (exp12/13).
Решения к ратификации оркестратором (запрошены владельцем):
- Этап B (~300 глав) ОТМЕНИТЬ как инструмент оценки качества — это инфра-масштаб-тест, к художественности отношения не имеет, жжёт токены/40-мин ожидания. Итерация качества — на ≤10 главах, быстро. 25 глав уже переведены (
rerun-ru.txt), читаемы как есть. - Развилка: (A) пауза/стоп на дешёвом сетапе; (B) дешёвая фронтир-проба
5 глав ($5): фронтир-переводчик+редактор + фронтир-мета-ревьюер → разводит «потолок в моделях vs в архитектуре» ДО решения; (C) строить машинерию Ф2 (annotator+judge+чтение-вперёд+конвенц-гейты) → пилот Ф2.5. Приёмка рекомендует (B) как самый дешёвый вход в (A/C). - Планка приёмки впредь = 2 претензии владельца (абзац-логика/конвенции + понимание смысла), не только инфра. Инфра-веха Ф1 закрыта; вакуум качества — открыт.
Guard: любой фронтир-ревью/проба — на СЫРЬЕ (src+выходы+код), без наших выводов (урок research/17 — анкоринг = сфабрикованная сходимость); пре-регистрация до платных вызовов. Промт-хендофф оркестратору: rerun/ORCHESTRATOR_HANDOFF.md.
Архитектурные пробелы — верифицированы независимо (6 адверсариальных агентов по коду, с калибровкой МОИХ интерпретаций): факты подтверждены, но часть «дефектов» оказалась осознанными компромиссами → в хендофф поданы откалиброванно. Реальные пробелы: кросс-чанк дискурс на стыках (~1–2/глава; редактор не видит главу целиком — гипотеза draft=чанк/edit=глава), reference-тома прошлых частей (не построены, Ф2/3), отсутствие LLM-оценки качества/аннотатора в контуре (главный, Ф2). Откалибровано (НЕ дефекты, требуют эмпирики, не утверждения): фикс-чанкер 1500/без-ёмкости-модели = quality-first компромисс; промпты lean НО ресёрч промтинга ЕСТЬ (research/15 §Промптинг, exp12/13/10); кэш 20% — присущ по-чанковому переводу, не из-за глоссария. План владельца (на ратификацию оркестратором): закрыть цикл приёмочных прогонов (инфра ✅/читаемость ❌ — НЕ «провал»), → ресёрч-сессия по репо → полигон-эмпирика (чанк/биллинг/промт/ретраи/переверстка — последняя тестируется БЕЗ пайплайна) → если подтверждается, доработка бэкенда. Планка впредь = 2 претензии владельца, не только инфра.
12.07 (ночь): пере-прогон отревьюирован, ПИВОТ ратифицирован — D35. 3 оси исполнением по копии re-run store/логам/выходам. Конфиг-корректность подтверждена (снапшот несёт v1-reflow/v2-bilingual-reflow/сид-v2 — НЕ старая моно-мина D34.2 → вердикт валиден). Диагноз «Ф2-недострой, не баг» ПОДТВЕРЖДЁН (все баг-гипотезы опровергнуты: reflow применён но зеркалит рубленость исходника = промпт-рычаг; билингв-редактор активен sim 0.643; сид инъектится 628 хитов; внутри-чанк-фиксимо/кросс-чанк-~1.28-Ф2 эмпирически верно; флор D24.3 валидирован в проде — эхо-эскалация ch16/0→pro@8000→реальный результат). Ратифицированы 3 пункта пивота (закрытие цикла / планка=2 претензии ИНТЕРИМ-пре-скрин-не-пилот / мерить→строить). Найден 1 реальный баг (major): санитайзер-флагнутые ch5/ch20 экспортятся ПУСТЫМИ (~44% зачина глав выпали; текст правки цел) → бэкенд-фикс + полигон исключает ch5/ch20 из слепых пакетов. Промт ресёрчера выдан НЕЙТРАЛЬНЫЙ (ревью поймало анти-анкоринг-дефект §3 хендоффа — урок D25.10). Fidelity re-gate (D34.3) остаётся жёстким гейтом. Дешёвые фиксы: ведущий ### из draft (не glm-5), глоссарий разрядов 甲乙丙丁. Очередь: ресёрчер (RESEARCHER_QUALITY_SESSION_PROMPT.md) → полигон (нарезка×промпт + фронтир-диагностик + re-gate) → бэкенд под ROI.
(Замеры и скрипты — в /home/ubuntu/books/gu-zhenren/rerun/: audit.sh, d10_consistency.py, reflow.py, extract.py, records.json, rerun-parallel.txt, rerun-ru.txt, owner-sample.md, FIDELITY_REGATE_HANDOFF.md, ORCHESTRATOR_HANDOFF.md. Всё ВНЕ git.)
Приёмка Ф1 — 蛊真人 zh→ru, этап A (25 глав), 2026-07-10
Приёмочная сессия по ACCEPTANCE_SESSION_PROMPT.md. Прогон реальной книги end-to-end, вердикт по критериям 02-mvp-plan §Приёмка Фазы 1. Ничего не закоммичено (лендинг — оркестратору). Все производные (store.db, срез, выходы, отчёты) — ВНЕ git (/home/ubuntu/books/gu-zhenren/acceptance/). Дерево backend/ чистое (мои правки = 0; docs/research/17-* — чужая GPT-сессия, не трогал).
Конфиг прогона (по контракту): срез 25 глав (57 чанков) из guzhenren-gb18030.txt (GB18030, ре-энкод среза лосслесс), сид 49 терминов; draft=deepseek-v4-flash (thinking ON), editor=glm-5 (D20.3 — чистого xAI-ключа нет), draft escalate_to=deepseek-v4-pro, escalation.budget_usd=2.0 (D22.11), гейты дефолтные (coverage OFF, postcheck-гейт OFF=флаггер). Промпты/версии/пороги — байт-в-байт из pipeline-c1.
Чек-лист приёмки (каждое — исполнением)
| # | Пункт | Как проверено | Результат |
|---|---|---|---|
| 1 | committed == SUM(checkpoints) |
SQL по живому store на 3 срезах | ✅ ТОЧНО: honest-stop $0.07446423; пережил SIGKILL $0.08639944 (32 ckpt); финал $0.408077 (испр. оркестратором: на финале после redrive инвариант по D15.3 — «≥»: SUM(130 ckpt)=$0.405370; «==» держалось до redrive и на конец полного прогона) |
| 1 | Честный стоп потолка (committed+reserved) | book_usd=$0.08 → отказ резервации | ✅ отклонён ch5/1 edit (испр. оркестратором: denied estimate=$0.00732 по phase1.log:74, не $0.0733), reserved=$0, «raise ceilings.book_usd or stop», exit 1 (код-путь tmctl, в логах не зафиксирован), резюмируемо |
| 1 | kill -9 посреди этапа → без переоплаты | реальный SIGKILL в in-flight glm-5 вызове | ✅ orphan-резервация $0.0075 восстановлена («recovered 1 stale reservation»), committed==SUM пережил краш, ≤1 вызов |
| 1 | resume не переоплачивает | поднял потолок $0.08→$2.0 (wiring-поле, не snapshot) → translate | ✅ (испр. оркестратором — два resume смешаны в одну строку, оба чистые: ceiling-resume переиграл гл.1–5 за $0, первый платный — ровно отклонённая потолком стадия ch5/1 edit; пост-SIGKILL resume переиграл гл.1–6 за $0 (24 tm_hit), первый платный — ровно убитая стадия ch6/1 edit) |
| 2 | echo-эскалация стреляет и ре-гейтится (D18) | ch1/0,1: cjk_artifact 76–82% | ✅ → deepseek-v4-pro → ре-гейт → флаг остаётся (fallback тоже провалил), edit skip, мусор в TM НЕ коммитится |
| 2 | refusal/empty → flag+skip+continue | 4 флага (cjk_artifact×2 стойких, length×2) | ✅ edit пропущен (DispSkipped), FinalText="" не течёт в TM/экспорт/STM |
| 2 | tmctl redrive на реальном флаге |
dry-run (план 4) + real --chapter 1 --chunk 4 |
✅ флаг RESCUED (length был транзиентным бюджетом → ok, attempts=2); флагов 4→3; committed≥SUM (D15.3: сброшенный $0.0027 остаётся в committed) |
| 2 | tmctl status живой при прогоне (OpenReadOnly) |
status / status --json / report при активном translate | ✅ работают без flock; --json exit 2 (флаги); D23 orphan reserved-хвост виден до recovery |
| 3 | Консистентность D10 ≥98% (все approved) | замер ниже (нативный post-check + независимый пересчёт) | ⚠️ суть выполнена (0 реальной терминодрейфа); флаггер шумит из-за неполноты decl сида — разбор ниже |
| 4 | Ноль молчаливых потерь глав | ingest 25 глав → 57 чанков, spine consistent | ✅ все 25 глав обработаны, 0 U+FFFD, 0 потерь. (coverage-гейт OFF по дефолту — ≥90%-recall искусств. пропусков не гонялся, отдельный тест) |
| 5 | Честная оговорка D1.1 | — | ✅ приёмка = инфраструктура; верность НЕ мерена (это пилот Ф2.5) |
Деньги (этап A, весь прогон)
- committed = $0.408077, reserved = $0.000000, потолок $2.00 (20.4%). committed ≥ SUM(checkpoints)=$0.405370 (разница $0.0027 = (испр. оркестратором) ДВА сброшенных пре-redrive draft-вызова ch1/4, побайтно $0.0010117+$0.0016956; честное направление D15.3).
- $/глава = $0.0162 (25 глав). Проекция полной книги (2283 гл.) ≈ $37 — в коридоре промта $25–55, ниже человеческого якоря $100.
- Доля стадий: editor(glm-5) 83.3%, draft(deepseek-flash) 15.3%, эскалация(deepseek-pro) 1.4%.
- Санити vs exp08 (честно, не подгоняя): exp08 моделировал editor 88–90% на grok-4.3. Здесь 83.3% — ниже, потому что (а) 3 флагнутых чанка пропустили дорогой edit (испр. оркестратором: финально 3 — ch1/4 после redrive edit получил) и (б) draft тяжелее (deepseek reasoning subset + ретраи length + эскалации). ⚠️ Клейм промта «glm-5 дешевле grok» неверен по выходу: glm-5 output $3.2/M против grok $2.5/M = +28% за токен; итоговая $/глава ниже якоря из-за размера глав и пропуска edit флагнутыми, НЕ из-за дешевизны glm-5.
- Телеметрия чиста: deepseek reasoning=subset (внутри completion,
reasoning_tokens-поле=0 — не путать с thinking-off), glm-5 billed по факту, эскалация billed отдельной осью (2 ckpt, $0.0056). Gemini/grok на wire-пути дефолт-конфига НЕТ (ожидаемо).
Консистентность D10 — разбор (числитель/знаменатель + классы промахов)
Нативный post-check (retrieval_state, decl-aware, реальный матчер) на 57 чанках: 55 confirmed-промахов, 14 style-флагов, инъекций(точных)=529, sticky=166. Независимый пересчёт по сиду+выходам (author≠reviewer, дважды):
- Occurrence-level D10 = 1780/1938 = 91.8%; presence-level = 370/390 = 94.9%. По типам (presence): имена 98.5%, места 100%, титулы 99%, термины 89%. (Пометка оркестратора: точные числители/знаменатели метод-зависимы и без приложенного скрипта третьей стороной не воспроизводятся — независимая реплика под 6 конвенциями матчинга даёт occurrence 83.1–93.8% / presence 91.6–99.3%, отчётные значения внутри диапазонов, качественная структура (термины — слабейший класс, места 100%) совпадает; с decl-докредитом (база+мн.ч.) occurrence-реплика = 99.0% ≥ 98%. Методику пересчёта на этапе B приложить скриптом.)
- Классификация ВСЕХ 55 confirmed-промахов (по фактическим выходам):
- 37 = nominative_gap — approved-dst присутствует в ИМЕНИТЕЛЬНОМ, но
decl.formsперечисляет только косвенные падежи, а фолбэк на базовый dst вdstFormPresent(mempostcheck.go:85-96) срабатывает ТОЛЬКО при пустом decl. Пример:方源→Фан Юань— «Фан Юань» есть в выходе (+«он» ×4–10 для прочих упоминаний), но флагается. - 18 = inflection_gap — корень dst присутствует в форме, которой нет в сиде (обычно МН.Ч.):
元石→первокаменьрендерится «первокамней/первокамни/первокамнями» (сид дал только ед.ч.); так же凡人→смертный→«смертных/смертными»,蛊师→гу-мастер→«гу-мастеров». - 0 = genuine drift — среди 55 промахов флаггера реального рассогласования терминологии НЕТ. (Уточнение оркестратора: адверсариальный поиск ВНЕ зоны видимости флаггера нашёл ровно 1 дрейф-вхождение — гл.18/0 рендерит 古月方源 раздельно «гу юэ фан юань» против «гуюэ…»×35 и «гуюэ»×154 в остальном корпусе; post-check структурно слеп к этому классу: полное имя longest-match'ится на 方源, чей dst присутствует → промах не фаерится. Alias-слепое пятно зафиксировано в D24.)
- 37 = nominative_gap — approved-dst присутствует в ИМЕНИТЕЛЬНОМ, но
- Вывод: машинерия (инъекция + decl-aware post-check + флаггер) работает; истинная терминоконсистентность ≈ 99.5% (1 наблюдение дрейфа на ~190 поверхностей клан-имени, вне видимости флаггера) (испр. оркестратором: было «≈100% (0 дрейфа)»). Измеренный <98% — целиком артефакт неполноты decl в сиде (нет именительного-в-decl + нет мн.ч.), воспроизведён двумя независимыми методами. Порог 98% ДОСТИЖИМ; правка — сиду (дописать nom+мн.ч. в
decl.forms) ИЛИ post-check (всегда проверять базовый dst, а не только при пустом decl). Это ровно почемуpostcheck_gateдефолтно OFF (флаггер): флип ON сейчас = флаг-шторм на легитимных именительных.
G2 flag-rate (первый замер человеческой петли на реальной книге)
- 3/57 чанков (5.3%) флагнуто после redrive (4/57=7.0% до redrive; redrive снял 1 транзиентный length).
- Концентрация: 2 из 25 глав несут все флаги — гл.1 (классический зачин «第一节:纵身亡魔心仍不悔» — эхо на плотной архаике, ср. register-оговорка D22.5) и гл.10 (length). 23/25 глав — чисто. Человеческая петля front-loaded на классику/плотный ханьский зачин, не размазана.
- Стиль-флаггеры (наблюдаемость): 14, все
dialogue_dash(0 ё / 0 транслит-междометий / 0 разрядов 万億).
Находки для оркестратора (НЕ чинил — правят wire/вердикты → изменение поведения)
- [major] Эскалация draft→deepseek-v4-pro неэффективна под дефолтным max_tokens. deepseek-thinking требует ≥8000 (quirks), а
max_output_ratio=2.2+min_max_tokens=2048дают ~2–3k на чанк → эскалация возвращает empty/length (finish=length), сжигая ~3× цену draft впустую. На ch1/0,1 хоп deepseek-v4-pro дал compl=2048/3291 finish=length. Известный техдолг («min-budget Kimi≥16k/Gemini≥8k — комментарии, не схема») подтверждён эмпирически для deepseek. Вопрос: ввести per-model floor max_tokens для thinking-моделей (schema, не комментарий)? Правит снапшот → решение оркестратора/владельца. - [major] Post-check
dstFormPresentне проверяет базовый dst (именительный) при непустомdecl.forms(mempostcheck.go:87-89: фолбэк на base только при пустом decl). Даёт 37/55 ложных промахов на именительных. Правка: либо сиду дописать nom+мн.ч. вdecl.forms(зона полигона), либо коду — всегда добавлять базовый dst к проверяемым формам (правит вердикты флаггера → изменение поведения). Гейтит осмысленность/флипpostcheck_gate. - [info] deepseek-flash эхает на классическом зачине гл.1 (cjk_artifact 76–82%, finish=stop — интринсик, не бюджет). Ожидаемо (D18/D22.5), гейт ловит корректно. Не баг.
Вердикт
Критерии приёмки Фазы 1 (02-mvp-plan) ВЫПОЛНЕНЫ — как инфраструктурная веха — С ОГОВОРКАМИ.
- Деньги (committed==SUM, честный потолок, resume $0, kill-9 ≤1 вызов, budget_usd-гейт эскалации), диспозиции (echo-эскалация+ре-гейт, flag+skip+continue, мусор не в TM), redrive (rescue+D15.3), живой OpenReadOnly-status, телеметрия/паспорта — подтверждены исполнением, без исключений.
- Консистентность D10: суть выполнена (дрейф ≈0: 1 вхождение вне видимости флаггера — см. разбор); формальный порог 98% по флаггеру не достигнут из-за неполноты decl-сида — не машинный/модельный отказ, воспроизведено, actionable (находка 2).
- Верность НЕ мерена (D1.1, по контракту — пилот Ф2.5).
- (Оговорки вердикта дополнены оркестратором при верификации, D24): (а) объём: прогнан срез 25/2283 глав (~80k zh-символов), не «том целиком» буквы критерия 1 — полный объём двигается в этап B по этапности промта; (б) coverage-гейт: recall-тест «≥90% искусственных пропусков» НЕ гонялся (гейт OFF по дефолту) — остаётся отдельной задачей, вторая половина критерия 4 (ноль молчаливых потерь) выполнена; (в) grok-биллинг (под-критерий 2) не мерен — редактор glm-5 по D20.3, grok на wire отсутствовал; (г) budget_usd эскалации проверен только в направлении «>0 → стреляет» (D22.11), отказ по исчерпанию не исполнялся; (д) parallel-экспорт устарел для спасённого redrive'ом ch1/4 (показывает старый флаг без перевода) — перегенерить на этапе B.
Вопросы владельцу
- Этап B (полная книга 2283 гл.): да / нет / потолок? Этап A стоил $0.41 за 25 глав; полная проекция ~$37 (glm-5-editor). Нужен явный «да» +
ceilings.book_usd/day_usd(согласие на трату, Р6). Рекомендация:book_usd≈45,day_usdпо темпу (сейчас ~$0.016/гл × скорость). - Редактор этапа B: glm-5 (как A) или ждать чистый xAI-ключ под grok-4.3? По D20.3 glm-5 для приёмки допустим (B — та же инфра-веха). Напоминание: glm-5-output на 28% дороже grok/токен.
- Сид перед этапом B: дописывать полноту decl (nom+мн.ч.) сейчас (полигон), чтобы D10-флаггер стал осмысленным, или гнать этап B с флаггером как есть (гейт OFF, прогон не блокирует — просто шумный retrieval_state)? Приёмку инфры B не гейтит; но без этого D10-число останется заниженным.
(Ревью оркестратора 11.07, воркфлоу 5 осей — всё исполнением по копии store/логам/экспортам: деньги воспроизведены до float-epsilon (все 130 чекпоинтов пересчитаны из usage×прайсов), классификация 55 промахов реплицирована бит-в-бит независимой реализацией матчера, SIGKILL/honest-stop/resume сверены по phase-логам, конфиг-паритет с pipeline-c1 подтверждён diff'ом с ровно двумя санкционированными дельтами. Правки текста и дополнительные оговорки внесены выше с пометками «испр. оркестратором». Ратификация вердикта и обе развязки — D24; ответы на вопросы 1–3 — в D24.4–24.5.)
2026-07-11 — Оркестратор №3: лендинг приёмки этапа A и research/17, D24/D25, задания
Передача роли №2 принята (промт 4c48f89). Два ревью-цикла, оба мультиагентными воркфлоу, всё исполнением/по первоисточникам:
- Приёмка этапа A — верифицирована и залендена (
7ca14c2), вердикт ратифицирован D24. 5 осей ($0, по копии store/логам/экспортам): все хедлайны воспроизведены — деньги до float-epsilon, классификация 55 промахов бит-в-бит, SIGKILL/стоп/resume по логам, конфиг-паритет. Найдено и исправлено при лендинге: денежная опечатка ×10 ($0.0733→$0.00732), смешение двух resume в одной строке, «committed==SUM» после redrive (корректно «≥», D15.3), «0 дрейфа»→«≈99.5%» (1 вхождение гл.18/0 古月方源 раздельно — alias-слепое пятно вне видимости флаггера, зафиксировано D24.2); вердикт дополнен оговорками (объём 25/2283; coverage-recall не гонялся; grok-биллинг не мерен; budget_usd-отказ не исполнялся). Числа собственного пересчёта отчёта (1780/1938 и 370/390) третьей стороной не воспроизводятся (метод не приложен; реплики дают диапазоны, вывод устойчив) — методика этапа B обязана быть скриптом. - Развязки приёмки ратифицированы (D24.3–24.4): per-model floor
min_max_tokensсхемой (deepseek 8000 / gemini 8000 / kimi 16000; хоп берёт флор своей модели; блокер этапа B — при прайоре эха 25% без флора ≈$3.6 эскалаций-пустышек на книге) и post-check «базовый dst всегда проверяется» (код, не сид; 37/55 ложных) + сид-обогащение мн.ч. (полигон; 18/55). Порядок: фиксы → единый resnapshot → этап B (~300 глав по переопределению владельца, ~$5; редактор glm-5). - research/17 — ревью завершено, залендено с ревью-шапкой (
a148f41), абсорбция D25. 12 агентов: 19/19 первоисточников существуют (0 несуществующих; 8 с нюансами — ключевой: морф-оговорка Exel et al. процитирована с инверсией); анти-якорение критиком соблюдено (лексический аудит §A, errata-паттерн), но НАШ мандат засеял §A осями и списком дыр → конвергенция ≠ независимое подтверждение (урок D25.10); метки §B2/«Итога» переграждены в PLAUSIBLE. Абсорбция: release-state контракт (задача с гейтом «до читательского экспорта»), fidelity-каскад shadow (Ф2, НЕ вперёд пилота), sequential-судья только как вложенный анализ D13.3, L3-расширения в спеку D22.7 (методика валидации — владельцу: конфликт с гардрейлом «не анализировать»), trust boundary в контракт сейчас (action-gate — именованный блокер Ф3), review bundle в minimal-форме, echo-калибровка полигону, over-stylization метрика в voice-арм. Курс не разворачивается; пилот Ф2.5 остаётся решающей точкой и не разбавляется. - Задания выданы:
BACKEND_PACKAGE5_SESSION_PROMPT.md(floor + post-check + golden re-capture + coverage-recall/budget-отказ тесты + D23.4-микро) ∥POLYGON_PACKAGE4_SESSION_PROMPT.md(сид мн.ч. — гейтит этап B; D22.8 major; проба судьи-дублёра; echo-калибровка; дополнения пре-регистрации пилота; P4-хвост) → затем этап B (ACCEPTANCE_SESSION_PROMPT.mdред. 11.07). Доко-дрейф ja-приёмки в 02-mvp-plan закрыт (v3.1); GPT_EXTERNAL_ASCENT_PROMPT — в архив. - Владельцу (сводно, см. CURRENT-STATE): «да»+потолок на этап B (после лендинга №5+сида); билингв-якорь пилота (Q1 — рекрут vs en-мост в пре-регистрации); publishable/waiver-подпись — при постройке экспорта; L3 FN-bound и методика валидации — при спеке; юр-пакет и чистый xAI-ключ — висят.
2026-07-11 (позже) — Оркестратор: качество-первым (D26)
Владелец прочитал 25 глав этапа A — нечитаемо, слабейшее звено редактура. Первый человеческий замер читаемости на реальной книге; D24 не пересматривается (приёмка мерила инфраструктуру по D1.1), но очередь перестроена — D26: этап B заморожен до читаемого конфига на 25 главах; полигону выдан промт exp12 «диагностика качества» (POLYGON_QUALITY_DIAG_SESSION_PROMPT.md: армы draft-only / glm-5-моно / glm-5-билингв / grok-моно / grok-билингв / gemini-премиум / grok-без-констрейнтов на 3 чистых главах; слепые пакеты владельцу; LLM-судьи вторично с билингвальной сверкой смысла; root-cause разбор худших мест; кап $5; текущий xAI-ключ допустим — D19.4); полигон №4 — второй приоритет; бэкенд №5 без изменений, после него — пакет D15.2 (пер-стадийный reuse = дешёвая итерация редактора). Оценка research/17 владельцу дана честно (~6/10: две контракт-аддиции + задачи, по качеству перевода — ничего, не его мандат). Разъяснена «гигиена чистого ключа» (без data-sharing + без NSFW-истории; к exp12 не требуется).
Позже (11.07, ночь): D27 — ключевая политика xAI по решению владельца. Отдельный чистый ключ не заводится: текущий (с data-sharing-промо — уточнение владельца, supersedes скобку D19.4) идёт на все тесты и пилот, data-sharing отключается перед продом. «Чистый ключ» снят из блокеров пилота; вынужденная glm-5-замена умирает (grok доступен для exp12/пере-прогона/этапа B). Риски зафиксированы принятыми (копирайт 蛊真人 в обучение — только свои тесты; NSFW-история аккаунта), рекомендация-митигация: пилотный корпус (вне претрейна!) гнать при временно выключенном data-sharing — ждёт «да/нет» владельца. Механику отключения сверить с вендор-докой перед релизом (в чек-лист первого боевого прогона). Инцидент git при синке D26: add -A подмёл чужие незакоммиченные правки живой бэкенд-сессии №5 — размотано soft-reset'ом немедленно, содержимое чужих файлов не тронуто; впредь стейджинг только пофайловый.
Ночь: бэкенд-пакет №5 отревьюирован и залендён (aa47e25), ратификация D28. Внешнее ревью 5 осей исполнением в scratchpad-копиях (при двух живых сессиях в дереве), ~10 мутаций переисполнено независимо: все оси ACCEPT, 0 critical/major. Гипотеза «фиксы мертвы (golden пуст)» убита исполнением в обе стороны (флор фикстурной модели валит golden wire-диффом; oblique-only сид флипает вердикты 2/1/2→1/0/1) — пустой дифф data-driven. Scope чист (ровно 4 флора в models.yaml, exp12-файлы полигона не тронуты). D24.4 амендирован (recall-трейдофф — поймал сам пакет); fix-лист D28.3 (fbHash-пин хопа, provider_local×floor note, косметика, models.yaml→D27) — в пакет D15.2, промт которого выдаётся после развязки exp12 (D28.4: reuse×смена-редактора взаимодействуют).
12.07 (позже): exp12 отревьюирован и залендён (75db9e1), ратификация D30 — флип D1 и пакет качественных фиксов. 4 оси ревью, всё исполнением по diag/-артефактам и store-копии: ядро диагноза подтверждено (пассивность моно-редактора бит-в-бит: 3/6 grok-чанков байт-идентичны черновику; вёрстка — от промптов дословно; дефекты — в черновике; риг A1′≈прод). Снято ревью: «единогласный #1 A2» (gpt-5-mini 9/9 за A5; выбор glm-5 = цена ×13 + чистота), «fidelity-гейт пройден 5.0» (судьи давали 5.0 сырому черновику; A2 сам внёс инверсию «пожертвуй мной» → re-gate верности обязателен на пере-прогоне), утечка gemini 6/6 (не 4), мина статусов сида v2 (спорные со status:approved ушли бы в hard-constraints — до подписи владельца → draft). Ратифицировано D30: флип D1 моно→билингв (supersede D17.в), reflow, санитайзер, глоссарий v2 условно, exp13 бейк-офф переводчиков (+grok-ON арм), COGS-рамка (флип +15–25%, «$1.5–2»=опция Б отдельно), трек дешёвых моделей владельца (архитектура конфиг-первая — фронтир позже без переделки кода). Промты выданы: BACKEND_D152_SESSION_PROMPT.md (этап А гейтит пере-прогон) ∥ POLYGON_EXP13_SESSION_PROMPT.md.
12.07: research/16 «Ридер-IDE» отревьюирован и залендён (458b0ea), ратификация D29. 4 оси (источники ×2 по первоисточникам, независимая реплика $0-пробы, red-team контракта против кода/D15.2-спеки): ACCEPT_WITH_FIXES. Ядро принято: чанк = несущий якорь; precision-гейт YELLOW перед показом цветов (<10% ложных/флаг); детект-флаггер, не форс-структура; числовой confidence — никогда без QE. Поправки ревью: числа пробы — верх метрик-диапазона 44–58% на stale-базе (DB-истина 57.4%/70.4%, редактор 90.7%, не 93%); «полностью из read-model» — оверклейм (src/dst_range, source_file_hash, спаны = net-new → нужна настоящая tmctl export-команда с ассемблером); passport-3-тир = явный амендмент вердикт-правила D12/exp07 (при gate-on glossary_miss уже катится в fail); override-ключ = хеш СЫРОГО src-текста (не content_hash=rendered msgs — ловушка), override — новое provenance-состояние, не «verdict-нейтрален». Плюс находка реплики: 8/54 финалов несут markdown-### → нормализация выхода в экспорт-контракт. Абсорбция: D29.1(а–д) в пакет D15.2; полигону 4 задачи (precision — только post-hoc, пре-регистрацию exp12 не трогать); Ф3-хвост — в F3-brief.
12.07 (вечер): тотальная ревизия документации (D31) по мандату владельца. Мультиагентный staleness-аудит 5 кластеров (read-only, каждый клейм сверен с D-логом). Применено дисциплиной D23.3 (историю не переписывать — только баннеры/пометки/архив): (1) PROGRESS.md разделён — закрытая хроника 04–10.07 (~330KB) в archive/PROGRESS-2026-07-04-10.md с дословными заголовками (grep-рефы кода целы); живой файл 393→63KB (85–100K токенов экономии на онбординге). (2) D-лог: карта актуальности сверху (superseded-цепочки). (3) CLAUDE.md: шапка-пайплайн БИЛИНГВ/$0.85, счётчик D1–D31, «Текущее состояние» под дорожку D30.9. (4) Баннеры/пометки живых доков architecture/experiments/research (главное: опасные editor-grok строки 00-provider-quirks — reasoning-off = no-op — исправлены; 04-editor-quality/08-cost-model баннеры; 04-api-providers/gap-2 под D30/D14–D22; 13/14 post-check-каветка снята decl-путём). (5) Промты: старые в архив (ORCHESTRATOR v2 / ACCEPTANCE v1 / READER_IDE), написаны заново ORCHESTRATOR хендофф №3 и ACCEPTANCE под пере-прогон+этап B. Сознательно не тронуто (низкий приоритет, покрыто картой D-лога): 01/02/10-эксперименты; backend/README и eval/README — чужие зоны, в fix-листы D15.2/exp13.
12.07 (ночь): exp13 отревьюирован и залендён с ревью-шапкой, ратификация D32. 4 оси исполнением по diag/-сырью и конфигу @HEAD (при двух живых сессиях в дереве). Сид v2 ПРИНЯТ (трансформ байт-воспроизводим — дефект провенанса D30.5 закрыт; 6 спорных → status:draft, 0 hard-lock; мн.ч. D24.4 влито → полигон-№4 сид-задача закрыта; гейты 30/30 честны; бюджет $5.50 сходится; пре-рег заморожен; слепота цела) — гейтится подписью владельца 6 спорных+род «гу» (diag/glossary_v2_signoff.md). Смена переводчика flash→pro ОТКЛОНЕНА по данным (повтор класса exp12): «7 сигналов сходятся» ложно (делятся 3-3 flash-верность/pro-стиль; флагманы расходятся); #1 pro держится на gemini (gpt-5-mini-якорь ставит mistral #1, pro #3); pro ЕДИНСТВЕННЫЙ рендерит заглавный 蛊 как «гусеницы» ×2 — катастрофа класса забракованных армов; по верности (ось черновика-под-редактором) flash≥pro, pro ×3.7 дороже; подъём даёт свзяка, не переводчик. Черновик остаётся flash (= текущий конфиг, escalate_to=pro без изменений — коллизия снята). Методика-фиксы полигону в любой будущий бейк-офф (fidelity-first агрегация, катастроф-скрин, leave-one-out, per-call кап, grok-reasoning wire-квирк). Бэкенд отдельно отчитался «пакет D15.2 ЭТАП А завершён» — отревьюирую следующим циклом (код backend/ не лендил).
12.07 (ночь, позже): бэкенд-пакет D15.2 ЭТАП А отревьюирован и залендён (00f8e36), ратификация D33. 4 оси исполнением в scratchpad-копиях WIP: golden ACCEPT, wiring ACCEPT, sanitizer/spec-scope ACCEPT_WITH_FIXES. Верифицировано: golden байт-в-байт (TM_UPDATE_GOLDEN=1 → тот же sha256), дифф-класс ровно санкционированный, 3 новых поведения запинены мутацией (floor/union/isFinal); билингв {{text}} доказан рендер-пробой; reflow консистентен; конфиг-флип D32 соблюдён (editor=glm-5, draft=flash, эскалация не тронута, grok-редактора нет); build/vet/test-race зелёные; спека v3.1 только дизайн (этап Б не утёк); скоуп backend-only. 2 major-дефекта санитайзера, которые backend-ревью пропустило (D33.1, чинить до пере-прогона, вливается в тот же resnapshot): (а) хвостовой класс не ловит «Основные правки для справки» — целевую gemini-утечку A5/5_1; (б) класс «битые словоформы» ложно флагает «около колонны»/«стало талой» как «Первок предок» (флаг-шторм на прозе). Промт фикса выдан (BACKEND_SANITIZER_FIX_SESSION_PROMPT.md). Ответы бэкенду: editor grok→glm-5 подтверждён (D30.1); FALSE-POSITIVE-классы санитайзера НЕ приемлемы как «принятые FP» — чинить; этот resnapshot = единый resnapshot пере-прогона. Этап Б+В — промт после пере-прогона (исход чтения уточнит экспорт В).
Бэкенд
(Закрытая хроника пакетов №0–№4 (04–10.07) перенесена в archive/PROGRESS-2026-07-04-10.md — ревизия D31.)
2026-07-11 (пакет-5) — Фиксы приёмки этапа A (D24.3/24.4) + тесты-оговорки + D23.4-хвосты ЗАВЕРШЕНО
По BACKEND_PACKAGE5_SESSION_PROMPT.md. Ничего не коммичено (лендинг — оркестратор). go build ./... && go vet ./... && go test -race ./... — зелёные. Все новые тесты mutation-verified (реверт фикса валит именно его тест — подтверждено исполнением). Финал — агентское адверсариальное ревью диффа (4 оси find→refute-by-default verify, author≠reviewer): 1 CONFIRMED minor (неточность коммента о recall у union — закрыт, см. оговорку 4), 0 critical/major. Осведомлён о D26-заморозке этапа B: пакет №5 остаётся в очереди (line-4 CURRENT-STATE) и гейтит этап B; фиксы валидны независимо от editor-диагностики exp12.
Сделано:
-
Per-model floor
min_max_tokens(D24.3) — смена wire-поведения. Поле в схемуcapabilities(config.CapabilitiesConfig.MinMaxTokens), резолвится черезResolveCapability(провайдер→модель) и живёт вllm.Capability(тегjson:",omitempty") → фолдится в snapshot автоматически и для primary (ResolveCapability(st.Model)), и для hop (ResolveCapability(st.EscalateTo)) — правка флора = громкий--resnapshot. Применение:Runner.applyModelFloor(base, model)ДО request_hash — на праймари (stagerun.go, поst.Model) И на хопе (escalation.gomaybeEscalate, поst.EscalateTo:hopMaxTokensв fbHash И в runAttempt — ровно фикс этапа A, где хоп наследовал 2048/3291 → finish=length). Флоры вmodels.yaml: deepseek-v4-flash/pro 8000, gemini-3.1-pro-preview 8000, kimi-k2.6 16000; glm-5/5.1/grok-4.3 — без поля. Комментарии-заглушки «дать ≥8000/16000» → схема. Валидацияmin_max_tokens<0. README-техдолг обновлён (комментарий→схема). Флор не течёт в тело как ключ (applyToBodyего не читает) — только через max_tokens; резерв EstimateUSD растёт на флорнутых вызовах, committed по факту не меняется. -
Post-check
dstFormPresent: базовый dst всегда проверяется (D24.4) — смена вердиктов. Множество проверяемых форм ={normalizeTargetForm(dst)} ∪ declFormsВСЕГДА (было: база — только фолбэк при пустом decl). Закрывает 37/55 ложных промахов этапа A (nominative_gap: approved-dst в именительном, decl только косвенные). Union монотонен (только промах→пасс) → precision↑; poisoning ловится по-прежнему (тест). recall на измеренных данных не страдает, НО строго это precision/recall-трейдофф с узким классом ложных пропусков — см. оговорку 4. inflection_gap (18/55, мн.ч.) остаётся сид-фиксом полигона. -
Golden re-capture — дифф-класс ПУСТОЙ (byte-identical, sha256 совпал, git diff пуст). Прогон
TM_UPDATE_GOLDEN=1не изменилcapture.golden. Причина (проверено чтением фикстуры): (а) фикстура использует ТОЛЬКО нефлорнутыеfake-model/fake-fallback→ floor 0 → нет wire-изменений;omitemptyдержит Capability-JSON нефлорнутых моделей байт-в-байт → snapshot неизменен; (б) в сиде каждый entry с непустым decl уже несёт базовый dst первой формой, а два записанных промаха (紋章→герб ch1/0; 竜の紋章→Драконья печать ch2/0) НЕ имеют в проверяемом выходе ни базовой формы, ни decl-формы → union не спасает ни один → вердикты неизменны. Пустой дифф ⊆ санкционированных классов {(a) max_tokens флорнутых, (b) postcheck-вердикты}. Оба новых поведения покрыты выделенными mutation-verified юнит-тестами (golden их не упражняет — нет флорнутых моделей/oblique-only-сида в фикстуре). -
Тесты (все новые mutation-verified; числа):
TestMinMaxTokensFloorPrimary/Hop/FoldedIntoSnapshot(maxtokens_floor_test.go, новый): primary флор на wire (max_tokens==8000); хоп re-флорится по СВОЕЙ модели (primary=512, hop=9000 — доказывает per-call, не global); правка флора двигает snapshotID. Мутации: снять primary-флор → 512≠8000 FAIL; хоп наследует базу → 512≠9000 FAIL.TestPostcheckBaseDstAlwaysChecked(memory_e1_test.go): repro этапа A (方源→Фан Юань, oblique-only decl + именительный в выходе → промаха НЕТ) + негатив (dst и все формы отсутствуют → промах ЕСТЬ). Мутация: реверт к empty-decl-фолбэку → положительный кейс валится с[{方源 Фан Юань confirmed}].TestRunnerEscalationBudgetExhaustionDeniesLaterHop(escalation_budget_test.go, новый; D24.1г): 2-главный epub, оба чанка эхают, budget 0.001 < 1 хоп. Гл.1 хоп допущен (spent 0<budget) → OK; гл.2 хоп ДЕНИЕД (spent≥budget) → флаг остаётся, edit skip, escalation-spend ровно 1 хоп (денег на деньед-хоп $0), 4 вызова, exit 2. Мутация:spent<budget+1e9→ гл.2 эскалирует, 6 вызовов FAIL.TestCoverageGateCatchesArtificialExcision(D24.1б, предсуществовал — пакет coverage-гейта): синтетические пропуски (drop 30/40/50/60% предложений × zh/ja/en) → recall 12/12 = 100%, контроль 0 ложных. Усилил: recall-число теперь ПИННУЕТСЯ ассертом (caught==total), не только логом; ≥90%-бар приёмки сохранён.TestErrTailTruncatesOnRuneBoundary(render_test.go; D23.4): >120 байт с континьюейшн-байтом на офсете 120 → валидный UTF-8, без U+FFFD, суффикс «…». Мутация:!RuneStart(...)&&false→\xd1…невалид FAIL (реверт фикса раньше выживал сьют — гэп закрыт).TestRetryLoopLogsWillRetryOnlyWhileAttemptsRemain(httpllm_test.go; D23.4, slog-capture): персистентный 5xx, MaxAttempts=3 → ровно 2 «will retry» (не на последней попытке), несутretry_in, финал — «exhausted». Мутация: снятьatt+1>=MaxAttempts break→ 3 «will retry» FAIL.- kill9 rounds 3→5 (
kill9_test.go, D23.4). Комментарий golden_test.go:32 смягчён (AMBIGUOUS-ячейка: выбрано смягчение коммента, НЕ правка фикстуры — держит golden байт-в-байт; ambiguous=0 в капче задокументирован, AMBIGUOUS>0-ячейка = опц. расширение фикстуры отдельной ратификацией).
Оговорки / вопросы оркестратору:
- Golden не упражняет новые поведения (флор/union) — фикстура нефлорнута и сид уже полон базой-в-decl. Покрытие — выделенными тестами. Рекомендация (опц., отдельная ратификация): при следующем осознанном golden-рефреше добавить в фикстуру (i) стадию на флорнутой модели и (ii) entry с oblique-only decl + именительным в выходе — тогда golden запинит и wire-max_tokens флора, и union-вердикт. Не делал сейчас: это правка фикстуры = golden-дифф класса ВНЕ {a,b} санкции пакета.
- Реальный
configs/models.yamlтеперь даёт другой snapshot для deepseek/gemini/kimi (флор в Capability). Ожидаемо и совпадает с планом D24.5 «фиксы → единый resnapshot → этап B»; книга gu-zhenren вне git, resnapshot на её стороне. Тесты boevoy-конфига (echo_mine) зелёные. - Порядок floor vs global MinMaxTokens: оба — max(), порядок неважен; флор только ПОВЫШАЕТ (0 не понижает). Хоп:
max(унаследованная_база_праймари, флор_хопа)— наследование бюджета сохранено (мандат), флор добавлен сверху. - ⚠ Пинг (зона docs/, формулировка D24.4): «recall не страдает» у union-фикса — НЕТОЧНО. Адверсариальное ревью пакета (4 оси find→verify, 1 CONFIRMED minor) поймало: расширение accepted-set монотонно (только промах→пасс), это precision/recall ТРЕЙДОФФ, не бесплатный выигрыш. На данных этапа A убранные промахи — все ложные (precision↑, 37/55). Но есть узкий РЕАЛЬНЫЙ класс потери recall: entry, у которого decl БЕЗ именительного И база — нарицательное слово, которое встречается в выходе отдельно, тогда как сам термин для своего вхождения ДРОПНУТ (
剑→мечдропнут как «клинок», но «меч» стоит рядом не по делу) → bag-of-words-проверка пасует, дроп замаскирован. На реальных данных редко (транслит-имена не совпадают случайно) и ТЕРПИМО пока это ФЛАГГЕР. Еслиpostcheck_gateкогда-либо флипается в hard-gate — обязателен пере-замер recall на нарицательных терминах (не предполагать). Код НЕ менял (union = ратифицированный D24.4); поправил только собственный коммент вmempostcheck.goна честный трейдофф + предупреждение о промоушене. Поведение/golden не тронуты. Рекомендация: в D24.4-логе смягчить «recall не страдает» → «на измеренных данных recall не страдает; hard-gate требует пере-замера».
2026-07-12 (пакет D15.2 · ЭТАП А — качественные фиксы D30, гейтят пере-прогон 25 глав) — ЗАВЕРШЁН · лендится ОТДЕЛЬНО и ПЕРВЫМ
По BACKEND_D152_SESSION_PROMPT.md этап А. Ничего не закоммичено (лендинг — оркестратор). go build ./... && go vet ./... && go test -race ./... — зелёные. Golden re-captured осознанно (инвариант №8). Зона чистая: правил только backend/; чужие правки docs/PROGRESS.md (полигон exp13, «Полигон»-секция) и eval/exp13_* НЕ трогал. Финал — адверсариальное ревью диффа (воркфлоу, 4 оси find→verify-by-refute, author≠reviewer): 14 CONFIRMED (все — ложные срабатывания санитайзера на легитимной ru-прозе; 0 после фиксов), 0 в интеграции/golden/контракте вне санитайзера.
Сделано (4 фикса D30):
-
Билингв-редактор (флип D1→D30.1, supersede D17.в).
prompts/editor.mdстал БИЛИНГВ (форма D13.1 — простой general-промпт: блок{{text}}=исходник + инструкция сверять смысл/чинить кальки жестов, БЕЗ сложного инжиниринга). Раннер УЖЕ передаётText: ch.Textкаждой стадии (stagerun.go:59) → editor.md просто ссылается на{{text}}. Моно-вариант сохранён отдельным файломprompts/editor-mono.md(подтверждающий пилот-арм D13.1; тот же reflow, отличие — наличие исходника). ТестTestEditorPromptIsMonolingual→TestEditorPromptIsBilingual. -
Reflow (D30.2). Из
translator.mdиeditor.mdубрано «Сохраняй разбивку на абзацы» (корень нечитаемости exp12 §2.5-S). Редактору — мандат нормативной репараграфизации (логические ru-абзацы; реплики с нового абзаца через тире «—»; без максимума длины). Bump prompt_version: translatorv0-draft→v1-reflow, editorv1-monolingual→v2-bilingual-reflowв pipeline-c1.yaml И c2.yaml (label-SHA дисциплина — общие файлы). (Полигон-пинг: reflow залёндён как активная инструкция ПОСЛЕ их exp13-армов; пере-прогон обязан идти на этом прод-промпте — согласовано.) -
Output-санитайзер (D30.3) — новый детерминированный вердикт-гейт-класс (
sanitizer.go,sanitizerVersion="sanitizer-v1"). Opt-ingates.sanitizer.enabled(коверейдж-паттерн), фолдится в снапшот ТОЛЬКО при enabled (sanitizerSnapshot, зеркало coverageSnap → переедет в verdictSnapshotID с D15.2). Дефект →FlagSanitizerDefect(D2 flag+skip, non-retryable/non-escalatable). Плагин вclassifyOutput— бежит ТОЛЬКО на ФИНАЛЬНОЙ стадии (isFinal, протянут через runAttempt/maybeEscalate): промежуточный черновик легитимно черновой, редактор его чистит — санитайзить draft значило бы скипать спасающий editor (правка по ревью). Пять классов, precision>recall: ведущая преамбула (gemini 6/6), хвостовой блок заметок/правок, markdown-###, латиница-фраза (≥5 ПРОБЕЛ-смежных лат-слов ИЛИ тяжёлая доля; hex/id и ≤4-словный мото НЕ триггерят), битые словоформы (невалидные знаковые биграммы ь/ъ+буква/сдвоенные; гомоглиф кир+лат в токене; junction-дубликация ≥4 БЕЗ containment). Regex Unicode-корректны ([а-яё]/\P{L} — RE2 \w/\b ASCII-only). Санитайзер в pipeline-c1.yaml ВКЛЮЧЁН (пере-прогон: gemini течёт преамбулой, премиум-редактор за санитайзером). ⚠ Честный recall-gap (пинитсяTestSanitizerBrokenWordRecallGap): чистый орфо-раскол «Первок предок» детерминированно НЕ ловится (нужна Ф2-морфология). -
Golden re-capture + расширение фикстуры D28.2 (закрывает оговорку 1 пакета-5). Осознанный re-capture. Дифф-классы: (a)
"sanitizer":{...}в payload + флаги ch6; (b)MinMaxTokensв Capability + max_tokens →4000(×12)/6000(×2); (c) oblique-only union ch5; (d) 2 новые главы. Пины (все mutation-verified исполнением): floor (fake-model 4000, fake-fallback 6000 — хоп берёт СВОЙ 6000); union (ch5 老人→старик oblique-only, финал несёт номинатив «старик» → postcheck_miss=0 только через union; revert→FAIL); sanitizer+isFinal (ch6 draft И edit несут преамбулу — с isFinal флагается edit-финал, draft ok; revert isFinal → флагается draft → golden diff).
Тесты (mutation-verified): sanitizer_test.go — 5 классов × firing+non-firing на реальной ru-прозе, ВКЛ. все 14 ревью-FP как non-firing (полиптотон «старик старика», «Хорошо хорошо», мото «sic transit gloria mundi», «Изменения —», «Комментатор», буква-ъ, em-dash+общий-нарратив) + hex-регрессия + recall-gap + детерминизм. Golden пинит floor/union/sanitizer/isFinal (мутации подтверждены). Obsolete-D1 тесты обновлены (TestEditorPromptIsBilingual, TestBoevoyConfigEditorGlm5AndGrokReasoning: editor grok-4.3→glm-5).
НАШЁЛ БАГ (фикстура поймала): латиница-детектор считал hex-теги (138fd5c384e3) «латинской фразой» (одиночные лат-токены между цифрами) → ложно флагал ЛЮБОЙ чанк с alphanumeric-id. Фикс: фраза считается только по ПРОБЕЛ-смежным лат-словам. Пинится hex-кейсом.
Оговорки / вопросы оркестратору:
- [РЕШЕНИЕ на подтверждение] Editor-модель pipeline-c1/c2 сменена grok-4.3→glm-5 (D30.1: билингв glm-5 — кандидат value; grok reasoning-off из редакторов СНЯТ = no-op). Формально стадия-А промта — про промпты/санитайзер/golden; смену МОДЕЛИ сделал, т.к. grok-off-editor ратифицированно-мёртв и оставить = внутренне-противоречивый конфиг (билингв-промпт на no-op reasoning-off grok). Draft оставлен deepseek-v4-flash (интерим). Пинг: полигон exp13 рекомендует draft=deepseek-v4-pro (их «Полигон»-запись выше, на ратификацию) — если ратифицируете pro, одна строка
model:в pipeline-c1.yaml + пересмотр хоп-1. - [recall-gap санитайзера, precision>recall] битые словоформы ловят только детерминированный минимум (невалид-знаки/гомоглиф/junction-dup). Чистый раскол «Первок предок» — Ф2-морфология. Пинится как ОСОЗНАННАЯ граница. Достаточно ли (рекомендация: да — FP роняет хороший чанк в плейсхолдер владельцу)? Плюс латиница-мото ≥5 слов — принятый редкий FP (opt-in, redrive поднимает человеку).
- [санитайзер = гейт, не наблюдаемость] реализован как opt-in гейт (flag+skip), НЕ наблюдаемость-с-промоушеном. Когда OFF — не бежит (нет retrieval_state-колонки → без миграции в этапе А). Always-on наблюдаемость счётчиков при OFF = +колонка (следующий пакет, если нужно).
- [resnapshot] реальный pipeline-c1.yaml даёт другой снапшот (промпты+модель+санитайзер) — это ЕДИНЫЙ resnapshot пере-прогона (D30.9); gu-zhenren вне git.
Попутно (fix-листы, безопасные, зелёные): models.yaml — комменты xai/gemini приведены к D27 (единый ключ+data-sharing, off перед продом) и D22.6/exp11 (Gemini fail-closed на эротике, первичный судья эротики Grok; grok из редакторов СНЯТ D30.1); mempostcheck.go:84 D24.3/D24.4→D24.4 (D28.3в); escalation.go applyModelFloor — note о provider_local×floor латентной интеракции (D28.3б). D22.9 redrive --resnapshot — покрытие УЖЕ есть (TestParseRedriveSelectorExplicit + TestRedriveResnapshotAcceptsDrift), no-op.
Статус этапов Б/В (НЕ гейтят пере-прогон — по этапности промта идут следом):
- Спека D15.2 доведена до v3.1 (§0-бис: D22.2-амендменты —
SourceLang/TargetLang→verdictSnapshotID(cjk-gate/coverage-коридор вне рендера; editor.md не рендерит target_lang),Context.CacheTTLдемотирован до advisory (wire-инертен —clients.go:38шлётprov.CacheTTL),prov.CacheTTL→wireSnapshotID; axis-тестRequestHash§12.9; паритетные не-цели §8 (classify-Source editor-строк, Retries/BudgetUSD вне ключа, транспорт); line-ref-нот про рефактор D23). Реализация РАЗБЛОКИРОВАНА в спеке. - Реализация Б (три хеша/guard_hash/verdict-split/миграция v8/fast-path v2/dry-run+--accept-rebill) и В (
tmctl export/annotations/цвет-мап/override) — НЕ начаты этой сессией. Осознанное решение: Б трогает денежно-критичный resume-путь (RequestHash, fast-path), где рывковая частичная реализация рискует ровно минами F1/D15 (тихая переоплата / stale-serve), а безопасный лендинг Б связан (fast-path снимает loud-гейт согласия → dry-run обязан его заменить, §7) — всё-или-ничего. Бюджет сессии ушёл на гейтящий этап А (полный цикл + ревью, поймавшее 14 реальных FP санитайзера) + v3.1-спеку. Хендофф чистый: спека v3.1 = дизайн-оф-рекорд, план §12 + тест-лист §12.9 готовы для следующей бэкенд-сессии. Дерево -race зелёное на границе А.
2026-07-12 (мини-сессия D33.1/33.2 — 2 обязательных фикса санитайзера + golden re-capture, гейтят пере-прогон) — ЗАВЕРШЕНО
По BACKEND_SANITIZER_FIX_SESSION_PROMPT.md. Ничего не закоммичено (лендинг — оркестратор). go build ./... && go vet ./... && go test -race ./... — все пакеты зелёные; gofmt чисто. Зона: только backend/ (3 файла: sanitizer.go, sanitizer_test.go, testdata/golden/capture.golden). Чужой untracked eval/exp13_seed_signoff.py (полигон) НЕ трогал. Все 4 фикса/пина mutation-verified исполнением (revert→FAIL, restore→ok — по каждому в изоляции).
Сделано:
-
[major D33.1а] Хвостовой класс теперь ловит «Основные правки для справки:». В
editMetaAnywhereREдобавлена high-precision альтернативаосновн…правк…— гейтится «… для справки» ИЛИ двоеточием, так что нарративное «Основные правки внёс редактор газеты» (без summary-метки) НЕ фаерит. Ловит и «Основные правки для справки:» (утечка A5/5_1, exp12:229), и colon-вариант «Основные правки:». Пины: 2 fire-теста, воспроизводящие СТРУКТУРУ утёкшего блока (заголовок + список правок; копирайтную главу не встраивал — диагностика в заголовке) + 1 clean-пин на нарративную форму без метки. -
[major D33.1б] Класс junction-дубликации СНЯТ (опция (б)), НЕ сужен. Разобрал: опция (а) «перекрытие ≥ бо́льшей части ОБОИХ токенов» математически обратна — все четыре кейса (три FP + единственный синтетический реальный «Первопред предок») делят overlap РОВНО 4 руны, причём у реального кейса доля перекрытия НИЖЕ (4/9) чем у FP (4/5); никакой порог на длину/долю overlap их не разделяет, а канонический «Первок предок» не ловился и так (recall-gap). Класс ловил мало реального и много ложного на частом предлоге «около» → флаг-шторм на 25 главах. Убраны
junctionDuplicated, констаjunctionOverlap, петля вdetectBrokenWords; остались две ZERO-FP сигнатуры (невалид-знак ь/ъ, гомоглиф кир+лат). Пины: 3 clean-кейса «около колонны»/«около колодца»/«стало талой» (mutation: восстановил детектор → все три фаерят).TestSanitizerBrokenWordRecallGapсохранён (assertion как есть; коммент обновлён — «Первок предок» по-прежнему не ловится, теперь by-design). -
[minor D33.2] Быстрые сужения (в тот же resnapshot, не блокеры): (а) markdown-заголовок требует букву/цифру после хешей → декоративные сцен-брейки «# # #», «## ***», «### ---» больше не фаерят (пины + fire «### 1. Вступление»); (б) heavy-латиница исключает капитализированные бренд-токены из счёта (
hasUpperLatin) → список «iPhone, iPad, MacBook, Apple Watch, Google Pixel» не фаерит, а лоуэркейс-англ-фраза ловится фразовым детектором (пин). Хвостовые «Примечание:»/«Комментарий:» уже ловятсяtrailingNoteRE— без правки. Разговорный префикс «Конечно!/Готово!» и recall-gap «Первок предок» — приняты как границы (не трогал). -
Golden re-capture (
TM_UPDATE_GOLDEN=1) — дифф-класс РОВНО санкционированный.sanitizerVersionsanitizer-v1→v2(правка правил = loud --resnapshot, инвариант №8). Аудит диффа исполнением: маскированный дифф (все hex-хеши + версия → плейсхолдер) ПУСТ — т.е. изменились ТОЛЬКОsnapshot_id+snapshot_payload(строка"version":"sanitizer-v2", дважды: fresh+resume) + каскад request/content-хешей, ключёванных на snapID. Ноль дрейфа disposition/flag/final_text/cost/postcheck_miss/injected_ids/term-order; 0×snap_match=false; счётчик строк 206=206. Фикстура ch6 упражняет только класс Preamble (не затронут) → новых санитайзер-вердиктов НЕТ, только version-fold-каскад. Другого класса диффа нет → стоп/пинг не потребовался.
Итог по вопросу промта («сузил/снял»): класс «битые словоформы» — junction-подкласс СНЯТ (precision-обоснование выше); два high-precision подкласса сохранены.
Полигон
(секция параллельной сессии — записи добавлять сюда)
(Закрытая хроника сессий 1–3, 18+ пакетов и exp10/11 (04–10.07) — в archive/PROGRESS-2026-07-04-10.md, D31.)
2026-07-11 — exp12 «диагностика качества 25 глав» (D26, приоритет №1) — армы+судьи+root-cause СДЕЛАНЫ, чтение владельца ждём
Мандат POLYGON_QUALITY_DIAG_SESSION_PROMPT.md + аддендум оркестратора (D27: единый xAI-ключ, grok-армы без ограничений; backend/ — живая сессия №5, ничего там не гонял/не читал WIP; пакеты чтения → diag/reading/). Ничего не закоммичено. Отчёт: docs/experiments/12-quality-diagnosis.md. Артефакты/тексты — /home/ubuntu/books/gu-zhenren/diag/ (ВНЕ git). Скрипты eval/exp12_*.py. Потрачено ≈$2.22 из капа $5 (армы $0.78 / судьи $1.31 / демо $0.13; 0 ошибок).
Дизайн (пре-регистрация §1 заморожена ДО платных вызовов): 3 чистые главы выбраны формулой (диалого-плотность на исходнике, high/mid/low = гл.7/5/14, не черри-пик); армы A0 черновик · A1 glm-моно(=этап A, store $0) · A2 glm-билингв · A3 grok-моно · A4 grok-билингв · A5 gemini-билингв · A6 grok-моно-без-констрейнтов; +A1′ контроль рига. Инъекция глоссария реконструирована из retrieval_state.injected_ids (воспроизводит боевой блок; rig-фиделити A1′≈A1 sim 0.984–1.0).
Находки (мех. + судьи вторично; чтение владельца — главный, ещё не пришло):
- Ядро: моно-редактор ПАССИВЕН. Активность (1−sim к черновику): glm-моно 0.013, grok-моно 0.001 (3/6 чанков char-identical!), grok-моно-без-констр 0.004, grok-билингв тоже 0.006 (reasoning-off инертен в ОБОИХ режимах). Реально правят только glm-билингв 0.14 и gemini-билингв 0.34. На всех 54 чистых чанках этапа A медиана draft→final sim 0.978, канцелярит-маркеров снято 0. «Нечитаемо, слабейшее редактура» = редактор почти не редактирует; нечитаемость унаследована от черновика.
- Монолингвальный режим (D1/D17) — корень. Моно-редактор и пассивен, и структурно СЛЕП к искажениям черновика (без исходника не знает, что «ударил головой»=磕头 земной поклон). Фикс = билингв (флип D1 — ратификация оркестратора).
- grok-4.3 reasoning-off непригоден как редактор (no-op; худший у судей). exp04-ранг-1 был на дефолт-reasoning+билингв; боевой off = инертен (quality-transfer риск exp08/D26 подтверждён числами). Грок-редактор — только reasoning-ON (D6.2-резерв).
- Судьи (gemini+grok+gpt5-mini, кросс-семейно, self-family excl, 26/27 парс): билингв ≫ моно; A2 glm-билингв единогласный #1 по стилю И верность 5.0 — fidelity-гейт «гладко-неверное» пройден (билингв не купил гладкость ценой смысла — страх кальки D1 на срезе не подтвердился). Оговорка: судьи держат вёрстку константной → недооценивают структурный дефект; валидируют модель×режим, не фикс вёрстки.
- Root-cause (кейсы владельца, гл.1 сцена смерти, сверено с zh): структурный дефект №1 = построчные абзацы (оба промпта велят «Сохраняй разбивку на абзацы» → пайплайн копирует кит. «предложение=строка», для ru деструктивно; бьёт по всем главам). Остальные кейсы — ошибки ЧЕРНОВИКА deepseek (时辰 не переведён, 派→«фракции» вместо секты, 磕头→«ударил головой», 练成→«совершенствование»), НЕ спасённые пассивным моно-редактором; 1 «smooth-wrong»-подозрение (清白之身→«невинность») проверено — верно. Демо §2.6 (gemini-билингв + разрешение реверстать абзацы + жанр-правила) чинит ПРАКТИЧЕСКИ ВСЕ кейсы одним прогоном (абзацы 49→25, «фракции»→«школы», «обесчестил»).
Рекомендация конфига (provisional, §3; смену дефолта НЕ делаю — ратифицирует оркестратор): три ортогональных фикса — (а) убрать «Сохраняй разбивку на абзацы» из брифа zh→ru + разрешить реверстку (дешевле всего, заметнее всего); (б) редактор билингв, не моно (флип D1); (в) модель — glm-5 билингв (судейский #1, верность 5.0, $0.42/25 гл), премиум-потолок gemini-билингв ($5.6/25 гл, селективно); grok-off снять. Плюс курация глоссария (моя зона): 春秋蝉 «Цикада Весны и Осени»? · 派→секта · 时辰→глосса. Дорожка: ратификация (флип D1+вёрстка = D-блок) → пере-прогон 25 глав кандидатом → чтение владельца → этап B.
Раунд 2 (чтение владельца состоялось, §4 отчёта): вердикт — ни один из 7 не дотягивает до чтения («машинный, модели не следят за сюжетом»). Новое: (1) ⚠ gemini (A5) ТЕЧЁТ преамбулой в выход («Вот отредактированный перевод…», wire-verified 4 чанка) → дефект продакшн-редактора + раздул мою метрику активности A5; glm/grok чисто → gemini понижен. (2) Глоссарий — сквозная первоклассная проблема (владелец прав): все армы делят один сид; 修炼/人祖 — GAP (не в сиде, «совершенствование»/«Первопредок» = выбор модели → засидить культивация/Рен-Зу?), 蛊师/蛊虫/甲乙丙丁/花酒行者 — lock (гу-мастер/гу-тварь/разряд-Г/Винный-Странник → переголосовать с владельцем); таблица current→pref в §4.2, пере-курация = моя зона после утверждения. (3) Идея «модель гуглит термины» (владелец) — в доках НЕТ; ближайшее D25.5 (веб=недоверенные данные, webfetch=Ф3-блокер) → автолукап = Ф3+, near-term = засид глоссария из фан-конвенций; пинг оркестратору зафиксировать owner-proposal в архитектуру. (4) Кандидат-фикс (glm-билингв+реверстка+конвенции, diag/arms/CAND/) — конвенции ставит, БЕЗ утечки, но реверстку абзацев делает нестабильно → layout надёжнее отдельным reflow-пассом/сильной моделью. (5) Монитор diag/reading/monitor.html (локальный, вне хостинга — копирайт) — оригинал+варианты+кандидат, кнопки копировать для флагман-сверки владельца. Рекомендация §3 дополнена: 4-й равноправный фикс — пере-курация глоссария; gemini понижен.
Раунд 3 (флагман-сверка состоялась, §5 отчёта): владелец прогнал монитор через ДВА фронтир-флагмана (GPT + Claude) слепо + любительский релейный перевод (контроль). Un-blind по ключу монитора (diag/reading/_РАСШИФРОВКА_ФЛАГМАНОВ.md; полный разбор Claude — ОЦЕНКА_ФЛАГМАНА.md). Корректность проверена: оба читали monitor.html (8 вариантов — столько только у монитора) + translate.txt, ключи не открывали, конфаундинга меток монитор↔пакеты нет (чистые 8-ранги), «переработки» выведены чтением и un-blind'ятся ровно в {A5,A2,CAND} = доказательство слепоты; единственный de-blind — gemini сам палит утечкой (мой стриппер снял ведущую форму, пропустил хвостовую в A5/5_1). Конфиг-итог (оба флагмана СОГЛАСНЫ): gemini-билингв (GPT 7.7 / Claude ранг 1.0 — лучшее ЯДРО, но течёт) > glm-билингв (7.3/2.7) ≈ КАНДИДАТ (7.2/2.3) ≫ glm-МОНО=этап A (6.2/6.0, низ — подтверждает «нечитаемо») ≈ черновик/grok-no-op (~5). Тройная триангуляция (механика §2.2 + судьи §2.3 + 2 флагмана): билингв-переработка ≫ моно/пассив; практич. выбор — glm-билингв/КАНДИДАТ. Флагманы добавили сверх: (а) никто не publishable («крепкий сетевой», не издательская проза); (б) чтобы победить фан — 3 вещи: принудительный глоссарий + евро-вёрстка с тире + сноски на аллюзии; (в) нужен output-санитайзер (утёкшие заметки/непереведённые слова/латиница-в-кириллице/диакритики/битые словоформы — новый класс дефектов вне гейтов); (г) сквозные ошибки ЧЕРНОВИКА deepseek (族长≠家老, 本命蛊, 长生=бессмертие не долголетие, 失神, 花酒行者 теряет 花); (д) экспертные глоссарии от обоих — материал для пере-курации. Стратегия честно: сценарий A+B — инкремент даёт «лучше фана», но «издательский уровень» требует более сильного ЯДРА (переводчик, пилот Ф2.5) → приоритет ядра растёт.
Ждём: (1) Пере-курация глоссария — утверждение владельцем терминов (§4.2 + флагман-таблицы: врата→апертура, 真元, 本命蛊→жизненный гу, 长生→бессмертие, 族长/家老; спорное — Первопредок/Жэнь Цзу, культивация/совершенствование — за владельцем) → засид GAP + переголос lock → resnapshot. (2) Оркестратору: ратификация флипа D1 (моно→билингв) + бриф вёрстки + новые задачи: output-санитайзер (класс «мгновенной нечитаемости»), сноски-на-аллюзии, и — по сигналу флагманов «издательский уровень требует ядра» — поднять приоритет выбора базового переводчика/пилота Ф2.5; фиксация owner-proposal «автолукап терминов = Ф3». Дефолт сам не трогаю. (3) Полигон №4 (сид мн.ч.) — второй приоритет, не начат.
2026-07-12 — exp13 «бейк-офф ПЕРЕВОДЧИКОВ + финализация сида v2» (D30.6, приоритет №1) — СДЕЛАНО
Мандат POLYGON_EXP13_SESSION_PROMPT.md + D30.6/30.10. Ничего не закоммичено, КРОМЕ пре-регистрации (D30.10-гейт: коммит §1 до первого платного вызова — 5bc75d0, path-scoped только exp13-док). Отчёт: docs/experiments/13-translator-bakeoff.md (§1 пре-рег заморожен → §2 результаты → §3 рекомендация → §4 сид v2 → §5 лимитации → §6 итог). Артефакты diag/arms13/ + diag/reading/monitor13.{html,md} (ВНЕ git). Скрипты eval/exp13_*.py.
Рекомендация (на ратификацию оркестратора — дефолт НЕ трогал): переводчик пере-прогона = deepseek-v4-pro (superseding deepseek-v4-flash в draft-стадии). Триангуляция 7 сигналов (агент-верность/проза + GPT + Opus + API-судьи верность/стиль + гейты) сходится: deepseek-pro — общее место 2.50 ①, лучший СТИЛЬ, 2-я верность, самый стабильный, без катастроф; ~$0.23/25 глав. Порядок: pro 2.50 > mistral 2.92 > grok 3.10 > flash-база 3.16 > glm-5 3.33. Нюансы: база flash — лучшая верность (2.53) но худший стиль (течёт англ. «cultivation», markdown-###); mistral — лучшая проза но режет смысл + выброс заголовков (полнота); grok/glm-5 нестабильны (grok перевернул 供奉; glm-5 成→«десятки»). Гипотеза D30.6 «качество сменой одной строки model:» — подтверждена ЧАСТИЧНО (pro>flash по стабильности/стилю, не разгромно; подъём даёт СВЯЗКА draft+билингв-редактор+sanitizer+глоссарий). Сквозные дефекты (англ.-течь, ###, 成) — цели sanitizer D30.3 + сид v2, не выбора переводчика. Все армы прошли гейты (0 эхо/refusal/объём — контест честный).
Сид v2 финализирован (D30.5): guzhenren-seed-v2.yaml (57 терминов) единым трансформом eval/exp13_seed_v2.py (супрсидит exp12-скрипт — дефект провенанса/статусов). Спорные (修炼/修行, 人祖, 花酒行者, 蛊虫, 本命蛊 + род «гу») → status:draft (не в hard-constraints до подписи); бесспорные (8 правок + 5 добавлений) → approved; влито мн.ч. (D24.4: 元石/凡人/蛊师). Таблица владельцу на подпись: diag/glossary_v2_signoff.md. Аддендум провенанса — exp12 §4-addendum.
Флаги оркестратору/бэкенду:
- Reflow-строка (мой пинг D30.2 закрыт): бэкенд залендил
translator.mdreflow как АКТИВНУЮ инструкцию (в 05:50, ПОСЛЕ моего арм-прогона); мои армы гнались с reflow-как-удалением. Ранг устойчив, но пере-прогон 25 глав обязан идти на залёнженном прод-промпте. Кросс-контаминации НЕ было (reflow-guard харнеса; все 24 вызова прошли ⇒ старый промпт был у всех армов; бэкенд правил файл после). - ⚠ Перерасход бюджета: армы $0.109 + судьи $5.387 = $5.50 vs кап $5 (~+10%). Коарс-кап (между судьями, не по-вызову) + gemini думал дороже оценки ($3.14) + kimi $2.0. Дисциплинарный промах, зафиксирован; фикс — кап по каждому вызову. Данные собраны, дальше не трачу.
- Слепота цела (Opus поднял флаг «метки не перетасованы» — опровергнут кодом: три перестановки различны, mistral совпадением в слоте V3 трижды; попутно вскрыт реальный дефект mistral — выброс заголовков).
- Если pro становится праймари черновика — пересмотреть хоп-1 эскалации (был deepseek-pro; теперь первый кросс-семейный = glm-5.1).
Ждём от владельца: (1) подпись спорных сида v2 (diag/glossary_v2_signoff.md) → проставлю статусы; (2) флагман-сверка через monitor13.md (опц., 4-й голос — GPT+Opus уже дали, сходятся с судьями). Оркестратору: ратификация draft=deepseek-v4-pro (D-блоком) → единый resnapshot (draft=pro, editor=glm-5-билингв, reflow, сид v2, sanitizer) → пере-прогон 25 глав с re-gate верности. Полигон №4 (сид мн.ч.) — влит в v2, отдельная задача закрыта.
Память
(секция ресёрч-сессий памяти — записи добавлять сюда)
(Хроника валидации банка (04–05.07, research/13–14, вердикт GO) — в archive/PROGRESS-2026-07-04-10.md, D31.)
Голос и состояние
(секция ресёрч-сессии — записи добавлять сюда)
(Хроника сессии «Голос и состояние» (09.07 → research/15, D21) — в archive/PROGRESS-2026-07-04-10.md, D31.)
Ридер-IDE
(секция ресёрч-сессии — записи добавлять сюда)
(Хроника сессии «Ридер-IDE» (11.07 → research/16, D29) — в archive/PROGRESS-2026-07-04-10.md, D31.)