> ⚠ **ЧЕРНОВИК (v1, НЕ действующая редакция).** Рабочая версия отчёта research/24 до финального рерайта 04.08 — сохранена как архив-черновик: полная хроника сессии, пре-регистрации в исходной записи. **Действующая редакция — `docs/research/24-bank-arbitration.md`**; при любом расхождении верить ей. Числа обоих файлов идентичны (сверено раундом 3 адверсариала). # research/24 — Арбитраж банка памяти: консилиум, уверенность моделей, инжект/фетч **Сессия ресёрч+полигон, 04.08.2026.** Исполнение `docs/BANK_ARBITRATION_RESEARCH_SESSION_PROMPT.md` (выдан D39.89; пере-запуск после прерванного захода 02.08 — артефактов того захода в дереве нет, D39.90 п.5). Не закоммичено — лендит оркестратор. ## Эхо-шапка - **Скоуп:** проверка гипотезы владельца (консилиум без голоса · самооценка уверенности · инжект/фетч) + прямой запрос владельца 04.08: общий взгляд на алгоритм банка, «хватает ли текущего», индустриальный стандарт, который могли пропустить. - **Подрезка D39.90 п.5 учтена:** A целиком · B1 голд · B3 формы консилиума с контролем «одна модель N раз» · B2 свёрнута до под-пробы внутри B3 · C — малая адресная проба (владелец 04.08 назвал инжект явно, поэтому не отложена совсем, а сокращена). - **Деньги:** потолок владельца 04.08 = **$1.00** (перекрывает $2.00 промта и $1.20 подрезки); суб-потолки сессии: пробы B ≤ $0.70 · проба C ≤ $0.30. Факт — §Деньги в конце. - **Зона записи:** этот файл + `eval/bank_arbitration/` + секция «Полигон» в PROGRESS. Сырьё моделей — durable в `~/books/gu-zhenren/bank-arbitration/`. Не коммичу. - **Стенд:** пробы своим харнессом против API напрямую (не через движок — в `backend/` незакоммиченный пак живой сессии); перенос выводов в движок называется явно. `coldrun-a` — только чтение. - Базлайн качества банка = **coldrun-a** (D39.86: coldrun-b сломан транспортом, сравнение с ним запрещено). --- ## §0. ПРЕ-РЕГИСТРАЦИЯ ПРОБ (записано ДО первого платного вызова; норма D39.46) Дата/время фиксации: 2026-08-04, до каких-либо платных вызовов этой сессии. Голд (§B1) собран ДО пре-регистрации ($0), его числа: 53 approved сида → 45 в BANK-FULL coldrun-a, из них 34 со spread≥2. ### Пассы (все — полный голд-набор одним батч-протоколом, engine-faithful RenderBatch): | Пасс | Модель | Режим | Что несёт | |---|---|---|---| | ds1..ds3 | deepseek-v4-flash | `reasoning_effort:"low"`, temp 0 | S1 (свежий одиночный) + SC (само-согласованность N=3) + числовая уверенность 0–100 | | dsw | deepseek-v4-flash | то же | словесная шкала уверенности (точно/скорее да/не уверен/не знаю) | | glm1 | glm-5 | thinking disabled (форма движка) | второе семейство + числовая уверенность | | mis1 | mistral-large-2512 | без reasoning | третье семейство + числовая уверенность | | gro1 (опция при остатке бюджета) | grok-4.3 | дефолт (low) | четвёртое семейство, чувствительность состава совета | Эффорты каждого пасса печатаются в отчёте (иначе числа несравнимы — §7 промта). ### Формы арбитража (агрегация офлайн, $0): - **P0 — бесплатный базис §C2-3:** топ-вариант ранжирования движка (колонка вариантов BANK-FULL, bankStopRows рендерит best-ranked first). Термы без вариантов → P0 пуст (честный отказ базиса). - **P1 — прод-референс:** сведённый dst coldrun-a (терминолог на до-катоверных весах). - **S1** = ds1. **SC** = большинство(ds1,ds2,ds3), при 3-стороннем расхождении → ds1. - **C3 — равноправный совет:** большинство(ds1, glm1, mis1) по нормализованному совпадению; полное расхождение → P0-топ, если хоть один голос совпал с ним, иначе ds1. - **C3conf — взвешенный:** argmax по сумме заявленных уверенностей проголосовавших за вариант моделей. - **E1 — улики-первым:** P0 стоит; «спорный» терм := (spread≥2 И разрыв top1−top2 по чанкам ≤1) ИЛИ singleton-улика (top1 предложен 1 чанком) → на спорных решает C3. Цена печатается долей от полного совета. ### Метрики: - Точность против голда: нормализованное точное совпадение (casefold · ё→е · схлоп пробелов · срез «»/кавычек). Промахи вскрываются глазами; спорные эквивалентности печатаются отдельно, автоматом НЕ засчитываются. - Парные сравнения форм: счёт термов «A прав ∧ B неправ» против обратного (не голые проценты). - **Кластерная связность:** семьи 古月-* (7 поверхностей, РАЗНОЙ длины — DetectSeries её не видит), 蛊-* (蛊师/蛊虫/月光蛊 + голова 蛊 вне банка), серии 等/转 (равнодлинные — детектируются). Метрика: консистентность конвенции внутри семьи у каждой формы (одна голова/конвенция у всех членов — да/нет), и отдельно: даёт ли по-терминный агрегатор химеру там, где одиночная модель консистентна. - **B2-под-проба (уверенность):** AUC(уверенность → верно/неверно по голду) per-model (bootstrap 90% CI); устойчивость: медиана |Δconf| ds1↔ds2↔ds3 и доля флипов ответа; сравнимость шкал: |Δ средних conf| между моделями на одном наборе; канал отказа: счёт ⟦TM-NO-DST⟧ и его стабильность между ds1..ds3. ### Критерии (успех/провал, зафиксированы ДО запуска): 1. **БАР (в):** форма «бьёт базис P0», если парное преимущество (термы A-прав-P0-неправ минус обратные) ≥ **+5** на 45 голд-термах. Меньше — «не бьёт» (на N=45 меньшее неотличимо от шума). 2. **Q2 (окупаются ли семейства):** C3 против SC парное преимущество ≥ **+3**; меньше ⇒ «разные семейства не окупаются, хватает N прогонов одной модели» (легитимный исход). 3. **Уверенность разделяет**, если AUC ≥ 0.70 и нижняя граница CI > 0.5 минимум у 2 моделей из 3; иначе — «уверенность как арбитр закрыта по нужности». Числа против слов: |ΔAUC| ≥ 0.05 решает форму. Шкалы несравнимы, если |Δ средних conf| > 20 п. ⇒ сырой кросс-модельный скор как решающее правило запрещён. 4. **Кластеры:** ≥1 новая химера у C3 там, где SC/P1 консистентны ⇒ возражение §4 промта подтверждено (единица арбитража обязана быть кластером). 5. **Проба C (инжект, формат RenderGlossaryBlock/RenderEditorConstraintBlock байт-близко):** 6 чанков × 4 арма (без инъекции · верный закон · НЕВЕРНАЯ строка законом · та же неверная строка с маркером ⟨проверить⟩), deepseek-v4-flash low, temp 0. Критерии: маркер «читается мягче закона», если послушание(закон-неверный) − послушание(⟨проверить⟩-неверный) ≥ **20 п.п.**; «пометка = закон» (дефект), если < **10 п.п.** Вред реален, если неверная строка законом принимается в ≥ **50%** случаев. Между 10 и 20 п.п. — «неразделимо на N=6×набор строк», честно печатается. ### Смета ДО запуска (проектная): B: deepseek 4 пасса ≈ $0.02 · glm-5 ≈ $0.04 · mistral ≈ $0.02 · grok (опция) ≈ $0.05 → **≈ $0.13**. C: 24 вызова flash-low ≈ **$0.05**. Итого ≈ $0.18 из $1.00. СТОП-условия: любой суб-потолок (B $0.70 / C $0.30) = стоп+релей. *(Секции §A–§D заполняются после исполнения; эта пре-регистрация после запуска не правится.)* --- ## §A. Критика текущего алгоритма в коде (Работа A, $0; диагноз, не правка) Маршрут терма: `miner/` (WHICH) → `banknote.go` (WHAT, голоса чанков) → `terminology.go` Merge/AttachKWIC/ScoreVariants → `series.go` co-батчинг → `classify.go` тип-фаза → `terminologist.go` (эмиссия auto/draft) → `membank/memory.go` Select/Render → `mempostcheck.go`. Классы дефектов: **сломано** (неверный результат) · **хрупко** (верно случайно) · **дорого** (непропорциональная цена) · **слепо** (класс не покрыт/не виден). Все адреса перечитаны в HEAD этой сессией. ### A1. Единица решения — строка; связность системы термов держится тремя СЛУЧАЙНЫМИ механизмами — «слепо» - `ScoreVariants` ранжирует варианты одного кандидата независимо (`terminology.go:393-450`); единственный межстрочный фактор `neighbourAgrees` требует УЖЕ подписанной строки (`terminology.go:465-482`) — на холодном/автономном банке мёртв (замер D39.65: сработал 2/23 и только на ничьих). Посылка промта подтверждена чтением. - `DetectSeries` ловит ТОЛЬКО равнодлинные наборы с общей головой и одной варьирующей позицией (`series.go:37-42`, без транзитивного замыкания — осознанно). **Семьи общего корня РАЗНОЙ длины не ловятся ничем:** в живом BANK-FULL их две крупных — 古月-семья (15 поверхностей: 古月 · 古月博 · 古月冻土 · 古月山寨 …) и 蛊-семья (14: 蛊师 · 蛊虫 · 月光蛊 · 本命蛊 · 一转蛊师 …). Цена измерена голдом: **конвенция 古月 («Гуюэ» одним словом против «Гу Юэ») стоила 8 из 45 голд-строк** — восемь промахов ОДНИМ решением (§B1). - Третий, нигде не записанный компенсатор: Merge сортирует кандидатов по ключу (`terminology.go:212`), поэтому ПРЕФИКСНЫЕ семьи (古月*) получают смежность в батче случайно — а СУФФИКСНЫЕ (X蛊 — голово-финальная морфология, главный класс CJK-реалий) рассеиваются: в батчах этой сессии 月光蛊 → батч 0, 本命蛊/蛊师/蛊虫 → батч 1, 一转蛊师/三转蛊师 → батч 3. Связность 蛊-семьи не защищена вообще. - **Вердикт-тройка:** посылка — верна и ШИРЕ записанной (в D-логе названы серии, префикс-лотерея не названа); нужность — межстрочная связность подтверждена деньгами голда (8/45); форма — кластер-канал «семья по общей морфеме» (кандидат уже назван в D39.65 п.4: «кластер по общей исходной морфеме»), НЕ транзитивный, головой из `script-series.txt`-данных; альтернатива «второй проход ре-чтения» дороже и не чинит рассеяние по батчам. ### A2. Потолок арбитража-как-СЕЛЕКЦИИ измерен: 22 из 27 промахов не имели верного ответа в вариантах — гейт на класс дизайнов По голду §B1: у 27 промахов прод-консолидации верный (подписанный) dst лежал в вариантах черновиков только у 5. **Максимум ЛЮБОЙ формы «выбери лучший из предложенных» = 17/45 (12 у базиса §C2-3 + 5).** Все дизайны вида «модели голосуют по вариантам / скор выбирает победителя» упираются в этот потолок ДО всякого вопроса о калибровке. Верный dst чаще требует ГЕНЕРАЦИИ по контексту (гора Цинмао · смертный · класс А) либо знания конвенции пары/владельца. Это сужение посылки гипотезы консилиума, полученное $0. ### A3. `Related`/`containmentRelations` — обрезка на ПЕРВЫЕ 4 по алфавиту — «хрупко» (минор) `terminology.go:242-256`: скан отсортированных mined-ключей, break на 4 — выбор лексикографический, не по релевантности; для 蛊 с 14 родственными поверхностями показанные 4 произвольны. Заявка «контекст для человека и модели, не индекс» честна, но выбор ЭТИХ четырёх ничем не мотивирован. Форма: тот же cap, но по числу общих рун (механика веса уже написана в `CanonFor`, `terminology.go:714-765`). Нужность — низкая, пока A1 не построен; вместе с кластер-каналом закрывается сама. ### A4. Однопроходность: внутри-прогонные противоречия консолидаций не проверяет НИКТО — «слепо», $0-фикс-кандидат - Канон читается один раз ДО всех батчей (`terminologist.go:284`); решения батча i невидимы батчу i+1. - `CanonConflicts` сверяет консолидации только с ПОДПИСАННЫМ банком (`terminologist.go:335`, `terminology.go:787-812`). Пара свежих консолидаций, противоречащих ДРУГ ДРУГУ (蛊师 ⊂ 一转蛊师 с потерянной головой; 空窍→«кунцяо» при 开窍→«открытие точки»), не проверяется ничем — хотя весь механизм (containment + lexemeSubset) уже написан строк на 20 выше. На автономном курсе (D39.59/67: подпись опциональна) подписанных строк ноль и деterministic-рубеж связности ПУСТ. - **Вердикт-тройка:** посылка — курс на автономность делает канон-якорь пустым на самом важном прогоне (первом); нужность — прямая (это second-half дефекта A1); форма — прогнать СУЩЕСТВУЮЩИЙ `CanonConflicts` по парам consolidated×consolidated ($0, чистая функция) против альтернативы «второй платный проход само-ревью» (платный, не детерминированный). ### A5. `foldVariants` фолдит только байт-идентичные dst — частотный фактор дробится об орфографию — «хрупко» `terminology.go:222-237`. «лунный гу ×2» + «Лунный гу ×1» + «гу лунного света ×1» считаются разными вариантами; §C2-3 видит осколки, а не конвенцию (живой пример — 月光蛊, spread=7 при фактических ~4 конвенциях). Реальную частоту конвенции не видит ни скоринг, ни владелец в колонке spread. Форма: голос считать по НОРМАЛИЗОВАННОЙ цели (casefold + ё/е + схлоп дефис/пробел), поверхности показывать сырыми; альтернатива «оставить как есть» завышает spread и раздаёт частотный фактор случайно. ### A6. KWIC: сэмплинг = ПЕРВЫЕ N вхождений — смещение к началу книги — «слепо»; плюс строка 37 «дорого» `kwicFor` берёт первые maxPer вхождений в порядке (chapter, chunk) (`terminology.go:308-329`) — термин, чей смысл раскрывается/сдвигается поздно, показан ролью только ранними контекстами. Замер D39.50 («3×40 достаточен, не пере-открывать») мерил РАЗМЕР сетки подача×ширина, не СТРАТЕГИЮ сэмплинга — ось «первые-N против стратифицированных по книге» не мерена никем (не пере-открываю размер, называю ось). Плюс подтверждена квадратичность строки 37: скан всех чанков на кандидата, `window()` пересчитывает руны префикса на каждом вхождении (`terminology.go:332-346`); multi-pattern автомат уже есть в репо (`membank/memory.go:872-918`) — переиспользовать, не писать новый. ### A7. Наблюдаемость арбитража: «почему у терма такой dst» сегодня НЕОТВЕТИМО — «слепо», гейтит любой будущий арбитраж - `Variant.Signals` — аудит-трейл §C2-3 (`terminology.go:86`) — вычисляется и ВЫБРАСЫВАЕТСЯ: в стоп-таблицу идут только «dst ×N» (`mining.go:256-270`), Signals не читает ни один потребитель. - `reasoning_content` терминолога не персистится нигде (grep по `llm/`+`store/`: единственное вхождение — док-коммент `capability.go:63`); чекпойнт хранит только content. - Сочинённый вне улик dst (10–15/75 по D39.65) не флагуется: колонки «dst ∉ вариантов черновиков» нет — а это $0-предикат по уже собранным данным. - Итог: оператор видит «вот варианты, вот финал»; связать финал с уликой, контекстом или хотя бы фактом «финал изобретён вне улик» нельзя. Любой будущий консилиум/рецензент, чей выход тоже не будет трассируем, умножит эту слепоту, а не вылечит. ### A8. Эмиссия (переквантифицировано голдом, чинить НЕ порогом): банк-автоном не видит 15% подписанного канона 8 из 53 подписанных термов вообще отсутствуют в BANK-FULL: 蛊 (голова книги — строка 18, сид-половина) · 修炼/修行 (класс term, recall 0.040 — D39.43/50, расширение закрыто механизмом) · 资质 · 长生 · 江牙 · 月影蛊 · 血颅蛊. Ничего нового против D39.50 — но это ЧИСЛО стоит держать рядом с любым разговором о качестве арбитража: у лучшего арбитра нет строк, которых нет. ### A9. Инжект-сторона: точечные наблюдения - Бюджет режется ПРЕФИКС-катом (`memory.go:615-628`): первая переполнившая строка обрезает всё после себя, включая короткие строки, которые влезли бы. Порядок приоритетный, страдает наименее доверенный хвост — «дорого» в мягкой форме, недозаполнение шире необходимого. Минор. - Sticky-глубина 2 со сбросом на границе главы (`memory.go:112`) — местоименная сцена глубже двух чанков теряет канон; осознанный дизайн, как дефект не измерен. - **Двухсекционная инъекция: приор промта подтверждён — замера «⟨проверить⟩ читается мягче закона» не существовало** (тесты пинят байты рендера, не поведение модели). Проба C этого пака — первый замер (транслятор-провод; редакторский провод остаётся немеряным — см. критик полноты). - Пост-чек `mempostcheck.go` — честный флаггер: decl-aware, sticky исключён, известный recall-класс назван в доке (`mempostcheck.go:160-176`). Дефектов сверх записанного не нашёл. ### A10. Банкнота: форма верная Невоспроизводимость (Жаккар 0.077–0.40) компенсируется агрегацией по ВСЕМ прогонам с голосами по чанкам (`banknote.go:470-505`), суперседед-ответы включены осознанно; порядок колонок восстанавливается инвариантом засвидетельствованности. Дефектов сверх записанного не нашёл. --- ## §B. Арбитраж: голд · базисы · формы консилиума · уверенность ### B1. Голд-набор и его смещение ($0) **Сборка:** `eval/bank_arbitration/build_gold.py` → `gold/gold.jsonl` (провенанс на каждой строке). Ядро = сид v2 (`~/books/gu-zhenren/guzhenren-seed-v2.yaml`): 53 записи `status:approved` с подписанным dst. Джойн по нормализованной поверхности (src + алиасы) против банка coldrun-a (BANK-FULL.tsv 150 поверхностей + KWIC/варианты из bank-stop таблицы): - **45 из 53 в банке**; из них **34 со spread≥2** (есть из чего выбирать). - **8 не в банке** — и это ровно известные дыры эмиссии, переквантифицированные голдом (§A8): 蛊 · 修炼 · 修行 · 资质 · 长生 · 江牙 · 月影蛊 · 血颅蛊. **Смещение, честно:** (1) сид = термы, до которых у владельца дошли руки — сдвиг к важным и уже спорным; (2) сид писался ПОСЛЕ прогонов exp13–16, часть подписей могла быть сформулирована при виде машинных вариантов — «независимость» голда от машинного словаря неполная; (3) один голд — одна книга одной пары; (4) термы с «вкусовым» dst (класс А/Б/В/Г; Монах Цветочного Вина) недостижимы для модели без брифа — это не дефект голда, а свойство задачи (D39.47), но долю таких строк надо помнить при чтении точностей. Мини-голд алиасов §E-1 research/20 в этот голд НЕ входит (запрос владельцу — §Вопросы). ### B2-предварительное. Бесплатные базисы против голда ($0, `score_baselines.py`) | Базис | Точность | Комментарий | |---|---|---| | **P0** — топ-вариант §C2-3 (ранжирование движка, колонка BANK-FULL) | **12/45** | бесплатный детерминированный базис БАР-(в) | | **P1** — сведённый dst терминолога coldrun-a (до-катоверные веса) | **18/45** | парно к P0: **+7/−1** — платная консолидация УЖЕ бьёт формулу | **Анатомия 27 промахов P1 (все единицы вскрыты в сырье скрипта):** - **8 промахов = ОДНА конвенция 古月** («Гу Юэ X» против подписанного «Гуюэ X» одним словом — правило Палладия для составной фамилии, ср. Сыма/Оуян; лежит в note сида). Кластерный дефект A1 в деньгах. - **4 промаха = серия 等** («класс Цзя»/«ранг И»… против «класс А/Б/В/Г») — серийная несвязность + выбор регистра владельцем; подписанного ответа НЕТ ни в одном черновом варианте. - Остальное — класс «слишком китаизированно»/реалия-транслит (空窍→кунцяо · 元海→Юаньхай · 真元→чжэньюань · 元石→юаньши · 青茅山→Цинмаошань · 花酒行者→Хуацзю Синчжэ …) + лексические выборы (凡人 · 困境 · 炼化). - **Ключевое число: только у 5 из 27 промахов верный dst вообще ЛЕЖАЛ в вариантах черновиков.** ⇒ **потолок ЛЮБОЙ формы «выбери из предложенного» = 17/45.** Селекционные консилиумы («модели голосуют по вариантам», «скор выбирает победителя») упираются в потолок ДО вопроса о калибровке. Верный dst чаще требует генерации по контексту или знания конвенции пары/владельца. - Оговорка адверсариального прохода: несправедливо засчитанных промахов **0** — нормализация уже фолдит регистр/ё/кавычки; единственная нефолдженная ось (пробел слитно/раздельно) НЕСЁТ подписанное решение владельца в обе стороны (古月→«Гуюэ» слитно, но 人祖→«Жэнь Цзу» раздельно), фолдить её нельзя. Если бы владелец когда-нибудь объявил эту ось неканоничной, P1 поднялся бы до 26/45 — сид фиксирует обратное. ### B3. Формы консилиума против базиса (платные пассы; критерии §0) Все пассы прошли начисто: 30+5 вызовов, каждый `finish=stop`, отказов и пустых тел ноль; эффорты в таблице §0 (deepseek `reasoning_effort:"low"` — печатаю явно: на вендор-дефолте high бэнк-вызовы покупают пустое, D39.86). Ответы всех пассов — 63/63 строк, парсер потерь не зафиксировал. | Форма | Точность | Против P0 (парно) | Комментарий | |---|---|---|---| | P0 базис §C2-3 | 12/45 | — | ни одного термина, где P0 прав, а любая свежая форма неправа | | P1 прод coldrun-a | 18/45 | +7/−1 | старые веса, era-конфаунд (см. критик полноты) | | **S1** deepseek-соло (low) | **20/45** | **+8/−0** | | | SC = 3× та же модель | 20/45 | +8/−0 | **+0/−0 против S1 — само-согласованность не покупает ничего** | | **C3** совет 3 семейств | **23/45** | **+11/−0** | против SC: **+3/−0** — ровно на пороге критерия 2 | | C3conf взвешенный | 23/45 | +11/−0 | **+0/−0 против C3 — веса из уверенности не двигают ничего** | | E1 улики-первым | 22/45 | +10/−0 | −1 против C3; **создал химеру** (см. B4) | | glm-5 соло | **25/45** | | **лучший одиночка выше лучшего совета** | | mistral-соло | 23/45 | | | | grok-4.3 соло | 12/45 | | худший — на уровне бесплатного базиса | | C4 = совет 4 семейств | 20/45 | | **добавление слабого члена УРОНИЛО совет 23→20** | **Вердикты по критериям §0:** 1. **БАР (в) пройден** — но не консилиумом, а СВЕЖЕСТЬЮ: уже одиночный deepseek на low бьёт базис +8/−0. Честная формула: «платная генеративная консолидация по KWIC бьёт бесплатную формулу» — это пере-подтверждение D39.65 (роль = эффективный консолидатор), теперь с голдом и знаком КАЧЕСТВА, которого у D39.65 не было. 2. **Q2 (окупаются ли семейства): формально +3 = порог, содержательно — НЕТ.** Все три добычи C3 против SC — строки ОДНОЙ конвенции 古月 (glm+mistral переголосовали deepseek «слитно»). Это не три независимых выигрыша, а один кластерный. При этом: лучший одиночка (glm 25/45) > лучший совет (23/45); совет из 4 хуже совета из 3 (grok тянет к «Гу Юэ» и на паритетах ломает большинство); C3conf ≡ C3. **Равноправный совет как прод-механизм закрыть; что остаётся жить — рецензент/эскалация спорных КЛАСТЕРОВ вторым семейством (замер Q2 строки 5 — см. §D).** 3. **Уверенность (B2-под-проба): числовая самооценка РАЗДЕЛЯЕТ внутри модели** — AUC ds 0.770 (CI90 0.656–0.879) · glm 0.851 (0.742–0.947) · mistral 0.825 (0.719–0.915); критерий «≥0.70 и CI>0.5 у ≥2 моделей» ВЫПОЛНЕН. Словесная шкала хуже числовой: AUC 0.630 (0.556–0.704), ΔAUC≈0.14 ≥ 0.05. Устойчивость: медиана размаха conf между тремя повторами 10 п., флипов ответа 9/45. **НО:** (а) все модели тотально overconfident — средняя conf 87.7–90.1 при точности 44–56%: как ВЕРОЯТНОСТЬ шкала не значит ничего, работает только как РАНГ внутри одной модели; (б) средние шкал между моделями совпали (Δ<3 п.) при РАЗНОЙ точности ⇒ одинаковое число ≠ одинаковое качество. ⚠ Пре-рег-метрика сравнимости (|Δ средних| > 20) при этом НЕ сработала — она слепа ровно к этому случаю «одинаково overconfident при разной точности»; вывод «сырой кросс-модельный скор как решающее правило запрещён» — ПОСТ-ХОК уточнение неудачной операционализации, и держится он на пре-зарегистрированной ФОРМЕ C3conf, которая дала +0/−0 делом; (в) согласуется с литературой (Kadavath 2022 · Tian 2023 · «Overconfidence is Key» 2024 — см. §D-индустрия). **Форма жизни уверенности: ordinal-очередь ревью, не арбитр.** 4. **Канал отказа: ⟦TM-NO-DST⟧ = 0 использований во всех 7 пассах** — модели никогда не отказываются. Оговорка субстрата: D39.50 мерил размах сентинела на ХВОСТЕ расширенной эмиссии; наш субстрат — банк-строки голда, так что пере-подтверждена половина приора («роль всегда отвечает строкой»), не весь. ### B4. Кластерная связность (возражение §4 промта — проверено) Три семьи с голдом: 古月 (8 строк, разнодлинная — DetectSeries НЕ видит), серии 转 и 等 (равнодлинные — видит и со-батчит; в пробе со-батчены по форме движка): | Семья | P1 (прод) | S1 (соло) | C3 (совет) | E1 (улики-первым) | |---|---|---|---|---| | 古月 | консистентна («Гу Юэ» — раздельно, ПРОТИВ подписи) | **ХИМЕРА** (4׫Гу Юэ» + 4׫Гуюэ») | консистентна («Гуюэ» = подпись) | консистентна | | 转 | консистентна («ранг») | консистентна | консистентна | **ХИМЕРА («оборот»+«ранг»)** | | 等 | **ХИМЕРА** («класс Цзя»/«ранг И» — дефект D39.65) | консистентна («уровень X», мимо голда) | консистентна | консистентна | - **Химера S1 на 古月 воспроизведена ПРИЧИННО на границе батча:** семья разрезана батчами 0 и 2 (ключ-сортировка дала смежность, но пакер разрезал), и deepseek дал «Гу Юэ» ровно членам батча 2 и «Гуюэ» ровно членам батча 0. Это дефект класса D39.65 строка 21 (甲等→«класс»/乙等→«ранг» через границу батча), повторённый на СЕМЬЕ, которую серия-детектор не со-батчит. Механизм лечения известен и уже ратифицирован для серий (§1 D39.69) — его надо расширить на семьи (§D п.1). - **E1 создал химеру там, где ВСЕ голосующие консистентны:** для неспорного 一转 E1 взял P0-топ «первый оборот», для спорных членов — советское «ранг». **Честно к пре-регу: критерий 4 §0 буквально зарегистрирован для C3 — и у C3 он НЕ сработал** (совет химер не создал); химеру дала по-терминная МАРШРУТИЗАЦИЯ E1 — тот же класс дефекта, шире зарегистрированного носителя. Содержательный вывод стоит на E1-факте: **любой роутинг (какому арбитру отдать строку) обязан быть кластерным, не построчным — иначе он ломает серию так же, как по-терминный argmax.** - Совет химер не создал (модели внутренне консистентны и согласны 2:1 в одну сторону на всех строках семьи) — и один раз химеру ПОЧИНИЛ. Опасность совета — не химера, а систематически неверная конвенция при согласии слабых членов (C4: grok+deepseek-батч-2 давали «Гу Юэ»-большинство на части строк). ### B5. Стоимость в терминах КНИГИ (обязательство §4 промта) Измеренные цены пассов на 63-термовом голд-ростере (5 батчей, engine-faithful): deepseek-low ≈ $0.0063/пасс (среднее трёх; медиана $0.0068) · glm-5 $0.0185 · mistral $0.0128 · grok $0.0265. Пер-терм: ds ≈ $0.0001 · glm ≈ $0.0003 · mis ≈ $0.0002 · grok ≈ $0.0004. Допущение о словаре (названо): книга 1000 глав ≈ 1000–3000 РАЗЛИЧНЫХ банк-строк (насыщение по Хипсу; стенд: 10 глав → 150 эмитированных при cap 200; альфавит кандидатов книги 13 246 — но эмиссия капится). На 2000 строк: | Механизм | $ на книгу 1000 глав | |---|---| | Терминолог-соло (сегодня, low) | **$0.20–0.60** | | + серия/семья-со-батч + intra-run чек + наблюдаемость (§D п.1–3) | то же + центы | | Совет 3 семейств полный | $1.2–3.6 | | Рецензент спорных кластеров (2-я модель, доля спорных 50% по BANK-FULL) | $0.5–1.5 | | Инжект-ось (для сравнения): ≤800 ток/чанк × ~4600 чанк-вызовов двух волн | ≤$0.5–2 инпут-токенов ГРАНИЦА СВЕРХУ (реальный блок много меньше потолка; кэш удешевляет) | Рабочая гипотеза промта «в арбитраже можно покупать расточительно, в инжекте каждая строка платная» подтверждается НАПОЛОВИНУ: оси действительно разные (арбитраж насыщается, инжект рекуррентен), но на сегодняшних flash-ценах и 800-токовом потолке они СОИЗМЕРИМЫ ($ единицы за книгу и там и там), порядки разойдутся только на дорогих моделях/больших потолках. Расточительность в арбитраже дёшева — но §B3 показал, что покупать расточительно НЕЧЕГО: совет не приносит. --- ## §C. Инжект/фетч: послушание и вред (проба C, $0.0097) 6 окон источника (500–570 симв., 2–6 голд-термов каждое, разнесены по главам) × 4 арма × deepseek-flash-low, temp 0, формат движка байт-близко (блок = `glossary_header` + «src → dst», инъекция вторым system-сообщением — `MessagesWithInjection`, `render.go:246-262`). 24 вызова, все stop. | Арм | Верные строки: dst в выходе | Неверная строка: WRONG в выходе | |---|---|---| | A без инъекции | 9/21 (43%) — спонтанное совпадение с каноном | 0/6 | | B верный закон | **20/21 (95%)** | 0/6 | | C НЕВЕРНАЯ строка законом | 20/21 (по верным) | **6/6 (100%)** | | D та же строка с ⟨проверить⟩ | 21/21 (по верным) | **6/6 (100%)** | **Вердикты по критериям §0 п.5:** - **Инъекция — мощный управляемый рычаг:** 43% → 95% следования канону. Рычаг есть; recall банка (0.918, D39.58) не был продуктовой метрикой — вот продуктовая. - **Вред симметричен и тотален: неверная строка законом принимается 6/6.** В 5 из 6 окон неверный вариант ПОЛНОСТЬЮ вытеснил верный (единственное исключение — w1 真元, где модель употребила оба). Доктрина «банк обязан приходить верным автономно» (D39.59/67/77) получает цену ошибки числом: каждая неверная строка банка = ~100% заражение всех чанков, где терм встречается. - **Маркер ⟨проверить⟩ на транслятор-проводе НЕ смягчает ничего: Δ послушания = 0 п.п.** (6/6 против 6/6; критерий дефекта «<10 п.п.» сработал). Заявленная семантика «неподтверждённый кандидат» байт-честно доезжает до провода и поведенчески НЕ отличается от закона. N=6 — интервал широкий (точечная оценка 100%, нижняя граница 61%), но нулевую дельту на этом N не отличить от малой — а вот от «смягчает вдвое» уже отличить можно. - Оговорка: это ТРАНСЛЯТОР-провод (черновая волна). Редакторский провод (двухсекционный `RenderEditorConstraintBlock` с «вправе перевести иначе») НЕ мерен — см. критик полноты. Фетч-сторону (Select/precision) не трогали: recall уже измерен, эмбеддинг-ретривал закрыт D39.69 и данными этой сессии не реоткрывается. --- ## §D. Рекомендации (Работа D) — инженерно, тремя корзинами Сначала индустриальная рамка (веб-обзор этой сессии, 7 направлений, источники с URL в сырье агента; ключевые: DelTA ICLR'25 · CRAT · DITING/AgentEval'25 · WMT24-Literary zh→ru · WMT25-Terminology findings · Kadavath'22/Tian'23 (калибровка) · TBX ISO 30042/MQM/memoQ · Netflix KNP · Bergmanis&Pinnis EACL'21): - **Индустриального стандарта «как арбитрировать перевод ТЕРМИНА» не существует.** MBR/COMET/QE-метрики тренированы на предложениях и документированно слепы к именованным сущностям — к короткой строке неприменимы; word-level QE требует своей разметки. Человеческая индустрия (TBX/memoQ/Netflix KNP) решает это ПРОЦЕССОМ (роли+статусы+трассировка), автоматического арбитра ни у кого нет. - **Наш дизайн на фоне академии не отстаёт, а опережает:** ближайший аналог банка — DelTA (proper-noun records) — использует «первый перевод фиксируется», что мы опровергли у себя же (first-occurrence-тест D39.69); наш скоринг+терминолог строго сильнее. Пропущенных «стандартов харнессов» обзор НЕ нашёл. - Что индустрия ЗНАЕТ, а мы ещё нет (входы в корзины ниже): негативный слой термбазы (deprecated/forbidden, TBX) · лемма-инъекция/лемма-верификация для морфологически богатой цели (Bergmanis&Pinnis: +47.7 п.п. term accuracy на латышском; у нас decl-half уже есть) · причинный A/B «no/proper/random glossary» как штатная самопроверка ценности банка (WMT25) · эскалация только спорных с двумя оценщиками и арбитром (AgentEval) · вербализованная уверенность = ordinal внутри модели, никогда кросс-модельно (Kadavath/Tian — наш замер §B3 п.3 совпал с литературой точь-в-точь). ### Корзина 1 — СТРОИТЬ СЕЙЧАС (дёшево, детерминированно, под измеренную нужду) 1. **Кластер-канал «семья по общей морфеме» в со-батчинг** (лечит §A1; основание: химера 古月 воспроизведена причинно на границе батча — §B4; серия-со-батч уже доказал лечение — D39.65/D39.69 §1). Форма: детект «≥K поверхностей делят морфему из ≥N рун» БЕЗ транзитивного замыкания, голово-стороннее правило из `script-series.txt`-данных (пара без данных — инертна; ревью-вопрос общности проходит). Фолд-цена: меняется состав батчей → перекупка батчей бэнк-ролей (центы), волны/снапшоты не двигаются. 2. **Intra-run чек связности: `CanonConflicts` по парам consolidated×consolidated** (лечит §A4; $0, чистая функция уже написана, нужен второй вызов + WARN/колонка в стоп-таблице). Фолд: нет (evidence). **Ценность промерена на живом банке (`value_demo.py`): 18 невидимых сегодня противоречий на 149 финалов coldrun-a (12%)** — 空窍→«кунцяо» при 开窍→«открытие точки», 元海空窍→«полость Юаньхая» при 元海→«Юаньхай», 四代族长 без «главы клана» и т.д. 3. **Наблюдаемость арбитража** (лечит §A7): (а) печатать `Variant.Signals` в стоп-таблицу; (б) колонка «invented» = dst ∉ вариантов черновиков ($0-предикат; D39.65 мерил 10–15/75 вручную — станет бесплатным счётчиком); (в) колонка conf терминолога (см. п.4). Фолд: нет. 4. **Уверенность как ordinal-очередь ревью** (основание §B3 п.3: AUC 0.77–0.85 внутри модели, повтор стабилен ±10 п.): третье поле в ответе терминолога, в стоп-таблице сортировка «сначала неуверенное». ЗАПРЕЩЁННАЯ форма зафиксирована: кросс-модельное сравнение и «скор решает» (C3conf: +0; шкалы overconfident ~88 при точности ~50%). Фолд: правка промпт-файла = PromptSHA256 → перекупка батчей терминолога один раз. ⚠ Ловушка реализации: `ParseReply` сегодня джойнит ВСЁ после первого поля в dst (`terminology.go:885` — защита от двойного пробела в имени) — числовой хвост-уверенность надо снимать ДО джойна, иначе conf молча въедет в dst и пройдёт `wellFormedLemma`. 5. **Голос §C2-3 по нормализованной цели в `foldVariants`** — ПОНИЖЕНО до косметики после замера (`value_demo.py`): частотный топ честно сдвигается лишь у **1/75** строк со spread≥2 (первая версия замера давала 38 — ловушка тай-брейка, поймана самопроверкой). Реальная ценность — честная колонка spread для владельца (сегодня 月光蛊 показывает spread=7 при ~4 конвенциях), не качество выбора. Делать заодно с п.3, отдельного касания не стоит. ### Корзина 2 — ИЗМЕРИТЬ ПРЕЖДЕ ЧЕМ РЕШАТЬ 6. **Рецензент-второе-семейство на СПОРНЫХ КЛАСТЕРАХ** (наследник Q2/строки 5; это НЕ равноправный совет — тот закрыт корзиной 3). Числа этой сессии — вход: glm-соло 25/45 лучший; спорных 50% полного банка; роутинг обязан быть кластерным (E1-химера, §B4). Замер добора: рецензент только на кластерах с несогласием/низким conf, счёт «чинит/ломает/цена» против терминолог-соло. Слот при ре-пробе 74 уже ратифицирован (D39.70 Q2, D39.79 п.6). **Инвариант §0 п.4 — явно, как требует промт:** выход рецензента — та же draft/⟨проверить⟩-эмиссия и колонка несогласия в стоп-таблице; согласие двух моделей НЕ поднимает статус и НИЧЕГО не утверждает — эмиссионные ветки auto/draft не трогаются. 7. **KWIC-сэмплинг: первые-N против стратифицированных по книге** (§A6; ~$0.02 на харнессе этой сессии; размер сетки НЕ пере-открывать — D39.50). 8. **Причинный A/B банка по-WMT25 (no/proper/random) на первой edit-волне добора идеала** — цена/вред банка на продуктовой метрике; random-арм у нас теперь откалиброван пробой C (вред 100% на транслятор-проводе — ждём цифру редакторского контура). 9. **Редакторский провод двухсекционки** (§C-оговорка): та же проба на editor.md с CONFIRMED-секцией против «вправе перевести иначе»-секции. Если и там Δ≈0 — вся конструкция «неподтверждённое С ПОМЕТКОЙ» (D39.42 п.3) стоит на несуществующем поведенческом различии, и это вопрос владельцу уровня доктрины. 10. **Негативный слой (TBX deprecated/forbidden)**: $0-замер на coldrun-финалах — как часто отвергнутые варианты подписанных термов рецидивируют в выходах; ненулевой поток → дешёвый линт по леммам отвергнутых форм (дом — существующий пост-чек, не новый механизм). 11. **Конвенция составных фамилий (Палладий: слитно)** как данные пар-промпта терминолога/классификатора: дата-правка, чинит 8/45 голд-строк «бесплатно» (glm/mistral уже следуют ей сами). Замер: N составных фамилий на второй книге пары до/после. ⚠ это ПАР-ПРАВИЛО транскрипции (класс Z-B3-узкого правила, ратифицированного), не жанровый словарь — D39.47 не задет; подтверждение владельца всё же спрошено (§Вопросы), потому что «Гуюэ» стоит в его подписи, а не в нашем правиле. ### Корзина 3 — ЗАКРЫТЬ ПО НУЖНОСТИ (все — числами этой сессии) 12. **Равноправный консилиум N семейств как прод-механизм** — прирост к SC = одна конвенция (+3 строки одного кластера); лучший одиночка (25/45) > лучший совет (23/45); C4 хуже C3 (слабый член вычитает); цена ×3–5. Гипотеза владельца «консилиум без голоса» на этих данных НЕ окупается. 13. **Взвешенный арбитраж кросс-модельной уверенностью** — C3conf ≡ C3 (+0/−0); шкалы overconfident и несравнимы между моделями (наш замер + литература). Закрыть как решающее правило (ordinal-очередь — корзина 1 п.4 — живёт). 14. **Само-согласованность «одна модель N раз»** — SC−S1 = +0/−0 при 9/45 флипах: разброс есть, информации в нём нет. (thinking-режим DeepSeek игнорирует temperature — управляемой вариативности для self-consistency-ансамбля просто нет.) 15. **Селекционный арбитраж (« выбери лучший из вариантов черновиков»)** — потолок 17/45 по построению (§B2), закрыть классом, не формой. 16. **Канал отказа/⟦TM-NO-DST⟧ как сигнал уверенности** — 0 использований на 7 пассах × 3 семействах; D39.50 пере-подтверждён. Строить на отказе нечего. 17. **Эмбеддинг-фетч** — закрыт D39.69; наши данные (recall не мерили, послушание уже 95% на точном матче) реопен-условия не создают. ### Обязательные оси §6 промта, не закрытые корзинами выше - **Холодный старт против накопленного банка:** все пробы этой сессии — холодные (канон-якорь пуст, как в автономном первом прогоне). На накопленном банке появляется ⟦TM-CANON⟧ и фактор соседей — механика «дозревания» (подписанная строка чинит соседей через якорь) НЕ мерена никем; вход в замер добора идеала: та же проба с непустым каноном. - **Вторая пара (ja→ru):** не двигается этими данными; не-CJK-детектора нет (строка 35) — кластер-канал корзины 1 обязан прийти данными (`script-series.txt`-класс), не Go-веткой, тогда пара без данных инертна и ревью-вопрос общности проходит. - **Серийный шаринг банка (48а/48б):** не двигается; заметка — экспортируемый сид-YAML уже несёт конвенции (Гуюэ-класс) в следующую книгу серии, то есть шаринг = ещё один канал доставки конвенций, усиливающий довод корзины 1 п.11. ### Свободная критика (процессное правило №4 — куда на самом деле смотрит качество банка) Гипотеза владельца проверена и в своей сильной форме («равноправный совет», «уверенность решает») НЕ подтверждена. Но проверка показала, где качество банка лежит на самом деле, числами: 1. **Достоверность строк важнее арбитража формы** — инъекция исполняется на 95% и заражает на 100%; один неверный dst = все чанки терма. Дешевле всего чинится КЛАСТЕРНЫМИ решениями (8/45 одной конвенцией) и наблюдаемостью (invented/conf/Signals), а не советом. 2. **Reachability: 8/53 подписанных термов банк вообще не видит** (включая головной 蛊) — лучший арбитр бессилен без строки. Сид-половина строки 18 и Q7-замер стоят выше по рычагу, чем любой консилиум. 3. **Пометка ⟨проверить⟩ поведенчески пуста на транслятор-проводе** — «худшее, что может сделать плохой вызов» (инвариант §0 п.4) на практике равно «положить неверный канон в книгу до подписи». Это усиливает и доктрину автономной верности банка, и цену п.1. 4. Владельческий регистр («класс А/Б/В/Г», «Монах Цветочного Вина») автономно недостижим ПО ПОСТРОЕНИЮ (D39.47 прав) — доля таких строк в голде ≈ четверть промахов; единственный канал их доставки — сид/бриф/шаринг серии, и никакой арбитраж это не изменит. --- ## Вопросы владельцу (короткий список) 1. **Мини-голд алиасов** (§E-1 research/20, висит с 17.07): для кластер-канала корзины 1 он полезен, но не гейт. Если делать — конкретный запрос: подписать алиас-поверхности сущностей слайса-25 по списку, который сгенерит код (~20–30 мин, метод уже описан в research/20 §E-1). Решение: делать/нет? 2. **Конвенция составных фамилий** (корзина 2 п.11): подтвердить, что «Гуюэ слитно (ср. Сыма, Оуян)» — ПАР-норма транскрипции Палладия, а не вкус этой книги. Если да — дата-правка пар-промпта (батчи терминолога перекупятся один раз, центы). Если это вкус книги — канал доставки только сид, правка не делается. 3. **Двухсекционка редактора** (корзина 2 п.9): санкция на ~$0.05-пробу редакторского провода. Если и там Δ≈0 — доктрину «неподписанное С ПОМЕТКОЙ» надо будет пере-обсуждать (сегодня она защищает меньше, чем записано). 4. Сводный: корзину 1 (пп.1–5, $0-код + центовые перекупки батчей) — передавать бэкенду одним фикс-паком по образцу D39.71? ## Критик полноты (против себя) - **Один голд, одна книга, одна пара, 45 строк.** Все точности — с широкими интервалами (±14 п.п.); парные сравнения честнее точечных, но 古月-кластер коррелирует 8 строк — эффективный N меньше номинального. Кросс-книжная воспроизводимость не проверена. - **Era-конфаунд P1:** прод-референс — терминолог на ДО-катоверных весах; S1−P1=+2 может быть весами, а не свежестью. На вывод «совет не окупается» не влияет (сравнение C3↔SC↔S1 — одна эра), на «свежий соло бьёт прод» — влияет, оговорено. - **Пробы — только холодный старт** (без канон-якоря); поведение с непустым ⟦TM-CANON⟧ не мерено. - **Проба C: N=6 неверных строк, один транслятор, один арм-порядок.** Редакторский провод не мерен вовсе. Вред 100% — точечная оценка с нижней границей 61%. - ~~gro1 видел на один терм больше~~ — **оговорка СНЯТА адверсариальным раундом 2 пере-проверкой сырья:** все 7 пассов видели идентичный 63-термовый ростер (二转 лёг в ростер ДО старта процесса пассов; `### 二转` стоит в батче 3 каждого пасса, 63/63 ответов у всех). Ранняя версия оговорки опиралась на память сессии, а не на сырьё — ошибка была консервативной (ослабляла выводы зря). - **Словесная шкала уверенности** мерена на одной модели (deepseek); вывод «числа > слова» — внутри-deepseek-овый. - **Кластерные метрики** — 3 семьи; регистры обращений и алиас-графы (два других класса из §4 промта) голдом не покрыты — мини-голд алиасов (вопрос 1) закрыл бы третий. - **E1-правило «спорный»** — одно из возможных; не тюнил и не перебирал (пре-рег), химера E1 может быть свойством именно этого правила; вывод «роутинг обязан быть кластерным» от этого не зависит (химера возникает у любого правила, режущего семью). - **Инжект-смета книги** — верхняя граница по потолку 800 ток.; фактический размер блока на живой книге не считан. ## Адверсариальный проход (author≠reviewer) - **Раунд 1 (до платных выводов):** два независимых агента-скептика. Кодовый: 7/7 клеймов §A CONFIRMED с file:line (один нит — механика равной длины серий живёт в `series.go:46-66`, а не только 37-42; принято). Голд-скептик: числа воспроизведены пере-раном байт-в-байт; гипотеза «промахи несправедливы из-за нормализации» ОПРОВЕРГНУТА (0 несправедливых; ось пробела несёт подпись владельца в обе стороны — Гуюэ слитно, Жэнь Цзу раздельно); джойн сида чист (пере-джойн точным равенством дал тот же сплит 45/8); порядок вариантов BANK-FULL = §C2-3-ранжирование (байт-сверка со стоп-таблицей, 150/150). - **Раунд 2 (по готовому отчёту, платные выводы §B/§C):** два независимых агента (числа · логика/комплаенс). **Числовой:** все 11 точностей форм, все парные сравнения, AUC с CI (бутстрап сидирован — до 3-го знака), устойчивость, вся таблица пробы C и деньги до 6-го знака — CONFIRMED пере-раном; корреляция химеры S1 с границей батча подтверждена ШИРЕ голда (ds1-b0: все 6 членов слитно, включая не-голдовые 古月藻榭/古月陈博; ds1-b2: все 7 раздельно). **Поймано и вправлено этим же лендингом:** (1) «3×Гу Юэ» → 4× (счёт семьи); (2) ячейки 等-серии печатались скриптом как химера из-за грубого фильтра голов — метрика починена (голова = первое не-числительное слово), скрипт теперь печатает ровно таблицу §B4; (3) «медиана» → «среднее» у цены ds-пасса. **Логический:** пре-рег-комплаенс критериев 1/5 — буквальный; расхождение «порог +3 формально пройден, а совет закрыт» признано ЧЕСТНЫМ (вскрытие единиц обязательно по норме, коррелированный кластер 8 строк ≈ эффективный N~1 — и это уже стояло в тексте); критерий 4 переформулирован честно (сработал у E1, не у зарегистрированного C3); правило сравнимости шкал помечено пост-хок уточнением; оговорка про gro1/二转 ОПРОВЕРГНУТА сырьём и снята; инвариант «терминолог не может утвердить» рекомендациями §D не нарушен (проверено по-пунктно), к п.6 корзины 2 дописана явная draft/auto-клауза; чужие зоны не тронуты (git status: только свои файлы + PROGRESS-секция по мандату). ## Заявление = команда (приёмка пере-ранит) Все скрипты — `eval/bank_arbitration/`, питон `eval/.venv/bin/python3`: | Число | Команда | |---|---| | 53/45/8, голд | `build_gold.py` | | P0 12/45 · P1 18/45 · 27 промахов · 5-в-вариантах | `score_baselines.py` | | пассы ds/glm/mis/dsw | `consilium_probe.py --passes ds1,ds2,ds3,dsw,glm1,mis1` (+ `retry_mis_b4.py` после 429) | | grok-пасс | `consilium_probe.py --passes gro1` | | формы S1/SC/C3/C3conf/E1, AUC, кластеры, деньги-2-путь | `arbitrate.py` | | серии BANK-FULL · spread≥2 50% · соло-точности · C4 · деньги | `extras_checks.py all` | | проба C: прогон / счёт | `inject_probe.py` / `inject_probe.py --score` | | A4-демо 18/149 · A5-демо 1/75 | `value_demo.py` | | §E ja/en: прогон / счёт | `multilang_probe.py` / `multilang_probe.py --score` | | §F: прогон / джойн 45 пар | `crosslang_bank.py --part all` / `python -c "from crosslang_bank import score_f1; score_f1()"` | Сырьё (полные тела запросов/ответов, usage, цены): `~/books/gu-zhenren/bank-arbitration/*.json` — 35 файлов консилиума + 24 инжекта. Провенанс голда — поле provenance каждой строки gold.jsonl. ## §E. Достройка по вопросам владельца 04.08 (пре-регистрация ДО запуска — здесь; результаты ниже) Вопрос владельца: «не слишком ли подвержен влиянию zh→ru пары? на диске есть ja и en книги». Признание честное: ВСЯ эмпирика §B/§C — одна пара. Два самых переносимых вывода до-меряются на `isekai_majutsushi_jp.txt` (ja→ru) и `fifty_shades_1_en.txt` (en→ru), `multilang_probe.py`, deepseek-low: - **E-inject** (2 ja-окна + 1 en-окно × 4 арма A/B/C/D, дизайн §C): критерии ТЕ ЖЕ, что §0 п.5 — маркер «пуст», если Δ послушания wrong-строке закон↔⟨проверить⟩ < 10 п.п.; вред реален при ≥50% принятия. Перенос подтверждён, если направление ja/en совпадает с zh (рычаг ↑, вред ~100%, маркер ~0). - **E-family** (ja): семья общего корня РАЗНОЙ длины 魔術/魔術師 намеренно разрезана границей двух батчей терминолог-структурного промпта. Критерий: если корневые конвенции dst разошлись через границу — батч-граничная химера НЕ zh-специфична. - Оговорки, названные до запуска: ja/en-паков в репо нет ⇒ промпты пробы НЕ engine-faithful (проба феномена, не движка); голда для ja/en нет ⇒ скорится ПОВЕДЕНИЕ (послушание/связность), не правильность против канона. Смета ≤$0.04; суб-потолок C не пересекается (отдельная достройка в общем потолке $1.00). *(результаты §E вписываются после прогона, пре-рег не правится)* ### §E-результаты ($0.006472, 14 вызовов, все stop; `multilang_probe.py --score`) **E-inject — направление zh-выводов ПЕРЕНОСИТСЯ на обе пары:** | Пара | A (без инъекции) | B (закон) | C (wrong закон) | D (wrong ⟨проверить⟩) | |---|---|---|---|---| | ja→ru, верные строки | 1/3 | 3/3 | 3/3 | 2/3 | | ja→ru, WRONG принят | 0/2 | 0/2 | **2/2** | **2/2** (Δ=0) | | en→ru, верные строки | 2/2 | 2/2 | 2/2 | 2/2 | | en→ru, WRONG принят | 0/1 | 0/1 | **1/1** | **1/1** (Δ=0) | Инъекция слушается ≈полностью, неверная строка принимается, маркер ⟨проверить⟩ не смягчает ничего — на ja и en ровно как на zh (§C). N крошечный (ja 2 окна, en 1) — это проверка НАПРАВЛЕНИЯ, не величины; единицы вскрыты глазами (en: «Кому: Кристиан Грэй» — неверная орфография въехала даже в шапку письма). **E-family — задуманный тест связности корня не состоялся, но поймал находку крупнее:** на ja-входе батч 0 бэнк-структурного вызова вернул «переводы» УПРОЩЁННЫМ КИТАЙСКИМ (魔術→魔术 · 洗脳→洗脑 · 国王→国王) при чистом батче 1 (魔術師→маг · 魔力→мана · 勇者→герой). Это off-language класс на не-родной паре, и он подтверждает ДВЕ вещи: (1) экран языка ответа (`ParseReply`/OffLanguage, парослепой по построению) для будущей ja-пары — не гигиена, а несущая защита: он эти строки отбил бы громко; (2) root-связность 魔術↔魔術師 через границу батча осталась НЕизмеренной (батч 0 негоден) — честно в критик полноты. Оговорка §E-пре-рега в силе: промпты пробы не engine-faithful, это проба феномена. ## §F. Кросс-пары по слову владельца 04.08: zh→en (близость к банку) и en→zh (Кристофф) — пре-регистрация Слово владельца: «мало ориентироваться только на мой банк — он однобокий; оцени в т.ч. художественность лично на свой вкус; пары zh→en (близость к моему банку) и en→zh (книга Кристоффа)». - **F1 zh→en:** тот же 63-термовый ростер, тот же терминолог-протокол, target=английский (транскрипция pinyin). Метрики: (а) **стратегия-близость** — по каждому голд-терму сравнивается КЛАСС решения (смысловой перевод / транслит / гибрид) у en-выхода против подписанного ru владельца; доля совпадений классов = «примерная близость банка к тому, что выбрала бы свежая en-редакция»; (б) сверка с fan-каноном Reverend Insanity ПО ПАМЯТИ МОДЕЛИ-автора отчёта — помечается как справочная (память, не источник); неуверенные строки честно пропускаются; (в) **личная оценка художественности** en-выбора автором отчёта — субъективная, так и лейблится. - **F2 en→zh:** `Empire of the Dawn` (Кристофф, epub на диске; книга 2026 года — претрейн-контаминация минимальна). Майнинг ~12 рекуррентных термов + 2 окна прозы; терминолог-проход en→zh и перевод окон (deepseek-low и glm-5 — китайско-родная модель для контраста). Метрики: связность семей терминов; **личная оценка художественности zh-прозы** автором отчёта (регистр, каденс, кальки) — субъективная. - Критерий «близость к банку» (F1): ≥70% совпадения классов решения = «банк владельца НЕ однобокий, его выборы совпадают с независимой en-редакцией»; <50% = «банк несёт сильную ru-специфику» (обе формулировки легитимны — это описание, не экзамен). - Смета ≤$0.08. Оговорка: en→zh и zh→en паков в движке нет — проба переносимости ПОДХОДА, не движка. ### §F-результаты ($0.011310, 11 вызовов, все stop; `crosslang_bank.py`, джойн — `score_f1()`) **F1 zh→en: банк владельца НЕ однобокий — 41/45 (91%) совпадений класса решения** с независимой свежей en-редакцией (порог пре-рега 70% взят с запасом; классификация ручная, автор отчёта; полный джойн печатается командой). Самое сильное: - **Свежая en-редакция дала «Rank 1..9», «Grade A/B/C/D», «Aperture», «Gu Master», «Spring-Autumn Cicada», «Mortal» — то есть РОВНО классы подписей владельца** («ранг», «класс А/Б/В/Г», «апертура», «гу-мастер», «Весенне-осенняя цикада», «смертный»), включая буквенный маппинг 甲→A, который ни один ru-черновик и ни одна ru-модель не выдали. Выбор владельца — не идиосинкразия, а конвергентная редакторская логика; ru-модели до неё не дотягиваются приором — ещё один довод за канал сид/бриф. - Сверка с fan-каноном Reverend Insanity ПО ПАМЯТИ автора отчёта (помечено: память, не источник): уверенно помню Gu Master · aperture · Spring Autumn Cicada · Rank N · A-grade aptitude · Fang Yuan · Gu Yue · Bai Ning Bing · Ren Zu · Hope Gu · Moonlight Gu · **primeval stone/sea** — свежий en-проход совпал почти всюду, а где разошёлся (元石 «Yuan Stone» против fan «primeval stone»), fan-канон оказался ближе к владельцу («первобытный камень» = дословно primeval stone). Банк владельца ≈ анг. fan-канон даже теснее, чем свежая модель. - 4 расхождения класса: 白家寨/熊家寨 (en транслит против семантики владельца — при том что 古月山寨 en сам перевёл «Gu Yue Village»: **та же семейная несвязность 寨-семьи воспроизвелась в en-проходе**, дефект A1 кросс-языковой) · 元石/元海 (en гибрид, владелец семантика). - Ру-специфика подтверждена ровно одна: слитность «Гуюэ» (en-канон пишет «Gu Yue» двумя словами — правило Палладия для составных фамилий действительно живёт только в ru-транскрипции). - Оговорка: en-проход видел ru-варианты черновиков как улики смысла (велено явно «not as English candidates»); следование им не слепое — на 元石 модель ушла от ru-улики. **F2 en→zh (Кристофф, Empire of the Dawn 2026 — контаминация минимальна):** - Терм-таблицы: deepseek дал **идеальную корневую связность семьи *-blood** (冷血者/高血者/苍血者 — единый шаблон X血者), а **glm-5 сломал корень ВНУТРИ одного батча** (冷血者/高血族/苍白血 — три разных шаблона): со-батчинг необходим, но НЕ достаточен — межмодельная и внутримодельная дисперсия связности реальна и вне CJK-источника. Плюс deepseek **выдумал 5 незапрошенных строк** (Patience, Liathe, Ashdrinker…) — ровно класс, который экран `want[key]` в `ParseReply` отбивает; кросс-парное подтверждение нужности этого гарда. - Проза (2 окна × 2 модели, читал лично; оценки субъективные, так и лейблятся): оба черновика — добротный жанровый уровень, стилистическая разница меньше терминологической. deepseek: точнее к термам и образам («银钢为歌,转轮火枪为鼓» — отличная передача «silversteel their song…»; «墓志铭» для меча Epitaph — верно), местами буквален («完好无损» для unbroken — смысловой промах). glm: местами идиоматичнее («勒得我骨节作响», «任凭时光流转、潮汐更替,也无法锈蚀»), но с реальными дефектами: **оставил английское слово в переводе («兄弟 forever»)**, выронил клаузу, «红痰» (красная мокрота) — регистр-провал, «克斯特尔»-класс ошибок у deepseek — транслит говорящего названия Kestrels против glm-ского верного «红隼». И несущая единица: **glm сам разошёлся в имени Aaron между двумя соседними окнами (艾伦 ↔ 亚伦)** — межчанковый дрейф имени, ровно то, от чего банк существует, воспроизведён на en→zh за два вызова. - Личный вывод по художественности (вкус автора, не мера): прозовое качество дешёвых моделей на en→zh и zh→en уже «редактируемо-издательское»; узкое место всех четырёх направлений одно и то же — дисциплина термов и конвенций, не слог. Ставка проекта на банк как центральную ценность этим подтверждается с третьей стороны. ## §G. Дизайн-синк: как я бы доработал алгоритмы банка в бэкенде (код читан HEAD, не правлен) Конкретика уровня функций — готовый вход для фикс-пака класса D39.71. Всё сохраняет инварианты: эмиссия auto/draft не трогается, терминолог не может утвердить, Select/пост-чек/эскалация без изменений. **G1. `DetectFamilies` рядом с `DetectSeries` (`terminology/series.go`).** Вход тот же `[]Candidate` + `FamilyParams` из ДАННЫХ (`script-series.txt`, новая колонка; пара без данных — канал инертен): - реалии: общий СУФФИКС-морфема длины ≥MinRootRunes при head-final письме (семьи 蛊-*, *-寨, *-血); имена (тип после классификатора §2): общий ПРЕФИКС ≥2 рун (семья 古月-*) — асимметрия имя/реалия тоже данные, не Go-ветка; - БЕЗ транзитивного замыкания: якорь группы = сама корневая морфема; кандидат входит в ≤1 семью, приоритет более длинного корня (специфичное бьёт общее), затем большей семьи; серия (G-существующая) сильнее семьи — серийные члены из семей исключаются (等-серия не должна утонуть в 等-семье); - выход — тот же `map[string]int`, мёржится с seriesID перед `Batch` (со-батч механизм уже готов, oversize-WARN уже есть). Цена фолда: состав батчей → RequestHash бэнк-батчей — перекупка батчей один раз (центы), волны/снапшоты не двигаются. Замер-основание: §B4 (химера на границе батча), §F2 (семья *-blood), §A1 (8/45 голда одной конвенцией). **G2. `ConsolidationConflicts(cands, out)` (`terminology/terminology.go`).** Тонкий брат `CanonConflicts`: те же containment+`lexemeSubset`, но правая сторона — сами консолидации прогона. Вызов в `runTerminologist` после сборки `out` (рядом с :335), WARN с именованными парами + счётчик в `terminologyResult` + колонка стоп-таблицы. $0, не фолдится (evidence-сторона). Замер-основание: 18/149 невидимых противоречий на живом банке (`value_demo.py`). **G3. Наблюдаемость (`mining.go` + `terminology.go`):** `BankStopRow` += `Signals []string` (уже вычислены — просто печать), `Invented bool` (норм-dst ∉ вариантов), `Conf int`; `ParseReply` — если ПОСЛЕДНЕЕ поле ` \d{1,3}` — снять его как conf ДО джойна f[1:] (иначе conf молча въезжает в dst); строка «третье поле — уверенность 0–100» в промпт-файл роли (дата-правка, PromptSHA → перекупка батчей тем же разом, что G1). `reasoning_content` в схему НЕ заводить — debug-сайдкар рядом со стоп-таблицей за флагом гейта. Основание: §A7, AUC 0.77–0.85 (§B3). **G4. Правило кластерного роутинга** — в дизайн замера рецензента (строка 5): любой селективный арбитраж (спорные к рецензенту) маршрутизирует ТОЛЬКО целыми family/series-юнитами. Основание: E1-химера §B4. Это правило дизайна, кода сейчас не требует. **G5. `foldVariants`:** счёт голосов по `NormalizeTargetForm`-фолду, показ сырых форм; рядом со spread — «конвенций» (folded spread). Косметика (двигает топ 1/75 — §D п.5), делать заодно с G3. **G6. Не делать (замеры этого пака):** равноправный совет · кросс-модельные веса · self-consistency · селекция из вариантов · отказ-сигнал · эмбеддинг-фетч (§D корзина 3). Series-детектор, Merge, AttachKWIC-семантика (кроме строки 37-перфа), Select, пост-чек — не трогать. Порядок: G1+G2+G3+G5 — один фикс-пак (одна перекупка батчей, голден не движется); G4 — вход замера строки 5 при ре-пробе 74; строка 37 (перф AttachKWIC через готовый Aho-Corasick из membank) — по желанию тем же паком. ## Деньги | Проба | Потолок | Факт | |---|---|---| | B: ds1+ds2+ds3+dsw | — | $0.021991 | | B: glm1 | — | $0.018495 | | B: mis1 | — | $0.012808 | | B: gro1 (опция) | — | $0.026546 | | **Итого B** | ≤$0.70 | **$0.079840** | | **Проба C (инжект)** | ≤$0.30 | **$0.009713** | | §E мультиязычная достройка (по вопросу владельца, тот же день) | — | $0.006472 | | §F кросс-пары zh→en / en→zh (по слову владельца, тот же день) | ≤$0.08 | $0.011310 | | **ВСЕГО** | **≤$1.00 (слово владельца 04.08)** | **$0.107335** | Суб-потолки не тронуты и близко; СТОП-условий не наступало. Эффорты: deepseek — `reasoning_effort:"low"` во всех вызовах (в сырье каждый файл несёт поле effort); glm-5 — thinking disabled (форма движка); mistral/grok — вендор-дефолт. Слаги фактчекнуты live `/models` перед пассами.