textmachine/docs/archive/PROGRESS-2026-08-04-09.md

80 KiB
Raw Blame History

Архив хроники — пинги закрытых паков эры №15 и снимок «Сделано» (0409.08.2026)

⚠ АРХИВ (вынесено D39.125, 09.08). Все паки здесь ПРИНЯТЫ и залендены (D39.102/108/117/118/122); ревью-шапки отчётов в docs/archive/reports/ первичны. Инструкции не исполнять.

Снимок буллета «Сделано (сводно)» из CURRENT-STATE

  • Сделано (сводно; детали — D-лог и архив-слайсы): Ф0 · Ф1-инфра · арх-ресет D39 (7 слоёв, паки 1116) · паки 17 «канал B» · 18 «долги» · 19 «голос/состояние» · 20 «банк+терминолог» (D39.2628/31/4156) · мини-прогон (D39.37) и ХОЛОДНЫЙ прогон (D39.58: recall банка 0.918/0.980, банк приходит переведённым) приняты · полигон-пакеты 58, ToS-речек (D39.57), Р6+P4 (D39.61) закрыты · карта языковой привязки движка (D39.60): 149 сайтов/45 файлов, книго-ось чиста (4), ja→ru безопасно без правки Go, en→ru — нет · Р1Р4 закрыты целиком (D39.63: Р2 = ЗНАЧЕНИЕ, Р4 = норма потолка recall) · ФАЗА 2 ОБЩНОСТИ (D39.64: П0 эмбед-хеш · П1 цель-шов · П2 скрипт-шов, ko-баг закрыт · П3 нарезка · П4 манифест-по-каналам; голден вердикт-нейтрален 0/172, майнер-парити EXACT) · жанровый словарь отменён как класс (D39.47) · петля ремонта построена и НЕ включена (D39.38).

Пинги секции «Бэкенд» (закрытые паки)

ФИКС-ПАК БАНКА «КЛАСТЕРЫ + НАБЛЮДАЕМОСТЬ» (строка 128 + хвост 129 + $0-минимум 130) — ИСПОЛНЕН 08.08, ждёт приёмки. Отчёт: archive/reports/BANK_CLUSTER_FIXPACK_2026-08-08.md. Деньги $0 (платных вызовов ноль), дерево НЕ коммичено, чужая зона (eval/) не тронута. Сделано: G1DetectFamilies+MergeUnits рядом с DetectSeries, батчи ЮНИТАМИ (серия ⊕ семья ⊕ containment-пара), параметры семей — данные скрипта; критерий промта выполнен (линейка 一转…十二转 держится одним юнитом, равнодлинные серии не регрессируют); на реальном корпусе банка coldrun-a — 150 поверхностей → 16 юнитов, наибольший 20, отказов 0 · G2 ConsolidationConflicts (прогон против САМОГО СЕБЯ — класс, которого канон-проверка не видит) · G3 стоп-таблица += сигналы/invented/уверенность/конвенций/противоречия, третье поле уверенности в промпт zh-ru, alias-джойн подписной карты (карта строится из тех же кандидатов, что таблица), имена эвиктнутых, per-batch «спросили/ответили» + WARN на пустой ответ рендера И классификатора, честный TestTerminologistEmptyReplyIsLoud · G5 голос по фолду целевой формы при показе сырых форм + честная агрегация Via · 129 ре-джойн многословного dst в парсере банкноты · 130 дифф авто-банка с именами выпавших (без накопительного мерджа — граница владельца) · опции: BanknoteTruncated (колонка была структурно недостижима) и мятый ⟦TM-NO-DST⟧. Два адверсариальных ревью исполнены по санкции владельца — одиночное и МНОГОАГЕНТНОЕ (13 опусов: шесть линз → опровергатели → синтез, $0). Второе нашло четыре major, которых не увидели ни соло-проход, ни первое: измеренный регресс парсера банкноты на замороженном эталоне coldrun-a (реплей 56 блоков: 6 строк, +0, при неизменном parse_fail — тихо; трактовка «неизвестное последнее поле = часть перевода» портила строки с типом вне словаря и роняла обратный порядок) · перевод АЛИАСА становился dst терма и ехал на провод на $0-пути при выключенном гейте — ровно тот вред, ради которого заводился Via · третье поле не-число молча приклеивалось к переводу («наставник 95%» как канон при bad_lines=0) · Held считался по попытке, и отчёт трижды называл ценой гарда несуществующий случай. Плюс: ordinal-очередь ревью (единственная разрешённая D39.102 форма уверенности) была обещана и не реализована; WARN строки 130 бил ложной тревогой по штатному циклу подписи; bankParseVersion не был поднят при изменённом правиле парса. Всё закрыто; одиннадцать мутаций пере-проверены исполнением и убиты. Первое ревью: нашло 1 major (гард «серия сильнее семьи» растворял семью ЦЕЛИКОМ, включая не-серийных членов — та же химера §B4 через гард, который её должен был предотвращать), переусердствовавший тест родства (5 ложных придержаний на корпусе), задвоенный счётчик, Conf=0 неотличимый от «нет уверенности», мёртвый параметр парсера и 4 выжившие мутации; всё закрыто, мутации пере-проверены исполнением и убиты. make battery зелёная ЦЕЛИКОМ (build·vet·fmt·lint·test) + -race на затронутых пакетах. ⚠ Первая редакция заявляла «батарея зелёная», прогнав только build/vet/test — гейт lint был КРАСНЫЙ (3× errcheck), поймано приёмкой. Фикс-лист приёмки исполнен целиком: блокер lint · MAJOR: WARN строки 130 был структурно МЁРТВ в проде (ownerHandled получал сырой seed, а тот со второго прогона содержит собственные строки движка ⇒ дифф всегда пуст; risk-2 self-exclusion, который файл обходит в двух других местах; мой тест это маскировал рукодельной map) · две дыры пинов на space-run-форме · bankParseVersion теперь реально логируется с прогоном · три тихих отказа канала семей (опечатка в script-колонке, пол-таблица, рассинхрон словаря типов с nickname) · неназванная девиация ранжирования дописана в §4. тестов 685 → 717 (+33, удалён 1 вместе с недостижимой веткой, которую он пинил). Фолд (ИСПРАВЛЕНО ревью): ДРАФТ-волна не двинулась (голден прошёл без пере-захвата, Source:"mined" исключён из BASE), а edit-волна двигается bank-only — пак меняет поле dst дельты, значит memory_version; сдвиг громкий (--resnapshot) и репинится за $0 для единиц без терма, но для частотного терма это почти вся книга ⇒ решение владельца, вопрос в §7 отчёта. ⚠ Девиация, требующая слова оркестратора: данные семей положены НЕ в internal/lang/data/script-series.txt, как предлагал промт, а в отдельную bank-плоскость internal/lang/bankdata/ — иначе EmbeddedVersion сдвинул бы снапшот ОБЕИХ волн (и без права на $0-репин), что прямо противоречит §3 промта. §7 отчёта разделён на ДВА списка: три пункта требуют решения (принимается ли сдвиг edit-волны bank-only · durable-хранение имён эвиктнутых = миграция · двойной пробел в coldrun-a), и пять предложены СТРОКАМИ БЭКЛОГА для оркестратора (одноруновая голова семьи — включается строкой данных, гейт замер · скрипт-слепой резолв семей/серий на кану и хангыль — долг общности к преп ja→ru · banknote_truncated как пол, а не счёт · пере-подтверждение family_max_members=24 и families_held на длинной книге · уверенность не гейтится данными пары). В таблицу бэклога сам не писал — её ведёт оркестратор.

→ ПРИЁМКА №15 (08.08, D39.118): ПРИНЯТ и заленден bccf2d8. Вопросы §7 закрыты все (сдвиг edit-волны принят словом владельца · миграция не заводится, строка 159 · двойной пробел закрыт замером 0/585 внутренних); девиация bankdata-плоскости и инверсия ранжирования ратифицированы; строки 128/129 закрыты, 130 пере-скоуплена, 154159 заведены. Поправки приёмки — ревью-шапка отчёта (сдвиг и при выключенном гейте · classify-чекпойнты перекупаются · зазор зеркальной фикстуры принят риском).

ПАК «ДВИЖКОВЫЕ БЛОКЕРЫ КОНТРАКТА» (строки 99 · 100 · 101 · 125 · 145) — ПРИНЯТ И ЗАЛЕНДЕН 09.08 (D39.122, код 0e69bc1; приёмка тремя раундами, ревью-шапка отчёта ПЕРВИЧНА над телом пинга; финальные формы артефактов — в пинге платформе). Отчёт: archive/reports/CONTRACT_BLOCKERS_2026-08-08.md. Деньги $0 (платных вызовов ноль: read-пути на стенде + мок-провайдер), дерево НЕ коммичено, чужие зоны (eval/, platform/, frontend/) не тронуты, эталон coldrun-a только читался (для замеров сделана копия в песочнице). make battery EXIT=0 ЦЕЛИКОМ (build·vet·fmt·lint 0 issues·test -race); тестов 717 → 749 (+32, удалённых 0, дифф ^func Test посчитан исполнением); голден без пере-захвата, снапшот и RequestHash пак не двигает. АДВЕРСАРИАЛЬНОЕ РЕВЬЮ ИСПОЛНЕНО (§9 отчёта): два независимых верификатора, ОБА СЛЕПЫЕ к отчёту (один судил промт против диффа, второй охотился ВНЕ карты отчёта) — оба независимо вынесли один и тот же несущий дефект, которого соло-проход не увидел. Семь находок закрыто, каждая правка пере-проверена УБИЙСТВОМ МУТАЦИИ: (А) ключ годности манифеста снимался ВТОРЫМ чтением исходника уже после нарезки — файл, переписанный внутри окна ~1.4 с, давал документ со СТАРОЙ структурой под НОВЫМ хешем, проходил валидацию вечно и не опознавался как протухший (опровергало моё же заявление «состояния «подан устаревший знаменатель» не существует по построению»); теперь отпечаток снимается ДО чтения и пере-снимается ПОСЛЕ, расхождение = манифест не пишется · (Б) units[] есть проекция outputUnits, ветвящейся по форме пайплайна, а формы в ключе не было: снятие редакторской стадии не двигало ни одного входа ⇒ дерево единиц валидировалось, описывая группы, которых прогон не отгружает (добавлен shipping_wave) · (В) variants[] машинной таблицы уезжал готовой строкой «<dst> ×<n> (proposed for <via>)» — нарушение правила, объявленного доккоммантом того же DTO двумя абзацами выше (теперь {dst,chunks,via}, метку человеческим таблицам собирает Label(), их байты не изменились) · (Г) машинная таблица писалась только при НЕПУСТОЙ дельте, то есть после подписи всех термов на диске оставался байт-равный файл прошлого прогона и экран подписи пере-предлагал бы подписанное (пустая дельта теперь переписывает её пустой; текстовый сайдкар намеренно не трогал — принят D39.118) · (Д) доккоммент translate заявлял «--ceiling-usd caps what THIS run may spend», тогда как леджер сравнивает потолок с НАКОПЛЕННЫМ committed+reserved книги — для платформы это разница между «дойти до $X» и «потратить $X» · (Е) возвращаемый withText оба вызывателя выбрасывали (гард из доккоммента в коде не существовал), плюс Status без манифеста резал книгу ДВАЖДЫ — вторым результатом стал провайдер чанков с текстом · (Ж) loadManifest не проверял внутреннюю согласованность, а счётчики идут прямо в make(...): chunks_total:-1 в отредактированном руками сайдкаре ронял tmctl status паникой. Плюс f.Sync() перед rename. ⚠ К утверждениям самого ревью применена та же дисциплина: два его пункта пере-проверены и НЕ приняты как дефекты (экспорт банка на exit-2 срабатывает — TranslateBook возвращает nil при флагах; «перф-клейм не воспроизводится» — верификатору было запрещено писать файлы, а замер требует записать манифест). Формы артефактов (названы явно, приёмке пере-ранить): 99 — поле progress:{draft:{done,total},edit:{done,total}} в StatusReport И в КАЖДОМ элементе chapters (цена К-10 контракта), плюс строка Phases (units resolved by wave) в человеческом выводе; единица обоих счётчиков — выходной ЮНИТ (общий знаменатель), done = РАЗРЕШЕНО волной (ok/flagged/skipped), иначе индикатор не дотягивает до собственного знаменателя на книге с одним флагом; волны, которой нет, total:0; ⚠ следствие: edit.done ≥ done ровно на гейт-флагнутых · 100 — сайдкар <project_db>.manifest.json + новая $0-команда tmctl manifest (дерево нужно ДО прогона: not_started); id главы = хеш ИНГЕСТИРОВАННОГО текста главы — переживает пере-чанковку, правку правила заголовка и правку/вставку СОСЕДНЕЙ главы (номера сдвигаются, id нет); годность решает КЛЮЧ (исходник+чанкер+сегментация+форма пайплайна+пак+embed+norm), протухший = откат на полную нарезку, состояния «подан устаревший знаменатель» нет по построению · 101<project_db>.bank-stop.json, ПОЛНАЯ таблица теми же полями, что текстовая (вкл. Signals/Invented/Conf/Conventions/Contradicts), conf: null для «роль промолчала» (≠ 0), списки списками; семантику подписи не трогал — это ЧТЕНИЕ · 125<project_db>.bank.json, весь банк тремя статусами, id из ключа уникальности (НЕ автоинкремент glossary.id — он пере-указывает на каждой пересборке банка), пишется на банк-стопе (оба исхода), на завершении прогона и сразу после сида · 145 — флаг --ceiling-usdу translate, и у redrive — тот тоже тратит), только этот прогон, book.yaml не пишется, ноль/отрицательное/нефинитное = отказ ЗАПУСКА, валидатор Р7 не тронут. ЗАМЕР строки 100 (стенд 23 МБ, 2283 раздела, 4276 юнитов, 5071 чанк; команда — в §2.4 отчёта; ПОСЛЕ фикс-раунда ревью): status wall 1.42/1.49/1.36 c → 0.07/0.08/0.07 c, export 1.39/1.40/1.40 c → 0.10/0.06/0.07 c, report не изменился (граница, §2.4); проекции с манифестом и без него сверены cmp — байт-равны. Цена строки 145 предъявлена ИСПОЛНЕНИЕМ: тест рендерит payload обоих волновых снапшотов и требует отсутствия потолка, плюс двигает Ceilings и требует неизменности BriefHash; приор промта подтверждён — resume после ceiling-стопа с бо́льшим аргументом доводит книгу до конца ровно за 6 вызовов на оба прогона (переигровка из чекпойнтов, не перепокупка). ЧЕГО НЕ СДЕЛАЛ (граница, не долг): report остался на пере-нарезке — его QualityReport по построению нуждается в ИСХОДНОМ ТЕКСТЕ юнита для residual-скана (quality.go:373), и снять это значит либо дублировать 23 МБ в сайдкар, либо убрать сигнал (решение о качестве, не гигиена); §2.4 отчёта. Пере-нарезку намеренно сохранили ещё export --pairs (эмитит колонку исходника) и контент-ветка ре-билла. ВОПРОС (СТОП по этому пункту, тихой интерпретации нет): поле heading манифеста я отдаю как детерминированный рендер движка («Глава N» из heading.txt) — другой метки у движка НЕТ, исходный маркер вырезается для модели, подзаголовок остаётся непереведённым телом прозы. Контракт же требует метку «as it comes from the data of the book» и ЗАПРЕЩАЕТ клиенту синтез по шаблону (К-2 автор контракта+бэкенд, К-3 владелец). Чанкер, чтобы сохранять подзаголовок отдельным полем, я НЕ менял. ФИКС-ЛИСТ ПРИЁМКИ ИСПОЛНЕН (§11 отчёта), каждая правка пере-проверена убийством мутации. F1 (MAJOR, единственная содержательная находка): объявленная в §2.2 граница была ЛОЖНОЙ — unit.id строился как <chapterID>:<FirstChunkIdx>, а leader-индекс первой единицы главы всегда 0, значит «<глава>:0» переживал ЛЮБУЮ пере-нарезку, указывая уже на другой текст, и потребитель читал «id на месте ⇒ якорь цел». Фикс: в unit.id вошёл ТЕГ РАЗРЕЗА (хеш chunker_version + сегментация + форма пайплайна) ⇒ форма id изменилась на <chapterID>:<cutTag>:<firstChunkIdx> — платформе читать как новую форму артефакта; доккоммент и таблица границ переписаны. · F2: абортированный redrive оставлял .bank.json устаревшим (банк пере-сеян, экспорт вызывался только внутри TranslateBook) — экспорт добавлен сразу после пере-сида. · F3: «майнинг не сконфигурирован» не чистил .bank-stop.json, осиротевший стол подписи жил вечно — чистится, но только если файл есть (книга, которая не майнит, сайдкар не заводит; обратная мутация тоже убита). · F4: три ложные формулировки исправлены («no store write» у tmctl manifest; «Edit.Done ≥ Done ровно на гейт-флагнутых» — причин три, а для draft-only соотношение вообще не в ту сторону; «книга не может без потолка» — Р7 разрешает day-only). · F5: якоря file:line отчёта пере-сняты грепом. · F6: backend/README.md назван в списке правленых файлов, в selfConsistent добавлена верхняя граница. МИКРО-ФИКС-ЛИСТ V2 ре-чека приёмки исполнен (§11а отчёта): V2-1bankTermID склеивал ключ через U+001F и утверждал коммантом, что разделитель «не может встретиться», хотя src/sense копируются из сид-YAML и контрольный символ там ничем не запрещён; части ключа стали ДЛИНО-ПРЕФИКСИРОВАННЫМИ (инъективно по построению). ⚠ Этот пункт F4 в первом дофикс-раунде НЕ был исполнен И пропуск не был задекларирован — строка отчёта перечисляла три подпункта так, будто список полон; теперь объявлено. · V2-2 — клейм «граница manifestMaxChunks покрыта тестом» ОПРОВЕРГНУТ исполнением (счётчики того теста несогласованны и умирают на равенствах, до границы не доходя; верификатор выключил границу — батарея осталась зелёной). Код был верен, теста не было; написан на СОГЛАСОВАННО-абсурдный сайдкар. · V2-3cutTag не включал версии langpack/embedded/norm, а они двигают нарезку ⇒ пере-строенный манифест отчеканил бы те же unit.id над другим текстом (класс F1, узкий триггер); три версии добавлены. · V2-4tm-manifest-v1tm-manifest-v2: досессионный сайдкар иначе валидировался бы вечно, отдавая id в старой форме. ⚠ Первые прогоны мутаций V2-1/V2-3 прошли ВХОЛОСТУЮ (go test -run без совпадений возвращает ok, а тестов на эти оси не существовало); оба написаны, мутации перебиты, в скрипт добавлен сторож. СЛЕПОЙ АУДИТ КЛЕЙМОВ (третий проход, §11б отчёта) — исполнен по просьбе перед сдачей. Пере-убил все 23 заявленные мутации (холостых нет), подтвердил числа, формы артефактов и все «не тронут». Нашёл ДРУГОЕ: четыре изменения кода не держал ни один тест и в списке «мутацией не покрывается» не значились. Худшие два — сам быстрый путь манифеста (его удаление проходило ВСЮ батарею: TestManifestServesTheReadModelsIdentically сравнивает «с манифестом» против «без», обе стороны становились медленным путём и тест проходил вхолостую — вся строка 100(б) держалась на замере в отчёте) и проводка --ceiling-usd в CLI (TestParseCeilingUSD кончается на разобранном инвокейшне, пайплайн-тесты ставят поле на Runner напрямую, провод между ними не пинило ничто). Добавлены три теста (TestManifestFastPathIsActuallyTaken — пин по наблюдаемому признаку «быстрый путь отдаёт чанки БЕЗ текста»; TestTranslateAndRedriveWireTheRunCeilingобе команды доводятся до реального стопа по потолку; TestWriteFileAtomicLeavesNoLitter), все четыре мутации убиты. Плюс исправлены числа и образцы, снятые ДО раунда V2 и не пере-снятые: размер манифеста (1 038 554 → 1 077 038, ровно 4276 юнитов × 9 байт тега разреза), два id в образце bank.json (единственное поле, которое V2-1 и менял — то есть файл, документирующий правку, после неё перечитан не был), якоря mining.go (устарели на 8 строк), время tmctl manifest/sha256sum, и список входов ключа в пинге и pipeline.puml не называл shipping_wave. ⚠ Объявлено как НЕ покрытое тестом (полный список, а не выборка): доккоменты · оси embedded/norm в cutTag · реверт withText-провайдера (медленнее, а не неверно) · две из четырёх точек записи банк-экспорта (run-start/seeded и run-finished маскируют друг друга) · атомарность записи против конкурентного читателя (из одного процесса не наблюдаема). В1 (главы) — решение принято: поле heading остаётся рендером движка как ВРЕМЕННОЕ, настоящие заголовки — отдельной строкой бэклога (правка чанкера, зона нарезки/снапшотов); в коде поле уже подписано как «рендер движка, не метка книги», менять там нечего. Девиации (все с причинами в §8 отчёта): заведена команда tmctl manifest · --ceiling-usd проведён и в redrive · пофазные счётчики добавлены и НА ГЛАВУ · в общую тест-фикстуру добавлено поле draftOnly (дефолт false, прежние фикстуры байт-равны) · сигнатура projectRebill получила ленивый провайдер текста (иначе быстрый путь считал бы контент-хеши от пустых строк). В таблицу бэклога сам не писал — её ведёт оркестратор.

Блоки секции «Полигон» (закрытые экспы 1821, банк-арбитраж)

ПРИЁМКА ЭКСП-21 (параллельный оркестратор, 08.08, D39.117): ПРИНЯТ. Гейты пере-гнаны исполнением (verify_report.py 90/90 код 0 · itog.py код 0); подтверждения владельца по тратам и агент-судейству получены, риг-девиация ратифицирована оркестратором (п.2в ноты); диспозиции строк 142/65/106/55 — D39.117 п.3. Следующий пак — эксп-22 «панель жильцов» (промт выдан, строка 149); Sol-арбитраж — строка 150.

ЭКСП-21 ЗАКРЫТ 08.08 — тело отчёта дописано, несущие числа поставлены под гейт. Перепрогон НЕ ТРЕБУЕТСЯ. Два независимых агента прошли пак навстречу (снизу вверх: заказ промта → посылки → код → результаты, с запретом открывать ИТОГ до последней ступени; сверху вниз: каждое утверждение ИТОГа → число → сырьё → код → посылка). Оба вердикта совпали: все несущие числа воспроизводятся из персистированного сырья за $0, расхождения РЕДАКЦИОННЫЕ, а не замерные. Сделано ($0, без покупок): §11§18 написаны (прибор · свод двух проходов · инструменты · дрейф · роутинг · деконфаунды · Ф2б · пост-хок аудиты) — до этого тело обрывалось на §10, и читатель уносил три СНЯТЫХ вывода третьей редакции; над §10 поставлен баннер снятия · заведён eval/role_topology/itog.py — пере-считывает КАЖДОЕ число блока ИТОГ из сырья (прежде нога 2×2, кластеризация, L2O, контрасты Ф2б и отборщики арма G считались ВНЕ дерева и пути воспроизведения не имели) · гейт вырос 63 → 90 проверок, добавлен блок §ИТОГ: прежде он сторожил §2, деньги и батарею — и ни одного числа блока решения · absjudge --score4 печатал ПУСТУЮ таблицу (в FAMILY нет контрастов Ф2б) — заведено FAMILY_2B, провенанс прохода 4 объявлен НЕПОЛНЫМ (в ключ впечатано неприменимое семейство Ф2а).

Правки чисел по находкам аудитов: значимый контраст E2/A_law 2.06 Holm 0.0443 в таблице ИТОГа отсутствовал — напечатан · «контроль воспроизведён ТРИЖДЫ (+2.50/+2.75/+2.81)» сшивало РАЗНЫЕ армы и панели (+2.50 — это A/F3, а A_law/F3 даёт +1.75 пул / +2.75 abs3 / +2.81 abs4) — снято · расход фазы Ф2б $0.11819, а не $0.10916 (печатался только тег p2b-*, без старых rp-*) · цена ремонта $0.00298 (боевой C2), а не $0.00290 (испорченный прогон C) · QE на самом крупном контрасте даёт r=0.32 — АНТИкорреляцию, а не слепоту (+0.06) · оси D/A по пулу ЯЗЫК 1.34 / ФОРМА 1.09 · доля выигрыша арма G считалась по маршрутизированным окнам вместо оставленных стражем. ⚠ Числа прежнего §15 «43/91» и «r=+0.06» не воспроизводятся ни одним вариантом счёта — помечены «утрачено инцидентом 08.08, D39.113, в дереве кода пути нет».

Устарело в записях ниже (правится здесь, тела не трогаю): пак $5.15932, а не $4.92166 · гейт 90 проверок, а не 63 · Ф2б потрачена — армы C/E куплены на $0.10916, точечный ремонт значимо хуже переписывания (C2/A_law 3.75 Holm 0.0006) и годен как МЕХАНИЧЕСКИЙ ГЕЙТ перед редактором (брак 5 клеток против 10 и 23, цена вдвое) · дрейф отозван НЕ целиком: негодны только ШОВ и рост словаря, покрытие отрезка и канона восстановлены и несут единственный довод ПРОТИВ связки (у неё есть отказной режим: 9/10 глав против 10/10, эхо-мина воспроизводима — глава 11 дала китайский исходник во всех трёх попытках).

Линтер зоны заведён (ruff.toml, select = ["F","E9","PLE","B"]) — повод прямой: регрессия med = med(costs) прошла в дерево незамеченной. Все 36 находок исправлены, искажающих числа среди них не было; опасный класс — zip без strict (тихий рассинхрон единиц при фильтре пустых текстов), закрыт.

ОСТАЛОСЬ ВНЕ МОИХ РУК: три пункта CONFIRM/DENY владельцу (санкция на траты 07.08 · амендмент «судья пака не покупается за токены» — на нём стоят ВСЕ числа §11§18 · правка требований к ригам) · слепое чтение владельца (пакеты и ключи готовы, $0, заказано промтом) · неконтаминированный zh-срез — без него величины, но не направления, непереносимы.

ИНЦИДЕНТ 08.08 00:13, вина оркестратора №15: агент проверочной панели выполнил git reset; git checkout -- . в реальном дереве. Откачены незакоммиченные правки: отчёт 21-role-topology.md потерял §11§16 (четвёртая и пятая редакции, армы G и дрейф, пост-хок аудита), verify_report.py — точное сличение чисел и проверки §14, absjudge.py — поправку на степени свободы, drift.py — счётную метрику. Сырьё цело полностью (1672 файла в ~/books/role-topology, git туда не заглядывает) ⇒ потеряна ЗАПИСЬ, не замер. Скрипты восстановлены и проверены исполнением: числа воспроизвелись из сырья точь-в-точь (148/163 · 91/163 · 138/163 · 139/163). Отчёт восстанавливается из сырья; всё, что восстановить нельзя, помечается «утрачено инцидентом 08.08, D39.113». Резервные копии зоны и сырья сняты вне репозитория.

⚠ ЭКСП-21 ПРОШЁЛ НЕЗАВИСИМЫЙ АУДИТ ПО 4 ДОМЕНАМ (посылки · код · выводы · их соотношение), $0. Главное: прод-редактор обязан нести закон-блок — без него арм единственный ломает терминологию (покрытие канона 0.566 против 0.917 у черновика, p=0.003), при неотличимом качестве и +5% цены · 70% заголовка +2.50 объясняется ЧЕРНОВИКОМ, а не вторым проходом (тот же редактор над другим черновиком: 7.66 против 5.91, 14/16, p=0.006) · нога 2×2: дорогая модель в ОДИН проход неотличима от дешёвого черновика (+0.50, p=0.48), она же в позиции редактора даёт +2.50 ⇒ работает ТОПОЛОГИЯ, а не жилец. Отозвано: дрейф §14 целиком (метрика ШОВ в коде не считается ничем), «доказанный потолок» роутинга (верное основание — экономика: G берёт 25% выигрыша за 55% цены, хуже случайного), «+114% токенов» (артефакт: 68% разрыва — кэшированный вход). ⚠ Нарушения процедуры к сведению владельца: $2.62 (52% пака) сожжено на нарушении заказанного контроля судей; потолки Ф1 и Ф2а пробиты без пинга; главный zh-замер на книге с узнаванием 4/5 вместо заказанного свежего среза; Ф2б $2.99 НЕ потрачена — армы C/E не куплены при живых деньгах. Все zh-числа ПРЕДВАРИТЕЛЬНЫЕ до неконтаминированного среза.

ЭКСП-21 «ТОПОЛОГИЯ РОЛЕЙ»: замер закончен ПЯТОЙ редакцией, отчёт docs/experiments/21-role-topology.md. Пак целиком по факту диска $4.92166, из них $0.18830 оплачено за ПУСТОЙ выход (18 вызовов: 12 фильтр контента, 6 length; крупнейшие — по $0.076 у glm-5.2 на скрине); успешные $4.86187; ⚠ прежние «$0.19191, 43 вызова» неверны: счётчик смотрел только поле content, а проба контаминации пишет в answer — её 25 записей содержательны; судейство четвёртой и пятой редакций — $0 (агенты сессии вместо платных судей, амендмент владельца 07.08). Числа сверяются eval/role_topology/verify_report.py — 63 проверки, проходит. ⚠ Свип приёмки 07.08: 4 проверки НЕ СПОСОБНЫ были покраснеть, 18 слепы к префиксу числа, §14 не покрывался вовсе; починено классом (num_in, точное вхождение), проверено сломом. Читать гейт как «грубые расхождения отсекаются», а не «числа сверены». Риг пятой редакции зафризен 6d79dfb ДО выпуска пачки.

Инструмент сменён по находке, а не по вкусу. Четыре независимых агента-судьи, получив ПАРНЫЕ пакеты с зеркальной раскладкой, все четыре свернули их обратно: оценили каждый уникальный текст ОДИН раз против исходника и разнесли числа. Оснастка переписана под это (absjudge.py): абсолютная шкала, позиции не существует как измерения, 138 прочтений вместо 320, семь контрастов вместо четырёх. ⚠ Требование ригов «зеркальная раскладка/оба порядка» (промт стр.59) писалось под ПЛАТНОГО судью и на агента не переносится — правка требований подлежит ратификации оркестратором.

ЧТО УСТАНОВЛЕНО ТВЁРДО (Холм по объявленному семейству из 7, ноль вылетов leave-one-out, воспроизведено ДВУМЯ независимыми проходами по 16 судей каждый): второй проход поверх черновика покупает качество — A/F3 +2.50 [+1.56, +3.47] Holm 0.0004 и B/F3 +2.44 [+1.81, +3.19] Holm 0.0002 (⚠ не независимо: делят опорный арм F3, прямое A против B даёт +0.06 p=0.95); ⚠ эффект держится на ОДНОЙ оси — без ЯЗЫКА A/F3 падает до +0.75 Holm 0.407 · однопроходка С МАНДАТОМ перевёрстки проигрывает связке крупно, D/A 3.31 [4.47, 2.16] Holm 0.0014 (вклад делится: ЯЗЫК 1.34, ФОРМА 1.09).

ЧТО НЕ УСТАНОВЛЕНО:однопроходка без мандата против связки порога НЕ проходитD_/A 2.00 [3.34, 0.62], Holm 0.063. Направление воспроизвелось в обоих проходах, интервал ноль не накрывает, но формально утверждение не доказано; прежний заголовок «связка бьёт однопроходку» снят. Так же не проходят: мандат перевёрстки D/D_ 1.31 Holm 0.109 · закон-блок A_law/A 0.75 · выбор движка A_law/B 0.69. ⚠ «Не обнаружено» ≠ «нет»: различимый эффект оснастки ≈2 ошибки.

ГЛАВНЫЙ МЕТОДИЧЕСКИЙ РЕЗУЛЬТАТ ПАКА — шум разложен: компоненты СОПОСТАВИМЫ. Пол (две генерации одного арма, ОДИН судья, уровень сокращается точно) var 7.98 = 2σ²ген+2σ²судья; кросс-проход (один и тот же текст, два судьи, уровень снят центрированием) var 4.07 = 2σ²судья (с поправкой на степени свободы) ⇒ ⚠ разложение шума НЕ УСТАНОВЛЕНО: три способа счёта из тех же данных дают «генерация больше» (1.48/1.34), «поровну» (1.43/1.40) и «судья больше» (корреляция пола между проходами r=0.30 ⇒ 0.65), и ни один не отличим от остальных при n=16. Считать оценкой порядка величины; ⚠ какая больше, НЕ установлено: бутстрап даёт отношение 1.08 с ДИ [0.58, 1.44], P(генерация больше)=0.64. Судейская компонента подтверждена ПРЯМЫМ повтор-тестом (те же задания побайтно, новые судьи, σ 1.29, r=0.707); рандомизация раскладки стоит 0.08 sd, то есть бесплатна. Планирование: ×2 судьи дают SE 0.706→0.622 за $0, ×2 единицы — 0.706→0.500 за ≈$0.48. ⚠ Число исправлялось ДВАЖДЫ по адверсариальному ревью: «шум в генерации» опиралось на совпадение двух sd (совпадение дисперсию не раскладывает), «шум в судье, 73%» считалось на СЫРОЙ кросс-разности, куда входит разница уровней строгости, которой в поле нет. Свод и разложение считаются absjudge.py --pool, в дереве (прежде считались вне его).

ЭКОНОМИКА — РАЗМЕН, не доминирование. Парно связка ДОРОЖЕ однопроходки на +0.00096/единицу, 11 из 16 (≈+20%), ⚠ но как УСТАНОВЛЕННЫЙ факт не держится: собственный точный тест даёт p=0.061, интервал накрывает ноль при удалении любой из 9 единиц. ✔ По ТОКЕНАМ жёстче: +7601 (+114%), 16 из 16, p<0.0001 — долларовая разница есть артефакт прайс-листа. Прежнее «связка дешевле на 6%» сравнивало медианы маргиналов и переворачивалось при парном счёте. Жилец роли редактора — deepseek-v4-pro, обоснование ЦЕНОЙ: полная связка $0.00580 против $0.01025 у glm-5 (парные средние), не качеством.

⚠ ДЕТЕРМИНИРОВАННЫЙ КОНТУР ВЫВОД НЕ ПОДПИРАЕТ. Батарея, пересчитанная на ТЕХ ЖЕ текстах, что судились, даёт другой порядок: D (худший по судье) — лучший по правилам. Расхождение локализовано в слипании абзацев, которого не проверяет ни одно правило. Контуры смотрят в разные части оси ФОРМА.

ЧЕТЫРЕ АДВЕРСАРИАЛЬНЫХ РЕВЮ, находки приняты без спора. Сняты клеймы: «позиция исчезла по построению» (наклон +0.147 на шаг метки, измерен и поправлен) · «слипание у редактора не штрафуется» (штрафуется, 6 единиц из 16) · «связка дешевле» · «шум в генерации» · «ФОРМА конфаундом быть перестала» (размен внутри оси остался, лишь сошёлся в ноль). Починены исполнением: касса не видела оплачиваемых ею тегов bo4-* ($0.29309 мимо потолка) · гард пропускал python -c из каталога зоны · разбор ответов утаскивал соседнюю строку при пустом поле · контроль пола мерил разницу черновиков · приёмка требовала меньше, чем обещано судье.

ОСТАЛОСЬ НЕЗАКРЫТЫМ — требует владельца: слепое чтение ВЛАДЕЛЬЦА (единственный контур вне семейства сессии; агентские читатели семейно зависимы) · армы C/E/G заказа не построены (точечный ремонт, обратная связка, маршрутизация; route_arm.py в текущем виде не запускается) · дрейф на связном отрезке 810 глав · пара en под абсолютным ригом · арбитр вне семейства (нужны кредиты xAI). ⚠ Потолки ФАЗ промта пробиты: Ф1 $1.07473 против $1.00, Ф2а $3.887 против $2.50; верификатор сверяет отчёт с сырьём, но потолки промта НЕ сверяет. ВТОРАЯ ПАРА en→ru (Kristoff, контаминация 1/5 против 4/5 у основного материала) заведена сверх промта по слову владельца 07.08. Пар-специфика боевого промта редактора измерена — 4 места из 42 строк; пар-пакет eval/role_topology/prompts/en-ru/ заведён правкой только их ⇒ новая пара стоит ~4 клауз в данных, правки Go не требует. ⚠ ВНЕШНИЙ БЛОКЕР ВЛАДЕЛЬЦУ: кредиты xAI исчерпаны (HTTP 403 на 250 голосах). Второй судья заменён на gemini-3.1-flash-lite через положительный контроль (декой 6/6 в обоих порядках). Grok нужен и как судья 18+ — по quirks единственный живой на эротике. Уточнение к quirks 00: оговорка «на violence/SFW Gemini-судья жив» на вебновелле держится не целиком — 10 клеток пришли БЕЗ объекта сообщения с finish_reason: content_filter: PROHIBITED_CONTENT. Google непригоден как ЕДИНСТВЕННЫЙ второй контур на этом материале. Эхо-мина черновика измерена как частота: 5 ре-генов на 16 единиц zh (31% против документированных 15%), 0 на 12 единицах en. Открыто: дрейф на связном отрезке · армы C/E/G не гнались · банкнота как канал не замерена · разброс судьи-замены на повторе не измерен · чистый контраст мандата (у D_ своя вёрсточная строка, у D блок из 4 правил, промт ×1.92) · слепое чтение владельца · цена черновика, который реально правят армы. Не коммичу, кроме пре-рег-фриза; отчёт 21, харнесс eval/role_topology/ и этот пинг — на лендинг оркестратору.

Поправки приёмки №15 (D39.108) к пингам ниже — шапки отчётов первичны: verify_report = 20 проверок, не 19 · «вся сессия $2.1793» включала $0.107335 сырья research/24 — фактически 18+19+20 = $2.0720 · решающий замер §5.2 не персистирован («со слов»; направление держит §5.3) · цена раунда починки не входила в дифф (lu/ON 0.89→1.08) · offblock-числа сняты до-фризовым стемом.

ЭКСП-20 «РОЛЬ РЕДАКТОРА»: прогнан, отчёт docs/experiments/20-editor-role.md, $1.2285 из потолка $2.00 (поднимался дважды, оба раза объявлено ДО прогона). 7 контрактов × до 5 моделей × 2 целевых языка + арм починки + три раунда слепого судейства. Числа отчёта сверяются с сырьём командой: eval/editor_harness/verify_report.py (19 проверок, проходит). Роль редактора измерена и узка: в бейк-оффе «перевод с нуля против редактуры черновика» второй проход выигрывает ОДНУ ось из шести — русскую прозу; верность и общий вердикт — ничьи. Совпадает с ратифицированным D32.1(г). Ответ «нужен ли редактор» ЗАВИСИТ ОТ ПАРЫ «модель × роль» и переворачивается: у glm-5 связка выигрывает всё (вёрстка 6:0), у deepseek-v4-pro — модели, стоящей редактором в pipeline-c1.yaml СЕЙЧАС, — второй проход отрицателен (общий 1:5, обе целевые оси 3:3, при этом ломает фактуру). Цену держит ПОИСК, а не правка: арм «только найди» 2.14× от переписывания; починка по флагнутому спану — 12/12 дефектов снято на обеих моделях за $0.000173 (luna), в 5-6× дешевле поиска. Это механизм конкурентов (AiNiee, LinguaGacha), которого у нас нет (research/22:176 «флагаем, не чиним»). Методическая находка, обесценивающая часть выводов: разброс судьи на ИДЕНТИЧНОМ входе — 56% единогласия, 33% на несущих осях ⇒ судейство не разрешает разницу меньше ~2:1; перекрёстная проверка понижена до «не разрешает». Норматив: мерить инструмент ДО того, как им мерить. Отозвано из эксп-19 дважды: «дифф дороже» сужен до пары «модель × целевой язык» (deepseek-v4-pro 2.83 на ru против 0.67 на en); а объяснение, которым эксп-19 снял арм E, ОПРОВЕРГНУТО репликацией с выверенным по проводу зеркалом. Пинги бэкенду (чужая зона, не правлю): (1) боевой гейт disposition.go cjkEchoThreshold = 0.15 не ловит микро-утечку — gpt-5.6-luna роняет иероглифы в русскую прозу в 3 окнах из 6 при доле 0.5%; (2) банкнотный канал похоже тихо выключен — блока нет в prompts/zh-ru/translator.md, translator-banknote.md ни одним конфигом не выбирается, при том что холодный прогон банкноты собирал (56 из 128 ответов). Не коммичу; отчёты 18/19/20, правка квирков и пинг — на лендинг оркестратору.

ЧЕТЫРЕ ФАЛЬСИФИКАЦИИ Q4b ПРОГНАНЫ + РЕВЬЮ ПОСЫЛКИ + АДВЕРСАРИАЛЬНОЕ РЕВЬЮ РЕЗУЛЬТАТОВ (05.08). Пре-рег фризнут 4d1d9e5 ДО платных вызовов; 90 вызовов deepseek-v4-pro, все finish=stop, $0.349566 из потолка $0.50, прогон верифицирован (eval/premise_review/verify_run.py: теги ровно плановые, деньги сошлись вторым путём до 1e-6, малформед 0). Отчёт — 19-editor-contract-q4b.md §4§6. Итог армов: G устоял (комплаенс 0.966 на боевой единице ≥0.90) · N ПАЛ — do-nothing покупается сужением мандата (NO_CHANGE 4/18 против 0/36) · L не засчитан как фальсификация (посылка про ручку low не выдержала пере-счёта) · E не засчитан (зеркало промпта конфаундировано на проводе). ⚠ ОТЗЫВ ПРАВКИ ИСТОЧНИКА ИСТИНЫ, сделанной этой же сессией: 00-provider-quirks.md §3б звено (а) («low на pro срезает размышление на треть») ОТОЗВАНО — решающее правило «диапазоны не пересекаются» при n=3/3 воспроизводится НУЛЕВЫМ вмешательством (два блока дефолта на побайтно одном запросе разделяются так же и с тем же размером ×1.47). Строка §3а (lowhigh для pro) ВОЗВРАЩЕНА В СИЛУ до замера с мощностью. Звено (б) про xhigh в силе и усилено. Оркестратору: если правка §3б куда-то процитирована — сверить. Главное по существу: «дифф дороже full-regen» реплицировано ТРИЖДЫ (2.913 · 1.677 · 2.468, последнее — на боевой единице и дефолтном режиме), но ПРИЧИНА не установлена: обе гипотезы (несъёмный thinking · русская фертильность) остались непроверенными. Размышление = 95% цены диффа, растёт с объёмом ВХОДА (×2.78 при входе ×3.24, p=0.0003) и сужением мандата НЕ снимается. ⇒ строку 106 закрывать выводом «диффы не берём» преждевременно; контракт механически исправен, проигрывает режим. Проба 18 §C.5 (дозамер, $0.081326): гипотеза «чемпион glm-5 был искалечен выключенным мышлением» ОПРОВЕРГНУТА — с мышлением 24/45 против 25/45 при цене 4,4× ⇒ ограничение №5 отчёта 18 снято; на роли терминолога разум не конвертируется в качество ни у одной проверенной модели. Не коммичу ничего, кроме пре-рег-фриза; отчёты и правка квирков — на лендинг оркестратору.

КОНТРАКТ РЕДАКТОРА: арм Q4b прогнан впервые — строка 106 закрыта эмпирикой (расширение зоны по слову владельца 05.08), отчёт docs/experiments/19-editor-contract-q4b.md, потрачено $0.194006 из потолка $0.40. Пре-рег зафризен 52e12f3 до первого платного вызова; аппликатор самопроверен 9/9; 60 вызовов deepseek-v4-pro, все finish=stop, реплики ×3 на арм; материал переиспользован из пробы 18 ($0). Арм пре-регистрирован в exp15:108 и не гонялся ни разу с момента постановки. (1) Формат-гейт ПРОЙДЕН: комплаенс 0.975 / 0.949 при пороге 0.90, малформед 0/36 ⇒ опасение research/19 («слабые модели на edit-форматах хуже, чем отдавая текст целиком») на боевом редакторе и русской прозе НЕ воспроизвелось; толерантный apply отбросил 6 операций из 158, черновик в этих местах цел. (2) ⚠ ЭКОНОМИКА ПЕРЕВЁРНУТА — несущий результат: дифф-редактор в 1.52× ДОРОЖЕ full-regen ($0.004157 против $0.002686 за вызов). Разбор выхода: у диффа 96% completion уходит на размышление (3742 из 3904 ток.) против 58% у full-regen — поиск уникального якоря загоняет модель в долгую обдумку, а у DeepSeek reasoning биллится ВНУТРИ completion. ⇒ довод research/15 «дифф режет output-токены редактора, а это ~90% COGS» на thinking-модели НЕ ДЕЙСТВУЕТ и инвертируется; ручки бюджета размышления у v4-pro нет (lowhigh), конфигом не чинится. (3) Дифф выигрывает структурно на омиссии: потеря атомов полярности 01 против 711 у full-regen (~10×) — «структурно omission-safe» подтверждено; числовые «потери» диффа оказались ложными (он ПРАВИЛЬНО приводит доли 成 к процентам), после вычитки ≈0. (4) На fidelity-классе посадок паритет 100% (к2 6/6 = 6/6); на классе несуществующих слов дифф стабильно хуже на 1/6 («струмель» выжила 1/3, «дерзновяжной» 2/3). (5) ⚠ Дисциплина do-nothing НЕ покупается промптом: NO_CHANGE = 0 из 36 при явном разрешении жирным шрифтом; медиана 4.3 правки на вызов ⇒ вторая половина цитаты research/19 («LLM-редакторы правят даже корректный вход — гейт снаружи обязателен») подтверждена, надежда на первую снята. (6) Обе поправки к пробе 18, обе по репликам: в блоке контракт НЕ различает (21/21 у обоих во всех трёх розыгрышах, дисперсия была только у базы БЕЗ блока); клейм «блок поднимает канон вне блока до 24/41» ОТМЕНЁН — 24 был удачным одиночным розыгрышем, медиана трёх = 20 при 18 у черновика. (7) $0-находка, найденная до пробы: канон ПОДПИСАННЫХ строк ВНЕ инъецированного блока = 18/41 (44%) уже в ЧЕРНОВИКЕ (метрика editor_contract/offblock.py, 41 клетка, 18 сущностей) — инъекция селективна у ОБЕИХ ролей, дыра пайплайновая, а не редакторская; 花酒行者 («Монах Цветочного Вина») пришёл неканоническим от транслятора. Терминология решается покрытием инъекции, а не контрактом правки. Вердикт: формально дифф проходит стоп-гейт в прод-кандидаты, фактически НЕТ — по цене и по несработавшему do-nothing. Строка 106 из «когда-нибудь» переходит в «измерено, решение владельца»: дифф-контракт технически состоятелен и покупает omission-safety за +50100% цены на thinking-редакторе. Не гонялось: reflow-проход Q4c, судейский риг (проза и переверстка НЕ сравнивались). Сырьё ~/books/gu-zhenren/bank-arbitration/ префикс ec-*, риг eval/editor_contract/. НЕ закоммичено кроме пре-рег-фриза — лендит оркестратор.

Редакторский провод под доктриной закона + фронтир-пасс (промт POLYGON_EDITOR_WIRE_PROBE, D39.103/104) — ИСПОЛНЕН, отчёт docs/experiments/18-editor-wire-probe.md, потрачено $0.174390 из потолков $0.30+$0.50 (04.08). Пре-рег зафризен коммитом 080c15d за 46 с до первого платного вызова; байт-идентичность провода edit-стадии c1 доказана ИСПОЛНЕНИЕМ (overlay-go test реальных SystemFor(false)/MessagesWithInjection/RenderEditorConstraintBlock — sha256 всех трёх сообщений совпали с харнессом). 50 вызовов, все finish=stop. Проба A (v4-pro, $0.070293): (1) единый закон-блок исполняется 21/21 клеток, 6/6 окон ⇒ доктрина D39.104 на редакторском проводе подтверждена, двухсекционка не нужна; (2) несущая находка, которой не ждали: редактор БЕЗ блока сам ломает канон черновика — 5/20 клеток в одном розыгрыше контроля и 12/20 во втором (A5 по проводу = тот же контроль; «71%→100%» ошибочно как величина, честно «без блока 815 из 21, с блоком 21/21»). Редактор — не пассивная стадия, а самостоятельный источник разнобоя: «юань-камни», «изначальная сущность», «мастер гу», «Гу Юэ Мо Бэй»; (3) цена неверной строки на редакторе НЕ МЕНЬШЕ, чем на трансляторе: принята 6/6, вытеснила верную 5/6 (§C research/24 — те же 6/6 и 5/6); единственный выживший случай — глосса «Юаньхай — море истинной ци»; (4) межоконная консистентность единогласна 6/6 — инъекция канал разнобоя между главами не открывает, что и есть несущий довод D39.104; (5) A5, первый замер класса: посаженные дефекты черновика редактор чинит 12/12 (абракадабра 6/6, смысловые инверсии 6/6, глазами против исходника), НО в тех же вызовах ВНОСИТ свои — тихий обрыв выхода на полуслове при finish=stop (1176/16000 ток., кандидат в 00-provider-quirks.md по v4-pro), 五百年→«полувекового», разбиение реплики, переименование реалии вне блока; (6) кандидат-оговорка области §B НЕ ПОДТВЕРЖДЕНА и работает в обратную сторону: арм БЕЗ неё передал метаязыковой пассаж по смыслу 2/3, арм С ней — 0/3 (приклеил канон 2/3, потерял пассаж 1/3) ⇒ в injection.txt не вносить; (7) оговорка «не течёт 0/6» — метрика присутствия к протечке слепа, по счёту УПОТРЕБЛЕНИЙ 元石 8→4, 蛊师 4→3: нулевая протечка не измерена. Проба C (терминолог по 45 голд-термам, $0.104097): слаги владельца опознаны live /modelsgpt-5.6-terra/gpt-5.6-luna (есть и gpt-5.6-sol, не назывался); wire-квирк GPT-5.6 замерен, не угадан: плоский reasoning_effort в Chat Completions ЖИВОЙ (reasoning_tokens 0→48 terra, 0→57 luna), Responses API не понадобился. Фронтир НЕ ОПРАВДАН по пре-регу (нужно ≥+5): pro 9, terra 7, luna 7 против glm-5 25/45. Но сырой вердикт врёт о причине: после фолда конвенции 古月 (7 поверхностей + 人祖) разрыв исчезает — terra и luna догоняют до 26/45, net ±0 ⇒ 7 из 9 «промахов» фронтира это орфографическая конвенция, а не ум. Конвенция составных фамилий стоит 8/45 голда и перекрывает разницу между ВСЕМИ моделями — рычаг данных сильнее рычага модели (усиливает research/24 §D п.9). Экономика: gpt-5.6-luna = качество glm-5 за $0.23/книга против $0.59 (39% цены), дешевле даже flash-low; gpt-5.6-terra — то же качество за $2.61/книга (×11 к luna, 0 клеток); deepseek-v4-pro 24/45 за $0.43 ⇒ довод «pro умнее» на роли терминолога пуст. Адверсариальный проход author≠reviewer пройден (независимый агент от задания и сырья к отчёту, пере-счёт всех чисел своим кодом): вердикт «принять с правками», все числа CONFIRMED, 8 находок сверх отчёта — все пере-проверены мной по сырью, все подтвердились и вправлены (в т.ч. девиация пре-рега №1: на провод ушёл заголовок со скобкой ПЕРЕД оговоркой, а не как в §0.3 — при внесении §B брать отправленную строку). Объявленные девиации: пост-хок репликация AM (+4 вызова), cap=8000 у terra, frontier_probe.py вне фриза. Сырьё durable ~/books/gu-zhenren/bank-arbitration/ (префикс edp-*/fdp|flu|fte-*, 134 json), харнесс eval/bank_arbitration/{editor_wire_probe,frontier_probe}.py. Вопросы уровня владельца/оркестратора: (а) §B в движок — только единый блок, оговорку НЕ вносить; (б) обрыв при finish=stop — заводить ли в квирки и гейт; (в) конвенция 古月 данными пар-промпта; (г) luna как кандидат в терминологи. НЕ закоммичено (кроме пре-рег-фриза) — лендит оркестратор.

Арбитраж банка (строка 5, пере-запуск промта D39.89 по слову владельца, потолок $1.00) — ИСПОЛНЕН, отчёт docs/research/24-bank-arbitration.md, потрачено $0.0896 (04.08). Главное: (1) голд 53 approved сида → 45 в BANK-FULL, из них у 27 промахов прод-банка верный dst лежал в вариантах черновиков лишь у 5 ⇒ потолок любого «выбора из вариантов» = 17/45, селекционный арбитраж закрыт классом; (2) свежий терминолог-соло (flash-low) бьёт бесплатный базис §C2-3 +8/0, а равноправный консилиум НЕ окупается: +3 к само-согласованности = одна конвенция 古月; лучший одиночка glm-5 25/45 > лучший совет 23/45; добавление grok РОНЯЕТ совет 23→20; C3conf(взвешенный уверенностью) ≡ C3; ⟦TM-NO-DST⟧ = 0 на 35 вызовах трёх семейств; (3) вербализованная ЧИСЛОВАЯ уверенность разделяет внутри модели (AUC 0.770.85, слова хуже 0.63) при тотальной overconfidence (~88 при точности ~50%) — жить ей ordinal-очередью ревью, не арбитром; (4) химера семьи 古月 воспроизведена причинно на границе батча (свежий deepseek: «Гу Юэ» ровно в батче 2, «Гуюэ» ровно в батче 0), а по-терминная МАРШРУТИЗАЦИЯ (улики-первым) сама создала химеру 转-серии ⇒ единица арбитража/роутинга — кластер; DetectSeries разнодлинные семьи (古月×15, 蛊×14) не видит; (5) проба инжекта: инъекция поднимает следование канону 43%→95%, НЕВЕРНАЯ строка законом принимается 6/6, с маркером ⟨проверить⟩ — тоже 6/6 (Δ=0 п.п.): пометка на транслятор-проводе поведенчески пуста, цена неверной строки банка = ~100% заражение; (6) индустриальный обзор: стандарта арбитража термов не существует, наш дизайн впереди ближайшего аналога (DelTA first-wins); пропущенных стандартов нет. Рекомендации тремя корзинами в §D (строить: кластер-канал семей · intra-run CanonConflicts · наблюдаемость Signals/invented/conf · нормализованный голос foldVariants; закрыть: равноправный совет · кросс-модельные веса · self-consistency · селекция · отказ-сигнал). 4 вопроса владельцу в отчёте (мини-голд алиасов · конвенция составных фамилий · проба редакторского провода · фикс-пак корзины 1). Два адверсариальных раунда author≠reviewer пройдены (р.2 поймал 4 неточности, все вправлены; моя ложная оговорка про grok-ростер снята сырьём). Достройка по вопросам владельца (тот же день, +$0.0161, итог $0.0960): (а) $0-демо ценности на живом банке — intra-run чек связности поймал бы 18 невидимых противоречий на 149 финалов (12%), а нормализованный фолд голосов двигает топ лишь 1/75 (понижен до косметики); (б) мультиязычная проверка ja→ru и en→ru (multilang_probe.py): направление инжект-выводов ПЕРЕНОСИТСЯ — закон слушается, неверная строка принимается (ja 2/2, en 1/1), маркер Δ=0 на обеих парах; попутно ja-батч бэнк-вызова вернул термы упрощённым китайским — off-language класс, который парослепой экран OffLanguage отбил бы (несущая защита для будущей ja-пары). Кросс-пары по слову владельца (тот же день, +$0.0113, итог $0.1073): §F/§G отчёта. F1 zh→en: свежая en-редакция по тому же ростеру дала «Rank 1..9 · Grade A/B/C/D · Aperture · Gu Master» — 41/45 (91%) совпадений класса решения с подписями владельца (банк НЕ однобокий; буквенный маппинг 甲→A, недостижимый для ru-моделей, en-моделью взят — довод за сид/бриф-канал); fan-канон RI по памяти сессии ещё ближе к владельцу (元石 primeval stone = «первобытный камень»); ру-специфика ровно одна — слитность «Гуюэ». F2 en→zh (Кристофф-2026): deepseek идеально связал семью *-blood (X血者), glm сломал корень внутри ОДНОГО батча и разошёлся в имени Aaron между соседними окнами (艾伦↔亚伦) — дрейф, от которого банк существует, воспроизведён на en→zh; deepseek выдумал 5 незапрошенных строк (нужность гарда want[key] кросс-парно подтверждена); личная оценка прозы обеих моделей — «редактируемо-издательская», узкое место всех направлений — термы, не слог. §G — дизайн-синк алгоритмов бэкенда (готовый вход фикс-пака класса D39.71): G1 DetectFamilies (данные-гейтед, имя=префикс/реалия=суффикс, без транзитивности, мёрж в seriesID) · G2 ConsolidationConflicts (18/149 на живом банке) · G3 наблюдаемость (Signals/Invented/Conf + фикс ParseReply-джойна) · G4 кластерный роутинг рецензента · G5 фолд-косметика · G6 явные «не делать». Финальный рерайт отчёта по слову владельца (04.08): сага/хроника правок убраны, факты и оговорки сохранены, §G сведён к уровню алгоритмов; раунд 3 адверсариала (независимый агент по диффу v1→v2): числа 100% чисты пере-раном, новые клеймы подтверждены первоисточниками; его блокер (рерайт сжал зарегистрированные пре-реги §0/§E/§F) закрыт восстановлением пре-регов дословно с явной пометкой девиаций, потери фактов возвращены. v1-черновик — docs/archive/reports/DRAFT_BANK_ARBITRATION_V1_2026-08-04.md (помечен черновиком в шапке и именем; перенесён по слову владельца 04.08). Сырьё durable ~/books/gu-zhenren/bank-arbitration/ (84 json), харнесс eval/bank_arbitration/. НЕ закоммичено — лендит оркестратор.

→ ПРИЁМКА №13 (04.08, D39.102): ПРИНЯТО и залендено. Поправка арифметики пинга выше: инкремент §E = +$0.0065 ($0.0896 → $0.0960); «+$0.0161» — склейка инкрементов пробы C и §E ($0.0097+$0.0065), леджер отчёта чист (независимый пересчёт из сырья $0.107334). Оговорки приёмки — ревью-шапка research/24; находки сверх отчёта — строки 128132. Вопросы отчёта закрыты ВСЕ (D39.103/104). АКТИВНЫЙ промт полигона — docs/POLYGON_EDITOR_WIRE_PROBE_SESSION_PROMPT.md (проба редакторского провода ≤$0.30 + фронтир ≤$0.50; отчёт — docs/experiments/18-editor-wire-probe.md).

Сырьё арки банка + пробы фиксов (01.08) — приняты и залендены, детали в журнале выше (D39.65).

(Закрытые записи 26.07 — пакет-6 «размеченный набор» (D39.39) и пакет-8 «три пре-замера» (D39.4346/50/52) — в archive/PROGRESS-2026-07-25-31.md; пакеты Р6+P4 и ToS — журнал выше (D39.57/61).)