69 KiB
exp15 — эмпирика сегментации/когезии/контракта t-e (research/19 §D, трек B)
Полигон-сессия, 2026-07-17. Промт:
docs/POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md. Дизайн-оф-рекорд:docs/research/19-chunking-cohesion.md§D (Q0–Q5). Зона:eval/+docs/experiments/. Скрипты — семьяeval/exp15/. Выходы/сырьё — ВНЕ git (/home/ubuntu/books/gu-zhenren/exp15/).СТАТУС: §1 ПРЕ-РЕГ ФРИЗ — ЗАПОЛНЕН, ждёт (а) подписи владельца на 3 гейтах §1.13 и (б) коммита ДО первого платного вызова. §2–§6 заполняются по ходу прогона. НИ ОДНОГО платного вызова ещё НЕ было.
§1 — ПРЕ-РЕГИСТРАЦИОННЫЙ ФРИЗ
§1.0 Дисциплина и провенанс
- Пре-рег = единственный коммит этой сессии; всё после первого платного вызова НЕ меняется (иначе новый experiment-ID). Мандат самопроверки (CLAUDE.md): ревью ИСПОЛНЕНИЕМ кода + сформированных запросов + результатов — в каждый скрипт; каждый платный скрипт персистит usage/cost (D30.10).
- Правило двух направлений соблюдено: все слаги подтверждены И живым
/models(eval/exp15/preflight_models.py→exp15/preflight_models.json), И официальной вендор-докой (12-агентный веб-workflow →exp15/freeze_facts.json, 5/6 тем CONFIRMED, 1 PARTIAL с явным caveat). Даты/URL — вfreeze_facts.json. - Анти-сходимость (D32.4): все контрасты делят один якорь A0 → их «победы» коррелированы и НЕ суммируются в «N сигналов сходятся»; повторы судей давят судейский шум, НЕ шум генерации якоря (двойной якорь A0↔A0′).
§1.1 Пины (хеши — состояние на момент фриза)
| Что | Значение | Примечание |
|---|---|---|
| Бэкенд HEAD | 68032f7 |
≥ d3f6b34 (пак-1: trust-gated suppressor, memmatch-v4, sanitizer-v5, pair-сеам). Дерево ЧИСТОЕ (трек A залендён). |
| Сид (снапшот-основа) | guzhenren-seed-v2.yaml sha256 175a67ad2f05caeaec8fc5b8c8d304334e8dc73eebd3caf5fc3b4b8be0c408f4 |
gender-полон (12/13 person; 古月=n-a клан). 人祖=male ДОБАВЛЕН (подпись владельца, канон D19.3) — байт-стабильно (diff=1 строка, идемпотент). Пол в memory-хеше (memory.go:273) → resnapshot. |
| translator.md | sha256 35d3ad6e0656a7d1116fb8b034a4cea087d5c11ac6e043804185f94f15af5829 |
prod prompt (v1-reflow); несёт инертный reflow-однострочник (L10) — §C1 предлагает снять, но A0 = ТЕКУЩИЙ prompt как есть. |
| editor.md | sha256 878b0da397eda5392950a5fa43a87e575b09cf6aa352d8e58ea2da26b55d8290 |
prod prompt (v3-discourse-reflow). |
| editor-mono.md | sha256 a8aaa38ea529e7344c4ce08f000f862cfa7a3fe4c5b3a6bba08a1a22cfeb189c |
моно-редактор (не в A0-стеке; пин для полноты). |
| A0 pipeline | backend/configs/pipeline-c1.yaml + gates.regression_guard.enabled: true |
§1.2. |
| chunkerVersion | chunker-v4-utf8-quotedepth (const) |
greedy-1500 = CODE-const (chunker.go:47), НЕ config-кноб. |
§1.2 Якорь A0 и реконструкция инъекции (по ТЕКУЩЕМУ Go)
A0 = прод-кандидат пост-D38.5: draft deepseek-v4-flash (v1-reflow, temp 0.3, thinking ON —
конфиг-строка reasoning:"off" для deepseek — NO-OP, echoMineViolation-гейт принуждает thinking; при
расхождении верить Go) → editor glm-5 (v3-discourse-reflow, temp 0.4, thinking OFF), greedy-1500,
без когезии (stm_depth:2/overlap_tokens:200 — МЁРТВЫЕ кнобы, реального carryover в prod НЕТ),
RegressionGuard ON (наблюдаемость, не диспозиция), glossary_token_budget:800, сид reseed-промоутнутый.
Реконструкция инъекции — КРИТИЧНО (порт exp14b СТАЛ, не использовать):
- $0-пути к
retrieval_state.injected_idsНЕТ (persist только ПОСЛЕ платной стадии вtranslateChunk; единственный бинарьtmctl, ingest вплавлен в платныйtranslate). - Python-порт
exp14b_reseed_promote.py(find/suppress/render) поведенчески устарел: он кодирует ДО-trust-gate longest-match (spoiler-onlyvalid_suppressor), а текущий GosuppressContained(memory.go:684-726+matchTrust/trustRank640-668) — disposition/trust-gated. Порт разойдётся с A0 ровно на draft-nests-over-approved (суть пак-1). НЕ реюзать порт для инъекции. - Метод (принят): A0/A0′ генерятся РЕАЛЬНЫМ бэкендом
tmctl translate(аутентичный trust-gated matcher), из егоretrieval_state.injected_ids(SQLiteretrieval_state) читаются авторитетные инъекционные id; контраст-армы (eval-риги) ПОТРЕБЛЯЮТ эти же id (общий знаменатель). Дамп:sqlite3 <book>.db "SELECT chapter,chunk_idx,injected_ids,n_trust_gated_suppress,trust_gate_detail FROM retrieval_state ...". - Архитектурное следствие (несущее): бэкенд НЕ умеет производить арм-механизмы (logical-chunker, carryover/lookahead, diff-editor, edit=глава, wide-read — все ОТСУТСТВУЮТ в prod: greedy-1500 const, кнобы мёртвые, diff-парковка D21.4). Значит только A0/A0′ — из реального бэкенда; ВСЕ механизм-армы (Q1/Q2a/Q2c/Q3a-b/Q4a-c) — eval-риги (Python, паттерн exp14/arms), реализующие §B1.4-B1.5/§B3/§C2 ДИЗАЙН и потребляющие аутентичную A0-инъекцию. Риги — «порт-зеркала в своей зоне, при расхождении верить Go».
§1.3 Корпус S1–S4 (структурные профили — ДО прогона; eval/exp15/structural_profile.py)
| Срез | Материал | Профиль (замерен) | Роль | Статус |
|---|---|---|---|---|
| S1 плоский zh | 蛊真人 поздние 节 (высокий --sec, низкая violence-плотность), вне slice25 |
median 29 cjk/строка, term 4.46/100c, 0 орнамент-разделителей во ВСЕЙ книге (2308 节), flat_line_per_sentence=True | точка фоллбек-режима | ✅ материал есть; ⚠ IN-претрейн (принято §D0: S1 валиден для нарезки/внутрипарных, «вне претрейна» несёт S2) |
| S2′ синтетич. сцен-маркир. zh (склейка) | конкатенация ПЕРВЫХ последоват. 节 蛊真人 (решение владельца); швы = ground-truth сцен-границы | по построению: швы-границы | несущий: где Q1 дифференцирует (выравнивание разрезов на швы) | ✅ материал есть (§1.14). ⚠ IN-претрейн + синтетика → ПРЕДВАРИТЕЛЬНО; свежая новелла = чистовое подтверждение (НЕ гейт) |
| S3 ja-ранобэ | isekai_majutsushi_jp.txt |
median 46, dialogue-opener 0.45 (line-per-utterance), 86 разделит.-строк (=), 43 話, scene_marked=True |
нагрузка carryover/пол | ✅ $0 чанкер-профиль (без платных арм) |
| S4 длинно-абзацный en | fifty_shades_1_en.txt |
mean 107 cjk/строка (длинные абзацы), blank-run 0.99, 52 Chapter, cjk 0 | контроль общности §0.1 | ✅ $0 чанкер-профиль; caveat: US/UK совр., не европ.классик (альт. PD — samples/en/* без билдера) |
Платные армы перевода — ТОЛЬКО S1/S2 (zh→ru, единственные прод-промты). S3/S4 — $0 детерм. валидация общности чанкера. Пре-ран проверка «срез задействует рычаг»: S1 подтверждён flat (проверяет фоллбек-лестницу B3/B4/DP); S2 обязан нести орнамент/сцен-сдвиги (проверяется профилем ДО платного прогона, когда материал будет).
§1.4 Трап-набор (§D1)
- Типы и min-N (общий знаменатель, определяется как пересекающий границу В ЯКОРЕ A0): T-ana ≥20, T-ent ≥20, T-tense ≥20 (несущие); T-cat ≥10, T-ell ≥10, T-gen ≥10, T-reg ≥10, T-inv ≥10 (контроль/реюз exp14b).
- Майнер трапов =
kimi-k2.6(Moonshot) — ИСКЛЮЧЁН из судейского пула, семья ≠ арм-моделям (DeepSeek/GLM) и ≠ судьям (xAI/Mistral). Кандидаты добываются майнингом + ручной отбор. - Стратификация по дистанции антецедента (публикуется per-трап): квота в пределах K=3 предложений (зона carryover) vs дальше K (зона окна/Ф2) — иначе Q3a «выиграет» по построению.
- Общий знаменатель контраста: трапы определяются в A0; в ОБОИХ армах скорится ОДИН набор; пересёк/не пересёк границу в арме — записываемая КОВАРИАТА, НЕ фильтр. Исключаются только не-пересекающие НИ в одном арме.
- Ожидаемое поведение каждого трапа записано ДО прогона; недобор → домайнить до квоты ДО платных вызовов, иначе тип помечается «Q недоказуем a priori» (не после).
- T-gen использует поле
genderсида (§1.11); если подпись не успевает до Q3a′ — арм честно «стейт без пола».
§1.5 Армы — 2-арм контрасты к общему якорю (§D2, дословно + конкретизации)
Якорь A0 на несущем S2 генерится ДВАЖДЫ (A0↔A0′, temp>0) = floor шума генерации; Q-эффект < floor не интерпретируется.
| Q | Контраст (одна переменная) | Первичная метрика (ОДНА) | Реализация |
|---|---|---|---|
| Q1 | greedy vs logical-граница (§B1.4/B1.5-DP) на S2′, оба на size-matched бюджете ~3–4k ток (различие ТОЛЬКО в выравнивании разрезов на швы; размер-эффект → Q2) | T-tense+T-ana точность на S2′ (общ.знам.); вторично: доля разрезов на scene-shift-швы (выше=лучше) vs continuation-швы (ниже=лучше) | eval-риг: Python-DP чанкер (порт §B1.5) → армы через его границы |
| Q2a | A0 vs edit=глава (draft приколочен к greedy-1500, крупнеет ТОЛЬКО эмиссия редактора) | retry-adj cost-of-pass при reflow-инвар. omission не хуже A0 | eval-риг: editor glm-5 на объединённом чанке |
| Q2b | реюз sizecurve (800/1600/3200/whole, ch17/13) + omission-скоринг ($0 генерации) | reflow-инвар. omission per size | $0, exp14/sizecurve/*, err-фолбэки исключить |
| Q2c | A0 vs широкое-чтение/узкая-эмиссия (эмиссия=чанк, окно=сцена read-only) | T-ana+T-tense точность при out-ток ≈ A0 | eval-риг glm-5; кэш z.ai ВЕРИФИЦИРОВАН (§1.9) → cache-normalized колонка ЛЕГИТИМНА |
| Q3a | A0 vs +carryover(K=3): 3 режима src-only/draft-сосед/final-сосед; стейт — суб-арм Q3a′ | T-ana+T-ell точность per режим (Q3a′: T-gen/T-reg) | eval-риг: билингв невыровненный хвост в промт |
| Q3b | A0 vs +lookahead M=2 (src-only, шов-дедуп-гард ON) | T-cat точность (пустая ячейка exp14) | eval-риг |
| Q4a | A0 vs сильный переводчик (draft=deepseek-v4-pro) + суб-арм strong-draft+do-nothing |
fidelity-трапы ЧЕРНОВИКА до редактора (span) | eval-риг; v4-pro держит семью DeepSeek (mistral свободен под судью) |
| Q4b | A0 vs diff-fidelity+style редактор (§C2; ±сегмент-маркеры) | trap-точность (T-inv) при формат-комплаенсе ≥90% | eval-риг: anchored search/replace + Go-стиль tolerant apply (Python-порт) |
| Q4c | A0 vs reflow-план отдельным пассом (§C1.3) | mean_spp при omission-инвар.=0 (валидатор плана) | eval-риг |
| Q0 | A0 vs do-nothing (экспорт черновика) | TOST-эквивалентность, маржа M на trap-точн.+KPI | $0 генерации (do-nothing = экспорт draft) |
Порядок/стоп-гейты: Q2b($0, ре-атрибуция) → Q1+Q3 (несущие, S2) → Q2a/Q2c → Q4a/Q4b/Q4c → Q0 (обязателен, дёшев). Каждый Q — стоп-гейт; стоп при исчерпании бюджета легитимен (приоритет пре-рег); НО стоп после Q2b НЕ закрывает центральный конфликт. Двойной якорь A0↔A0′ до интерпретации любого Q.
§1.6 Метрики / агрегация (§D3)
- Reflow-инвариантный omission (ГЛАВНЫЙ, валидируется на вручную вычитанном whole-chapter выходе ДО скоринга арм): по КАЖДОМУ предложению источника — присутствие семантических атомов (числа, сущности/глоссарий-хиты, полярность отрицания) ГДЕ УГОДНО в целевом чанке. НЕ длинo-зависимые гарды (RegressionGuard/coverage смещены против крупных чанков — фабрикуют B0.4).
- Детерминированные $0: mean_spp / доля 1-предл. абзацев / диалог-тире / CJK-утечка (⚠ Han-в-скобках после кириллич.терма — НЕ штраф, решение владельца #3) / glossary-консистентность (LTCR по сиду) / доля классов границ / шов-дедуп / позиционный градиент ВНУТРИ арма.
- Карта независимости сигналов: метрики с общим драйвером длины (out-ток, mean_spp, длино-гарды) = ОДИН сигнал; «сигналы сходятся» требует ≥1 длинo-независимого (trap-точность/span-верность).
- Trap-судьи: ≥2 кросс-семейных (§1.10), temp 0, каждый пейр в ОБОИХ порядках; 6 голосов, при расколе ≤4:2 → добор до 10 (ослабление против §A.7 «~10» — бюджетная поправка, фиксируется явно); leave-one-judge-out; катастроф-скрин К ПОБЕДИТЕЛЮ тоже; fidelity-first, без pooled-style.
- Агрегация: ПАРНЫЕ по-главные разности арм−якорь ВНУТРИ среза; кластер-SE по книге НЕ считаются (несущий срез ≈ 1 кластер) — генерализация на «любую книгу» = декларированное ограничение, закрываемое S1–S4-разнообразием; один первичный контраст на Q + Holm-Bonferroni; мощность честно: на 8–12 главах разрешимы средн./крупн. эффекты → первичны ТРАПЫ.
- Слепота владельца: финалисты — слепые пакеты (
exp15/monitor/), метки перемешаны. Человеческий эндпоинт гейтит (планка 2 претензии, D35): метрики НОМИНИРУЮТ, ратифицирует слепое чтение владельца.
§1.7 Дерево решений (§D5, пороги пинятся числом ДО прогона)
- Q1: T-tense+T-ana (общ.знам., S2) сдвиг ≥ порог (пин: парная разность ≥ +0.10 доли починенных трапов, p<0.05 Holm) → строить §B1.4/B1.5-DP; null на S2 (НЕ только плоский S1) → граница вторична, приоритет когезии (Q3).
- Q2a/Q2c: Q2a-первичка (cost-of-pass при omission-инвар.) лучше A0 И Q2c НЕ воспроизводит окном → edit=глава легитимен (§A.8.1). Q2c воспроизводит (trap-первичка ≥ Q2a при меньшей эмиссии) → «мелкая эмиссия + широкое окно».
- Q3a/Q3b: знаменатель = кросс-граничные трапы, которые A0 ПРОВАЛИВАЕТ; carryover чинит ≥50% → оживление ратифицируется (режим — по дельте src/draft/final + владелец §E.1); null при верифиц. пересекающих → когезия требует окна/Ф2.
- Q4a: strong-draft+do-nothing чинит ≥ пин-доли (≥0.5) T-inv, что flash-draft валит, при COGS ≤ пин-потолка → арм «структура у переводчика» в прод-кандидаты.
- Q4b: формат-комплаенс <90% ИЛИ fidelity-first trap хуже full-regen → диффы откладываются (закрыть D21.4/D21.10 явно); ≥90% и атом-omission=0 → дифф-редактор в прод-кандидаты.
- Q4c: mean_spp ≥ A0 И атом-omission=0 при COGS ≤ A0×1.3 → reflow отдельным пассом; иначе остаётся в editor-промпте.
- Q0: TOST-эквивалентность (маржа M пин: |Δ| < 0.05 доли на первичках) A0↔do-nothing → мандаты редактора пересматриваются (APE-урок); НЕ-отвержение без эквивалентности = «данных мало».
- Финал любой ветки: прод-кандидат → слепое чтение владельца (гейтящий эндпоинт).
§1.8 Слуги (live /models ✅ + вендор-док ✅, 2026-07-17)
Все присутствуют в /models. deepseek-chat/deepseek-reasoner депрекейтятся 2026-07-24 15:59 UTC (оба → v4-flash);
арм-конфиг на deepseek-v4-flash/-pro — НЕ задет. Слуги: draft deepseek-v4-flash; editor glm-5; Q4a-strong
deepseek-v4-pro; судьи grok-4.3, mistral-large-latest(=Large 3); майнер kimi-k2.6; gpt-5.4=gpt-5.4-2026-03-05,
gemini=gemini-3.1-pro-preview (пины на случай эскалации/3-го судьи).
§1.9 Цены, кэш, бюджет, капы (exp15/freeze_facts.json, eval/exp15/budget_calc.py)
Цены/1M USD (офиц., 2026-07-17): deepseek-v4-flash 0.14/0.0028/0.28; v4-pro 0.435/0.003625/0.87; glm-5 1.00/0.20/3.20;
grok-4.3 1.25–2.50/0.20–0.40/2.50–5.00 (reasoning additive out); mistral-large-3 0.50/–/1.50; kimi-k2.6 0.95/0.16/4.00;
gemini-3.1-pro 2–4/0.2–0.4/12–18 (thinking=output); gpt-5.4 2.50/0.25/15.00.
Кэш ВЕРИФИЦИРОВАН: z.ai/GLM auto-implicit, usage.prompt_tokens_details.cached_tokens, hit ~0.2×input →
§E.8-бис гейт ПРОЙДЕН, Q2c cache-normalized колонка ЛЕГИТИМНА; DeepSeek auto ~2%×miss; OpenAI/Gemini auto.
Бюджет (recompute из trap-N×голоса×2 порядка×2 судьи): несущий блок (Q1+Q3a+Q3a′+Q3b) armы $1.71 + судьи $6.66 +
майнер $0.27 = $8.64; полный пакет $13.13 — оба < $15 (хард-кап владельца). Апекс-судья gemini как 2-й = $44
несущий блок → ИНФИЗИБЛ; grok+mistral — бюджет-вынужденный правильный выбор (зафиксировано).
Капы: per-call predicted-cost гейт ДО каждого вызова (в run-скриптах); стоп-гейт после каждого Q; хард-кап $15.
Риск (пин): DeepSeek анонсировал (SCMP/TNW 30.06) peak-surge ×2 в Beijing-часы (01–04 & 06–10 UTC) — НЕ на офиц.
таблице; митигация: платные DeepSeek-армы ВНЕ этих окон, либо ×2 бюджет; ре-чек у 24.07-катовера. Gemini thoughts-accounting
и glm-5 PAYG-доступ — эмпир-верификация на 1-token пробе у первого платного гейта (freeze_facts.json risks).
§1.10 Судьи и майнер (семейно чисты)
- Судьи (2 кросс-семейных):
grok-4.3(xAI, reasoning ON) +mistral-large-latest(Mistral Large 3). Ни один не из семьи арм-моделей (DeepSeek draft/Q4a, GLM editor) и не майнер (Moonshot). Опц. 3-йgemini-3.1-pro— ТОЛЬКО на leave-one-out подмножестве при остатке бюджета (иначе инфизибл). - Майнер:
kimi-k2.6(Moonshot) — исключён из судей, семья ≠ арм/судьи. - Отклонение от D-лог апекс-пары (grok+gemini): заменён gemini→mistral как бюджетная поправка (§1.9); зафиксировано явно.
§1.11 Gender-транспорт (решение владельца #2) + спорные
Поле gender УЖЕ в сиде и потребляется Go (memseed.go:35→memory.go:273 хеш→store; migrate.go:183 =
male|female|hidden|''). Транспорт eval/exp15/gender_transport.py — идемпотентен, байт-стабилен, пре-снапшот+лог+асерты
(паттерн exp14b_reseed_promote), audit-first (no-op на уже-гендерном сиде → snapshot-хеш СОХРАНЁН до подписи).
Аудит: 13 person-записей, теперь 12 гендерны (方源/方正/古月X male, 沈翠 female, 白凝冰 hidden→гендерно-нейтр.,
人祖=male — ПОДПИСЬ ВЛАДЕЛЬЦА, канон D19.3); 古月=n-a (клан, без поля — подтверждено). Подписи в
exp15/gender_signoff.yaml (пин). Транспорт применил 人祖→male байт-стабильно (diff=1 строка, идемпотент); новый seed-хеш §1.1.
T-gen-трапы гонятся полноценно (квота ≥10). Будущие трап-персонажи добавляются в signoff идемпотентно до Q3a′.
Scene-state слот (eval-side, Q3a′) surface-ит пол — self-review OK.
§1.12 Отклонения от §D (явно)
- Судья-пара grok+mistral вместо апекс grok+gemini — бюджет ($15 не держит gemini-thinking-output). §1.9/§1.10.
- Голоса 6→10 (не «~10») — уже бюджет-поправка самого §D3, повторно фиксирую.
- Порт инъекции exp14b — НЕ реюзается (поведенчески устарел до-trust-gate); A0-инъекция из реального
tmctl translate. §1.2. - Механизм-армы — eval-риги (бэкенд не умеет logical/carryover/diff/wide-read); A0/A0′ — реальный бэкенд. §1.2.
- S2 «свежий сцен-вебновелл» → S2′ синтетическая склейка ПЕРВЫХ 节 蛊真人 (решение владельца): швы=ground-truth сцен-границы; РАЗБЛОКИРУЕТ платные Q1/Q3; репорт помечается «синтетика+претрейн, предварительно до чистого S2» (§1.14). Свежая новелла = чистовое подтверждение, НЕ гейт.
§1.13 Гейты владельца — ЗАКРЫТЫ (2026-07-17)
- A. S2-материал → S2′ (склейка ПЕРВЫХ 节 蛊真人), решение владельца. Правила пре-рег — §1.14. Разблокирует Q1/Q3; предварительно (синтетика+претрейн), свежая новелла = чистовое подтверждение, не гейт. ✅
- B. Gender подписан:
人祖=male (канон D19.3),古月=n-a (клан). Применено, seed re-hash §1.1, T-gen полноценно. ✅ - C. Бюджет/судьи подтверждены: $13.13/$8.64 в $15; grok-4.3 (reasoning-ON, wire-чек ДО платных) + mistral-large-3 (слаг live-фактчек ДО платных); Q4a=deepseek-v4-pro; майнер kimi-k2.6 (из {openai/kimi/gemini}). ✅
§1.14 S2′ — синтетическая сцен-склейка (пре-рег правила, решение владельца 2026-07-17)
Построение (eval/exp15/build_s2prime.py, детерминир., $0): конкатенация N ПЕРВЫХ последовательных 节 蛊真人 (opening-арка,
第一卷) в единый текст; ПЕРЕД склейкой — стрип 第X节-заголовков на швах (шов = НЕЯВНАЯ сцен-граница, без явного маркера).
Каждый шов = записанная ground-truth граница (rune-offset + пара соседних 节-id).
- (б) Ручная классификация каждого шва: «scene-shift» (реальная смена времени/места/POV/сцены) vs «continuation-cliffhanger» (节 обрывается посреди сцены, следующий продолжает). Раздельные страты; continuation-швы = negative-boundaries («здесь резать НЕЛЬЗЯ»). Классификация — чтением контекста шва; рационал per-шов в леджер §2.
- (в) Q1-контраст на size-matched бюджете ~3–4k ток: greedy vs logical — ОДИН бюджет, различие только в выравнивании разрезов на швы. Метрика границы (вторичная): доля scene-shift-швов, на которые разрез попал (выше=лучше) vs доля continuation-швов, разрезанных (ниже=лучше). Размер-эффект (1500 vs 3–4k) — домен Q2, НЕ Q1.
- Трапы размещаются straddling швов (кросс-граничные); T-* привязаны к scene-shift-швам (где граница ДОЛЖНА чинить).
- (г) Оговорка репорта: S2′ = синтетическая пере-нарезка IN-претрейн книги → результаты ПРЕДВАРИТЕЛЬНЫ; чистое подтверждение — на свежей вне-претрейн новелле, когда появится (не гейт запуска).
§2 — Профили срезов + трап-леджер
Структурные профили (eval/exp15/structural_profile.py, $0, ДО прогона — проверка «срез задействует рычаг»):
| Срез | chars | median cjk/строка | term/100c | dialogue-opener | орнамент-строк | scene_marked | flat_LPS | вывод |
|---|---|---|---|---|---|---|---|---|
| S1 (guzhenren whole) | 7.99M | 29 | 4.46 | 0.19 | 0 | False | True | плоский фоллбек-режим ✓ |
| S2′ (склейка 节1-12) | 36,186 | 32 | 4.34 | 0.21 | 0 (швы неявные) | False | True | сцен-структура НЕЯВНАЯ на швах (§2 ниже) |
| S3 (isekai ja) | 232,921 | 46 | 3.26 | 0.45 | 86 (=) |
True | False | line-per-utterance + разделители ✓ |
| S4 (fifty-shades en) | 873,697 | 57 (mean 107) | 0.51 | 0.53 | 3 | True (blank-run 0.99) | False | длинно-абзацный ✓ |
S2′ шов-леджер (exp15/S2prime.txt, S2prime_seams.json, S2prime_seam_labels.json): 12 первых 节 蛊真人
(opening-арка), заголовки стрипнуты → 11 швов = ground-truth сцен-границы (rune-offsets: 3372/6496/8981/12214/14479/
17050/19960/23363/26698/29527/32558). Ручная классификация (полигон, рационал+цитата per шов — self-review в labels):
| Страта | швы | роль в Q1 |
|---|---|---|
| scene-shift (резать ХОРОШО) | 1,2,3,6,7,8,9 (7 шт; soft: 1,7) | logical-стратегия ДОЛЖНА выровнять разрез |
| continuation (negative-boundary, резать ПЛОХО) | 4,5,10,11 (4 шт) | разрез здесь = штраф (анафора/референт через шов) |
Примеры: шов4 (节4→5) — 节4 обрывается на «古月方源!», 节5 продолжает (自己 через шов) = negative; шов9 (节9→10) — «已已三天三夜了» скачок 3 дня + POV→方源 = scene-shift. ⚠ S2′ = синтетика IN-претрейн → ПРЕДВАРИТЕЛЬНО (§1.14г). Если трап-квота (T-tense/T-ana ≥20 straddling scene-shift) недоберётся на 7 швах — расширить N节 ДО платных вызовов.
Трап-леджер: заполняется после майнинга (kimi-k2.6) + ручного отбора, ДО платных вызовов (стратификация, ожидаемое поведение per трап, общий знаменатель в A0).
§3 — Результаты по Q (первичка/вторичка раздельно)
Q2b — реюз exp14 sizecurve, $0 генерации (eval/exp15/reflow_omission.py, exp15/q2b_omission.json)
Reflow-инвариантный entity-omission (lemma-match pymorphy3). Оркестратор-амендменты вшиты: (1) match по ЛЕММЕ,
inflection вне decl.forms = inflection_gap ФЛАГ (span-чек), НЕ omission; (2) variance-чек→ceiling; (3) content-floor
бэкстоп (не сработал); (4) провенанс БАЙТ-идентичен (chapter_source = exp14_sizecurve.py:30-32). Валидирован на
вручную-вычитанном ch13-whole (0 ложных omission; term-drift глава→старейшина корректно НЕ omission).
Результат (ch13/17 × 800/1600/3200/whole, 0 err-фолбэков): within-chapter size-span ch13=0.059, ch17=0.0 — НЕТ
монотонного size→omission тренда. ВСЕ raw-флаги (класс А,класс В,культивация) = TERM-DRIFT артефакты, не
потеря контента: sizecurve-выходы (2026-07-11) ПРЕДшествуют reseed класс/разряд (D38.5, 07-12), рендерят 甲等/丙等 как
«разряд» (grep-verified) → истинный entity-omission ≈0 на ВСЕХ размерах.
Вердикт: ПОТОЛОК ИНСТРУМЕНТА (амендмент 2) — это НЕ «размер безопасен»: именованные сущности выживают на любом размере по природе; тихая потеря крупного чанка (если есть) — на уровне КЛАУЗЫ/детали, невидима entity-присутствию. Центральный вопрос size↔omission требует SPAN-СУДЕЙ (платный Q2a), как и заявляет дизайн («Q2b не ратифицирует edit=глава, только Q2a»). Побочно: подтверждён term-drift класс/разряд — glossary-consistency ось, отдельно от omission.
(Q1/Q3 — платные на S2′; стартуют после wire-чеков §1.13-C и трап-майнинга.)
§4 — Дерево решений §D5 применённое
(после результатов.)
§5 — Деньги
Спент этой сессии: $0.00043 / $15 (только wire-чек: grok $0.00031 + mistral $0.00004 + glm-5 $0.00008 —
exp15/wirecheck.json). Q2b — $0 (реюз sizecurve). Остаток $14.99957. Прогноз полного пакета $13.13 /
несущего $8.64 (exp15/budget_calc.py). Пер-call predicted-cost гейт + пер-Q стоп-гейт — в run-скриптах платной сессии.
§6 — Самопроверка + отклонения от пре-рега
Ревью ИСПОЛНЕНИЕМ в каждом скрипте: gender idempotency-реран (applied=0, hash-стабилен) + byte-diff; hand-proofread
omission-валидация ch13-whole; wire-гейт асерты (reasoning_tokens>0 и т.д.). Отклонения от §D — §1.12 (зафиксированы
ДО прогона). Полигон-само-ловля (D32.4-класс): первичная Q2b verdict-логика ложно показала «discriminating» —
omission_rate_span смешивал cross-chapter baseline (17 всегда 2 флага) с size-вариацией; поймано и исправлено на
within-chapter size-span ДО записи вывода. «0 ошибок ≠ 0 ошибок» соблюдён: raw-флаги НЕ приняты за omission без term-drift-дизамбигуации.
ХЕНДОФФ — платная сессия Q1/Q3 (полигон, 2026-07-17)
Старт свежей сессии:
docs/POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md+ этот §1 фриз + этот хендофф. ПРЕ-РЕГ ПЕРЕ-СОЧИНЯТЬ ЗАПРЕЩЕНО — любое изменение армов/метрик/порогов/дерева = НОВЫЙ experiment-ID. Бэкенд-дерево ЗАМОРОЖЕНО оркестратором до конца платных армов (якорь A0 стабилен). Пол人祖=male,古月=n-a — подписаны.
(а) Позиция в порядке §D2. СДЕЛАНО: пре-рег фриз (коммит) → wire-гейт → Q2b (потолок инструмента; size↔omission → span-судьи). СЛЕДУЮЩЕЕ: Q1 + Q3 (несущие) на S2′ → затем Q2a/Q2c → Q4 → Q0. Двойной якорь A0↔A0′ на S2′ (floor шума) — ДО интерпретации любого Q.
(б) Пины и артефакты.
- Фриз-коммит
b9272a1. Бэкенд HEAD68032f7(≥d3f6b34). Сидguzhenren-seed-v2.yamlsha256175a67ad2f05caeaec8fc5b8c8d304334e8dc73eebd3caf5fc3b4b8be0c408f4. Промпты: translator35d3ad6e…, editor878b0da3…. - Спент $0.00043 / $15; остаток $14.99957.
- Скрипты (ВНЕ git, зона
eval/exp15/, лендит оркестратор):preflight_models.py,gender_transport.py,structural_profile.py,build_s2prime.py,budget_calc.py,fertility_calib.py,reflow_omission.py,wirecheck.py. - Артефакты (ВНЕ git,
/home/ubuntu/books/gu-zhenren/exp15/):freeze_facts.json(цены/кэш/риски),preflight_models.json,gender_signoff.yaml,S2prime.txt+S2prime_seams.json+S2prime_seam_labels.json,fertility_calib.json,q2b_omission.json,wirecheck.json, пре-gender бэкапguzhenren-seed-v2.pre-gender.yaml. - Реюз $0:
exp14/sizecurve/*(Q2b done),exp14/material.json→trap_chunks(9),exp14/arms/A-ref-prev|both(Q3),rerun/records.json(ch13/17 source БАЙТ-идентичен sizecurve —chapter_source).
(в) Мягкие находки / гочи (несущие — не потерять).
- Инъекция A0 — ТОЛЬКО из реального
tmctl translate(нет $0-пути; портexp14b_reseed_promote.pyПОВЕДЕНЧЕСКИ УСТАРЕЛ — до-trust-gate longest-match, разойдётся на draft-nests-over-approved). Читатьretrieval_state.injected_idsиз SQLite; при расхождении верить Go. - Механизм-армы = eval-риги (бэкенд не умеет logical/carryover/lookahead/diff/wide-read). Q1 logical-граница = Python-порт §B1.5-DP; carryover/lookahead — §B3. A0/A0′ — единственные из реального бэкенда.
- A0 draft deepseek
reasoning:"off"в pipeline-c1.yaml = NO-OP (echoMineViolation принуждает thinking-ON) → reproduce thinking-ON. - Q1 size-match: фертильность 1.20·cjk+0.39·other (
fertility_calib.json, R²=0.96, glm-4.6-токены; placeholder 0.75/0.25 занижал ~60%). Бюджет Q1 ~3–4k ток; greedy vs logical — ОДИН бюджет, различие только в выравнивании разрезов на швы. - S2′ soft-швы 1 и 7 (scene-shift, LOW confidence: шов1 = топик-переход к экспозиции, шов7 = смена локации по анонсу) — взвесить осторожно, при желании пере-читать. Negative (continuation): 4,5,10,11. Scene-shift: 1,2,3,6,7,8,9.
- Трап-квота: если T-tense/T-ana ≥20 straddling scene-shift-швов недоберётся на 7 швах → расширить N节 (
build_s2prime.py N, N>12) + пере-классифицировать новые швы ДО платных вызовов. Майнерkimi-k2.6(семейно чист), исключён из судей. - DeepSeek peak-surge: платные DeepSeek-армы ВНЕ 01–04 & 06–10 UTC (Beijing ×2,
freeze_facts.json), либо ×2 бюджет; ре-чек цен у 24.07-катовера. - Судьи подтверждены живьём: grok-4.3 reasoning-ON (262 rt), mistral-large-latest резолвится, glm-5 PAYG доступен. Gemini как 3-й судья — эмпир-верификация thoughts-accounting ДО опоры на его usage.
reflow_omission.pyреюзабелен для детерм. вторички (entity-omission), НО ПОТОЛОК (сущности выживают) — первичка Q1/Q3 = trap-точность span-судей; term-substitution (класс/разряд) = glossary-drift-ось, не omission.- Метрика границы Q1 (вторичка): доля разрезов на scene-shift-швы (выше=лучше) vs continuation-швы (ниже=лучше); первичка — T-tense+T-ana точность (общий знаменатель в A0).
§7 — ИСПОЛНЕНИЕ ПЛАТНОГО Q1/Q3 (полигон, 2026-07-18)
Исполнено по хендофф-промту + курс-коррекциям оркестратора/владельца (три раунда решений по ходу). Пре-рег §1 НЕ пере-сочинялся; все отклонения от него — явно в §7.7. Скрипты —
eval/exp15/(ВНЕ git, лендит оркестратор); артефакты/выходы —/home/ubuntu/books/gu-zhenren/exp15/(ВНЕ git).
⚠ РЕВИЗИЯ 2 (2026-07-18, пост-верификация оркестратора). Оркестратор верифицировал первый прогон по сырью (6 осей) и нашёл, что три заголовка НЕ лендятся — не из-за арифметики (она воспроизводится до цента), а из-за артефакта рига и пропущенного floor-гейта. Ключевое: судейский head-excerpt (
HEAD_CHARS=1100) показывал судье лишь первые 1100 символов каждого финала; в оракул-арме зависимый спан сидит в СЕРЕДИНЕ бо́льшего seam-выровненного чанка → его рендер уходил ЗА окно → судья видел «отсутствует» = wrong/катастрофа ПО ПОСТРОЕНИЮ. Именно это, НЕ граница, дало заголовок «оракул −0.564». Данная ревизия: полно-чанковый пере-суд Q1b (окно снято, весь финал), полно-чанковый FLOOR (A0 vs A0′, шум-пол), re-analysis Q3a/Q0 (floor-relative, обе оценки, пул-fix-rate, TOST). Первый прогон (§7.4-v1) сохранён как провенанс. Полный список правок — §7.8. Пре-рег §1 НЕ пере-сочинялся.
§7.0 Итог одной строкой (РЕВ.2)
Судейский шум-пол ≈ 0.126 (FLOOR: A0 vs A0′, mean|Δ|; сходится с 0.119/0.115 из двух независимых прокси) больше любого маргинального эффекта на этом срезе → ни граница (Q1), ни carryover (Q3a), ни редактор (Q0) не отличимы от судейского шума. Заголовок v1 «оракул хуже (−0.564)» = артефакт head-excerpt (пере-суд полными чанками сдвинул на +0.689 → T-ana +0.125 на самом полу, LOO-хрупко): вывод «граница ВРЕДИТ» отозван — seam-выравнивание НЕ вредит и НЕ является ратифицируемым рычагом; единственный устойчивый сигнал — слепые greedy-разрезы иногда рвут сущностную кореференцию (T-ent катастрофы flat 15 vs оракул 1). Базовый flat-A0 (greedy-1500 + глоссарий) держит бо́льшую часть кросс-граничных анафор — кросс-граничные сбои РЕДКИ. Ось решения — слепое чтение владельца (метрики номинируют, чтение ратифицирует) + больший/трудный корпус.
§7.1 Материал (актуальный — отклонение от пре-рег S2′-12节)
- Пре-рег S2′ (12 节, склейка) нёс пустые строки на швах (
\n\n\n) → бэкендовыйsplitParagraphsвидит их как абзацы → greedy A0 режет на ВСЕХ 11 швах → премиса Q1 нарушена (A0 не «слеп» к сценам). Диагностика байт-верифицирована (Δ2=индент на всех швах; §7.7-D2). - Фикс (решение оркестратора): collapse
\n\n→\n= flat (швы неявные, greedy слеп). Старый blank-line анкор (aligned_a0, режет на истинных швах) не выброшен — стал ОРАКУЛ-армом Q1b (оракул-коррекция). - Расширение (решение владельца, полная мощность): срез 节 1–45→30 (после проекции time/money). Итог: S2prime_big_flat.txt (30 节, 87.5k рун, flat-A0-30 = 51 чанк greedy-1500) + blanklines-версия (oracle-30 = 63 чанка, режет на 29 швах + бюджет). Sid-покрытие здорово до 节60 (медиана ~16 термов/节) [испр. оркестратором: расчёт не персистирован — сессионный; к пере-выводу скриптом при переиспользовании].
§7.2 Порт инъекции — валидирован БАЙТ-В-БАЙТ (несущее)
eval/exp15/mem_select.py — полный Python-порт Go Select (memnorm нормализация + Aho-Corasick +
trust-gated suppressContained + sticky depth-2 + budget + render). Валидация методом оркестратора
(LOG_LLM_BODIES=1 LOG_LEVEL=debug LOG_FORMAT=json → байт-дифф 2-го system-msg против отрендеренного Go-блока):
L1 injected_ids + L2 translator-блок = 24/24 (оракул), 51/51 (flat-A0-30), 51/51 (flat-A0′-30) — БАЙТ-идентично.
Ключи к идентичности: frozen entry order = ORDER BY src,sense,since_ch,until_ch,status,dst (glossary.go:178);
injected_ids слеп к sticky (валидировать против блока, НЕ ids). Greedy-чанкер тоже портирован
(chunker.py greedy_chunks, воспроизводит A0-границы точно). Арм-риг промпт байт-совпал с бэкендом (773c translator).
§7.3 Трап-сет (детерм-первый + kimi-обогащение; guard 1/3)
final_traps.json — 44 трапа, все straddling flat-A0-30-границу (общий знаменатель):
- T-ana = 19 (первичка, carryover-дискриминирующая): 7 детерминистических (anaphor-head) + 12 kimi-обогащения на границах (батчами, $0.68, 0 ретраев). 19 — на 1 ниже квоты ≥20; честно-недомощно.
- T-ent = 23 (NEGATIVE CONTROL): глоссарий-инъекция уже держит каноническую dst в обоих чанках → carryover не должен добавить; контроль квантует size-конфаунд.
- T-ell = 2 (вторичка; коротко — honest-power).
- T-tense/T-cat/T-gen/T-reg = «undecidable a priori на материале» (guard 3): плотность 3/80 в майнинге = свойство прозы, не размер среза; НЕ имитировали.
- Найдено ключевое: kimi-майнинг (11 окон, $1.45) дал 80 кандидатов, но ЛОКАЛЬНЫХ (не straddling) — 4/77 пересекали границу; детерминистический entity/anaphor-детект на границах + таргет-обогащение — верный метод.
§7.4 Результаты по Q (РЕВ.2 — floor-relative; судьи grok-4.3 reasoning-ON + mistral-large-latest, оба порядка, 6→10, LOO, катастроф-скрин)
§7.4.0 FLOOR — судейский шум-пол (A0 vs A0′, полные чанки, $1.24, 404 вызова, n=21 первичных, 0 транспорт-ошибок). A0 и A0′ = два независимых прогона ОДНОГО конфига (разный семпл-сид) → истинно эквивалентны; любой |Δ| = шум судьи+генерации. Результат: mean|Δ| = 0.126 (median 0.000, max 1.0 — бимодально: 12/21 ячеек ровно 0, хвост до полного разворота), signed mean −0.019 (нет системного смещения), катастрофы 58/58 симметрично. Сходится с прокси a0↔a0 из Q3a-данных (0.115) и оценкой оркестратора (0.119). ГЕЙТ ИНТЕРПРЕТАЦИИ (фриз §1.5): любой |эффект| < ~0.126 не отличим от судейского шума.
Q1a — детекция ($0): §B1.5-DP-чанкер восстанавливает 0/7 истинных швов на flat (точное рунное совпадение;
= слепой greedy, тоже 0/7). [v1 сообщал 1/7 — из СТЕЙЛ q1_setup.json (mtime до flat-фикса); пере-прогон рига
даёт 0/7 у обоих.] Судей не жгли.
Q1b — граница (оракул seam-aligned vs flat blind). ⚠ ПЕРЕ-СУЖДЕНО ПОЛНЫМИ ЧАНКАМИ ($1.72, 556 вызовов, 0 транспорт-ошибок). [+diff = оракул лучше; сравнение с 0 + шум-полом 0.126]
| тип | n | mean_diff (v2 полн-чанк) | CI90 | катастрофы оракул/flat | v1 (head-excerpt, АРТЕФАКТ) |
|---|---|---|---|---|---|
| T-ana (первичка) | 18 | +0.125 | [+0.008, +0.243] | 55/71 | |
| T-ana+T-ell (primary) | 20 | +0.072 | [−0.052, +0.196] | 65/72 | — |
| T-ent (контроль) | 10 | +0.112 | [−0.001, +0.225] | 1/15 | |
| T-ell | 2 | ≈−0.4 | (n=2) | — |
- Артефакт head-excerpt подтверждён и снят. v1 заголовок T-ana −0.564 был целиком следствием усечения 1100 символов (в оракуле зависимый спан — в середине, за окном → судья «не видит» → wrong/катастрофа). Полный чанк сдвинул T-ana на +0.689 (полная смена знака). Диагностический тест: split по позиции зависимого в оракул-чанке — v1 дал dep-в-окне +0.238 / dep-вне −0.872 (сигнатура артефакта); v2 полными чанками +0.176 / +0.028 — split СХЛОПНУЛСЯ (артефакт устранён). Катастроф-асимметрия v1 (168/43) тоже была артефактом → v2 почти симметрично (65/72).
- Скорректированный вывод: seam-выравнивание НЕ вредит и НЕ является ратифицируемым рычагом. Первичка (T-ana+T-ell) +0.072 — В ПРЕДЕЛАХ шум-пола 0.126; T-ana +0.125 на самом полу и LOO-хрупко: grok видит оракул лучше (+0.307), mistral ~нейтрально (−0.029) — судьи расходятся по знаку. T-ell (n=2) оба судьи ниже нуля.
- Единственный устойчивый сигнал (оба судьи согласны, +0.11): на T-ent слепые greedy-разрезы иногда рвут сущностную кореференцию через границу → катастрофы (T-ent-1 5, T-ent-6 1, T-ent-12 9 = flat 15), которых seam-выравнивание избегает (оракул 1). Это реальный механизм, но класс — негативный контроль, эффект на полу. НЕ вычитаем T-ent из T-ana (пост-хок size-контроль −0.31 из v1 сам нёс тот же артефакт — не лендится).
- Оговорка (оркестратор): 17/18 трапов оракул НЕ разрезал на швах (0 на seam) → механизм «оракул режет continuation-клиффхэнгеры» НЕ протестирован ни одним трапом; тест — про качество когезии ВНУТРИ разного чанкинга. T-ana-33 исключён из Q1b (оракул-чанк 12 = cjk_artifact, editor-skip; оракул-чанк 42 — тот же класс, трапов на него не мапилось). [испр. оркестратором:] T-ana-33 присутствует ТОЛЬКО в FLOOR; Q3a/Q0/Q1b-v1 судились на n=18 (в сессии-1 он не входил ни в один блок).
Q3a — carryover (пере-АНАЛИЗ существующих данных; артефакт head-excerpt Q1b-специфичен — у Q3a обе стороны flat-чанкинг, зависимый в ГОЛОВЕ у обеих → усечения-асимметрии нет; $2.32, 1303 голоса). Обе оценки + CI90:
- Первичка (T-ana+T-ell), парная: src −0.005 [−0.12,+0.11], draft −0.008, final −0.055; маргинальная arm-acc ≈ парной (src −0.005). ВСЕ ниже шум-пола 0.126 → не интерпретируемы. (Заголовок v1 «+0.042» — пост-хок ТОЛЬКО T-ana; по пре-рег §1.5 первичка = T-ana+T-ell.)
- Преимущества последовательного final-соседа НЕ обнаружено НИГДЕ: точечная оценка ≤0 в обеих метриках и во всех LOO-срезах (final: парная −0.055, LOO без-grok −0.061 / без-mistral −0.038). «Цена параллелизма ≈0» v1 — подмена метрики (arm-acc −0.0002 vs парная −0.047 для final); честно: цена параллелизма НЕ исключена до ~0.05–0.10 (MDE≈0.18, p≈0.5); «не ратифицированный зелёный свет», не «безопасно».
- §D5 fix-rate = пул-определение 2/6 = 33% во ВСЕХ режимах (v1 «25/25/0%» — артефакт пере-суженных per-mode знаменателей: A0 пере-суждён отдельно на режим). A0-провалено 6 трапов (пул a0<0.5).
- Раскрытие T-ell-43 (катастрофа «победителя»): a0 1.0 → арм src 0.0 / draft 0.125 / final 0.042; src cat_arm 11 vs a0 0 — source-carryover САМ создал грубую ошибку там, где flat был идеален.
- LOO src меняет знак по судье; final устойчиво-отрицателен.
Q0 — do-nothing (draft) vs A0 (editor final); эквивалентность НЕ установлена ($0.99, 578 голосов). Точка mean(A0−do-nothing) +0.041 верна, но TOST ПРОВАЛЕН: sd 0.155, 90% CI (−0.008, +0.089) — верх за маржой M=0.05 → по правилу фриза «данных мало», ветка §D5 «мандаты редактора пересматриваются» НЕ триггерится. Симметрия (в заголовок рядом с carryover-плюсом): редактор режет катастроф-голоса T-ana 66→52 (−21%, размер как у Q3a-плюса). Единицы: это ГОЛОСА, не трапы (distinct трапов-с-катастрофой editor 8 vs donothing 11); редактор добавил флаги на 5/18 трапов, чистый срез тянут T-ana-32 (13→0) и T-ell-40 (6→0). ⚠ Каветка v1 в силе: трап-сет — когезия, которую редактор и не адресует (стиль/reflow/глоссарий-энфорс ЗДЕСЬ не мерен).
§7.5 Дерево решений §D5 (РЕВ.2 — floor-relative)
- Q1 (граница): первичка +0.072 в пределах шум-пола + Q1a 0/7 → строить §B1.4/B1.5-DP НЕ показано; граница не является ратифицируемым рычагом когезии на этом срезе. Но вывод v1 «граница ВРЕДИТ» ОТОЗВАН (был артефакт): seam-выравнивание нейтрально-к-слабо-позитивно и режет сущностные катастрофы разрезов. Практический итог тот же (граница вторична), но по ВЕРНОЙ причине (sub-floor null, не вред).
- Q3a (carryover): все эффекты ниже пола; преимущества последовательного final-соседа не обнаружено нигде → оживление carryover НЕ ратифицируется; source-carryover в волне 1: вреда не видно выше шум-пола (MDE≈0.18 — вред до ~0.05–0.10 не исключён), пользы не доказано. Недомощно (база держит бо́льшую часть, ~6 провалов) → человеческий эндпоинт + больший/трудный корпус.
- Q0 (редактор): эквивалентность на когезия-трапах НЕ установлена (CI за M) → мандаты редактора НЕ пересматриваются по этим данным (данных мало); редактор режет катастроф-хвост; его стиль/reflow-ценность — ВНЕ этого трап-сета (не мерена).
- Финал: ни одна ветка не даёт прод-кандидата ТОЛЬКО по метрикам (все — на/под судейским полом); гейтящий
эндпоинт — слепое чтение владельца (
exp15/monitor/blind_read_packet.md, метки перемешаны; ключ отдельно) + больший корпус. Метрики НОМИНИРУЮТ, чтение РАТИФИЦИРУЕТ (планка ≤2 претензии/глава).
§7.6 Деньги (РЕВ.2)
Глобальный спент $12.79 / $15 (маржа ~$2.2). Сессия-1 (первый прогон) $9.82 [авторитетный учёт оркестратора, 2541 биллинг-строка, 0 расхождений — включает tmctl-генерацию анкоров, которой НЕТ в Python-леджерах]. Сессия-2 (ревизия): FLOOR полн-чанк $1.24 + Q1b пере-суд полн-чанк $1.73 = $2.97. Гейты: пер-call predicted-cost ($0.04) + ГЛОБАЛЬНЫЙ потолок $14.5 (seed = $9.82 + новые леджеры; фикс review-I8: раньше per-block потолок суммировался в ~4×бюджета). Ошибки: 0 транспорт-ошибок; 3 parse-drop / 2313 голосов = 99.87% успех (v1 «0 ошибок» уточнён). «~46 таймаутов» УБРАН — артефакта нет (max latency 66.5s при timeout 240s; литеральных таймаутов 0). Rate-limit: FLOOR полн-чанк показал mistral 48% retry-fails @1.3s (max lat 64.7s), grok 0% → интервал mistral расширен до 2.6s для Q1b [испр. оркестратором: retry-fail-rate не изменился, 49.5%→48.2% — эффект интервала не подтверждён леджерами; транспорт-ошибок 0, все ретраи успешны]. Q4a вынесен ВНЕ этого капа (отдельная долинная мини-сессия, ~$2, дефолт-да владельца — §7.8/дев.9).
§7.7 Самопроверка + ОТКЛОНЕНИЯ от пре-рега (явно)
Ревью ИСПОЛНЕНИЕМ поймал 9 багов ДО искажения платных результатов (мандат самопроверки в действии): адверсариальный ревью рригов (5) + sanity-гейты (4). Ключевые:
- (A) arms.py editor-context double-inject (HIGH) — 3 q3a-режима слали контекст в оба стейджа; фикс: shared src-carryover draft → 3 редактора (только target-side разнится). Поймано sanity-гейтом.
- (B) predict_cost под-предсказывал kimi-reasoning → потом ЭТОТ фикс уронил grok в судьях (гейт-блок $0.033>$0.03); фикс: judge max_tokens=1500. Поймано judge-selftest'ом.
- (C) mistral 429 rate-limit → retry+backoff+per-model delay. (D) trap_curate
cut<=hioff-by-one + grid-dedup. (E) arms draft finish=length → draft_max 16000. (F) mem_select entry-order (byte-diff). (G) mem_select editor transitive-валидация. (H) S2′ CRLF/seam-offset дрейф (36186 vs 35289). (I) стейл seam-файл. Отклонения от §D/пре-рег (санкционированы оркестратором/владельцем):
- S2′-12节 → flat 30节 (материал-баг + полная мощность); aligned = оракул-арм (не выброшен).
- Механизм-армы = eval-риги (бэкенд не умеет), НО инъекция БАЙТ-валидирована против Go (не «верить на слово»).
- Трапы: детерм-первый (entity-straddle + anaphor-head) + kimi таргет-обогащение НА границах (не seam-окна).
- T-tense/cat/gen/reg = undecidable a priori (плотность прозы, не размер) — НЕ имитированы.
- Q1 декомпозирован: Q1a-детекция ($0) + Q1b-оракул-контраст. Судьи grok+mistral (апекс-gemini инфизибл, §1.12).
- T-ana=19 (на 1 ниже квоты). Голоса 6→10, оба порядка, LOO — как §1.6.
- Q4a вынесен ВНЕ капа exp15 в отдельную долинную мини-сессию (~$2, дефолт-да владельца; пин: draft = deepseek-v4-pro, суб-арм do-nothing обязателен, судейские окна полно-evidence — HEAD_CHARS-класс НЕ наследовать). Дизайн — Q4a-дополнение оркестратора (концерн №1 «сильный переводчик»; слой-3 контракт t/e). Причина выноса: полн-чанк Q1b+FLOOR при капе $15 не оставляют Q4a места без урезаний — решение оркестратора/владельца (не резать).
- Q2a/Q2c/Q3b/Q3a′/Q5 — не исполнены (бюджет/приоритет; §D2-порядок, стоп-гейт легитимен).
- T-ent-контроль кап 10/23 (только код
--tent-control; для бюджета судейского сэмпла) — раскрыто. - Маркер §1.14г: материал S2′ — СИНТЕТИЧЕСКАЯ сцен-склейка + PD-претрейн-канон → все эмпирические выводы §7 ПРЕДВАРИТЕЛЬНЫ до вебновелл-среза (не претрейн). Планка чистовика — тот же пилот на непретрейн-корпусе.
- D30.10 (леджер-дисциплина): ad-hoc kimi-пробы (~$0.24) шли без леджера — впредь персистить; Q1b-v1-леджер
сохранён как
judge_costs_Q1b_v1_headexcerpt.jsonl(НЕ сброшен — провенанс артефакта); v2 пишет свежий.
[испр. оркестратором при лендинге — дополнение списка девиаций по пере-верификации:] 12. Q1b-пере-суд отказался от пре-рег size-matched ~3–4k-бюджета (§1.5/§1.14в): судились greedy-1500 flat (51 чанк) vs oracle (63); честность размера держится на парности судимых чанков (flat≈oracle 0.95×), не на пре-рег дизайне. 13. Holm-коррекция (§1-пин) нигде не применялась — репортились CI90 без множественной коррекции. 14. Восстановление T-ell в primary и пропуск floor-гейта в v1 — задокументированы в §7.8, входят в этот список по ссылке.
§7.8 Раунд коррекции методологии (2-й рубеж самопроверки: верификация оркестратора → фикс-лист)
Мандат самопроверки сработал на ДВУХ рубежах: (1) сессия-1 — ревью исполнением поймал 9 багов ДО спенда (§7.7); (2) пост-хок верификация оркестратора при лендинге (author≠reviewer) — 6 осей по сырью: арифметика чистая (2541 строка, 0 расхождений), судейская механика чистая (оба порядка 69/70, эскалация-инварианты 0 нарушений), но 3 заголовка не лендятся. Это ровно тот случай, ради которого правило существует.
Что чинилось (полн-чанк пере-прогон, санкция оркестратора; пре-рег НЕ пере-сочинялся):
- Q1b CRITICAL:
HEAD_CHARS=1100усекал финал → в оракуле зависимый спан за окном → −0.564 = артефакт. Фикс: полные чанки (окно снято; flat≈oracle по размеру 5565/5263 → size-конфаунда нет; зависимый+якорь всегда видны). Пере-суд: T-ana −0.564 → +0.125 (сдвиг +0.689); dep-split схлопнулся. Заголовок отозван. - Пропущенный floor-гейт: добавлен FLOOR-блок (A0 vs A0′ полн-чанк) → шум-пол 0.126 → все маргиналы Q3a/Q0 sub-floor (не интерпретируемы). Это пре-регнутый §1.5-гейт, которого в v1 не было.
- Q3a/Q0 пере-анализ (без пере-суда — артефакт Q1b-специфичен): первичка = T-ana+T-ell (не пост-хок T-ana), обе оценки+CI, пул-fix-rate 2/6, T-ell-43 раскрыт, TOST (Q0 экв. НЕ установлена).
Адверсариальный ревью риггов (2-й, ДО спенда, 4 линзы + синтез) — 10 находок; реальные закрыты $0-верифицированно:
- windowing (I3): oracle-выбор чанка не проверял якорь (короткие пробы <8 симв. коллидируют) → anchor-guard (чанк с ЯКОРЕМ+зависимым; иначе skip). Дал повод перейти на полные чанки (I7: FLOOR не валидировал бы окна).
- per-vote (I4): cat булев через bool() («"false"»→True) + tolerant-parse ронял cat/ev → нормализация + regex-восстановление. Плюс per-vote персист (сырые вердикты в результатах — катастроф-LOO аудит).
- budget (I8): per-block потолок суммировался в ~4×бюджета → глобальный seed ($9.82 floor + новые леджеры,
потолок $14.5); gate-block отделён от parse-fail (
budget_truncated-флаг — не скорить недобранную ячейку); retry-fails в леджер (видимость). - rate-limit (эмпирика FLOOR): mistral 48% retry @1.3s → интервал 2.6s.
Все скрипты пере-прогона: eval/exp15/{judge_run,judges,exp15_llm,q1b_reanalysis,q3a_reanalysis,q0_reanalysis}.py.
Артефакты: judge_results_{FLOOR,Q1b}.json, q{1b,3a,0}_reanalysis.json, S2prime_big_seam_profile_1_29.json
(швы 12–29 доклассифицированы: 30节 = 15 scene-shift / 14 continuation / soft {1,7,15}), v1-провенанс
*_v1_headexcerpt.*. Слепой пакет владельца НЕ трогался (его эндпоинт — полные тексты, чист).