diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index f644d56c..a8c3b233 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -907,206 +907,9 @@ go run ./cmd/tmbankprobe -sheet A-pass1= -sheet A-pass2= -sheet B-pass > Вынесено по мандату владельца на снос протухшей прозы (`D39.239` п.4); ссылок извне на блок было **0**. > Живое из этих отчётов живёт нотами и строками трекера, а не здесь. -## Полигон - -### ХОЛОДНЫЙ ПРОГОН A — КНИГА ДОШЛА ДО КОНЦА (11.09, полигон-сессия, пак `POLYGON_COLD_RUN_A_SESSION_PROMPT.md`) - -**Строка бэклога 16 закрыта замером: доведённая до конца книга стоит $0.419424.** 蛊真人, главы 1–3, -zh→ru, от интейка до файла, прочитанного человеком. Отчёт (пре-рег + результаты + три прохода -критиков) — `docs/experiments/24-door-to-file.md`, инструменты — `eval/door_to_file/`, фризы `be53cc8` -(пре-рег и инструменты) и `44b33d9` (драйвер); бинари собраны из кода `b0f5d89`. Сырые платные -выходы — `books/gu-zhenren/door-to-file/` (33 файла, не коммичены: репозиторий книг отдельный). - -- **Прогон:** 25 мин 31 с, две попытки (банк-стоп exit 3 → резюм exit 0), `status: ready`, - `paused_reason` пусто, 4 юнита из 4 `translated`, `exports.complete = t` у txt (54 151 Б) и epub - (20 187 Б). Сборка: семь полей чисты. Стоп-правила не срабатывали ни разу. -- **Деньги сошлись СЕМЬЮ путями** на 419 424 µUSD; ⚠ независимый среди семи — ОДИН: движок считает, - движок пишет, платформа материализует из его же потока. Открытых резерваций 0. -- ⭐ **ВПЕРВЫЕ КОНСИСТЕНТНОСТЬ ТЕРМИНОВ ЗАМЕРЕНА ПО ТЕКСТУ ЧИТАТЕЛЯ, а не по черновику.** Движок сам - называет две популяции вопроса (`spread≥2` — 9 термов, `INVENTED(no draft proposed it)` — 11, из - них 7 вне первой): **16 из 69**. Исход: **9 доехали формой банка · 6 отданы НЕ банковской формой - (`高脚吊楼`: банк «дом на сваях», в файле «свайный дом» ×4, главы 1 и 3) · 1 отдан двумя формами** - («церемония открытия апертуры» ×9 и «великая церемония…» ×1, обе в главе 1). Механизм работает и - работает не везде — и теперь у этого есть числа. Это прямой ответ на приоритет владельца №1. -- ⛔ **Четверть денег купила пустоту:** 4 вызова из 27 вернулись на потолке `max_tokens` - ($0.106472 = 25.4 %), три из них — РОВНО 0 символов ($0.094835 = 22.6 %), включая самый дорогой - вызов книги ($0.071009, `edit`/`deepseek-v4-pro`, 16 000 оплаченных выходных токенов). Движок лечит - перевыпуском с удвоенным потолком — 4 раза из 4 успешно: путь не рвётся, а дорожает вдвое. Вторая - точка того же явления (08.09 было 32 %). -- ⛔ **Пин цены `deepseek-v4-flash` протух:** вендорская страница сегодня даёт вход 0.30 / cache-hit - 0.006 / выход 1.20 против наших 0.44 / 0.014 / 1.32 (у `pro` совпадает точно). Прогон по живым - числам стоил бы $0.397246 — **наш прайс завышает на 5.6 %**. Прогон шёл 01:29–01:54 UTC в пятницу, - внутри вендорского пикового окна 01:00–04:00 UTC ⇒ пиковое основание было верным. -- ⛔ **`model_actual` = `deepseek-flash` на 28 строках из 33**, а шлём `deepseek-v4-flash`: нас считают - под именем, которого в нашем реестре нет. Алиас это или другая модель — НЕ установлено. -- ⛔ **Терминологический контур оплачен дважды** (до стопа и после резюма): 15.6 % книги, из них - 6.9 % — второй заход. Разделения этих денег раньше не было. -- ⛔ **Три ловушки для того, кто станет считать деньги по этим таблицам:** - `run_attempts.spend_micro_usd` — величина НАКОПЛЕННАЯ (сумма по попыткам завышает цену на 38 %); - `err` пуст на ВСЕХ 33 строках, включая четыре провальные (отказ виден только в `degraded`); - Σ `chunk_status.cost_usd` недобирает ровно терминологию ($0.354127 против $0.419423). -- **Строка бэклога 224 воспроизведена живьём:** на банк-стопе `.bank.json` несёт `terms: []` и - `proposed[]` из 69 термов; проекция платформы — 0 до закрытия прогона и 69 строк после. -- **Две находки про развёртывание:** книга, которую пайплайн переводит бесплатно, НЕ ПРОДАЁТСЯ - (`step_max_usd = 0` → `409 not_priced`); шаблон книги по рецепту стенда роняет каждый старт `c1` - без `langpack_root` (exit 10). Ряды 411 и 412 завёл оркестратор. -- **Фриз-процедура пака была вырожденной:** бинарь из линкованного git-воркри не несёт `vcs.*` - вообще, и правило «отказать при `vcs.modified=true`» на нём выполняется всегда. Заменено клоном. -- ⚠ **Круги НЕ сошлись:** три прохода критиков дали 13 → 4 содержательных находок, и третий нашёл, - что мой заказ следующей сессии чинил не ту функцию прибора, а знаменатель был не один. Всё внесено; - сходимость не объявляю. Слабое место прогона названо в §11 отчёта — прибор расхождения форм и то, - что защиты (стоп-правила, потолки) на боевой руке ни разу не выстрелили. - -#### ⚠ ПИНГ ОРКЕСТРАТОРА №23 (10.09) — ПЯТЬ ЯКОРЕЙ В ВАШИХ ДОКАХ УКАЗЫВАЮТ НЕ ТУДА - -`docs/experiments/` — ваша зона, рукой не трогаю. Адреса пере-снял своим прибором по тому же токену: - -- `00-provider-quirks.md:163` → `backend/internal/llm/httpllm.go:517-522` → **739–751**, токен `SystemMessagesSingle`; -- `00-provider-quirks.md:164` → `backend/configs/models.yaml:137` → **173** (`system_messages: single`) - и `backend/internal/llm/httpllm.go:528` → **750** (`func toOpenAIMessages`); -- `23-editor-tier.md:5274` → тот же `models.yaml` → **173**; `:5276` → тот же `httpllm.go` → **750**. - -Все пять сдвинул мой лендинг `3f05fab` (пак оборванных вызовов правил `httpllm.go` и `models.yaml`). -Ещё два якоря `23-editor-tier.md:7739-7740` (`pipeline-c1.yaml:95`, `pipeline-arm-glm.yaml:6`) уехали -РАНЬШЕ и не от меня — цели я не трогал, токенов по прежним адресам там нет. - -**📌 02.09 · ПИНГ ОРКЕСТРАТОРУ (два входа в бэкенд) + ИТОГ СЛЕПОГО ЧТЕНИЯ. Решения владельца от 02.09 внутри.** -Носители: пре-реги и результаты — `eval/dovodka/blind-read/` (`PREREG-BLIND-READ.md` + `RESULT-BLIND-READ.md` с семью эрратами, `PREREG-2-BLIND-READ.md` + `RESULT-2-BLIND-READ.md`), прибор дрейфа — `eval/dovodka/dreif.py`. - -* **РЕШЕНИЯ ВЛАДЕЛЬЦА 02.09 (ратификация за оркестратором).** (1) **Дефолт редактора — `low`**, бремя доказательства на том, кто включает дорогой режим. (2) Вопрос «`off` против `low` по качеству» **закрыт как неизмеримый этим прибором** — судейских реплик не покупать. (3) Питон-прибор дрейфа пишет полигон (сделано), **настоящий прибор — в движок, это пинг ниже**. (4) Покупка 50 глав на длину **отложена до прогона в бэкенде** (слово владельца). -* **⚠ ВХОД 1 — офлайн-пересчёт по уже оплаченному тексту (`tmctl recheck` или равное).** Проверки движка исполняются ТОЛЬКО в момент генерации; готовый текст в базе перепроверить нечем, и потому частота ложных тревог пост-чека не измерима без покупки. Полигон закрыл дыру питон-двойником (`dreif.py`), но **это не тот же прибор**: у движка стеммер целевого языка и сохранённые формы, у двойника — сопоставление по началу слова. Два «детерминированных» прибора с разными ответами — тихий дрейф нормы; строку в бэклог просит полигон, решение за оркестратором. -* **⚠ ПОПРАВКА К ЭТОМУ ПИНГУ (02.09, позже в тот же день): входов НЕ ДВА, А ЧЕТЫРЕ, и «включить гейт» из них самый мелкий.** Разбор начат вопросом владельца («в бэкенде нет майнинга term — „мастер гу“ не замайнится»). Проверено исполнением: **майнинг term РАБОТАЕТ** (68 записей класса `term`, `蛊师 → гу-мастер` в банке есть), но владелец прав по сути — цепочка «намайнил → классифицировал → подписал → инжектнул как закон → проверил» рвётся в ЧЕТЫРЁХ местах, и замеренный дрейф (30 ключей из 102 несут >1 передачу, максимум 7 форм) — их следствие. - * **(1) `term` — класс-умолчание, а не решение.** `backend/internal/pipeline/banknote.go:79` дословно: «bankTypeOK is the accepted type set; **anything else falls back to "term" (a benign default)**». Две трети банка пробы (68 из 102) сидят в этом умолчании. - * **(2) Классификатор умеет различать `term`, но в пробе НЕ ДОБЕЖАЛ.** Определение в `backend/prompts/zh-ru/classifier.md:20-23` точное («реалия, понятие, предмет, материал, вещество, класс существ — всё, что переводится ПО СМЫСЛУ», пример `元石 term`). Однако лог пробы: `batches_planned=8 · batches_running=6 · classify_batches_dropped=4` при `budget_usd=0.05` против `estimate_usd=0.0978`; итог `unanswered=7`, `reclassified=5`. Движок сам предупредил: «this bank is PARTIALLY consolidated — a budget cut a pass, so some terms were never offered to the role at all». ⇒ типы выставила банкнота или умолчание кода, а не тот механизм, который умеет. - * **(3) Промпт банкноты недоспецифицирует класс `term`.** `backend/prompts/zh-ru/translator-banknote.md`: просит «новых имён собственных и терминов», список типов даёт, но **определения `term` нет, а единственный пример — `师父 наставник title`**, то есть образец уводит в титулы; лимит «не более 20 строк» на фрагмент вытесняет понятия в пользу имён (имена заметнее). Правка промта — не Go и пары не касается. - * **(4) Инжект фильтрует по ПОДПИСИ, а не по классу.** `backend/internal/membank/memory.go:663`: `status == "approved"` → `Confirmed`, иначе `Ambiguous`; `priorityRank` (там же, ниже) вытесняет неподписанное первым при token-бюджете (`glossary_token_budget: 800` на 102 записи). При `approved=0` весь банк едет «неуверенным кандидатом» — форма не объявлена законом, и удерживать её нечему. Это и есть механизм дрейфа `蛊师` («гу-мастер» / «мастер гу») и `元石` (семь форм). - * **⚠ (5) НАБЛЮДАЕМОСТИ НЕТ на редакторской стадии.** `retrieval_state` в базах пробы держит **35 строк, все под DRAFT-снапшотом** (`8d5721f65596`), под edit-снапшотом (`b76ab168d95b`) — **НОЛЬ строк**. Доехал ли банк до редактора и сколько записей вытеснено бюджетом, из артефактов узнать НЕЧЕМ. Все счётчики на черновой стадии нулевые закономерно: банк рождается ИЗ черновика, на нём его ещё нет. - * **Порядок, который из этого следует** (предлагается, решение за оркестратором): наблюдаемость инжекта на edit-стадии → бюджет классификатора (пять центов режут половину работы) → определение и пример `term` в промте банкноты → подпись банка и заполнение форм → и только потом жёсткий режим гейтов. - * **⚠ ТРИ ПОПРАВКИ К МОИМ ЖЕ УТВЕРЖДЕНИЯМ ВЫШЕ, найдены консилиумом 02.09 и пере-проверены мной исполнением.** - · **(5) сформулирован неверно в ПРИЧИНЕ.** «Ноль строк под edit-снапшотом» — не разрыв, а схема: `PRIMARY KEY (book_id, chapter, chunk_idx)` **без snapshot_id** (`store/migrate.go`), редактор мержит в ту же строку, и `snapshot_id` в ней — просто последнее записанное. Вывод «наблюдаемости нет» ОСТАЁТСЯ верным, но дыра в другом: счётчики инжекта редакторской волны не пишутся никуда (`pipeline/chunkrun.go:202`). - · **«ни один $0-гейт не поймал латиницу» — неточно.** Детектор латиницы ЕСТЬ и вызывается всегда (`checks/cheapgates.go:192`, `lintLatinResidue`), но по построению он **наблюдатель, а не вердикт**: дословно `cheapgates.go:22-27` — «They are OBSERVABILITY, never hard gates… never changes a chunk disposition». Гейт видел и молчал, потому что так устроен. - · **Источник «cultivation» — НЕ glm-5.** Пере-проверено по стадиям: слово рождается в ЧЕРНОВИКЕ (`deepseek-v4-flash`, 7 клеток) во ВСЕХ руках, потому что черновик общий; редакторы DeepSeek его вычищают (**0** в финальных текстах `p9-low`/`p7-off`), а `glm-5` — нет (3 клетки на edit, **2 доживают до финала**). Значит это дефект не породителя, а фильтра, и прежняя формулировка «glm-5 опознаётся по латинице» верна по факту, но неверна по причине. - * **Улика к строке 46, а НЕ находка: полный провал языка цели.** `books/dovodka/dv-i-z8-fb9ed5709e.json` — глава пары zh→**ru** переведена целиком **на английский**: пере-считано мной, **7104 латинских знака, 0 кириллицы**, `finish=stop`. ⚠ **Прежняя формулировка «главного, чего в пинге не было» СНЯТА 03.09: это уже заказанная работа.** Строка бэклога **46** называет ровно этот случай дословно — «Экран целевого языка: „полный связный перевод на английский" проходит»; дизайн пака **заморожен владельцем** (D39.92 п.1 closed-set + D39.93 изолированный модуль), предгейт — строка **113** (фикстура ~20 off-target). ⇒ ценность вычитки здесь — не гейт придумать, а **дать строке 46 живую улику с боевого прогона**. - -* **📌 03.09 · ВЫЧИТКА 17 ГЛАВ БОЕВОГО ПЕРЕВОДА ($0, 17 агентов Opus, по агенту на главу с исходником).** Материал — `p9-low` (дефолт редактора по решению владельца 02.09), экспорт `tmctl export --pairs`. Инструкция вычитчику разделяла ДВА уровня: «читатель споткнётся» (против них меряется планка владельца ≤2 на главу, D39.20) и «мелочь корректора». - * **Планка НЕ взята: 59 блокирующих претензий на 17 глав = 3.5 на главу.** В планку уложилась 1 глава из 17. При этом все 17 вычитчиков независимо ответили «читается как книга» = ДА. - * **Классы (всего / из них ловится детерминированно):** смысл-искажён 12/0 · имя-термин-непоследователен 10/10 · translationese-грубый 9/2 · род-гу 7/6 · логика-действия 6/1 · иное 5/3 · язык-не-тот 4/4 · пропуск 3/3 · меры 3/3. ⇒ **механизируемо 32 из 59 (54%) ПО ОЦЕНКЕ ВЫЧИТЧИКОВ**; ⚠ оценка завышена: прогон существующих `RunCheapGates` по 11 цитатам дал 1 срабатывание из 11 (сегодняшний код берёт заметно меньше). - * **Остаток, который не берёт ни один детерминизм: 12 искажений смысла + 6 сломанных мизансцен = 1.1 на главу** — то есть НИЖЕ планки владельца. Образец (гл.1): «перекрыл им путь, **сделав шаг в сторону**» — по-русски «посторонился», фраза противоречит себе; в оригинале 横跨一步 = шагнул НАПЕРЕРЕЗ. - * **⛔ Найдено проверкой самих вычитчиков (системнее, чем они доложили): заголовки глав теряются.** Исходник даёт `第二十六节:一切组织的本质` — номер И название; движок кладёт в заголовок только номер (`chunk/chunker.go` `stripHeading`/`ApplyHeading`), название сваливается в тело как обычная строка. Дальше как повезёт: **название уцелело у 11 глав из 17, потеряно у 6** ⇒ на 2283 главах это ~800 глав без названия вперемешку с озаглавленными. Ловится тривиально: заголовок состоит только из номера. Улика к строкам бэклога **160/161/162** и **201**. - * Сырьё вычитки: `/tmp`-экспорт не сохранён (волатилен), воспроизводится командой `tmctl export --config arms/p9-low.book.yaml --pairs`; вердикты 17 агентов — в задаче воркфлоу `wfofkln2i`. - -* **📌 03.09 · КАНОН СУЩЕСТВУЕТ, ПОДПИСАН И НЕ ПОДАН В СТЕНД (проверено исполнением).** `~/books/gu-zhenren/guzhenren-seed-v2.yaml` — **58 записей, из них 53 `status: approved`**, 16 с полем `gender`. В нём ровно те термины, на которых спотыкались вычитчики: `资质 → талант` (канон владельца D39.21), `元石 → первобытный камень` (а в пробе намайнилось 7 форм), `甲等/乙等/丙等 → класс А/Б/В` (а в переводе «категория **C**» ЛАТИНИЦЕЙ), `蛊师 → гу-мастер`. **В `~/books/gu-zhenren/probe-4axes/book.yaml` ключа `glossary_seed` НЕТ — 0 вхождений**, и шапка стенда объявляет это сознательно: «Сид НЕ подключается — банк рождается майнером + банкнотой, как в холодном прогоне». - ⇒ **Прежняя формулировка «банк не подписан» (запись 02.09) НЕТОЧНА и настоящим уточняется:** не подписан МАЙНЕНЫЙ банк, а подписанный канон просто НЕ ПОДКЛЮЧЁН. Весь измеренный дрейф (30 ключей из 102 с >1 передачей) — дрейф конвейера с отключённым каноном. Контр-факт на той же книге: с подписанным банком эффективная консистентность **99.3–100%** (Д50.2, 375–548 пар). - ⚠ Записи `蛊` в сиде НЕ ХВАТАЕТ поля `gender` (средний род прописан прозой в `note`) и стоит `allow_short: false` при `minKeyLenHan=2` ⇒ односимвольный ключ структурно вне автомата. Это две строки ДАННЫХ, не код. - -* **📌 03.09 · СВЕРКА С ПЛАНОМ ПОСЛЕ ЗАМЕЧАНИЯ ВЛАДЕЛЬЦА — 10 «предложений» из 11 оказались уже заказанной работой.** Владелец: «вы рассуждаете без оглядки на ту архитектуру и код, что уже построена или ЗАПЛАНИРОВАНА». Замечание верное: консилиуму давали код и данные вычитки, но НЕ давали целевую архитектуру, ЕДИНЫЙ БЭКЛОГ и журнал решений. Тот же консилиум, подняв прежний контекст, прочитал план и снял свои же предложения. Сверено мной по носителям. - * **Уже в плане:** вынести вердикт-поля из хеша = строка **49** (спека `backend/docs/D15.2-content-addressed-resume-spec.md`) · экран языка цели = строка **46** · заголовки глав = строки **160/161/162** и **201** (гейт пал словом владельца 15.08, D39.136 п.3) · петля ремонта = **построена** за `enabled:false`, включение — строка **13** (владелец) · морфо-гейт рода = строка **82** · числа и меры = строка **12** через триггер D39.79 п.4 · критик = строка **2** (владелец). - * **Уже ПОСТРОЕНО:** род `neuter` end-to-end — **D39.69 §3** (`13-tech-debt-anchors.md`: «носитель ПОСТРОЕН»). Остаток по роду «гу» — **две строки ДАННЫХ** в сиде стенда (`guzhenren-seed-v2.yaml:291-300`: `allow_short: false`, поля `gender` нет) плюс ключ `glossary_seed`. - * **⛔ Противоречит ратифицированному:** патч-протокол редактора ↔ **D39.108 п.1** «диффы откладываются» · критик как стадия движка ↔ **D38.4 п.2** «семантический span-судья — ОТКАЗ» · подпись ~30 ключей поимённо ↔ **D39.144** «подписывается ВЕСЬ банк ОДНИМ ОК; пер-термная масс-подпись = инерция» · канал идиом врезкой dst ↔ **D38.4 п.1** «глоссарий-сидинг чэнъюй НЕ делаем» · таблица мер ↔ **D39.79 п.4** «HARD-value-детектор НЕ строить». - * **Что вычитка дала по-настоящему:** улики к уже открытым строкам — **46** (глава на английском), **82** (7 дефектов рода), **142/13** (классы для точечной починки), **160** (6 глав из 17 без названия ⇒ ~800 на книгу), **12** (триггер реопена по числам НАЖАТ: #46/#13/#11). Это подтверждение заказанного, а не новый список. - * **Метод-урок, дороже находок:** сутки ушли на переоткрытие бэклога, потому что план не был подан консилиуму. **Любой панели, обсуждающей ЧТО СТРОИТЬ, план подаётся вместе с кодом** — иначе она уверенно переизобретает заказанное. ⚠ Для полигона отсюда следует и граница: строки 46/49/82/142/160/12 — **зона бэкенда**, полигон в них не лезет; его законная часть — улики и замер (см. ниже). -* **⚠ ВХОД 2 — пост-чек банка не имел ВХОДА, а не только был выключен.** В пробе `gates.coverage.enabled: false` и блока `gates.glossary` нет — это известно; но сверх того: из 102 записей банка **ни одна не доведена до `approved`, и `decl` пуст у ВСЕХ**. Пост-чек проверяет подписанные термины (`membank/mempostcheck.go`), значит молчал он по двум причинам сразу. Условие включения жёсткого режима записано в самом коде — «после того, как владелец подтвердит точность», а точность мерить не на чем, пока банк не подписан. Порядок для бэкенда: подписать банк → заполнить формы → замер ложных тревог → решение владельца. -* **ИТОГ СЛЕПОГО ЧТЕНИЯ (две редакции, 219 судей Opus, $0.66 на реплику `low₂`).** Редакция 1 дала 18:6 «дешёвая рука лучше» — **вывод СНЯТ**: судьям показывали усечённый черновик (стадия `edit` склеивает несколько draft-чанков; в 10 юнитах из 15 опора покрывала 55–79%). Редакция 2 на склеенном по манифесту черновике (покрытие 99–100%) плюс **активные нули** (`low₁` против `low₂`): **судьи назвали победителя в 29 голосах из 30 на чистом шуме**, перекос на шуме (80%) БОЛЬШЕ боевого (70%). Первичные исходы: точность 12:10:8 (p=0.842), художественность 19:8:3 (p=0.070, Холм **0.141**) ⇒ **различие НЕ ПРЕДЪЯВЛЕНО**. Механика вскрыта: в **73 голосах из 74** побеждал вариант с меньшим числом претензий, а счётчик упирался в потолок в половине голосов. Текстовый шум одной руки (0.799) больше межрежимного (0.820). -* **ПРИБОР ДРЕЙФА, первые числа ($0, на уже купленном).** Терминов с более чем одной передачей в тексте — 13–16% от измеренных; сменивших форму между главами — 6–8%. Независимым путём (поле `spread`, считает сам движок): **30 записей из 102 несут >1 передачу, максимум 7 форм у одного ключа** (`元石`: «юаньши · камень юань · изначальный камень · первородный камень…»). ⚠ Разброс МЕЖДУ режимами (0.3–1.9%) **не превышает шум-пола** (2.4%, снят по паре реплик одной руки) ⇒ дрейф на этом отрезке — свойство черновика и банка, **не редактора**; экономия на редакторе к нему отношения не имеет. -* **⚠ Мои ошибки этого пака, названные вслух:** первая редакция пре-рега имела невалидный первичный тест (ничьи в знаменателе против H₀=50% дают ошибку I рода 17.8%) и правило решения с непокрытым пространством исходов; гейт слепоты искал `[A-Za-z]{2,}` и пропускал одиночные латинские буквы (23–25 на руку, слепота при этом не пробита — асимметрия 8%); первый гейт покрытия мерил долю совпавших слов и срезал 14 юнитов из 15, потому что смешивал «нет опоры» с «сильно правил»; первый парсер банка искал `src:` вместо формата «ключ⇥передача» и печатал «дрейф 0%» на пустых вариантах — отказ пойман гейтом парсера, который теперь в приборе. Сверка с нормами оркестратора post-hoc: риг нарушил «оба порядка» (обе редакции), «полно-evidence окна» (редакция 1), «шум-полы измерены» (редакция 1), «детерминированный скорер > судьи» и D39.61 «вывод на агрегате до вскрытия единиц». - -**📌 02.09 · ПРОБА РЕДАКТОРА ПО ЧЕТЫРЁМ ОСЯМ КУПЛЕНА И ЗАКОНЧЕНА. Ответ на вопрос владельца «почему редактор дорог» получен: ОН ДУМАЕТ, А НЕ ПИШЕТ.** -Отчёт — `docs/experiments/23-editor-tier.md` **Д54**. Пре-рег стенда — `eval/dovodka/prereg-4axes/PREREG.md` (фризы `c08b547` и `590256a`), журнал исполнения со всеми находками — `eval/dovodka/prereg-4axes/ISPOLNENIE.md`. Стенд — `~/books/gu-zhenren/probe-4axes/`. **Израсходовано $5.524817 из санкции $9.50; остаток $3.98 НЕ добирался.** - -* **E0 — ответ на вопрос.** Размышление = **77.9%** цены редактора без ручки (`p7-off`) и **76.6%** (`p9-off`); с `low` — 45.7% и 46.7%; у `glm-5` с выключенным thinking — **0.0%**. Ретраи: 39.3% и 26.3% цены руки против 1.8% и 6.0% у `low`. -* **E1 (главный) — эффект ЕСТЬ.** Вилкоксон-Пратт, n=17, **p=7.6e-05**, Ходжес-Леман **×0.283**, ДИ **[0.175; 0.431]**. 19 пар из 40 цензурированы ⇒ величина — **нижняя граница**: `low` режет размышление **минимум втрое**. -* **E2 — цена доставленного знака падает в 2.5 раза** (боевая ×0.407 [0.326; 0.605]). Все ЧЕТЫРЕ заранее объявленных варианта, включая строгое `delivered` и кэш-независимую цену, согласны по знаку и величине. -* **E3 (ось промпта) — НИЖЕ РАЗРЕШЕНИЯ** (p=0.487). **E4 (взаимодействие) — ниже разрешения** (p=0.854), описательный по построению. -* **E5 — опасение плана ОПРОВЕРГНУТО: `low` БЕЗОПАСНЕЕ.** Эхо-клеток у `∅` 2, у `low` **0**; обрывов по длине 10 и 9 против **1 и 1**. Критерий риска не предъявлен. ⚠ Эхо считается по СЫРОМУ ответу: санитайзер его вырезает, и по отгружаемому тексту эхо не видно вовсе. -* ⛔ **ИЗ ЭТОГО НЕ СЛЕДУЕТ РЕКОМЕНДАЦИЯ СТАВИТЬ `low` В БОЙ.** Качество не судилось — прямо вне скоупа. Проба даёт цену рычага и снимает подозрение по эху; следующий шаг — судейство качества `low` против `∅`, и теперь его стоит купить. - -**⛔ ГЛАВНАЯ НАХОДКА О ДВИЖКЕ, КОТОРОЙ ПЛАН НЕ ЗНАЛ: АВТО-БАНК РАСТЁТ МЕЖДУ ПОКУПКАМИ.** Терминолог перезапускается в каждой руке и, пока у него есть бюджет, доращивает банк — а банк есть ВХОД РЕДАКТОРА. В базе `consolidated=51`, в первой же руке 81, `memory_version` уехал, edit-снапшот сдвинулся, движок потребовал `--resnapshot`. Без гарда это проявилось бы на втором юните уже с оплаченными клетками, а хуже — банк мог вырасти ПО-РАЗНОМУ в разных руках, дав редактору разный вход при внешне исправном кресте. Лечение: гонять базу конфигом БЕЗ стадии `edit` до неподвижной точки, где терминальное условие — **ноль свежих платных строк И ни одного отказа по деньгам** (одного «`memory_version` не изменился» НЕДОСТАТОЧНО). Стоило $0.0352. - -**⭐ И ещё три находки, полезные любому следующему замеру.** (1) **Проводная улика СУЩЕСТВУЕТ** вопреки §3 плана: `LOG_LLM_BODIES=1` + `LOG_LEVEL=debug` пишет сырое тело запроса (`obs/logging.go:72` ← `llm/httpllm.go:415`), только тела, без URL и заголовков — снято, что у `low`-рук в теле стоит `reasoning_effort:"low"`, у `∅`-рук ключа НЕТ, у `glm-5` — `thinking:{type:disabled}`. (2) **Ось креста можно доказать ЗА $0**: потолок «база + малая сумма» отказывает первой edit-резервации, но снапшот и джоб к этому моменту уже вычислены; ⚠ потолок обязан лежать НИЖЕ редакторской резервации, но ВЫШЕ батча терминолога, иначе ложная точка выглядит тишиной. (3) **`tmctl manifest` бесплатен и даёт `units_total` ДО покупки** — `n` пинится числом, а не «сколько получится» (здесь 17 глав → 20 юнитов, а не ожидавшиеся 24). - -**Самопроверка исполнением (мандат промта §7):** агент-контролёр на `fable` вёл всю сессию по распоряжению владельца и поймал у меня **шесть ошибок**, из них четыре — одного класса «показания собственного инструмента приняты за факт о мире»: слепой к эху E5, ковариата по первому чанку вместо суммы (15 юнитов из 20), ложная неподвижная точка банка, дефект регулярки, выданный за находку о проводе. **Все пойманы ДО того, как повлияли на результат**; реестр с классами — Д54.5. Я, в свою очередь, опровергла исполнением одну его находку и одну свою. - -**⚠ ЧТО ПРЕДЪЯВЛЕНО, А НЕ СПРЯТАНО:** гард «зелень на пустоте» прошёл ВПРИТЫК — у `p7-off` пустых ровно 4/20 = 20% при правиле «>20% ⇒ отказ», а по строгому определению доставки было бы 25% и прибор отказал бы; четыре оплаченных `decode_error` в `p7-off` на $0.689 (34.5% цены руки), все на ретраях после обрыва, при нуле в трёх других руках; три юнита выброшены из E1 по `R̂ ≤ 0`, и два из них — `low`-клетки с почти нулевым размышлением, то есть выброс делает вывод КОНСЕРВАТИВНЕЕ. Полный список — Д54.4. - - -**📌 29.08 · ФАЗА Д — НА ОБА ГЛАВНЫХ ВОПРОСА ВЛАДЕЛЬЦА ОТВЕЧЕНО, ВОПРОС 0 ОСТАЁТСЯ ОТКРЫТЫМ. Сессия $0, ни одного платного вызова.** -⚠ **«Отвечено», а не «закрыто», и разница существенная:** на Вопрос 2 ответ дан в форме СЛАБЕЕ, чем звучит сам вопрос — минимакс не проверен (худший ВОЗМОЖНЫЙ жилец не искался), вендоро-независимость архитектуры НЕ проверена (буфер двухвендорен: черновик делает DeepSeek). Первая редакция этой шапки писала «ЗАКРЫТЫ», хотя буллеты под ней несли оговорки — поправлено адверсариальной приёмкой. -Отчёт — `docs/experiments/23-editor-tier.md`, секции **Д35–Д38**. Агент-сессий 154 → **186 из 200**. Деньги не тронуты: резерв пака $1.2634 из $18.30 как был. - -* **Шаг 4 плана 22.08 ЗАКРЫТ** (Д36) — последнее незакрытое условие §7, которое можно было закрыть бесплатно. Дуэль «ролевой промт против его отсутствия» на 16 уже купленных карантинных клетках, панель из 5 армов с ГРУБЫМ ДЕКОЕМ (`ZD`), 16 читателей `fable-5`. **Промт различим: +1.50 места при пороге 1.13, знаковый p=0.0213, 13 глав из 16 в одну сторону** — ровно порог, объявленный пре-регом ДО чисел. ⇒ у прибора ЕСТЬ разрешение на промт-инженерном материале, и **всё, что фаза назвала неразличимым, меньше, чем ВЕСЬ ролевой промт**. -* ⭐⭐ **И промт покупает ПРОЗУ, а не БРАК:** детерминированный счётчик дефект-классов разницы между «с промтом» и «без промта» НЕ находит (p=0.6875) при том, что грубый декой на той же панели ловит (p=0.0156). Класс Б: текст без промта читатель называет машинным в **9 главах из 16**, с промтом — **ни разу** (p=0.0039). ⇒ минимакс владельца получает третий член: по браку несут гейты, **по прозе — ростер И ПРОМТ**, и вес промта того же порядка, что вес целой дорогой стадии. -* ⭐ **Закрыт долг Д34.5, который фаза назвала сама:** третий круг панели-0 тем же `fable-5` дал первую в фазе оценку СОБСТВЕННОГО шума прибора. **Доля чисто читательского шума в пороге = 0.34**; смена семейства стоит столько же (0.32–0.43) ⇒ подмена судьи по средним оправдана. ⛔ Но хвост разошёлся и **воспроизвёлся**: полный переворот порядка не случается внутри семейства ни на одной из 16 глав и случается между семействами на той единственной, где сталкиваются брак и проза — обеими межсемейными парами. Вердикт о буфере при этом устоял ТРЕТИЙ раз (p=0.0042 · 0.0213 · 0.0042). -* **📌 ПИНГ ОРКЕСТРАТОРУ №19 — твой вопрос по Gemini (D39.164) ЗАКРЫТ, и без новых покупок.** Выживает **ПОСЛЕДНЕЕ** системное сообщение, выбрасывается ПЕРВОЕ: разность `RE.prompt_tokens − RQ.prompt_tokens` = **2436 РОВНО на всех 16 главах, sd=0**, а постоянного размера из двух системных только первое. Улика исполняемая — `eval/dovodka/sysmsg.py`, EXIT=0. Твои три поправки (переоценка «физически не может», повторяемость `Content.parts[]`, форум как не-источник) внесены в `00-provider-quirks.md` моей рукой, как ты и просил. ⛔ **И следствие для движка правится в ХУДШУЮ сторону, хотя дефект уже закрыт твоим же лендингом `7d0c6f2`:** до 28.08 хоп в Gemini терял **не глоссарий, а ВЕСЬ ПРОМТ СТАДИИ** — `render.go` кладёт промт первым, инъекцию второй. Любой исторический результат на Gemini-хопе до 28.08 читать как «стадия работала без своего промта». -* ⛔ **СВЕРКА `--final` СДАНА КРАСНОЙ: ТРИ ПРОВАЛА, И НИ ОДИН НЕ ПРО РАБОТУ** (диагноз на каждый — Д39.2; гейты я НЕ чинил под зелень). ⚠ Первая редакция этого пинга называла ДВА и недосчитывала R37 — поймано адверсариальной приёмкой исполнением. (1) Переезд обнулил mtime всего сырья — 335 клеток Ф2 имеют ОДИН mtime, поэтому `eval/tenant_panel/verify22.py` считает границу двойной оплаты как `$0.000000` и роняет **R71**. Клетки времени покупки в себе не хранят ⇒ улика утрачена безвозвратно, результат — нет. (2) Улика **R77** («пинг в PROGRESS») ищет заголовок хроники за 15 августа со словами «ФАЗА Д», который вынесение хроники увезло в `docs/archive/PROGRESS-2026-08-10-15.md:73`=`сырьё снято, выводы ПОНИЖЕНЫ`. ⚠ Точную строку здесь НЕ цитирую намеренно: первая редакция этого пинга процитировала её — и гейт позеленел от того, что я НАПИСАЛ ПРО ГЕЙТ, а не от того, что исполнил обязательство. Это ровно та подмена, против которой реестр и заведён; поймано собственной сверкой `--final` ⇒ протух ГЕЙТ, а не обязательство. **Норма впредь: время покупки и время ответа писать ПОЛЕМ В АРТЕФАКТ, а не полагаться на файловую систему.** (3) **R37 — ложный КРАСНЫЙ от нотации, а не от переезда:** улика записана как `material_ja.py \| grep -q "СТОП\|OK "`, разборщик реестра восстанавливает `\|` в `|` ОБЕИМ чертам — и трубе оболочки, и альтернации внутри grep, — а без `-E` черта в grep литеральна. Сам замер зелёный: `[OK ] срабатываний нет: 0 из 48 чанков`, EXIT=0. ⚠ У этой же строки в прошлом был ложный ЗЕЛЁНЫЙ по той же причине — нотация ломает улику в обе стороны. **Реестр я не правил: чинить улики в момент сдачи — это и есть «дописать таблицу под результат».** ⚠ **И отдельная находка приёмки, НЕ моя:** в журнале агент-сессий есть доисторические дубли токенов внутри прогона `d4` (15 токенов заявлены дважды) — они стояли в HEAD до этой сессии, а `runs.py --selftest` такой класс не ловит. -* ⚠ **Зона не запускалась на этой машине вовсе:** книги переехали в `<репозиторий>/books`, а риги ходят по `Path.home()/"books"` — **65 вхождений в 31 файле** (бэклог, строка 217). Поднято симлинком + пере-собран `eval/.venv` (CPython **3.14.7** против пина 3.14.4 — расхождение названо, риги `dovodka/` чистый stdlib). Оба шага записаны в `eval/README.md`; там же теперь карта зоны `dovodka/` — она описывалась ОДНИМ файлом при сорока скриптах. -* ⭐⭐ **ДЕНЬГИ — свод на ОДНОМ прайсе и в главах Гу, которого у фазы не было (Д41).** Боевая связка «черновик `flash` → редактор `pro`» = **$127 за книгу в 1500 глав Гу, и 90% этих денег — РЕДАКТОР** ($114 из $127). **Редактор заменяем: тот же черновик с редактором `glm-5` = $20, в 6.3 раза дешевле, качество НЕРАЗЛИЧИМО** (3 круга чтения, 2 семейства, второй прибор). Однопроходка на той же дорогой модели — $62 (вдвое дешевле связки), на `gpt-5.6-luna` — **$7.6**, но в прод не идёт: цензур-ось не мерена, китайских клеток нет. ⚠ Сведено расхождение, лежавшее не разобранным: `research/04` давал книгу за **$7–15**, фаза — за $41–68. Оба верны — (а) «книга 1500 глав» в Д29.1 это 1500 НАШИХ единиц ≈ 735 глав Гу, (б) ресёрч считал ВИДИМЫЙ вывод, а у `deepseek-v4-pro` **46% токенов — размышление, и это ЧЕРНОВИК, а не проверка** (96% предложений финала дословно есть в трейсе): модель пишет перевод дважды и обе копии тарифицируются по выходу. **Правило для сметы: цену роли считать по `total_tokens`, а не по длине перевода.** -* **ЧТО ОСТАЛОСЬ И СКОЛЬКО СТОИТ** (Д38.6, ранжировано): **Шаг 7 — 15 глав Гу ПОДРЯД боевым профилем с ЗАСЕЯННЫМИ характер-листами, ~$2 + движковый прогон.** Это единственный замер, дающий прибор под **Вопрос 0** («консистентность на всю книгу»), и он же готовая in-loop телеметрия прода. ⛔ Без засева характер-листов результат ложно-отрицателен ПО ПОСТРОЕНИЮ: полей пола в банке нет вовсе, механизма не существовало ни в одном прогоне. Дальше — цензур-ось дешёвой линии $0.2–0.6 · китайские клетки ~$0.3 · З-2 $0.35 (перед ним $0-долг К-3) · пере-покупка `ZP` ~$0.4. **В резерв $1.26 пункт 1 НЕ влезает — нужна новая фаза и слово владельца ДО начала. Потолки сессией не поднимались.** -* **📌 ОРКЕСТРАТОРУ, мелочь чужой зоны:** строка бэклога **217** цитирует якорь `eval/conformance.py:48` с ожиданием `REPO = Path(...)`; я добавил в этот файл один импорт, и цель уехала на строку 49. Хук поймал, но правка — в таблице бэклога, то есть в твоей зоне: по правилу самого хука сообщаю, а не чиню. Сама строка 217 в силе и подтверждена этой сессией: **65 вхождений `Path.home()/"books"` в 31 файле**, лечение — одна разрешающая функция корня книг, а не симлинк. -* ⛔⛔ **30.08, ПО ЗАМЕЧАНИЮ ВЛАДЕЛЬЦА ПРОЧИТАН ВЕСЬ КОРПУС ФАЗЫ — И ОН ПОПРАВИЛ МОЙ ЖЕ ОТВЕТ В ЧЕТЫРЁХ МЕСТАХ (Д42, Д43).** (1) **«$11 за книгу» — реальная таблица эксп-22, но по ИЮЛЬСКОМУ прайсу.** Пере-счёт тех же клеток по текущему: связка $40–43 вместо $13–14. (2) **Развилка владельца ПОТЕРЯНА всеми планами:** `PLAN-17-08.md:105-119`=`РЕШЕНИЕ ВЛАДЕЛЬЦА, КОТОРОЕ ЖДЁТ ЕГО САМОГО` — «черновая роль по НАШЕМУ ЖЕ правилу должна уйти с DeepSeek», luna $0.00357 против flash $0.00544. Ни в 21.08, ни в консилиуме, ни в 22.08, ни в моих Д38/Д41 этого пункта нет. ⚠ Приз развилки — **6%**, а не разы: редактор съедает 85% связки, и строка плана «$40 против $23» смешивала смену ЧЕРНОВИКА со сменой РЕДАКТОРА. (3) **«Однопроходка дешевле связки» снято прибором, который читает ОДНУ главу** — а по находке владельца (журнал §11) без черновика терминологу не из чего собирать банк, и «на одной главе банк не нужен, на книге в 1500 глав имена разъедутся». Кандидат `K7` (однопроходка → майнинг банка из её выхода → фиксер) не мерен ни разу. (4) **Конфликт приборов по замене редактора напечатан:** Д41 даёт `glm-5` неразличимым от `dspro` по слепому чтению, а счёт ошибок эксп-22 даёт `R2` против `R0` **−2.12, Холм 0.0188 — значимо хуже** на zh. Кто прав — вопрос приёмке. -* ⛔⛔ **30.08, ЖИВАЯ ВАХТА D39.92 ПЕРЕ-СНЯТА — ВЕНДОР-СТРАНИЦА DeepSeek ИЗМЕНИЛАСЬ, И ЭТО БЬЁТ ПО ВСЕЙ АРИФМЕТИКЕ РАЗМЫШЛЕНИЯ (Д44).** `curl` HTTP 200, `guides/thinking_mode`, 108 336 байт, sha256 `f28c4324…`. Было (наша запись 10.08): две колонки, у `deepseek-v4-pro` **`low` маппится в `high`**, «рычаг бюджета размышления существует ТОЛЬКО у flash». Стало дословно: *«identical for `deepseek-v4-flash` and `deepseek-v4-pro`»*, таблица одна, **`low → low`**; тумблер `{"thinking":{"type":"disabled"}}` подан как общий. ⇒ **у якоря письма ПОЯВИЛСЯ рабочий рычаг размышления, которого не было при всех покупках фазы.** ⚠ Это ДОКА, не поведенческая проба — по норме «слаг ≠ модель» перед деньгами нужна живая проба (единицы центов); сессия её НЕ делает без слова владельца. ⚠ Побочно с той же страницы, чего у нас не записано нигде: *«Thinking mode does not support the `temperature`… will have no effect»* ⇒ **наш `temperature: 0.3` на `deepseek-v4-pro` молча игнорируется.** ⚠ И: `effort:"low"` у DeepSeek **пере-вооружает эхо-мину** — рычаг есть, бесплатным не будет. -* ⭐⭐ **ЧИСЛА ПО ЛУНЕ ПЕРЕ-СНЯТЫ ПОКЛЕТОЧНО ПО ЗАПРОСУ ВЛАДЕЛЬЦА (Д44.6), И ОНИ БОЛЬШЕ, ЧЕМ Я ПЕЧАТАЛ.** Однопроходка, те же 16 английских глав, тот же промт, `finish=stop` 16/16 у обоих: `RN` (`deepseek-v4-pro`) медиана **$0.02011**/клетка, сумма $0.4938 · `RL` (`gpt-5.6-luna`) медиана **$0.00248**, сумма $0.0392 ⇒ **8.1× по медиане, 12.6× по сумме**, при качестве, которого прибор не разрешил. Вся разница — размышление: у якоря оно БИМОДАЛЬНО (466 … 19 559 токенов на главу), у луны прибито к ~1 000 явным `low`. ⛔ **НО ЭТО СРАВНЕНИЕ КОНФИГУРАЦИЙ, А НЕ МОДЕЛЕЙ, и ни одна прежняя строка этого не говорила:** якорю ручку не слали вовсе (= `high`), испытуемому слали `low`. По собственной норме фазы (Д28) это РАЗНЫЕ армы. ⇒ **Замер, который это разводит, стал возможен ровно сегодня** (см. пункт выше): те же 16 глав, тот же промт, `deepseek-v4-pro` с `reasoning_effort:"low"`, смета **$0.05–0.10**. Либо снимает с луны восьмикратное преимущество, либо подтверждает его при уравненных ступенях. **Самая дешёвая и самая информативная покупка, какую фаза может назвать; ждёт слова владельца.** -* ⛔⛔ **ТРЕТЬЯ ТИХАЯ ПОЛОМКА ОТ ПЕРЕЕЗДА МАШИНЫ, найдена исполнением 30.08: в `eval/.env` у ВСЕХ СЕМИ ключей пропали подчёркивания** — `DEEPSEEKAPIKEY` вместо `DEEPSEEK_API_KEY` (и так же GEMINI/OPENAI/XAI/ZAI/KIMI/MISTRAL). Код читает `os.environ["DEEPSEEK_API_KEY"]` (`eval/tenant_panel/roster.py:41`=`DEEPSEEK_API_KEY`), `load_dotenv` отрабатывает, имени нет ⇒ **любая покупка полигона падает `KeyError`**. ⚠ Значения ключей не читались — снят только список ИМЁН и признак непустоты. **Файл владельца не тронут, обёртка-переименовалка не написана** (это запрещённый молчаливый обход). Чинится одной правкой на стороне владельца. ⇒ **Класс назван: переезд ломает окружение МОЛЧА, и каждая поломка вскрывается только исполнением** — до этого были пути `~/books` (65 вхождений в 31 файле) и обнулённые mtime (Д35.2). **Санкционированная владельцем покупка (Д45) стоит готовой и ждёт ровно этого: пре-рег заморожен, арм заведён, провод прочитан, промт сверен побайтно, смета $0.16 при свободных $0.285.** -* ⛔ **РЕЕСТР ПОТЕРЯННОГО (Д43) — прямой ответ на «не хотелось бы расти по энтропии».** При каждой смене носителя курса часть намерений не переезжала, и никто этого не печатал. Собрано ~25 позиций: семь развилок на владельце · десять объявленных $0-замеров, которые не сделаны · **три долга ЧУЖИМ зонам, где полигон обещал пинг и не пингнул** · шесть выпавших из очереди покупок. **📌 Первое, что прошу оркестратора взять:** ⛔ **экстрактор epub сносит границы абзацев** (`HANDOFF-21-08.md:152`, консилиум поднял до ⭐ «починка ДО любого нового en-замера»): пинг обещан 21.08 и **так и не сделан**, а весь английский материал фазы снят с испорченной подачей. Плюс: английский пар-пакет не заленджен в `backend/prompts/`. **Норма, которую предлагаю завести: новый носитель курса обязан явно перечислить, что из старого НЕ переехало и почему.** -* ⚠ **Незакрываемое панелями, названо прямо:** абсолютная база класса Б (Шаг 5.1). Читателя просят назвать худших ВНУТРИ панели — метка сравнительная, норма абсолютная. До отдельной абсолютной рубрики или человека норму «≤1 машинная глава на 25 глав Гу» печатать нельзя. - - -* ⭐⛔ **30.08, ПОСЛЕ КОМПАКТА: КЛЮЧИ ПОЧИНЕНЫ ВЛАДЕЛЬЦЕМ, ПРОБНАЯ КЛЕТКА КУПЛЕНА ($0.038276) — И ГЛАВНОЕ ОНА ОТДАЛА БЕСПЛАТНО (Д45.5, Д46).** Несущая улика — не размер размышления, а **входные токены**: при побайтно одинаковых `messages` (sha256 сверен исполнением) вызов без параметра дал `prompt_tokens` **3270**, вызов с `reasoning_effort:"low"` — **3191**, то есть **−79**. **Два контроля детерминизма:** замер 05.08 (дефолт и `low` вернули ОДИНАКОВЫЕ 2124) и пред-полётные пробы самого рига (`84 · 84 · 84 · 84` на одном тривиальном запросе, четвёртая куплена 30.08 — то есть **дефолтный счёт входа не сдвинулся через смену вендорского сервинга**). ⇒ **параметр `low` на `deepseek-v4-pro` ТЕПЕРЬ ДОХОДИТ ДО МОДЕЛИ**, статус квирк-бюллетеня «НЕ УСТАНОВЛЕНО» закрыт в части «доходит ли» (новая запись **3г**). ⛔ **ВЕЛИЧИНА среза — НЕТ, и это находка против моего же пре-рега:** `RN` куплен 21.08, `RNL` — 30.08, а между блоками лежит **документированная смена вендорского сервинга** (её же зафиксировала вахта Д44) — сравнение приписывает ручке всё, что вендор поменял за девять дней; дрейф из §3б — второй конфаунд и слабее (у него есть знак, и он работает против нуля). Раздел Д45.3 «чего замер не закроет» не назвал НИ ОДНОГО — **дефект найден пере-чтением ПОСЛЕ фриза `87dd124`, печатаю против себя**. ⇒ ⭐ **Лечение одно: оба арма в ОДНОМ блоке вперемежку — и такой замер КУПИТЬ МОЖНО, вчетверо дешевле замороженного:** дизайн Д (интерливинг `RN2` против `RNL` на восьми дешёвых главах) стоит **$0.078–0.133** при свободных $0.2472, n=8 пар, минимальный двусторонний p = 0.0078; гард кассы его пропускает (проверено по коду, гард не тронут). **Пре-регистрация — Д47, заморожена коммитом, ⛔ НЕ КУПЛЕНО: санкция владельца была на ДРУГОЙ дизайн, переносить её я не вправе.** Рекомендация: пятнадцать клеток по фризу Д45 (дизайн А) **не покупать ни при каком ответе**; Д47 — по его слову. ⚠ **Первая редакция Д46 утверждала обратное — «ни один неконфаундированный дизайн не влезает» — и это было НЕВЕРНО** (пропущена дешёвая восьмёрка, при том что бимодальность нашла та же секция); сломал адверсариальный проход, разбор и цена ошибки — **Д46.6**, там же единственная находка прохода, которую я ОТКЛОНИЛ (корреляция по порядку вызовов: у всех 16 клеток `RN` один mtime, порядка не существует). Боевая ступень редактора **не тронута** (`eval/tenant_panel/roster.py` — правлен только комментарий, который до сегодня объяснял выбор снятой посылкой; гейт пака пере-снят, расхождение то же единственное mtime-шное). - -* ⭐⭐ **30.08, Д47 ЗАПУЩЕН ПО САНКЦИИ ВЛАДЕЛЬЦА И ОСТАНОВЛЕН ГАРДОМ ПОСЛЕ ПЕРВОЙ ПАРЫ — А КУПЛЕННОЕ ОКАЗАЛОСЬ ЦЕННЕЕ ЭНДПОЙНТА (Д47.6).** Списано **$0.134804**, ФД-N 3.187585 из 3.30, потолок НЕ поднимался. **Побайтно один промт, одна глава `b065a92dc0`, `reasoning_effort` не слался НИ РАЗУ: 21.08 модель думала 466 токенов, 30.08 — 17 757. ×38.** ⚠⚠ **ПОПРАВЛЕНО В ТОТ ЖЕ ДЕНЬ ПО ВОПРОСУ ВЛАДЕЛЬЦА (Д47.7): подавать ×38 как ЗАМЕРЕННЫЙ СДВИГ ВО ВРЕМЕНИ было нельзя** — это разность двух ОДИНОЧНЫХ розыгрышей у модели с большим разбросом. По лучшей имеющейся оценке (sd логарифма 0.82 ⇒ одно sd = ×2.3, шесть групп «тот же тег, разные розыгрыши», 18 вызовов, судейская роль) ×38 — это ≈3.1 sd: **редко, но возможно ⇒ причина НЕ УСТАНОВЛЕНА**, обе гипотезы живы, а чистых повторов одного промта на роли `onepass` в корпусе НЕТ ни одного. ⛔ **И первый заход к этой оценке был бы десятой ошибкой дня:** я сгруппировал вызовы по «модель·глава·роль», получил 100 групп и «разброс ×11» — а группы смешивают армы `RN`/`RC`/`RB` с РАЗНЫМИ промтами (на `27cb3a7e69`: 7 061 · 498 · 18 043), то есть мерили разницу инструкций, а не розыгрыша. ⇒ **Устояло то, что важнее причины: сравнивать одиночные розыгрыши нельзя ни при какой гипотезе — это осуждает и дизайн А, и МОЙ дизайн Д.** ⭐ Побочно Клейм 1 подтверждён на БОЕВОМ промте: `prompt_tokens` = **3256 и 21.08, и 30.08** (через девять дней и смену сервинга), а `low` двигает их ровно на **−79**; гейт провенанса пройден (Δpt=79, кириллица 1.000, латиница 0). **Эндпойнт по правилу: внутри блока ручка дала ×1.40** (меньше ×2.52, полученных через девять дней — конфаунд эффект РАЗДУВАЛ), годных пар 1 из 8, знаковый тест p=1.0 ⇒ ⛔ **«НЕ УСТАНОВЛЕНО»**, добор глав после чисел запрещён. Носитель — `eval/dovodka/stupen.py`, написан ДО прихода клеток, селфтест стережёт, что порог достижим только единогласием. ⛔ **Смета ошиблась на порядок, и это моя восьмая ошибка того же класса:** $0.078–0.133 объявлялись ценой ВОСЬМИ пар, одна пара стоила $0.1348 — **я оценил опыт по той самой базе, нестабильность которой опыт и должен был показать**. ⭐ **Цена ответов теперь СЧИТАЕТСЯ, а не угадывается (Д47.8):** при sd логарифма 0.82 парный дизайн ловит эффект ×2.5 за 13 пар (≈$1.1), ×2.0 за 22 (≈$1.8), ×1.4 за 93 (≈$7.6); отдельный дешёвый вопрос «модель сдвинулась или это кости» — четыре повтора без ручки на той же главе, **≈$0.31**. ⛔ **Но приоритет не здесь:** ручка даёт ×1.4–2.5, а рядом стоит рычаг ×7–11 — смена модели на `gpt-5.6-luna` (поглавно медиана ×7.1, по сумме ×11.4) — и он упирается НЕ в деньги, а в кап агент-сессий (нужно 16, свободно 14). Тратить доллары на ручку прежде, чем порядковый рычаг прочитан по КАЧЕСТВУ, — плохая экономика. ⚠ Операционное для чужих циклов: отказ гарда возвращает код 1, но в ФОНОВОМ shell `set -e` цикл не остановил — семь итераций вхолостую, $0. - -* ⭐⭐ **30.08, ПАНЕЛЬ `luna1` ПРОЧИТАНА ВСЛЕПУЮ ПО САНКЦИИ ВЛАДЕЛЬЦА («Да, давай подниму кап»), $0 (Д48).** Кап 200 → 215, израсходовано 201. Читались ЧЕТЫРЕ арма на 15 главах (16-я выпала: клетка `RN` не прошла гейт годности, пропуск напечатан): однопроходка на `deepseek-v4-pro` · **та же однопроходка на `gpt-5.6-luna`** · боевая связка · **её вторая генерация как собственный шум прибора**. ⛔ **Сначала поправка к моему же предложению:** развилка владельца от 17.08 — про ЧЕРНОВУЮ роль, а её приз пере-считан в Д42.1 как **6%, а не разы** (редактор съедает 85% связки) ⇒ читать «луну как черновик» значило бы потратить кап на шестипроцентный рычаг; читался порядковый (×7–11). **Результат: средние места `Z0` 2.33 · `ZF` 2.33 · `RN` 2.53 · `RL` 2.80; близнецы расходятся на +0.00 при пороге 1.06 (прибор без смещения), якорь↔`RN` +0.20 при пороге 1.30 (p=0.79), якорь↔`RL` +0.47 при пороге 1.26 (p=0.58), очно `RL` против `Z0` — 6:9.** ⇒ ⭐ **дешёвая луна НЕ ОТЛИЧИМА по качеству ни от дорогого дипсика, ни от связки.** ⚠ Но: разрешение прибора грубое — два прогона ОДНОГО конвейера расходятся на **1.33 места из 4**, то есть разрыв луны это треть собственного шума; направление, хоть и незначимое, **против** луны; панель не трогает банк/консистентность на всю книгу, цензур-ось жанра и перенос на zh. ⛔ **Это ПЕРВЫЙ круг, вердикта ещё нет — правило конъюнкции требует повтора.** Дисциплина: ключ закоммичен ДО ответов, обёртка — замороженный `15cfac60`, модель читателей сверена ИСПОЛНЕНИЕМ (во всех 15 транскриптах `claude-fable-5`). ⛔ **Второй круг упирался в ОДНУ сессию — моя арифметическая ошибка при подъёме капа** (осталось 14, нужно 15); резать панель до 14 глав решением сессии запрещено. ⭐⭐ **ВТОРОЙ КРУГ ПРОЙДЕН (кап 215 → 220 по слову владельца, Д48.5): вывод ПОВТОРИЛСЯ, конъюнкция закрыта.** Средние места круг 1 → круг 2: `Z0` 2.33 → 2.20 · `ZF` 2.33 → 2.53 · `RN` 2.53 → 2.60 · `RL` **2.80 → 2.67**; якорь↔`RL` +0.47 (порог 1.26, p=0.58) → **+0.30** (порог 1.11, p=0.77), то есть отставание луны во втором круге даже СОКРАТИЛОСЬ. Круги разведены по норме рига (ответы первого унесены в `krug1/`, второй писал по ТЕМ ЖЕ пакетам; свод первого из подкаталога воспроизвёл прежние числа до сотой); модель всех 30 читателей сверена по транскриптам. ⚠ Регистратор отработал как сторож: пере-заявить те же главы отказался, пока сессии первого круга не закрыты (`ГОНКА СЕССИЙ`). ⇒ **однопроходка на `gpt-5.6-luna` неотличима по качеству от однопроходки на `deepseek-v4-pro` и от боевой связки на 30 слепых чтениях**, при цене ниже — ⚠ **но число «7.1× по медиане» я подавал НЕВЕРНО, поправка в Д48.6 по вопросу владельца.** (1) В знаменатель попала ПУСТАЯ клетка дипсика (`100b088f71`, ноль знаков, та самая, что не прошла гейт годности): на 15 годных пар медиана **10.5×**, по сумме **12.0×**; побочно — непригодную клетку выдал дипсик, 1 из 16, у луны 0 из 16. (2) Тяжелее: **медиану тут вообще нельзя приводить — распределение ДВУГОРБОЕ** (восемь глав ≈2×, восемь ≈20×, посередине пусто), и она скачет 7.1 → 10.5 от выброса одной клетки. Честно: **от 1.3× до 34×, и величина следует за тем, сколько дипсик надумал**. (3) **Разложение:** 87% цены дипсика — размышление (разброс по главам ×42: 466–19 559), у луны 49% и ×3 (511–1 535); **контрфакт «дипсик думает как луна» даёт всего ×2.9** — это чистый прайс и накладные, остальное объём размышления. (4) ⚠ Конфаунд в силе: дипсик ехал без ручки (дефолт `high`), луна на явном `low`; ручка стоит ×1.40 (Д47.6) — сузит, но не закроет. (5) ⚠ Воспроизводимость самой луны **не мерена ни разу** (0 групп повторов на 749 вызовов), а её `reasoning_tokens` подозрительно кратны 512 — возможен блочный учёт, проверить до смет. ⛔ Переключение — решение владельца, и перед ним стоит незакрытый гейт, названный им самим 16.08: у однопроходки нет черновика, из которого терминолог добывает свидетельства для банка (Д42.3). - -* ⛔ **30.08, ЖИВАЯ СВЕРКА ПРАЙСА GEMINI ПО ВОПРОСУ ВЛАДЕЛЬЦА — ОДИН ПИН ВДВОЕ ЗАВЫШЕН** (квирк-бюллетень, раздел прайса; источник `ai.google.dev/gemini-api/docs/pricing`). `gemini-3.1-flash-lite` — пин верен ($0.25/$0.025/$1.50). ⛔ **`gemini-3.6-flash`: у нас $1.50/$0.15/$7.50, у вендора дословно «$0.75 through December 31, 2026», то есть выход сегодня $3.75 — наш пин это ПОСЛЕ-промо цена, сметы на этой модели завышены ×2.** ⚠ **Пин я НЕ правил сознательно:** `roster.cost()` считает клетки ИЗ ПИНА, и правка переписала бы стоимость **8 уже купленных клеток** (Д32.11 — леджер есть оценка) ⇒ решение за владельцем. `gemini-3.1-pro-preview` верен для ≤200k, но у вендора есть не записанный у нас тир >200k ($4/$0.40/$18). ⭐ **И на странице есть `gemini-2.5-flash-lite` — $0.10/$0.01/$0.40 выход, втрое дешевле самой дешёвой нашей модели**; в смету брать НЕЛЬЗЯ: 2.5-серия имеет shutdown 16.10.2026 и интермиттентный 404 при живом слаге, качество и эхо не мерены. **Урок для всех пинов: промо-цена с датой окончания попадает в ростер как постоянная и тихо врёт — у пина обязана быть дата и оговорка о промо.** - -**📌 ПИНГ ПОЛИГОНУ от оркестратора №19 (28.08, D39.164) — вендор-вердикт по Gemini для `docs/experiments/00-provider-quirks.md`.** -Материал добыт бэкенд-сессией (curl по вендор-доке, не пересказ), но файл — ВАША зона, вписываете вы. ⚠ Вендор-основание -ДОСЛОВНО, со ссылкой и датами снятия, уже лежит в `backend/configs/models.yaml` у провайдера `gemini` (греп -`ВЕНДОР-ОСНОВАНИЕ`) — сюда не переписываю. **Строка 157 квирков несёт ТРИ утверждения сильнее источника:** (1) «слой -ФИЗИЧЕСКИ не может пронести больше одного системного» — вендор говорит про НАТИВНЫЙ `systemInstruction`, а что делает с -двумя системными OpenAI-совместимый ШИМ, не документирует нигде; (2) «уход на нативный API проблемы не решает» — верно по -сути, не по причине: `Content.parts[]` ПОВТОРЯЕМОЕ, и нативный API МОЖЕТ нести N системных текстов как N частей ОДНОГО -`Content`; (3) «форум Google» — НЕ вендорский источник: тред `discuss.ai.google.dev/t/86097` — два поста, оба от -НЕ-сотрудников (staff=false), 30.05.2025, ответа Google нет, а читается наравне с нашим замером. -**Открыто честно:** «выживает ровно одно» против «не выживает ни одного» не разрешено — маркер пробы приписан к `msgs[0]`, -и его отсутствие совместимо с обоими чтениями, а зеро-системного контроля в скрипте нет. Твёрдо: НЕ склеиваются -(`prompt_tokens` 2994 → 535) и first-wins ложно. **Дешёвое решающее доизмерение:** тот же скрипт, маркер на ПОСЛЕДНЕЕ -системное плюс user-only базовая клетка. ⚠ Граница: проба гонялась на `gemini-3.1-flash-lite`, а в цепочке эскалации стоит -`gemini-3.1-pro-preview` — слой тот же, слаг другой. Для движка безразлично: склейка на нашей стороне заленджена (D39.164). - -**ИТОГ ПОЛИГОН-СЕССИИ 23.08 — ШАГ 1 ПЛАНА 22.08 ЗАКРЫТ (панель-0, $0).** Отчёт целиком — секция **Д32** -`docs/experiments/23-editor-tier.md`; фризы `bedc39a`, `9e33a1b`; денег не потрачено (панель собрана на уже -купленных клетках). **Вердикт (интеракция «архитектура × жилец на ИСПЫТАННЫХ жильцах», не минимакс):** слабый -жилец `glm-5` РЕДАКТОРОМ над боевым черновиком неотличим от боевого `deepseek-v4-pro` в той же роли (разрыв -средних мест **+0.00**, p=0.80), а ОДНОПРОХОДКОЙ различимо хуже (**+1.12** места при пороге 0.99, знаковый -**p=0.0042**, +13 фаталов p=0.0312) ⇒ **буфер архитектуры существует и замерен** — ⚠ на 16 главах. -**⛔ ДЛЯ БЭКЕНДА:** в **2 окнах из 8** с первым лицом пол рассказчика по главе НЕ УСТАНАВЛИВАЕТСЯ вовсе -(эталон снят вслепую тремя независимыми чтениями на главу), а полей пола в банке НЕТ -(`~/books/role-topology/bank-en.json`, 25 терминов) ⇒ закрыть эти ~25% может ТОЛЬКО книжная память; смыкается -со строкой бэклога **210**. -**⚠ ОТКРЫТО НА ВЛАДЕЛЬЦЕ:** сверить **$17.04** с реальным счётом DeepSeek может только он. Долг В21 (сверка -кассы двумя путями) ИСПОЛНЕН, результат отрицательный: сверка на диске НЕВОЗМОЖНА в принципе — `cost_usd` -вычисляется нашим же `roster.cost` (`buy.py:93-95`), а не приходит от вендора; на 213 клетках у четырёх -вендоров из шести арифметика сходится до последнего знака, а «офф-пик = ½» в ЗАПИСАННЫХ ценах НЕ наблюдается. - -**⚠ Пинг оркестратора №18 — 20.08 (протухшие цены в квирках, чинить вашей рукой).** `docs/experiments/00-provider-quirks.md` до сих пор утверждает, что цены после катовера НЕ изменились («flash $0.14/$0.28»). Это опровергнуто пере-пином 13–15.08 (D39.137): таблица запинена ПИКОМ — flash 0.44/1.32 при кэш-хите **0.014**, pro 1.32/3.96 при кэш-хите **0.044** за 1M (сверено с `backend/configs/models.yaml:231,247`=`cached_per_m` и телом D39.137 §2а), и счёт шиппинга = 100% DeepSeek ⇒ ×4.2–4.4 в пике. Квирки — ваша зона, рукой не трогаю; поправьте при ближайшем касании, потому что по ним считают деньги проб. ⚠ **ВТОРОЙ пункт этого пинга СНЯТ 05.09 как ЛОЖНОЕ ОТРИЦАНИЕ оркестратора.** Он утверждал, что факт про пиковые окна цен «в квирках ОТСУТСТВУЕТ (греп = 0)». Факт ТАМ ЕСТЬ (`docs/experiments/00-provider-quirks.md`, греп `ПИК DEEPSEEK`) — и несёт поправку, которой не было в моей копии: **пик только ПО БУДНЯМ, выходные целиком идут по офф-пику**. То есть оркестратор, живший по своей копии, отодвигал платное на вдвое дороже по выходным. Копия снята, единственный носитель — квирки. Отрицание было получено грепом, который не мог сработать; урок общий: **команда, на которой стоит отрицание, приводится в тексте, чтобы её мог воспроизвести другой.** ⚠ Третий пункт того же аудита (`eval/README.md` держит мёртвый СТОП на платные прогоны) сведён ниже, в пинг №20 — один носитель на факт. - -⚠ **ВТОРОЙ пункт этого пинга ПЕРЕ-СНЯТ 05.09: спора нет и не было.** Он утверждал, что квирки и `docs/STACK.md` говорят «ручки эффорта у `deepseek-v4-pro` НЕТ» — оба говорят ОБРАТНОЕ (квирки §3г: «параметр `low` на `pro` ТЕПЕРЬ ДОХОДИТ ДО МОДЕЛИ», $0.038276, −79 prompt_tokens; `STACK.md:11` — то же). ⚠ Это был ЧЕТВЁРТЫЙ носитель фантомного противоречия, снесённого D39.200 п.4(а), и он пережил первую зачистку. Живой остаток один и он не спор: **вендор-сверка САМОГО МАППИНГА (`low` → что именно) и ВЕЛИЧИНА эффекта** — замера поведением после 13.08 нет ни у кого. Это боевой РЕДАКТОР и апекс эскалации. **Закрывается вендор-сверкой, а не выбором стороны** (гардрейл владельца) — и вы это только что делали по Gemini, то есть заход дешёвый. Носитель в трекере — строка **237**(б). - -**⛔ ПИНГ ОРКЕСТРАТОРА №20 ЗОНЕ — ТРИ ПРОТУХШИХ МЕСТА, все три ЖИВЫ на 02.09 (правки зонные, рукой не трогаю).** -1. **`eval/README.md` первой врезкой держит СТОП на платные прогоны** — «Платные прогоны/докупки СТОП до ре-пробы - (бэклог-строка 74)». Строка 74 закрыта (D39.95), ограничение пало лендингом 112 (D39.97), `pipeline-c1.yaml` несёт - `reasoning: "low"` с объяснением, а зона всё это время платно гоняет фазу Д: врезка объявляет запрещённым то, что делается ежедневно, и этим обесценивает все прочие ⚠ - в файле. Живым из неё остаётся только ⚠0731 (смена весов под слагом) и стохастичность эха. -⚠ **Пункты 2 и 3 СНЯТЫ 05.09 — зона их закрыла, пинг об этом не знал.** (2) `eval/README.md:40` уже говорит - «не один скрипт, а зона из ~40», а `docs/experiments/README.md` несёт строки и 22, и 23 (`:40`, `:41`). - (3) `naklon.py` в `main` ВЛИТ: `git ls-tree -r HEAD --name-only -- eval/ | grep -c naklon` → 1, и в - `eval/dovodka/` у HEAD 90 отслеженных файлов, а не 42. **Живым остаётся только пункт 1.** - -**ФАЗА Д «ДОВОДКА ЭКСП-22/23» — ИДЁТ.** ⚠ **Живое состояние фазы живёт В ЗОНЕ, не здесь** (`eval/dovodka/` — планы, консилиум, ревью; свежий носитель курса зона называет сама), приёмка фазы — у ПАРАЛЛЕЛЬНОГО оркестратора, деньги и цепь потолков — `eval/dovodka/money_d.py` (`PACK_CEILING`/`CEILINGS`), а не литералом здесь: три поколения записей в одном месте и были причиной, по которой состояние фазы стало нечитаемым. - -*(Хроника фазы Д — записи 10.08 (сессия №1) и 15.08 (сессия №2, сквозной аудит дуги 19→23 и пере-судейство `tier`) — вынесена в [archive/PROGRESS-2026-08-10-15.md](archive/PROGRESS-2026-08-10-15.md) с тремя поправками в шапке: потолок, закрытые пункты листа владельца, протухшие «долги». Открытым на владельце из неё остаётся ОДИН пункт — возражение Sol по проходу `tier`.)* -**Диспозиция оркестратора №17 (15.08), живая до приёмки фазы Д:** просьба хендоффа «эррата zh-канона: пере-сборка = правка закрытой оси, ратифицирует оркестратор» (`docs/POLYGON_PHASE_D_HANDOFF.md`, греп `Пере-сборка = правка закрытой оси` — файл дирти, номер строки не ставим по норме D39.179 п.4; завышение +0.0039, вердикты не двигает) — **к ПАРАЛЛЕЛЬНОМУ оркестратору при приёмке, не к движковому** (приёмка фазы Д — его зона, №17 полигон не трогает **по слову владельца**). Прожитое из записи (вторая передача и мелочи аудита корпуса) — `archive/reports/CORPUS_AUDIT_2026-08-15.md`; санкции владельца по деньгам фазы и замене ja-книги — D39.136 п.1. - -*(Память · Голос и состояние · Ридер-IDE — ЗАКРЫТЫЕ секции (D39.125): темы исполнены/переехали в зонные журналы; хроника — в архив-слайсах. Фронт пишет ТОЛЬКО в frontend-PROGRESS.md.)* +## Полигон — ХРОНИКА ВЫНЕСЕНА В АРХИВ 17.09 +Хроника эксп-22/23 и фазы Д (203 строк) — [`archive/PROGRESS-2026-09-17-polygon-chronicle.md`](archive/PROGRESS-2026-09-17-polygon-chronicle.md). +Живое из неё держат ряды трекера **482** · **483** · **485** · **237**(б); пинг о якорях закрыт замером. +⚠ Читать срез при онбординге НЕ нужно — только по конкретной ссылке. diff --git a/docs/archive/PROGRESS-2026-09-17-polygon-chronicle.md b/docs/archive/PROGRESS-2026-09-17-polygon-chronicle.md new file mode 100644 index 00000000..ee9fa20e --- /dev/null +++ b/docs/archive/PROGRESS-2026-09-17-polygon-chronicle.md @@ -0,0 +1,217 @@ +# АРХИВ · хроника полигона (эксп-22/23, фаза Д, пробы 28.08–10.09) — СРЕЗ 17.09 + +> ⛔ **ЭТО АРХИВ. Инструкции отсюда НЕ ИСПОЛНЯЮТСЯ, числа отсюда НЕ ЦИТИРУЮТСЯ как текущие.** +> Вынесено из `docs/PROGRESS.md` 17.09 по слову владельца о резе документации; в живом журнале +> на этом месте оставлен указатель. Читать только по конкретной ссылке, не при онбординге. +> +> **Живое из этой хроники вынесено СТРОКАМИ ТРЕКЕРА прежде носителя** (условие владельца, `D39.261` п.2), +> и это единственная причина, по которой срез безопасен: +> · ряд **482** — сверку $17.04 с реальным счётом провайдера может сделать только владелец; +> · ряд **483** — протухшие цены в справочнике провайдерских ловушек (исправлено 17.09, остаток — пере-снять блок целиком); +> · ряд **485** — `eval/README.md:7` держит СТОП на платные прогоны под строкой 74, закрытой актом `D39.95`; +> · вендор-сверка маппинга `low` у `deepseek-v4-pro` — носитель ряд **237**(б), заведён ранее; +> · пинг №23 о пяти якорях в `docs/experiments/` — ЗАКРЫТ замером 17.09: красных якорей с целью в этом каталоге 0. + +## Полигон + +### ХОЛОДНЫЙ ПРОГОН A — КНИГА ДОШЛА ДО КОНЦА (11.09, полигон-сессия, пак `POLYGON_COLD_RUN_A_SESSION_PROMPT.md`) + +**Строка бэклога 16 закрыта замером: доведённая до конца книга стоит $0.419424.** 蛊真人, главы 1–3, +zh→ru, от интейка до файла, прочитанного человеком. Отчёт (пре-рег + результаты + три прохода +критиков) — `docs/experiments/24-door-to-file.md`, инструменты — `eval/door_to_file/`, фризы `be53cc8` +(пре-рег и инструменты) и `44b33d9` (драйвер); бинари собраны из кода `b0f5d89`. Сырые платные +выходы — `books/gu-zhenren/door-to-file/` (33 файла, не коммичены: репозиторий книг отдельный). + +- **Прогон:** 25 мин 31 с, две попытки (банк-стоп exit 3 → резюм exit 0), `status: ready`, + `paused_reason` пусто, 4 юнита из 4 `translated`, `exports.complete = t` у txt (54 151 Б) и epub + (20 187 Б). Сборка: семь полей чисты. Стоп-правила не срабатывали ни разу. +- **Деньги сошлись СЕМЬЮ путями** на 419 424 µUSD; ⚠ независимый среди семи — ОДИН: движок считает, + движок пишет, платформа материализует из его же потока. Открытых резерваций 0. +- ⭐ **ВПЕРВЫЕ КОНСИСТЕНТНОСТЬ ТЕРМИНОВ ЗАМЕРЕНА ПО ТЕКСТУ ЧИТАТЕЛЯ, а не по черновику.** Движок сам + называет две популяции вопроса (`spread≥2` — 9 термов, `INVENTED(no draft proposed it)` — 11, из + них 7 вне первой): **16 из 69**. Исход: **9 доехали формой банка · 6 отданы НЕ банковской формой + (`高脚吊楼`: банк «дом на сваях», в файле «свайный дом» ×4, главы 1 и 3) · 1 отдан двумя формами** + («церемония открытия апертуры» ×9 и «великая церемония…» ×1, обе в главе 1). Механизм работает и + работает не везде — и теперь у этого есть числа. Это прямой ответ на приоритет владельца №1. +- ⛔ **Четверть денег купила пустоту:** 4 вызова из 27 вернулись на потолке `max_tokens` + ($0.106472 = 25.4 %), три из них — РОВНО 0 символов ($0.094835 = 22.6 %), включая самый дорогой + вызов книги ($0.071009, `edit`/`deepseek-v4-pro`, 16 000 оплаченных выходных токенов). Движок лечит + перевыпуском с удвоенным потолком — 4 раза из 4 успешно: путь не рвётся, а дорожает вдвое. Вторая + точка того же явления (08.09 было 32 %). +- ⛔ **Пин цены `deepseek-v4-flash` протух:** вендорская страница сегодня даёт вход 0.30 / cache-hit + 0.006 / выход 1.20 против наших 0.44 / 0.014 / 1.32 (у `pro` совпадает точно). Прогон по живым + числам стоил бы $0.397246 — **наш прайс завышает на 5.6 %**. Прогон шёл 01:29–01:54 UTC в пятницу, + внутри вендорского пикового окна 01:00–04:00 UTC ⇒ пиковое основание было верным. +- ⛔ **`model_actual` = `deepseek-flash` на 28 строках из 33**, а шлём `deepseek-v4-flash`: нас считают + под именем, которого в нашем реестре нет. Алиас это или другая модель — НЕ установлено. +- ⛔ **Терминологический контур оплачен дважды** (до стопа и после резюма): 15.6 % книги, из них + 6.9 % — второй заход. Разделения этих денег раньше не было. +- ⛔ **Три ловушки для того, кто станет считать деньги по этим таблицам:** + `run_attempts.spend_micro_usd` — величина НАКОПЛЕННАЯ (сумма по попыткам завышает цену на 38 %); + `err` пуст на ВСЕХ 33 строках, включая четыре провальные (отказ виден только в `degraded`); + Σ `chunk_status.cost_usd` недобирает ровно терминологию ($0.354127 против $0.419423). +- **Строка бэклога 224 воспроизведена живьём:** на банк-стопе `.bank.json` несёт `terms: []` и + `proposed[]` из 69 термов; проекция платформы — 0 до закрытия прогона и 69 строк после. +- **Две находки про развёртывание:** книга, которую пайплайн переводит бесплатно, НЕ ПРОДАЁТСЯ + (`step_max_usd = 0` → `409 not_priced`); шаблон книги по рецепту стенда роняет каждый старт `c1` + без `langpack_root` (exit 10). Ряды 411 и 412 завёл оркестратор. +- **Фриз-процедура пака была вырожденной:** бинарь из линкованного git-воркри не несёт `vcs.*` + вообще, и правило «отказать при `vcs.modified=true`» на нём выполняется всегда. Заменено клоном. +- ⚠ **Круги НЕ сошлись:** три прохода критиков дали 13 → 4 содержательных находок, и третий нашёл, + что мой заказ следующей сессии чинил не ту функцию прибора, а знаменатель был не один. Всё внесено; + сходимость не объявляю. Слабое место прогона названо в §11 отчёта — прибор расхождения форм и то, + что защиты (стоп-правила, потолки) на боевой руке ни разу не выстрелили. + +#### ⚠ ПИНГ ОРКЕСТРАТОРА №23 (10.09) — ПЯТЬ ЯКОРЕЙ В ВАШИХ ДОКАХ УКАЗЫВАЮТ НЕ ТУДА + +`docs/experiments/` — ваша зона, рукой не трогаю. Адреса пере-снял своим прибором по тому же токену: + +- `00-provider-quirks.md:163` → `backend/internal/llm/httpllm.go:517-522` → **739–751**, токен `SystemMessagesSingle`; +- `00-provider-quirks.md:164` → `backend/configs/models.yaml:137` → **173** (`system_messages: single`) + и `backend/internal/llm/httpllm.go:528` → **750** (`func toOpenAIMessages`); +- `23-editor-tier.md:5274` → тот же `models.yaml` → **173**; `:5276` → тот же `httpllm.go` → **750**. + +Все пять сдвинул мой лендинг `3f05fab` (пак оборванных вызовов правил `httpllm.go` и `models.yaml`). +Ещё два якоря `23-editor-tier.md:7739-7740` (`pipeline-c1.yaml:95`, `pipeline-arm-glm.yaml:6`) уехали +РАНЬШЕ и не от меня — цели я не трогал, токенов по прежним адресам там нет. + +**📌 02.09 · ПИНГ ОРКЕСТРАТОРУ (два входа в бэкенд) + ИТОГ СЛЕПОГО ЧТЕНИЯ. Решения владельца от 02.09 внутри.** +Носители: пре-реги и результаты — `eval/dovodka/blind-read/` (`PREREG-BLIND-READ.md` + `RESULT-BLIND-READ.md` с семью эрратами, `PREREG-2-BLIND-READ.md` + `RESULT-2-BLIND-READ.md`), прибор дрейфа — `eval/dovodka/dreif.py`. + +* **РЕШЕНИЯ ВЛАДЕЛЬЦА 02.09 (ратификация за оркестратором).** (1) **Дефолт редактора — `low`**, бремя доказательства на том, кто включает дорогой режим. (2) Вопрос «`off` против `low` по качеству» **закрыт как неизмеримый этим прибором** — судейских реплик не покупать. (3) Питон-прибор дрейфа пишет полигон (сделано), **настоящий прибор — в движок, это пинг ниже**. (4) Покупка 50 глав на длину **отложена до прогона в бэкенде** (слово владельца). +* **⚠ ВХОД 1 — офлайн-пересчёт по уже оплаченному тексту (`tmctl recheck` или равное).** Проверки движка исполняются ТОЛЬКО в момент генерации; готовый текст в базе перепроверить нечем, и потому частота ложных тревог пост-чека не измерима без покупки. Полигон закрыл дыру питон-двойником (`dreif.py`), но **это не тот же прибор**: у движка стеммер целевого языка и сохранённые формы, у двойника — сопоставление по началу слова. Два «детерминированных» прибора с разными ответами — тихий дрейф нормы; строку в бэклог просит полигон, решение за оркестратором. +* **⚠ ПОПРАВКА К ЭТОМУ ПИНГУ (02.09, позже в тот же день): входов НЕ ДВА, А ЧЕТЫРЕ, и «включить гейт» из них самый мелкий.** Разбор начат вопросом владельца («в бэкенде нет майнинга term — „мастер гу“ не замайнится»). Проверено исполнением: **майнинг term РАБОТАЕТ** (68 записей класса `term`, `蛊师 → гу-мастер` в банке есть), но владелец прав по сути — цепочка «намайнил → классифицировал → подписал → инжектнул как закон → проверил» рвётся в ЧЕТЫРЁХ местах, и замеренный дрейф (30 ключей из 102 несут >1 передачу, максимум 7 форм) — их следствие. + * **(1) `term` — класс-умолчание, а не решение.** `backend/internal/pipeline/banknote.go:79` дословно: «bankTypeOK is the accepted type set; **anything else falls back to "term" (a benign default)**». Две трети банка пробы (68 из 102) сидят в этом умолчании. + * **(2) Классификатор умеет различать `term`, но в пробе НЕ ДОБЕЖАЛ.** Определение в `backend/prompts/zh-ru/classifier.md:20-23` точное («реалия, понятие, предмет, материал, вещество, класс существ — всё, что переводится ПО СМЫСЛУ», пример `元石 term`). Однако лог пробы: `batches_planned=8 · batches_running=6 · classify_batches_dropped=4` при `budget_usd=0.05` против `estimate_usd=0.0978`; итог `unanswered=7`, `reclassified=5`. Движок сам предупредил: «this bank is PARTIALLY consolidated — a budget cut a pass, so some terms were never offered to the role at all». ⇒ типы выставила банкнота или умолчание кода, а не тот механизм, который умеет. + * **(3) Промпт банкноты недоспецифицирует класс `term`.** `backend/prompts/zh-ru/translator-banknote.md`: просит «новых имён собственных и терминов», список типов даёт, но **определения `term` нет, а единственный пример — `师父 наставник title`**, то есть образец уводит в титулы; лимит «не более 20 строк» на фрагмент вытесняет понятия в пользу имён (имена заметнее). Правка промта — не Go и пары не касается. + * **(4) Инжект фильтрует по ПОДПИСИ, а не по классу.** `backend/internal/membank/memory.go:663`: `status == "approved"` → `Confirmed`, иначе `Ambiguous`; `priorityRank` (там же, ниже) вытесняет неподписанное первым при token-бюджете (`glossary_token_budget: 800` на 102 записи). При `approved=0` весь банк едет «неуверенным кандидатом» — форма не объявлена законом, и удерживать её нечему. Это и есть механизм дрейфа `蛊师` («гу-мастер» / «мастер гу») и `元石` (семь форм). + * **⚠ (5) НАБЛЮДАЕМОСТИ НЕТ на редакторской стадии.** `retrieval_state` в базах пробы держит **35 строк, все под DRAFT-снапшотом** (`8d5721f65596`), под edit-снапшотом (`b76ab168d95b`) — **НОЛЬ строк**. Доехал ли банк до редактора и сколько записей вытеснено бюджетом, из артефактов узнать НЕЧЕМ. Все счётчики на черновой стадии нулевые закономерно: банк рождается ИЗ черновика, на нём его ещё нет. + * **Порядок, который из этого следует** (предлагается, решение за оркестратором): наблюдаемость инжекта на edit-стадии → бюджет классификатора (пять центов режут половину работы) → определение и пример `term` в промте банкноты → подпись банка и заполнение форм → и только потом жёсткий режим гейтов. + * **⚠ ТРИ ПОПРАВКИ К МОИМ ЖЕ УТВЕРЖДЕНИЯМ ВЫШЕ, найдены консилиумом 02.09 и пере-проверены мной исполнением.** + · **(5) сформулирован неверно в ПРИЧИНЕ.** «Ноль строк под edit-снапшотом» — не разрыв, а схема: `PRIMARY KEY (book_id, chapter, chunk_idx)` **без snapshot_id** (`store/migrate.go`), редактор мержит в ту же строку, и `snapshot_id` в ней — просто последнее записанное. Вывод «наблюдаемости нет» ОСТАЁТСЯ верным, но дыра в другом: счётчики инжекта редакторской волны не пишутся никуда (`pipeline/chunkrun.go:202`). + · **«ни один $0-гейт не поймал латиницу» — неточно.** Детектор латиницы ЕСТЬ и вызывается всегда (`checks/cheapgates.go:192`, `lintLatinResidue`), но по построению он **наблюдатель, а не вердикт**: дословно `cheapgates.go:22-27` — «They are OBSERVABILITY, never hard gates… never changes a chunk disposition». Гейт видел и молчал, потому что так устроен. + · **Источник «cultivation» — НЕ glm-5.** Пере-проверено по стадиям: слово рождается в ЧЕРНОВИКЕ (`deepseek-v4-flash`, 7 клеток) во ВСЕХ руках, потому что черновик общий; редакторы DeepSeek его вычищают (**0** в финальных текстах `p9-low`/`p7-off`), а `glm-5` — нет (3 клетки на edit, **2 доживают до финала**). Значит это дефект не породителя, а фильтра, и прежняя формулировка «glm-5 опознаётся по латинице» верна по факту, но неверна по причине. + * **Улика к строке 46, а НЕ находка: полный провал языка цели.** `books/dovodka/dv-i-z8-fb9ed5709e.json` — глава пары zh→**ru** переведена целиком **на английский**: пере-считано мной, **7104 латинских знака, 0 кириллицы**, `finish=stop`. ⚠ **Прежняя формулировка «главного, чего в пинге не было» СНЯТА 03.09: это уже заказанная работа.** Строка бэклога **46** называет ровно этот случай дословно — «Экран целевого языка: „полный связный перевод на английский" проходит»; дизайн пака **заморожен владельцем** (D39.92 п.1 closed-set + D39.93 изолированный модуль), предгейт — строка **113** (фикстура ~20 off-target). ⇒ ценность вычитки здесь — не гейт придумать, а **дать строке 46 живую улику с боевого прогона**. + +* **📌 03.09 · ВЫЧИТКА 17 ГЛАВ БОЕВОГО ПЕРЕВОДА ($0, 17 агентов Opus, по агенту на главу с исходником).** Материал — `p9-low` (дефолт редактора по решению владельца 02.09), экспорт `tmctl export --pairs`. Инструкция вычитчику разделяла ДВА уровня: «читатель споткнётся» (против них меряется планка владельца ≤2 на главу, D39.20) и «мелочь корректора». + * **Планка НЕ взята: 59 блокирующих претензий на 17 глав = 3.5 на главу.** В планку уложилась 1 глава из 17. При этом все 17 вычитчиков независимо ответили «читается как книга» = ДА. + * **Классы (всего / из них ловится детерминированно):** смысл-искажён 12/0 · имя-термин-непоследователен 10/10 · translationese-грубый 9/2 · род-гу 7/6 · логика-действия 6/1 · иное 5/3 · язык-не-тот 4/4 · пропуск 3/3 · меры 3/3. ⇒ **механизируемо 32 из 59 (54%) ПО ОЦЕНКЕ ВЫЧИТЧИКОВ**; ⚠ оценка завышена: прогон существующих `RunCheapGates` по 11 цитатам дал 1 срабатывание из 11 (сегодняшний код берёт заметно меньше). + * **Остаток, который не берёт ни один детерминизм: 12 искажений смысла + 6 сломанных мизансцен = 1.1 на главу** — то есть НИЖЕ планки владельца. Образец (гл.1): «перекрыл им путь, **сделав шаг в сторону**» — по-русски «посторонился», фраза противоречит себе; в оригинале 横跨一步 = шагнул НАПЕРЕРЕЗ. + * **⛔ Найдено проверкой самих вычитчиков (системнее, чем они доложили): заголовки глав теряются.** Исходник даёт `第二十六节:一切组织的本质` — номер И название; движок кладёт в заголовок только номер (`chunk/chunker.go` `stripHeading`/`ApplyHeading`), название сваливается в тело как обычная строка. Дальше как повезёт: **название уцелело у 11 глав из 17, потеряно у 6** ⇒ на 2283 главах это ~800 глав без названия вперемешку с озаглавленными. Ловится тривиально: заголовок состоит только из номера. Улика к строкам бэклога **160/161/162** и **201**. + * Сырьё вычитки: `/tmp`-экспорт не сохранён (волатилен), воспроизводится командой `tmctl export --config arms/p9-low.book.yaml --pairs`; вердикты 17 агентов — в задаче воркфлоу `wfofkln2i`. + +* **📌 03.09 · КАНОН СУЩЕСТВУЕТ, ПОДПИСАН И НЕ ПОДАН В СТЕНД (проверено исполнением).** `~/books/gu-zhenren/guzhenren-seed-v2.yaml` — **58 записей, из них 53 `status: approved`**, 16 с полем `gender`. В нём ровно те термины, на которых спотыкались вычитчики: `资质 → талант` (канон владельца D39.21), `元石 → первобытный камень` (а в пробе намайнилось 7 форм), `甲等/乙等/丙等 → класс А/Б/В` (а в переводе «категория **C**» ЛАТИНИЦЕЙ), `蛊师 → гу-мастер`. **В `~/books/gu-zhenren/probe-4axes/book.yaml` ключа `glossary_seed` НЕТ — 0 вхождений**, и шапка стенда объявляет это сознательно: «Сид НЕ подключается — банк рождается майнером + банкнотой, как в холодном прогоне». + ⇒ **Прежняя формулировка «банк не подписан» (запись 02.09) НЕТОЧНА и настоящим уточняется:** не подписан МАЙНЕНЫЙ банк, а подписанный канон просто НЕ ПОДКЛЮЧЁН. Весь измеренный дрейф (30 ключей из 102 с >1 передачей) — дрейф конвейера с отключённым каноном. Контр-факт на той же книге: с подписанным банком эффективная консистентность **99.3–100%** (Д50.2, 375–548 пар). + ⚠ Записи `蛊` в сиде НЕ ХВАТАЕТ поля `gender` (средний род прописан прозой в `note`) и стоит `allow_short: false` при `minKeyLenHan=2` ⇒ односимвольный ключ структурно вне автомата. Это две строки ДАННЫХ, не код. + +* **📌 03.09 · СВЕРКА С ПЛАНОМ ПОСЛЕ ЗАМЕЧАНИЯ ВЛАДЕЛЬЦА — 10 «предложений» из 11 оказались уже заказанной работой.** Владелец: «вы рассуждаете без оглядки на ту архитектуру и код, что уже построена или ЗАПЛАНИРОВАНА». Замечание верное: консилиуму давали код и данные вычитки, но НЕ давали целевую архитектуру, ЕДИНЫЙ БЭКЛОГ и журнал решений. Тот же консилиум, подняв прежний контекст, прочитал план и снял свои же предложения. Сверено мной по носителям. + * **Уже в плане:** вынести вердикт-поля из хеша = строка **49** (спека `backend/docs/D15.2-content-addressed-resume-spec.md`) · экран языка цели = строка **46** · заголовки глав = строки **160/161/162** и **201** (гейт пал словом владельца 15.08, D39.136 п.3) · петля ремонта = **построена** за `enabled:false`, включение — строка **13** (владелец) · морфо-гейт рода = строка **82** · числа и меры = строка **12** через триггер D39.79 п.4 · критик = строка **2** (владелец). + * **Уже ПОСТРОЕНО:** род `neuter` end-to-end — **D39.69 §3** (`13-tech-debt-anchors.md`: «носитель ПОСТРОЕН»). Остаток по роду «гу» — **две строки ДАННЫХ** в сиде стенда (`guzhenren-seed-v2.yaml:291-300`: `allow_short: false`, поля `gender` нет) плюс ключ `glossary_seed`. + * **⛔ Противоречит ратифицированному:** патч-протокол редактора ↔ **D39.108 п.1** «диффы откладываются» · критик как стадия движка ↔ **D38.4 п.2** «семантический span-судья — ОТКАЗ» · подпись ~30 ключей поимённо ↔ **D39.144** «подписывается ВЕСЬ банк ОДНИМ ОК; пер-термная масс-подпись = инерция» · канал идиом врезкой dst ↔ **D38.4 п.1** «глоссарий-сидинг чэнъюй НЕ делаем» · таблица мер ↔ **D39.79 п.4** «HARD-value-детектор НЕ строить». + * **Что вычитка дала по-настоящему:** улики к уже открытым строкам — **46** (глава на английском), **82** (7 дефектов рода), **142/13** (классы для точечной починки), **160** (6 глав из 17 без названия ⇒ ~800 на книгу), **12** (триггер реопена по числам НАЖАТ: #46/#13/#11). Это подтверждение заказанного, а не новый список. + * **Метод-урок, дороже находок:** сутки ушли на переоткрытие бэклога, потому что план не был подан консилиуму. **Любой панели, обсуждающей ЧТО СТРОИТЬ, план подаётся вместе с кодом** — иначе она уверенно переизобретает заказанное. ⚠ Для полигона отсюда следует и граница: строки 46/49/82/142/160/12 — **зона бэкенда**, полигон в них не лезет; его законная часть — улики и замер (см. ниже). +* **⚠ ВХОД 2 — пост-чек банка не имел ВХОДА, а не только был выключен.** В пробе `gates.coverage.enabled: false` и блока `gates.glossary` нет — это известно; но сверх того: из 102 записей банка **ни одна не доведена до `approved`, и `decl` пуст у ВСЕХ**. Пост-чек проверяет подписанные термины (`membank/mempostcheck.go`), значит молчал он по двум причинам сразу. Условие включения жёсткого режима записано в самом коде — «после того, как владелец подтвердит точность», а точность мерить не на чем, пока банк не подписан. Порядок для бэкенда: подписать банк → заполнить формы → замер ложных тревог → решение владельца. +* **ИТОГ СЛЕПОГО ЧТЕНИЯ (две редакции, 219 судей Opus, $0.66 на реплику `low₂`).** Редакция 1 дала 18:6 «дешёвая рука лучше» — **вывод СНЯТ**: судьям показывали усечённый черновик (стадия `edit` склеивает несколько draft-чанков; в 10 юнитах из 15 опора покрывала 55–79%). Редакция 2 на склеенном по манифесту черновике (покрытие 99–100%) плюс **активные нули** (`low₁` против `low₂`): **судьи назвали победителя в 29 голосах из 30 на чистом шуме**, перекос на шуме (80%) БОЛЬШЕ боевого (70%). Первичные исходы: точность 12:10:8 (p=0.842), художественность 19:8:3 (p=0.070, Холм **0.141**) ⇒ **различие НЕ ПРЕДЪЯВЛЕНО**. Механика вскрыта: в **73 голосах из 74** побеждал вариант с меньшим числом претензий, а счётчик упирался в потолок в половине голосов. Текстовый шум одной руки (0.799) больше межрежимного (0.820). +* **ПРИБОР ДРЕЙФА, первые числа ($0, на уже купленном).** Терминов с более чем одной передачей в тексте — 13–16% от измеренных; сменивших форму между главами — 6–8%. Независимым путём (поле `spread`, считает сам движок): **30 записей из 102 несут >1 передачу, максимум 7 форм у одного ключа** (`元石`: «юаньши · камень юань · изначальный камень · первородный камень…»). ⚠ Разброс МЕЖДУ режимами (0.3–1.9%) **не превышает шум-пола** (2.4%, снят по паре реплик одной руки) ⇒ дрейф на этом отрезке — свойство черновика и банка, **не редактора**; экономия на редакторе к нему отношения не имеет. +* **⚠ Мои ошибки этого пака, названные вслух:** первая редакция пре-рега имела невалидный первичный тест (ничьи в знаменателе против H₀=50% дают ошибку I рода 17.8%) и правило решения с непокрытым пространством исходов; гейт слепоты искал `[A-Za-z]{2,}` и пропускал одиночные латинские буквы (23–25 на руку, слепота при этом не пробита — асимметрия 8%); первый гейт покрытия мерил долю совпавших слов и срезал 14 юнитов из 15, потому что смешивал «нет опоры» с «сильно правил»; первый парсер банка искал `src:` вместо формата «ключ⇥передача» и печатал «дрейф 0%» на пустых вариантах — отказ пойман гейтом парсера, который теперь в приборе. Сверка с нормами оркестратора post-hoc: риг нарушил «оба порядка» (обе редакции), «полно-evidence окна» (редакция 1), «шум-полы измерены» (редакция 1), «детерминированный скорер > судьи» и D39.61 «вывод на агрегате до вскрытия единиц». + +**📌 02.09 · ПРОБА РЕДАКТОРА ПО ЧЕТЫРЁМ ОСЯМ КУПЛЕНА И ЗАКОНЧЕНА. Ответ на вопрос владельца «почему редактор дорог» получен: ОН ДУМАЕТ, А НЕ ПИШЕТ.** +Отчёт — `docs/experiments/23-editor-tier.md` **Д54**. Пре-рег стенда — `eval/dovodka/prereg-4axes/PREREG.md` (фризы `c08b547` и `590256a`), журнал исполнения со всеми находками — `eval/dovodka/prereg-4axes/ISPOLNENIE.md`. Стенд — `~/books/gu-zhenren/probe-4axes/`. **Израсходовано $5.524817 из санкции $9.50; остаток $3.98 НЕ добирался.** + +* **E0 — ответ на вопрос.** Размышление = **77.9%** цены редактора без ручки (`p7-off`) и **76.6%** (`p9-off`); с `low` — 45.7% и 46.7%; у `glm-5` с выключенным thinking — **0.0%**. Ретраи: 39.3% и 26.3% цены руки против 1.8% и 6.0% у `low`. +* **E1 (главный) — эффект ЕСТЬ.** Вилкоксон-Пратт, n=17, **p=7.6e-05**, Ходжес-Леман **×0.283**, ДИ **[0.175; 0.431]**. 19 пар из 40 цензурированы ⇒ величина — **нижняя граница**: `low` режет размышление **минимум втрое**. +* **E2 — цена доставленного знака падает в 2.5 раза** (боевая ×0.407 [0.326; 0.605]). Все ЧЕТЫРЕ заранее объявленных варианта, включая строгое `delivered` и кэш-независимую цену, согласны по знаку и величине. +* **E3 (ось промпта) — НИЖЕ РАЗРЕШЕНИЯ** (p=0.487). **E4 (взаимодействие) — ниже разрешения** (p=0.854), описательный по построению. +* **E5 — опасение плана ОПРОВЕРГНУТО: `low` БЕЗОПАСНЕЕ.** Эхо-клеток у `∅` 2, у `low` **0**; обрывов по длине 10 и 9 против **1 и 1**. Критерий риска не предъявлен. ⚠ Эхо считается по СЫРОМУ ответу: санитайзер его вырезает, и по отгружаемому тексту эхо не видно вовсе. +* ⛔ **ИЗ ЭТОГО НЕ СЛЕДУЕТ РЕКОМЕНДАЦИЯ СТАВИТЬ `low` В БОЙ.** Качество не судилось — прямо вне скоупа. Проба даёт цену рычага и снимает подозрение по эху; следующий шаг — судейство качества `low` против `∅`, и теперь его стоит купить. + +**⛔ ГЛАВНАЯ НАХОДКА О ДВИЖКЕ, КОТОРОЙ ПЛАН НЕ ЗНАЛ: АВТО-БАНК РАСТЁТ МЕЖДУ ПОКУПКАМИ.** Терминолог перезапускается в каждой руке и, пока у него есть бюджет, доращивает банк — а банк есть ВХОД РЕДАКТОРА. В базе `consolidated=51`, в первой же руке 81, `memory_version` уехал, edit-снапшот сдвинулся, движок потребовал `--resnapshot`. Без гарда это проявилось бы на втором юните уже с оплаченными клетками, а хуже — банк мог вырасти ПО-РАЗНОМУ в разных руках, дав редактору разный вход при внешне исправном кресте. Лечение: гонять базу конфигом БЕЗ стадии `edit` до неподвижной точки, где терминальное условие — **ноль свежих платных строк И ни одного отказа по деньгам** (одного «`memory_version` не изменился» НЕДОСТАТОЧНО). Стоило $0.0352. + +**⭐ И ещё три находки, полезные любому следующему замеру.** (1) **Проводная улика СУЩЕСТВУЕТ** вопреки §3 плана: `LOG_LLM_BODIES=1` + `LOG_LEVEL=debug` пишет сырое тело запроса (`obs/logging.go:72` ← `llm/httpllm.go:415`), только тела, без URL и заголовков — снято, что у `low`-рук в теле стоит `reasoning_effort:"low"`, у `∅`-рук ключа НЕТ, у `glm-5` — `thinking:{type:disabled}`. (2) **Ось креста можно доказать ЗА $0**: потолок «база + малая сумма» отказывает первой edit-резервации, но снапшот и джоб к этому моменту уже вычислены; ⚠ потолок обязан лежать НИЖЕ редакторской резервации, но ВЫШЕ батча терминолога, иначе ложная точка выглядит тишиной. (3) **`tmctl manifest` бесплатен и даёт `units_total` ДО покупки** — `n` пинится числом, а не «сколько получится» (здесь 17 глав → 20 юнитов, а не ожидавшиеся 24). + +**Самопроверка исполнением (мандат промта §7):** агент-контролёр на `fable` вёл всю сессию по распоряжению владельца и поймал у меня **шесть ошибок**, из них четыре — одного класса «показания собственного инструмента приняты за факт о мире»: слепой к эху E5, ковариата по первому чанку вместо суммы (15 юнитов из 20), ложная неподвижная точка банка, дефект регулярки, выданный за находку о проводе. **Все пойманы ДО того, как повлияли на результат**; реестр с классами — Д54.5. Я, в свою очередь, опровергла исполнением одну его находку и одну свою. + +**⚠ ЧТО ПРЕДЪЯВЛЕНО, А НЕ СПРЯТАНО:** гард «зелень на пустоте» прошёл ВПРИТЫК — у `p7-off` пустых ровно 4/20 = 20% при правиле «>20% ⇒ отказ», а по строгому определению доставки было бы 25% и прибор отказал бы; четыре оплаченных `decode_error` в `p7-off` на $0.689 (34.5% цены руки), все на ретраях после обрыва, при нуле в трёх других руках; три юнита выброшены из E1 по `R̂ ≤ 0`, и два из них — `low`-клетки с почти нулевым размышлением, то есть выброс делает вывод КОНСЕРВАТИВНЕЕ. Полный список — Д54.4. + + +**📌 29.08 · ФАЗА Д — НА ОБА ГЛАВНЫХ ВОПРОСА ВЛАДЕЛЬЦА ОТВЕЧЕНО, ВОПРОС 0 ОСТАЁТСЯ ОТКРЫТЫМ. Сессия $0, ни одного платного вызова.** +⚠ **«Отвечено», а не «закрыто», и разница существенная:** на Вопрос 2 ответ дан в форме СЛАБЕЕ, чем звучит сам вопрос — минимакс не проверен (худший ВОЗМОЖНЫЙ жилец не искался), вендоро-независимость архитектуры НЕ проверена (буфер двухвендорен: черновик делает DeepSeek). Первая редакция этой шапки писала «ЗАКРЫТЫ», хотя буллеты под ней несли оговорки — поправлено адверсариальной приёмкой. +Отчёт — `docs/experiments/23-editor-tier.md`, секции **Д35–Д38**. Агент-сессий 154 → **186 из 200**. Деньги не тронуты: резерв пака $1.2634 из $18.30 как был. + +* **Шаг 4 плана 22.08 ЗАКРЫТ** (Д36) — последнее незакрытое условие §7, которое можно было закрыть бесплатно. Дуэль «ролевой промт против его отсутствия» на 16 уже купленных карантинных клетках, панель из 5 армов с ГРУБЫМ ДЕКОЕМ (`ZD`), 16 читателей `fable-5`. **Промт различим: +1.50 места при пороге 1.13, знаковый p=0.0213, 13 глав из 16 в одну сторону** — ровно порог, объявленный пре-регом ДО чисел. ⇒ у прибора ЕСТЬ разрешение на промт-инженерном материале, и **всё, что фаза назвала неразличимым, меньше, чем ВЕСЬ ролевой промт**. +* ⭐⭐ **И промт покупает ПРОЗУ, а не БРАК:** детерминированный счётчик дефект-классов разницы между «с промтом» и «без промта» НЕ находит (p=0.6875) при том, что грубый декой на той же панели ловит (p=0.0156). Класс Б: текст без промта читатель называет машинным в **9 главах из 16**, с промтом — **ни разу** (p=0.0039). ⇒ минимакс владельца получает третий член: по браку несут гейты, **по прозе — ростер И ПРОМТ**, и вес промта того же порядка, что вес целой дорогой стадии. +* ⭐ **Закрыт долг Д34.5, который фаза назвала сама:** третий круг панели-0 тем же `fable-5` дал первую в фазе оценку СОБСТВЕННОГО шума прибора. **Доля чисто читательского шума в пороге = 0.34**; смена семейства стоит столько же (0.32–0.43) ⇒ подмена судьи по средним оправдана. ⛔ Но хвост разошёлся и **воспроизвёлся**: полный переворот порядка не случается внутри семейства ни на одной из 16 глав и случается между семействами на той единственной, где сталкиваются брак и проза — обеими межсемейными парами. Вердикт о буфере при этом устоял ТРЕТИЙ раз (p=0.0042 · 0.0213 · 0.0042). +* **📌 ПИНГ ОРКЕСТРАТОРУ №19 — твой вопрос по Gemini (D39.164) ЗАКРЫТ, и без новых покупок.** Выживает **ПОСЛЕДНЕЕ** системное сообщение, выбрасывается ПЕРВОЕ: разность `RE.prompt_tokens − RQ.prompt_tokens` = **2436 РОВНО на всех 16 главах, sd=0**, а постоянного размера из двух системных только первое. Улика исполняемая — `eval/dovodka/sysmsg.py`, EXIT=0. Твои три поправки (переоценка «физически не может», повторяемость `Content.parts[]`, форум как не-источник) внесены в `00-provider-quirks.md` моей рукой, как ты и просил. ⛔ **И следствие для движка правится в ХУДШУЮ сторону, хотя дефект уже закрыт твоим же лендингом `7d0c6f2`:** до 28.08 хоп в Gemini терял **не глоссарий, а ВЕСЬ ПРОМТ СТАДИИ** — `render.go` кладёт промт первым, инъекцию второй. Любой исторический результат на Gemini-хопе до 28.08 читать как «стадия работала без своего промта». +* ⛔ **СВЕРКА `--final` СДАНА КРАСНОЙ: ТРИ ПРОВАЛА, И НИ ОДИН НЕ ПРО РАБОТУ** (диагноз на каждый — Д39.2; гейты я НЕ чинил под зелень). ⚠ Первая редакция этого пинга называла ДВА и недосчитывала R37 — поймано адверсариальной приёмкой исполнением. (1) Переезд обнулил mtime всего сырья — 335 клеток Ф2 имеют ОДИН mtime, поэтому `eval/tenant_panel/verify22.py` считает границу двойной оплаты как `$0.000000` и роняет **R71**. Клетки времени покупки в себе не хранят ⇒ улика утрачена безвозвратно, результат — нет. (2) Улика **R77** («пинг в PROGRESS») ищет заголовок хроники за 15 августа со словами «ФАЗА Д», который вынесение хроники увезло в `docs/archive/PROGRESS-2026-08-10-15.md:73`=`сырьё снято, выводы ПОНИЖЕНЫ`. ⚠ Точную строку здесь НЕ цитирую намеренно: первая редакция этого пинга процитировала её — и гейт позеленел от того, что я НАПИСАЛ ПРО ГЕЙТ, а не от того, что исполнил обязательство. Это ровно та подмена, против которой реестр и заведён; поймано собственной сверкой `--final` ⇒ протух ГЕЙТ, а не обязательство. **Норма впредь: время покупки и время ответа писать ПОЛЕМ В АРТЕФАКТ, а не полагаться на файловую систему.** (3) **R37 — ложный КРАСНЫЙ от нотации, а не от переезда:** улика записана как `material_ja.py \| grep -q "СТОП\|OK "`, разборщик реестра восстанавливает `\|` в `|` ОБЕИМ чертам — и трубе оболочки, и альтернации внутри grep, — а без `-E` черта в grep литеральна. Сам замер зелёный: `[OK ] срабатываний нет: 0 из 48 чанков`, EXIT=0. ⚠ У этой же строки в прошлом был ложный ЗЕЛЁНЫЙ по той же причине — нотация ломает улику в обе стороны. **Реестр я не правил: чинить улики в момент сдачи — это и есть «дописать таблицу под результат».** ⚠ **И отдельная находка приёмки, НЕ моя:** в журнале агент-сессий есть доисторические дубли токенов внутри прогона `d4` (15 токенов заявлены дважды) — они стояли в HEAD до этой сессии, а `runs.py --selftest` такой класс не ловит. +* ⚠ **Зона не запускалась на этой машине вовсе:** книги переехали в `<репозиторий>/books`, а риги ходят по `Path.home()/"books"` — **65 вхождений в 31 файле** (бэклог, строка 217). Поднято симлинком + пере-собран `eval/.venv` (CPython **3.14.7** против пина 3.14.4 — расхождение названо, риги `dovodka/` чистый stdlib). Оба шага записаны в `eval/README.md`; там же теперь карта зоны `dovodka/` — она описывалась ОДНИМ файлом при сорока скриптах. +* ⭐⭐ **ДЕНЬГИ — свод на ОДНОМ прайсе и в главах Гу, которого у фазы не было (Д41).** Боевая связка «черновик `flash` → редактор `pro`» = **$127 за книгу в 1500 глав Гу, и 90% этих денег — РЕДАКТОР** ($114 из $127). **Редактор заменяем: тот же черновик с редактором `glm-5` = $20, в 6.3 раза дешевле, качество НЕРАЗЛИЧИМО** (3 круга чтения, 2 семейства, второй прибор). Однопроходка на той же дорогой модели — $62 (вдвое дешевле связки), на `gpt-5.6-luna` — **$7.6**, но в прод не идёт: цензур-ось не мерена, китайских клеток нет. ⚠ Сведено расхождение, лежавшее не разобранным: `research/04` давал книгу за **$7–15**, фаза — за $41–68. Оба верны — (а) «книга 1500 глав» в Д29.1 это 1500 НАШИХ единиц ≈ 735 глав Гу, (б) ресёрч считал ВИДИМЫЙ вывод, а у `deepseek-v4-pro` **46% токенов — размышление, и это ЧЕРНОВИК, а не проверка** (96% предложений финала дословно есть в трейсе): модель пишет перевод дважды и обе копии тарифицируются по выходу. **Правило для сметы: цену роли считать по `total_tokens`, а не по длине перевода.** +* **ЧТО ОСТАЛОСЬ И СКОЛЬКО СТОИТ** (Д38.6, ранжировано): **Шаг 7 — 15 глав Гу ПОДРЯД боевым профилем с ЗАСЕЯННЫМИ характер-листами, ~$2 + движковый прогон.** Это единственный замер, дающий прибор под **Вопрос 0** («консистентность на всю книгу»), и он же готовая in-loop телеметрия прода. ⛔ Без засева характер-листов результат ложно-отрицателен ПО ПОСТРОЕНИЮ: полей пола в банке нет вовсе, механизма не существовало ни в одном прогоне. Дальше — цензур-ось дешёвой линии $0.2–0.6 · китайские клетки ~$0.3 · З-2 $0.35 (перед ним $0-долг К-3) · пере-покупка `ZP` ~$0.4. **В резерв $1.26 пункт 1 НЕ влезает — нужна новая фаза и слово владельца ДО начала. Потолки сессией не поднимались.** +* **📌 ОРКЕСТРАТОРУ, мелочь чужой зоны:** строка бэклога **217** цитирует якорь `eval/conformance.py:48` с ожиданием `REPO = Path(...)`; я добавил в этот файл один импорт, и цель уехала на строку 49. Хук поймал, но правка — в таблице бэклога, то есть в твоей зоне: по правилу самого хука сообщаю, а не чиню. Сама строка 217 в силе и подтверждена этой сессией: **65 вхождений `Path.home()/"books"` в 31 файле**, лечение — одна разрешающая функция корня книг, а не симлинк. +* ⛔⛔ **30.08, ПО ЗАМЕЧАНИЮ ВЛАДЕЛЬЦА ПРОЧИТАН ВЕСЬ КОРПУС ФАЗЫ — И ОН ПОПРАВИЛ МОЙ ЖЕ ОТВЕТ В ЧЕТЫРЁХ МЕСТАХ (Д42, Д43).** (1) **«$11 за книгу» — реальная таблица эксп-22, но по ИЮЛЬСКОМУ прайсу.** Пере-счёт тех же клеток по текущему: связка $40–43 вместо $13–14. (2) **Развилка владельца ПОТЕРЯНА всеми планами:** `PLAN-17-08.md:105-119`=`РЕШЕНИЕ ВЛАДЕЛЬЦА, КОТОРОЕ ЖДЁТ ЕГО САМОГО` — «черновая роль по НАШЕМУ ЖЕ правилу должна уйти с DeepSeek», luna $0.00357 против flash $0.00544. Ни в 21.08, ни в консилиуме, ни в 22.08, ни в моих Д38/Д41 этого пункта нет. ⚠ Приз развилки — **6%**, а не разы: редактор съедает 85% связки, и строка плана «$40 против $23» смешивала смену ЧЕРНОВИКА со сменой РЕДАКТОРА. (3) **«Однопроходка дешевле связки» снято прибором, который читает ОДНУ главу** — а по находке владельца (журнал §11) без черновика терминологу не из чего собирать банк, и «на одной главе банк не нужен, на книге в 1500 глав имена разъедутся». Кандидат `K7` (однопроходка → майнинг банка из её выхода → фиксер) не мерен ни разу. (4) **Конфликт приборов по замене редактора напечатан:** Д41 даёт `glm-5` неразличимым от `dspro` по слепому чтению, а счёт ошибок эксп-22 даёт `R2` против `R0` **−2.12, Холм 0.0188 — значимо хуже** на zh. Кто прав — вопрос приёмке. +* ⛔⛔ **30.08, ЖИВАЯ ВАХТА D39.92 ПЕРЕ-СНЯТА — ВЕНДОР-СТРАНИЦА DeepSeek ИЗМЕНИЛАСЬ, И ЭТО БЬЁТ ПО ВСЕЙ АРИФМЕТИКЕ РАЗМЫШЛЕНИЯ (Д44).** `curl` HTTP 200, `guides/thinking_mode`, 108 336 байт, sha256 `f28c4324…`. Было (наша запись 10.08): две колонки, у `deepseek-v4-pro` **`low` маппится в `high`**, «рычаг бюджета размышления существует ТОЛЬКО у flash». Стало дословно: *«identical for `deepseek-v4-flash` and `deepseek-v4-pro`»*, таблица одна, **`low → low`**; тумблер `{"thinking":{"type":"disabled"}}` подан как общий. ⇒ **у якоря письма ПОЯВИЛСЯ рабочий рычаг размышления, которого не было при всех покупках фазы.** ⚠ Это ДОКА, не поведенческая проба — по норме «слаг ≠ модель» перед деньгами нужна живая проба (единицы центов); сессия её НЕ делает без слова владельца. ⚠ Побочно с той же страницы, чего у нас не записано нигде: *«Thinking mode does not support the `temperature`… will have no effect»* ⇒ **наш `temperature: 0.3` на `deepseek-v4-pro` молча игнорируется.** ⚠ И: `effort:"low"` у DeepSeek **пере-вооружает эхо-мину** — рычаг есть, бесплатным не будет. +* ⭐⭐ **ЧИСЛА ПО ЛУНЕ ПЕРЕ-СНЯТЫ ПОКЛЕТОЧНО ПО ЗАПРОСУ ВЛАДЕЛЬЦА (Д44.6), И ОНИ БОЛЬШЕ, ЧЕМ Я ПЕЧАТАЛ.** Однопроходка, те же 16 английских глав, тот же промт, `finish=stop` 16/16 у обоих: `RN` (`deepseek-v4-pro`) медиана **$0.02011**/клетка, сумма $0.4938 · `RL` (`gpt-5.6-luna`) медиана **$0.00248**, сумма $0.0392 ⇒ **8.1× по медиане, 12.6× по сумме**, при качестве, которого прибор не разрешил. Вся разница — размышление: у якоря оно БИМОДАЛЬНО (466 … 19 559 токенов на главу), у луны прибито к ~1 000 явным `low`. ⛔ **НО ЭТО СРАВНЕНИЕ КОНФИГУРАЦИЙ, А НЕ МОДЕЛЕЙ, и ни одна прежняя строка этого не говорила:** якорю ручку не слали вовсе (= `high`), испытуемому слали `low`. По собственной норме фазы (Д28) это РАЗНЫЕ армы. ⇒ **Замер, который это разводит, стал возможен ровно сегодня** (см. пункт выше): те же 16 глав, тот же промт, `deepseek-v4-pro` с `reasoning_effort:"low"`, смета **$0.05–0.10**. Либо снимает с луны восьмикратное преимущество, либо подтверждает его при уравненных ступенях. **Самая дешёвая и самая информативная покупка, какую фаза может назвать; ждёт слова владельца.** +* ⛔⛔ **ТРЕТЬЯ ТИХАЯ ПОЛОМКА ОТ ПЕРЕЕЗДА МАШИНЫ, найдена исполнением 30.08: в `eval/.env` у ВСЕХ СЕМИ ключей пропали подчёркивания** — `DEEPSEEKAPIKEY` вместо `DEEPSEEK_API_KEY` (и так же GEMINI/OPENAI/XAI/ZAI/KIMI/MISTRAL). Код читает `os.environ["DEEPSEEK_API_KEY"]` (`eval/tenant_panel/roster.py:41`=`DEEPSEEK_API_KEY`), `load_dotenv` отрабатывает, имени нет ⇒ **любая покупка полигона падает `KeyError`**. ⚠ Значения ключей не читались — снят только список ИМЁН и признак непустоты. **Файл владельца не тронут, обёртка-переименовалка не написана** (это запрещённый молчаливый обход). Чинится одной правкой на стороне владельца. ⇒ **Класс назван: переезд ломает окружение МОЛЧА, и каждая поломка вскрывается только исполнением** — до этого были пути `~/books` (65 вхождений в 31 файле) и обнулённые mtime (Д35.2). **Санкционированная владельцем покупка (Д45) стоит готовой и ждёт ровно этого: пре-рег заморожен, арм заведён, провод прочитан, промт сверен побайтно, смета $0.16 при свободных $0.285.** +* ⛔ **РЕЕСТР ПОТЕРЯННОГО (Д43) — прямой ответ на «не хотелось бы расти по энтропии».** При каждой смене носителя курса часть намерений не переезжала, и никто этого не печатал. Собрано ~25 позиций: семь развилок на владельце · десять объявленных $0-замеров, которые не сделаны · **три долга ЧУЖИМ зонам, где полигон обещал пинг и не пингнул** · шесть выпавших из очереди покупок. **📌 Первое, что прошу оркестратора взять:** ⛔ **экстрактор epub сносит границы абзацев** (`HANDOFF-21-08.md:152`, консилиум поднял до ⭐ «починка ДО любого нового en-замера»): пинг обещан 21.08 и **так и не сделан**, а весь английский материал фазы снят с испорченной подачей. Плюс: английский пар-пакет не заленджен в `backend/prompts/`. **Норма, которую предлагаю завести: новый носитель курса обязан явно перечислить, что из старого НЕ переехало и почему.** +* ⚠ **Незакрываемое панелями, названо прямо:** абсолютная база класса Б (Шаг 5.1). Читателя просят назвать худших ВНУТРИ панели — метка сравнительная, норма абсолютная. До отдельной абсолютной рубрики или человека норму «≤1 машинная глава на 25 глав Гу» печатать нельзя. + + +* ⭐⛔ **30.08, ПОСЛЕ КОМПАКТА: КЛЮЧИ ПОЧИНЕНЫ ВЛАДЕЛЬЦЕМ, ПРОБНАЯ КЛЕТКА КУПЛЕНА ($0.038276) — И ГЛАВНОЕ ОНА ОТДАЛА БЕСПЛАТНО (Д45.5, Д46).** Несущая улика — не размер размышления, а **входные токены**: при побайтно одинаковых `messages` (sha256 сверен исполнением) вызов без параметра дал `prompt_tokens` **3270**, вызов с `reasoning_effort:"low"` — **3191**, то есть **−79**. **Два контроля детерминизма:** замер 05.08 (дефолт и `low` вернули ОДИНАКОВЫЕ 2124) и пред-полётные пробы самого рига (`84 · 84 · 84 · 84` на одном тривиальном запросе, четвёртая куплена 30.08 — то есть **дефолтный счёт входа не сдвинулся через смену вендорского сервинга**). ⇒ **параметр `low` на `deepseek-v4-pro` ТЕПЕРЬ ДОХОДИТ ДО МОДЕЛИ**, статус квирк-бюллетеня «НЕ УСТАНОВЛЕНО» закрыт в части «доходит ли» (новая запись **3г**). ⛔ **ВЕЛИЧИНА среза — НЕТ, и это находка против моего же пре-рега:** `RN` куплен 21.08, `RNL` — 30.08, а между блоками лежит **документированная смена вендорского сервинга** (её же зафиксировала вахта Д44) — сравнение приписывает ручке всё, что вендор поменял за девять дней; дрейф из §3б — второй конфаунд и слабее (у него есть знак, и он работает против нуля). Раздел Д45.3 «чего замер не закроет» не назвал НИ ОДНОГО — **дефект найден пере-чтением ПОСЛЕ фриза `87dd124`, печатаю против себя**. ⇒ ⭐ **Лечение одно: оба арма в ОДНОМ блоке вперемежку — и такой замер КУПИТЬ МОЖНО, вчетверо дешевле замороженного:** дизайн Д (интерливинг `RN2` против `RNL` на восьми дешёвых главах) стоит **$0.078–0.133** при свободных $0.2472, n=8 пар, минимальный двусторонний p = 0.0078; гард кассы его пропускает (проверено по коду, гард не тронут). **Пре-регистрация — Д47, заморожена коммитом, ⛔ НЕ КУПЛЕНО: санкция владельца была на ДРУГОЙ дизайн, переносить её я не вправе.** Рекомендация: пятнадцать клеток по фризу Д45 (дизайн А) **не покупать ни при каком ответе**; Д47 — по его слову. ⚠ **Первая редакция Д46 утверждала обратное — «ни один неконфаундированный дизайн не влезает» — и это было НЕВЕРНО** (пропущена дешёвая восьмёрка, при том что бимодальность нашла та же секция); сломал адверсариальный проход, разбор и цена ошибки — **Д46.6**, там же единственная находка прохода, которую я ОТКЛОНИЛ (корреляция по порядку вызовов: у всех 16 клеток `RN` один mtime, порядка не существует). Боевая ступень редактора **не тронута** (`eval/tenant_panel/roster.py` — правлен только комментарий, который до сегодня объяснял выбор снятой посылкой; гейт пака пере-снят, расхождение то же единственное mtime-шное). + +* ⭐⭐ **30.08, Д47 ЗАПУЩЕН ПО САНКЦИИ ВЛАДЕЛЬЦА И ОСТАНОВЛЕН ГАРДОМ ПОСЛЕ ПЕРВОЙ ПАРЫ — А КУПЛЕННОЕ ОКАЗАЛОСЬ ЦЕННЕЕ ЭНДПОЙНТА (Д47.6).** Списано **$0.134804**, ФД-N 3.187585 из 3.30, потолок НЕ поднимался. **Побайтно один промт, одна глава `b065a92dc0`, `reasoning_effort` не слался НИ РАЗУ: 21.08 модель думала 466 токенов, 30.08 — 17 757. ×38.** ⚠⚠ **ПОПРАВЛЕНО В ТОТ ЖЕ ДЕНЬ ПО ВОПРОСУ ВЛАДЕЛЬЦА (Д47.7): подавать ×38 как ЗАМЕРЕННЫЙ СДВИГ ВО ВРЕМЕНИ было нельзя** — это разность двух ОДИНОЧНЫХ розыгрышей у модели с большим разбросом. По лучшей имеющейся оценке (sd логарифма 0.82 ⇒ одно sd = ×2.3, шесть групп «тот же тег, разные розыгрыши», 18 вызовов, судейская роль) ×38 — это ≈3.1 sd: **редко, но возможно ⇒ причина НЕ УСТАНОВЛЕНА**, обе гипотезы живы, а чистых повторов одного промта на роли `onepass` в корпусе НЕТ ни одного. ⛔ **И первый заход к этой оценке был бы десятой ошибкой дня:** я сгруппировал вызовы по «модель·глава·роль», получил 100 групп и «разброс ×11» — а группы смешивают армы `RN`/`RC`/`RB` с РАЗНЫМИ промтами (на `27cb3a7e69`: 7 061 · 498 · 18 043), то есть мерили разницу инструкций, а не розыгрыша. ⇒ **Устояло то, что важнее причины: сравнивать одиночные розыгрыши нельзя ни при какой гипотезе — это осуждает и дизайн А, и МОЙ дизайн Д.** ⭐ Побочно Клейм 1 подтверждён на БОЕВОМ промте: `prompt_tokens` = **3256 и 21.08, и 30.08** (через девять дней и смену сервинга), а `low` двигает их ровно на **−79**; гейт провенанса пройден (Δpt=79, кириллица 1.000, латиница 0). **Эндпойнт по правилу: внутри блока ручка дала ×1.40** (меньше ×2.52, полученных через девять дней — конфаунд эффект РАЗДУВАЛ), годных пар 1 из 8, знаковый тест p=1.0 ⇒ ⛔ **«НЕ УСТАНОВЛЕНО»**, добор глав после чисел запрещён. Носитель — `eval/dovodka/stupen.py`, написан ДО прихода клеток, селфтест стережёт, что порог достижим только единогласием. ⛔ **Смета ошиблась на порядок, и это моя восьмая ошибка того же класса:** $0.078–0.133 объявлялись ценой ВОСЬМИ пар, одна пара стоила $0.1348 — **я оценил опыт по той самой базе, нестабильность которой опыт и должен был показать**. ⭐ **Цена ответов теперь СЧИТАЕТСЯ, а не угадывается (Д47.8):** при sd логарифма 0.82 парный дизайн ловит эффект ×2.5 за 13 пар (≈$1.1), ×2.0 за 22 (≈$1.8), ×1.4 за 93 (≈$7.6); отдельный дешёвый вопрос «модель сдвинулась или это кости» — четыре повтора без ручки на той же главе, **≈$0.31**. ⛔ **Но приоритет не здесь:** ручка даёт ×1.4–2.5, а рядом стоит рычаг ×7–11 — смена модели на `gpt-5.6-luna` (поглавно медиана ×7.1, по сумме ×11.4) — и он упирается НЕ в деньги, а в кап агент-сессий (нужно 16, свободно 14). Тратить доллары на ручку прежде, чем порядковый рычаг прочитан по КАЧЕСТВУ, — плохая экономика. ⚠ Операционное для чужих циклов: отказ гарда возвращает код 1, но в ФОНОВОМ shell `set -e` цикл не остановил — семь итераций вхолостую, $0. + +* ⭐⭐ **30.08, ПАНЕЛЬ `luna1` ПРОЧИТАНА ВСЛЕПУЮ ПО САНКЦИИ ВЛАДЕЛЬЦА («Да, давай подниму кап»), $0 (Д48).** Кап 200 → 215, израсходовано 201. Читались ЧЕТЫРЕ арма на 15 главах (16-я выпала: клетка `RN` не прошла гейт годности, пропуск напечатан): однопроходка на `deepseek-v4-pro` · **та же однопроходка на `gpt-5.6-luna`** · боевая связка · **её вторая генерация как собственный шум прибора**. ⛔ **Сначала поправка к моему же предложению:** развилка владельца от 17.08 — про ЧЕРНОВУЮ роль, а её приз пере-считан в Д42.1 как **6%, а не разы** (редактор съедает 85% связки) ⇒ читать «луну как черновик» значило бы потратить кап на шестипроцентный рычаг; читался порядковый (×7–11). **Результат: средние места `Z0` 2.33 · `ZF` 2.33 · `RN` 2.53 · `RL` 2.80; близнецы расходятся на +0.00 при пороге 1.06 (прибор без смещения), якорь↔`RN` +0.20 при пороге 1.30 (p=0.79), якорь↔`RL` +0.47 при пороге 1.26 (p=0.58), очно `RL` против `Z0` — 6:9.** ⇒ ⭐ **дешёвая луна НЕ ОТЛИЧИМА по качеству ни от дорогого дипсика, ни от связки.** ⚠ Но: разрешение прибора грубое — два прогона ОДНОГО конвейера расходятся на **1.33 места из 4**, то есть разрыв луны это треть собственного шума; направление, хоть и незначимое, **против** луны; панель не трогает банк/консистентность на всю книгу, цензур-ось жанра и перенос на zh. ⛔ **Это ПЕРВЫЙ круг, вердикта ещё нет — правило конъюнкции требует повтора.** Дисциплина: ключ закоммичен ДО ответов, обёртка — замороженный `15cfac60`, модель читателей сверена ИСПОЛНЕНИЕМ (во всех 15 транскриптах `claude-fable-5`). ⛔ **Второй круг упирался в ОДНУ сессию — моя арифметическая ошибка при подъёме капа** (осталось 14, нужно 15); резать панель до 14 глав решением сессии запрещено. ⭐⭐ **ВТОРОЙ КРУГ ПРОЙДЕН (кап 215 → 220 по слову владельца, Д48.5): вывод ПОВТОРИЛСЯ, конъюнкция закрыта.** Средние места круг 1 → круг 2: `Z0` 2.33 → 2.20 · `ZF` 2.33 → 2.53 · `RN` 2.53 → 2.60 · `RL` **2.80 → 2.67**; якорь↔`RL` +0.47 (порог 1.26, p=0.58) → **+0.30** (порог 1.11, p=0.77), то есть отставание луны во втором круге даже СОКРАТИЛОСЬ. Круги разведены по норме рига (ответы первого унесены в `krug1/`, второй писал по ТЕМ ЖЕ пакетам; свод первого из подкаталога воспроизвёл прежние числа до сотой); модель всех 30 читателей сверена по транскриптам. ⚠ Регистратор отработал как сторож: пере-заявить те же главы отказался, пока сессии первого круга не закрыты (`ГОНКА СЕССИЙ`). ⇒ **однопроходка на `gpt-5.6-luna` неотличима по качеству от однопроходки на `deepseek-v4-pro` и от боевой связки на 30 слепых чтениях**, при цене ниже — ⚠ **но число «7.1× по медиане» я подавал НЕВЕРНО, поправка в Д48.6 по вопросу владельца.** (1) В знаменатель попала ПУСТАЯ клетка дипсика (`100b088f71`, ноль знаков, та самая, что не прошла гейт годности): на 15 годных пар медиана **10.5×**, по сумме **12.0×**; побочно — непригодную клетку выдал дипсик, 1 из 16, у луны 0 из 16. (2) Тяжелее: **медиану тут вообще нельзя приводить — распределение ДВУГОРБОЕ** (восемь глав ≈2×, восемь ≈20×, посередине пусто), и она скачет 7.1 → 10.5 от выброса одной клетки. Честно: **от 1.3× до 34×, и величина следует за тем, сколько дипсик надумал**. (3) **Разложение:** 87% цены дипсика — размышление (разброс по главам ×42: 466–19 559), у луны 49% и ×3 (511–1 535); **контрфакт «дипсик думает как луна» даёт всего ×2.9** — это чистый прайс и накладные, остальное объём размышления. (4) ⚠ Конфаунд в силе: дипсик ехал без ручки (дефолт `high`), луна на явном `low`; ручка стоит ×1.40 (Д47.6) — сузит, но не закроет. (5) ⚠ Воспроизводимость самой луны **не мерена ни разу** (0 групп повторов на 749 вызовов), а её `reasoning_tokens` подозрительно кратны 512 — возможен блочный учёт, проверить до смет. ⛔ Переключение — решение владельца, и перед ним стоит незакрытый гейт, названный им самим 16.08: у однопроходки нет черновика, из которого терминолог добывает свидетельства для банка (Д42.3). + +* ⛔ **30.08, ЖИВАЯ СВЕРКА ПРАЙСА GEMINI ПО ВОПРОСУ ВЛАДЕЛЬЦА — ОДИН ПИН ВДВОЕ ЗАВЫШЕН** (квирк-бюллетень, раздел прайса; источник `ai.google.dev/gemini-api/docs/pricing`). `gemini-3.1-flash-lite` — пин верен ($0.25/$0.025/$1.50). ⛔ **`gemini-3.6-flash`: у нас $1.50/$0.15/$7.50, у вендора дословно «$0.75 through December 31, 2026», то есть выход сегодня $3.75 — наш пин это ПОСЛЕ-промо цена, сметы на этой модели завышены ×2.** ⚠ **Пин я НЕ правил сознательно:** `roster.cost()` считает клетки ИЗ ПИНА, и правка переписала бы стоимость **8 уже купленных клеток** (Д32.11 — леджер есть оценка) ⇒ решение за владельцем. `gemini-3.1-pro-preview` верен для ≤200k, но у вендора есть не записанный у нас тир >200k ($4/$0.40/$18). ⭐ **И на странице есть `gemini-2.5-flash-lite` — $0.10/$0.01/$0.40 выход, втрое дешевле самой дешёвой нашей модели**; в смету брать НЕЛЬЗЯ: 2.5-серия имеет shutdown 16.10.2026 и интермиттентный 404 при живом слаге, качество и эхо не мерены. **Урок для всех пинов: промо-цена с датой окончания попадает в ростер как постоянная и тихо врёт — у пина обязана быть дата и оговорка о промо.** + +**📌 ПИНГ ПОЛИГОНУ от оркестратора №19 (28.08, D39.164) — вендор-вердикт по Gemini для `docs/experiments/00-provider-quirks.md`.** +Материал добыт бэкенд-сессией (curl по вендор-доке, не пересказ), но файл — ВАША зона, вписываете вы. ⚠ Вендор-основание +ДОСЛОВНО, со ссылкой и датами снятия, уже лежит в `backend/configs/models.yaml` у провайдера `gemini` (греп +`ВЕНДОР-ОСНОВАНИЕ`) — сюда не переписываю. **Строка 157 квирков несёт ТРИ утверждения сильнее источника:** (1) «слой +ФИЗИЧЕСКИ не может пронести больше одного системного» — вендор говорит про НАТИВНЫЙ `systemInstruction`, а что делает с +двумя системными OpenAI-совместимый ШИМ, не документирует нигде; (2) «уход на нативный API проблемы не решает» — верно по +сути, не по причине: `Content.parts[]` ПОВТОРЯЕМОЕ, и нативный API МОЖЕТ нести N системных текстов как N частей ОДНОГО +`Content`; (3) «форум Google» — НЕ вендорский источник: тред `discuss.ai.google.dev/t/86097` — два поста, оба от +НЕ-сотрудников (staff=false), 30.05.2025, ответа Google нет, а читается наравне с нашим замером. +**Открыто честно:** «выживает ровно одно» против «не выживает ни одного» не разрешено — маркер пробы приписан к `msgs[0]`, +и его отсутствие совместимо с обоими чтениями, а зеро-системного контроля в скрипте нет. Твёрдо: НЕ склеиваются +(`prompt_tokens` 2994 → 535) и first-wins ложно. **Дешёвое решающее доизмерение:** тот же скрипт, маркер на ПОСЛЕДНЕЕ +системное плюс user-only базовая клетка. ⚠ Граница: проба гонялась на `gemini-3.1-flash-lite`, а в цепочке эскалации стоит +`gemini-3.1-pro-preview` — слой тот же, слаг другой. Для движка безразлично: склейка на нашей стороне заленджена (D39.164). + +**ИТОГ ПОЛИГОН-СЕССИИ 23.08 — ШАГ 1 ПЛАНА 22.08 ЗАКРЫТ (панель-0, $0).** Отчёт целиком — секция **Д32** +`docs/experiments/23-editor-tier.md`; фризы `bedc39a`, `9e33a1b`; денег не потрачено (панель собрана на уже +купленных клетках). **Вердикт (интеракция «архитектура × жилец на ИСПЫТАННЫХ жильцах», не минимакс):** слабый +жилец `glm-5` РЕДАКТОРОМ над боевым черновиком неотличим от боевого `deepseek-v4-pro` в той же роли (разрыв +средних мест **+0.00**, p=0.80), а ОДНОПРОХОДКОЙ различимо хуже (**+1.12** места при пороге 0.99, знаковый +**p=0.0042**, +13 фаталов p=0.0312) ⇒ **буфер архитектуры существует и замерен** — ⚠ на 16 главах. +**⛔ ДЛЯ БЭКЕНДА:** в **2 окнах из 8** с первым лицом пол рассказчика по главе НЕ УСТАНАВЛИВАЕТСЯ вовсе +(эталон снят вслепую тремя независимыми чтениями на главу), а полей пола в банке НЕТ +(`~/books/role-topology/bank-en.json`, 25 терминов) ⇒ закрыть эти ~25% может ТОЛЬКО книжная память; смыкается +со строкой бэклога **210**. +**⚠ ОТКРЫТО НА ВЛАДЕЛЬЦЕ:** сверить **$17.04** с реальным счётом DeepSeek может только он. Долг В21 (сверка +кассы двумя путями) ИСПОЛНЕН, результат отрицательный: сверка на диске НЕВОЗМОЖНА в принципе — `cost_usd` +вычисляется нашим же `roster.cost` (`buy.py:93-95`), а не приходит от вендора; на 213 клетках у четырёх +вендоров из шести арифметика сходится до последнего знака, а «офф-пик = ½» в ЗАПИСАННЫХ ценах НЕ наблюдается. + +**⚠ Пинг оркестратора №18 — 20.08 (протухшие цены в квирках, чинить вашей рукой).** `docs/experiments/00-provider-quirks.md` до сих пор утверждает, что цены после катовера НЕ изменились («flash $0.14/$0.28»). Это опровергнуто пере-пином 13–15.08 (D39.137): таблица запинена ПИКОМ — flash 0.44/1.32 при кэш-хите **0.014**, pro 1.32/3.96 при кэш-хите **0.044** за 1M (сверено с `backend/configs/models.yaml:231,247`=`cached_per_m` и телом D39.137 §2а), и счёт шиппинга = 100% DeepSeek ⇒ ×4.2–4.4 в пике. Квирки — ваша зона, рукой не трогаю; поправьте при ближайшем касании, потому что по ним считают деньги проб. ⚠ **ВТОРОЙ пункт этого пинга СНЯТ 05.09 как ЛОЖНОЕ ОТРИЦАНИЕ оркестратора.** Он утверждал, что факт про пиковые окна цен «в квирках ОТСУТСТВУЕТ (греп = 0)». Факт ТАМ ЕСТЬ (`docs/experiments/00-provider-quirks.md`, греп `ПИК DEEPSEEK`) — и несёт поправку, которой не было в моей копии: **пик только ПО БУДНЯМ, выходные целиком идут по офф-пику**. То есть оркестратор, живший по своей копии, отодвигал платное на вдвое дороже по выходным. Копия снята, единственный носитель — квирки. Отрицание было получено грепом, который не мог сработать; урок общий: **команда, на которой стоит отрицание, приводится в тексте, чтобы её мог воспроизвести другой.** ⚠ Третий пункт того же аудита (`eval/README.md` держит мёртвый СТОП на платные прогоны) сведён ниже, в пинг №20 — один носитель на факт. + +⚠ **ВТОРОЙ пункт этого пинга ПЕРЕ-СНЯТ 05.09: спора нет и не было.** Он утверждал, что квирки и `docs/STACK.md` говорят «ручки эффорта у `deepseek-v4-pro` НЕТ» — оба говорят ОБРАТНОЕ (квирки §3г: «параметр `low` на `pro` ТЕПЕРЬ ДОХОДИТ ДО МОДЕЛИ», $0.038276, −79 prompt_tokens; `STACK.md:11` — то же). ⚠ Это был ЧЕТВЁРТЫЙ носитель фантомного противоречия, снесённого D39.200 п.4(а), и он пережил первую зачистку. Живой остаток один и он не спор: **вендор-сверка САМОГО МАППИНГА (`low` → что именно) и ВЕЛИЧИНА эффекта** — замера поведением после 13.08 нет ни у кого. Это боевой РЕДАКТОР и апекс эскалации. **Закрывается вендор-сверкой, а не выбором стороны** (гардрейл владельца) — и вы это только что делали по Gemini, то есть заход дешёвый. Носитель в трекере — строка **237**(б). + +**⛔ ПИНГ ОРКЕСТРАТОРА №20 ЗОНЕ — ТРИ ПРОТУХШИХ МЕСТА, все три ЖИВЫ на 02.09 (правки зонные, рукой не трогаю).** +1. **`eval/README.md` первой врезкой держит СТОП на платные прогоны** — «Платные прогоны/докупки СТОП до ре-пробы + (бэклог-строка 74)». Строка 74 закрыта (D39.95), ограничение пало лендингом 112 (D39.97), `pipeline-c1.yaml` несёт + `reasoning: "low"` с объяснением, а зона всё это время платно гоняет фазу Д: врезка объявляет запрещённым то, что делается ежедневно, и этим обесценивает все прочие ⚠ + в файле. Живым из неё остаётся только ⚠0731 (смена весов под слагом) и стохастичность эха. +⚠ **Пункты 2 и 3 СНЯТЫ 05.09 — зона их закрыла, пинг об этом не знал.** (2) `eval/README.md:40` уже говорит + «не один скрипт, а зона из ~40», а `docs/experiments/README.md` несёт строки и 22, и 23 (`:40`, `:41`). + (3) `naklon.py` в `main` ВЛИТ: `git ls-tree -r HEAD --name-only -- eval/ | grep -c naklon` → 1, и в + `eval/dovodka/` у HEAD 90 отслеженных файлов, а не 42. **Живым остаётся только пункт 1.** + +**ФАЗА Д «ДОВОДКА ЭКСП-22/23» — ИДЁТ.** ⚠ **Живое состояние фазы живёт В ЗОНЕ, не здесь** (`eval/dovodka/` — планы, консилиум, ревью; свежий носитель курса зона называет сама), приёмка фазы — у ПАРАЛЛЕЛЬНОГО оркестратора, деньги и цепь потолков — `eval/dovodka/money_d.py` (`PACK_CEILING`/`CEILINGS`), а не литералом здесь: три поколения записей в одном месте и были причиной, по которой состояние фазы стало нечитаемым. + +*(Хроника фазы Д — записи 10.08 (сессия №1) и 15.08 (сессия №2, сквозной аудит дуги 19→23 и пере-судейство `tier`) — вынесена в [archive/PROGRESS-2026-08-10-15.md](archive/PROGRESS-2026-08-10-15.md) с тремя поправками в шапке: потолок, закрытые пункты листа владельца, протухшие «долги». Открытым на владельце из неё остаётся ОДИН пункт — возражение Sol по проходу `tier`.)* +**Диспозиция оркестратора №17 (15.08), живая до приёмки фазы Д:** просьба хендоффа «эррата zh-канона: пере-сборка = правка закрытой оси, ратифицирует оркестратор» (`docs/POLYGON_PHASE_D_HANDOFF.md`, греп `Пере-сборка = правка закрытой оси` — файл дирти, номер строки не ставим по норме D39.179 п.4; завышение +0.0039, вердикты не двигает) — **к ПАРАЛЛЕЛЬНОМУ оркестратору при приёмке, не к движковому** (приёмка фазы Д — его зона, №17 полигон не трогает **по слову владельца**). Прожитое из записи (вторая передача и мелочи аудита корпуса) — `archive/reports/CORPUS_AUDIT_2026-08-15.md`; санкции владельца по деньгам фазы и замене ja-книги — D39.136 п.1. + +*(Память · Голос и состояние · Ридер-IDE — ЗАКРЫТЫЕ секции (D39.125): темы исполнены/переехали в зонные журналы; хроника — в архив-слайсах. Фронт пишет ТОЛЬКО в frontend-PROGRESS.md.)* + +