# Журнал полигон-сессии №2 фазы Д (15.08) — рабочее состояние > Пишется ПО ХОДУ (урок хендоффа §8) и на случай сжатия контекста (D39.121: сохранять список > изменённых файлов · незакрытые находки и диспозиции · обязательства и открытые вопросы · команды). > Заказ: `docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md`. Хендофф №1: `docs/POLYGON_PHASE_D_HANDOFF.md`. > Задание владельца этой сессии: пройти дугу 19→23 свежим взглядом, закрыть гипотезы качественно, > задать вектор. Плюс 15.08: «пересудить тир, но не подгонять; понять, кто ошибается из судей». ## 0. СЛОВО ВЛАДЕЛЬЦА, ПОЛУЧЕННОЕ В ЭТОЙ СЕССИИ (15.08) | вопрос | ответ владельца | что с ним сделано | |---|---|---| | потолок денег | «Подтверждаю подъём расходов, сколько тебе нужно» | записан числом **$6.85** в `money_d.py`, заведена ФД-H $0.10 | | кап агент-сессий 80 | «почему оставшиеся? ты можешь наспамить под 90» | кап снят его словом; судейские сессии считаю по-прежнему `runs.py` | | проход `tier` | «Можно пересудить. Но не подгонять. Нужно понять, кто ошибается из судей» | построен `tier2.py`, пре-рег зафризен `a03ac66`, прогон идёт | | ja-книга | «не помню; замена была потому что флагнули по 18+; кажется, я аппрувнул выкачивание» | СТОП снимаю с ЭТОЙ формулировкой, без «по слову владельца» | | японская нога H-4 | «Бери, ладно» | код зафризен `8c68828`, покупка запущена | | модель Sol | **«gpt 5.6 sol это и есть модель»** | ⇒ Sol = семейство OpenAI, см. §2 п.1 | ## 1. ЧТО СДЕЛАНО (все проверки прогнаны, все селфтесты зелены) **Новый код (моя зона `eval/dovodka/`):** * `gain.py` — КАЛИБРОВКА УСИЛЕНИЯ СУДЬИ. Зафризен `a03ac66`. Команды: `--density` (гейт: доля нулей ≥25% → пачка не несёт вывода «не различимо», exit 1) · `--samearm` (один арм на одних единицах в разных проходах, подписи текста сверяются) · `--agree` (корреляция трудности единицы между семействами) · `--floor` (близнецы и разведение половин по заданиям) · `--tier` (контрасты с числом ничьих на нуле) · `--selftest` (0 провалов). * `tier2.py` — ПЕРЕ-СУДЕЙСТВО `tier`. Зафризен `a03ac66` ДО первого ответа. `--emit|--score|--selftest`. **Починено:** * `adjud.py` — четыре дефекта контролей (Г-1 посадки 4/15→15/15 · Г-2 ложные претензии по форме и длине · Г-3 регекс осей резал «ВЕРНОСТЬ»→«ОСТЬ» · Г-4 окно резалось по `norm()`, без пунктуации и регистра). Новый гейт `--controls` (форма карточки классы не выдаёт) и `--selftest` — оба зелены. Задания пере-выпущены; прежний прогон в `~/books/judging/adjud-d4.PRE-FIX/` + `adjud-key.PRE-FIX.json`. ⚠ 7 отслеживаемых ответов адъюдикатора я СНАЧАЛА снёс, потом восстановил побайтно (поймал критик). * `itog_d4.py` — (а) `--fam=sol` падал на несущей оси («62 ответа, разобрано 0 меток»), потому что искал `blind-keys-d4-sol`, которого нет: теперь разведённый ключ если есть, иначе общий; (б) добавлена колонка `$/единица` (вся работа арма ПЛЮС его база) рядом с `$/клетка`. * `sud.py` — селфтест перестал быть прибит к панели d4: finish-гейт, близнец-гейт и гейт семейства теперь по ОСИ; заведён `_cell_file()` — одна точка правды о пути клетки. Сразу поймал две вещи (§2). * `money_d.py` — санкция $6.85 записана числом, вся цепь подъёмов объявлена находкой, заведена ФД-H. * `contour.py`/`ja_axis.py` — арм `J6` (второй редактор `glm-5` на ja), касса ФД-H, тег `dv-h-j6-*`. **Отчёт `docs/experiments/23-editor-tier.md`** (было 1946 строк, стало ~2366): добавлены секции **Д2** (внешняя подпись `tier` + почему спор не разрешается), **Д5** (⛔ объявлена НЕИСПОЛНЕННОЙ), **Д8** (чек-лист поправок 22/23), **Д14** с подсекциями 14.1–14.13. ## 2. ГЛАВНЫЕ НАХОДКИ — числа, которые нельзя потерять 1. **Sol = `gpt-5.6-sol`, то есть семейство OpenAI (слово владельца 15.08).** Арм `T2` = `gpt-5.6-terra` — ТА ЖЕ семья (`eval/editor_tier/roster.py:102`, `OPENAI_FAMILY_ET`). Sol дал `T1` +0.06 · `T3` −0.12 · **`T2` +8.12** — разницу нашёл только у своей семьи. Правило D13.3 (`eval/README.md` п.4) это запрещает. ⇒ **возражение Sol по `tier` как свидетельство не годится.** Прочие оси чисты: в панелях Д3/Д4/Д6/Д1/`border` армов OpenAI нет вовсе. 2. **Пачка `tier`/claude лежит на полу шкалы.** Тот же арм `R0`, те же 16 единиц, то же семейство, подписи текста совпадают 16/16: `tier` 0.69 ошибки/ед. при 9 нулях из 16, `border` **4.31** при 0 нулей; по-единично ниже в 15 из 16. В решающем контрасте 9 ничьих из 16, 7 из них на нуле. ⇒ **вывод пака 23 «сильный тир не отличим» СНЯТ.** Проход НЕ ИЗМЕРЕН обеими сторонами. 3. **Причина вжатия невосстановима.** Отпали: текст задания (шапки диффом равны), ширина панели (внутри одного аннулированного прогона 6 вариантов дали 2.35, 4 — 2.78), один автор (попарная схожесть оборотов 0.035). Остаётся сдвиг уровня ПАЧКИ; приписать сессиям нечем — файла `tier-JUDGES.json` не существует. Цена дефекта «идентичность судей не персистирована». 4. **Патология НЕ общая.** Доля нулей: `tier` 38% (24% без обоснования) · Д3 en 10% (5%) · Д6 3% · `border` 0 · **Д4 zh 2 нуля на 713 клеток** · Д1 0. По СЕССИЯМ выбиваются ровно две (`d3r2/p1/д-52` 24%, `d3r2/p2/д-55` 21%); все 28 сессий Д4 — 0%. ⇒ выводы по Д4/Д1/`border` этой болезнью НЕ заражены. 5. **Ручная сверка по исходнику (единица `38c99e5efb`).** 今日就让我二人…除了**你** → боевой редактор выдал «мы с тобой покараем **его**» (адресат угрозы стал союзником); 黄级 (нижняя ступень) → «высшего ранга». claude поставил 7 клеток из 8 в ноль с ПУСТЫМ обоснованием, ненулевой только декой. Sol эти места назвал. **На этой единице прав Sol.** 6. **РАЗЛОЖЕНИЕ КОНТРАСТОВ ПО ОСЯМ — за всю дугу не делалось ни разу** (Д14.11): `A1B/A0` −3.13 = ВЕРН −0.94 + ЯЗЫК −2.19 · `A3/A0` −1.87 = ВЕРН **−0.26** + ЯЗЫК −1.61 · `A6/A0` −1.06 = ВЕРН **+0.12** + ЯЗЫК −1.19 · `A4/A0` −0.13 · `E0/D0` +1.25 = ВЕРН +0.94 + ТЕРМИН +0.75 + ФОРМА +0.69 + ЯЗЫК +0.31 · `J0/J2` +0.11 = ВЕРН **0.00**. ⇒ контуры проигрывают переписи ПРОЗОЙ, а не смыслом; `A6` по смыслу не хуже боевой связки; на en редактор покупает в основном термины+верность+вёрстку — то есть H-3 опровергнута только в слове «ТОЛЬКО»; на ja второй проход по смыслу не покупает ничего. **Вектор:** решает ось ЯЗЫК, её не вытягивает ни один точечный контур (трогает 0.2–3.7% знаков). Искать надо СПЛОШНУЮ дешёвую переработку прозы, а не «дожать критика». Такого арма в дуге нет. 7. **Экономика:** `$/единица` (полная) zh: `A0` 0.00603 · `A4` 0.01419 · **`A3` 0.01546 = 2.56×A0** · `A1B` 0.00793 · `A2` 0.00408. en: `E0` 0.00885 · `E4` 0.01321. ⇒ «кандидат в прод вдвое дешевле» ЛОЖНО — он в 1.5–2.4 раза дороже; это платная страховка канона. ⚠ Я сначала назвал владельцу `A3` = $0.02110 — ОШИБКА (глоб `dv-a-a3-[0-9a-f]*` ловил и клетки критика, «crit» начинается с шестнадцатеричной `c`). Верно **0.01546**. 8. **`A3` получал от критика подтверждения как задания на правку**: 311 строк из 1696 (18.3%) — «верно», «допустимо», «не ошибка» (`contour.py:611-619` берёт любую строку с «-»). Ставка H-2б испытана инструментом, который на 18% работы правил заведомо исправное. 9. **Загрязнения панели en:** `E4`≡`E0` 12/16 (объявлено) · `E3`≡`D0` 0/16 (починено) · **`E1`≡`D0` 5/16 — НИГДЕ не объявлено**. 10. **Норма нарушена на Д1:** клетка `dv-e-r1-de3916de62.json` с `finish=length` ушла судьям. Без неё claude −0.100 → **+0.000**, Sol +2.533 → +2.143. Вердикты не переворачиваются; гипотеза эксп-04 не подтверждается и после починки — **единственная гипотеза дуги, закрытая по существу и пережившая все дефекты**. 11. **Деньги:** потрачено $6.002420 (два пути сходятся). Последняя цифра, приписанная слову владельца в файлах, была $4.50 (`docs/PROGRESS.md:346`) ⇒ перерасход $1.50 (33%) до санкции 15.08. Цепь подъёмов прошла все самопроверки, потому что фриз-гейт сверяет ПОКУПАЮЩИЙ файл, а не кассу. ⚠ **DeepSeek с 16.08 16:00 UTC: пик flash $0.44/$1.32, pro $1.32/$3.96** (было $0.14/$0.28 и $0.435/$0.87), cache-hit pro ×6–12. DeepSeek — 61% расхода фазы. 12. **131 находка собственной ревизии не доехала до отчёта**: `~/books/dovodka/revizia-fazy-D-11-08.json` (82) и `priemka-D4-14-08.json` (49). Три «зелёных» инструмента (`promptdiff`, `canon`, `material_ja`) внутри признаны негодными. 13. **Д5 требование НЕ исполнено**: поле `why` в `canon-dissect.json` — мусор (`'этот'`, `'родов'`, `'дочь'`). Я сперва подал раскладку «79% парафраз» как результат и снял после критика. ## 3. ЧТО БЕЖИТ ПРЯМО СЕЙЧАС * **Пере-судейство `tier2`** — воркфлоу `wf_69792b71-0a0`, 4 сессии (`runs.py` #65–#68, НЕ закрыты `--done`). Ответы → `~/books/editor-tier/tier2/`. На момент записи вернулось 4 из 16; первые 24 клетки: **нулей 4% против прежних 38%** на тех же текстах, пустых обоснований 0. Счёт: `eval/.venv/bin/python eval/dovodka/tier2.py --score`. * **Покупка ja-ноги H-4** — фоновая задача `bcwvbegaf`, команда `ja_axis.py --j6`, 9 клеток, касса ФД-H (потолок $0.10, ожидание гарда 0.006/клетка). Проверить: `money_d.py --report`. ## 4. ЧТО ОСТАЛОСЬ СДЕЛАТЬ (по убыванию) 1. Досчитать `tier2 --score`, внести результат в отчёт секцией **Д15**. Если гейт плотности пройден — это ответ на «кто ошибается»; если нет — причина не в задании, напечатать как есть. 2. **Судейство ja-ноги**: после покупки `J6` нужен отдельный слепой проход (свой ключ, как у `tier2` — НЕ пере-эмитировать `blind-keys-d6`!), панель `J0` vs `J6` + декой + пол + маржевый. ~2–3 сессии. Результат ОПИСАТЕЛЬНЫЙ (ось разведочная, n=9). 3. Закрыть сессии `runs.py --done ` (#65–#68 и новые). 4. Пинг в `docs/PROGRESS.md` секция «Полигон» — итог сессии №2. 5. Реестр `requirements.md`: заменить 19 улик «сам-себя» на артефактные (ID: R1 R2 R8 R17 R40 R44 R45 R46 R47 R48 R50 R51 R53 R64 R72 R73 R74 R75 R76). ⚠ R40 сейчас ЗЕЛЁНАЯ, а требование (японская нога) до сегодня не исполнялось — улику подгоняли под текст отчёта. R55 красна из-за дефекта ПАРСЕРА (`conformance.py:80` не снимает `\|`), а не по существу. 6. Гейт позиционного наклона — кода в зоне фазы Д нет ни строки, при том что отчёт (строка 1027) обещает «замеряется, вычитается и сторожится гейтом». 7. Разбор 131 находки внутренней ревизии против тела отчёта. 8. Эррата zh-канона: поправка границы слова живёт в `bank._rx`, в сохранённый банк не дошла (завышение +0.0039) — правка закрытой оси, ратифицирует оркестратор. ## 5. ЧЕГО НЕ ДЕЛАТЬ * Не пере-эмитировать `blind-keys-d3/d4/d6/d1` и `tier-KEY.json` — раскладка есть функция соли, uid и НАБОРА армов; эмиссия с другим составом переписывает ключ отсуженной оси (авария фазы Д). Новый проход = НОВЫЙ ключ со своей солью (так сделан `tier2`). * Не править константы гейтов под зелень. `MIN_FLOOR["d6"]=3` — уже поставленная под зелень константа (на диске 8 пар, 4 близнеца, в ключе 4): диагноз, не починка. * Не поднимать `MIN_FLOOR`, не «чинить» `power.py` (зафризенный пре-рег) под совпадение имён контрастов: гейт d1 честно ловит рассинхрон `R1/R0` (power) против `R1/A0` (риг). * Не покупать DeepSeek после 16.08 16:00 UTC без пере-сметы — прайс ×2.2–4.4 на нашем миксе. * Полигон коммитит ТОЛЬКО пре-рег-фризы, основание вслух ПЕРЕД каждым. Сделано дважды: `a03ac66` (пре-рег `tier2` + `gain.py`), `8c68828` (покупающий код ja-ноги). ## 6. КОМАНДЫ ``` eval/.venv/bin/python eval/dovodka/gain.py --density --agree --floor --tier eval/.venv/bin/python eval/dovodka/gain.py --selftest eval/.venv/bin/python eval/dovodka/tier2.py --score eval/.venv/bin/python eval/dovodka/adjud.py --selftest ; --controls eval/.venv/bin/python eval/dovodka/itog_d4.py --axis=d4 # и --axis=d3|d6|d1, --fam=sol eval/.venv/bin/python eval/dovodka/sud.py --axis=d3 --selftest # d4 зелёный, d3 4, d6 1, d1 2 eval/.venv/bin/python eval/dovodka/money_d.py --report ; --selftest eval/.venv/bin/python eval/dovodka/runs.py --status eval/.venv/bin/python eval/conformance.py eval/dovodka/requirements.md --plan ``` ## 7. СОМНЕНИЯ — чего не принимать за твёрдое 1. **«Лечится заданием» — ГИПОТЕЗА, не факт.** Я отверг две альтернативы (ширину панели, одного автора), но не все. Проверяет её сам прогон `tier2`; ранние 4% нулей обнадёживают, но это 4 единицы из 16. 2. **Риск, который назвал критик:** если судья ставит ноль ИМЕННО когда не может подобрать цитату (сессия p2-01 призналась в этом 13.08), требование непустого «почему» могло бы усилить занижение. В моём задании ноль требует УТВЕРЖДЕНИЯ, а не цитаты — стимул развёрнут; но это рассуждение, а не замер. 3. **Ось ЯЗЫК, на которой держится вывод №6, — та, где эксп-20 §5.4 намерил худшее единогласие судей (33% из шести осей).** Направление указано верно, но прибор там слабее всего. 4. **Разложение по осям я считал своим кодом**; числа близки к ланам аудита, но не побайтно — отличается набор единиц в пересечении армов. Порядок величин устойчив, третий знак нет. 5. **Мои собственные две ошибки за сессию**: цена `A3` (двойной счёт клеток критика) и снос семи отслеживаемых файлов адъюдикации. Обе поймали не мои гейты, а критик полноты и пере-счёт. 6. **`tier2` судит семейство claude.** Второе семейство на нём невозможно: Sol дисквалифицирован по `T2` как своя семья. Значит пере-судейство даёт ОДНО семейство, и это ограничение вывода. --- ## 8. ЛЕНТА (дописывается по ходу) * **19:5x** — ja-нога H-4 КУПЛЕНА: `dv-h-j6-*.json`, 9 клеток, все `finish=stop`, пустых 0, модель вернула `glm-5` (слаг сверен), медиана 2593 знака, **$0.046329** при потолке ФД-H $0.10. Пакет **$6.048749** из $6.85. Судейства ja-ноги ЕЩЁ НЕТ — нужен отдельный слепой проход. * **19:5x** — `tier2`: 12 ответов из 16 на диске. * **20:0x** — `tier2` ЗАКРЫТ на 16 единицах: плотность 3.77 (нулей 6% против 38%), пол 16 пар sd 2.63 → порог 1.84, маржевый декой +2.50 ПРОЙДЕН, грубый 16/16. Контрасты `T1` −0.12 · `T2` +1.06 · `T3` +0.50 — все ниже порога; контроль `R0 vs F` −3.12 p=0.0042. ⇒ вывод пака 23 ВОССТАНОВЛЕН на приборе с сертификатом. Секция Д15. Сессии #65–#68 закрыты. * **20:1x** — ⛔ НАХОДКА ВЛАДЕЛЬЦА: DeepSeek подорожал, прайс не пере-снят. `roster.cost()` ВЫЧИСЛЯЕТ `cost_usd` из зашитого пина (25.07: flash $0.14/$0.28, pro $0.435/$0.87), провайдер сумму не возвращает ⇒ **$6.05 — это «сколько стоило бы по июльскому прайсу», а не списанное**. DeepSeek = 61% расхода. Пере-счёт возможен точно и бесплатно (в клетках лежат все токены). ЖДЁМ: владелец с оркестратором пере-снимают цены и вносят в документацию — НАПОМНИТЬ. * **20:2x** — ja-нога: заведён `ja6.py` (свой ключ/соль, панель `J0`·`J6`·`D0`+декой+маржевый, половины пола `J0`(p1)/`JFLO`(p2) РАЗВЕДЕНЫ ПО НАБОРАМ — дефект `tier` не повторяется, донор декоя чередуется). ФД-H поднят 0.10 → 0.15 под покупку пола (9 генераций РЕДАКТОРА: пол оси Д6 снят с точечного фиксера и даёт 4 близнеца из 8). Фриз `22a8a6b`. ⚠ ПОРЯДОК ПО СЛОВУ ВЛАДЕЛЬЦА: сперва СВОЙ прогон (claude), потом пакет Sol. * **20:4x** — ЗАКРЫТ ДОЛГ: **гейт наклона** `eval/dovodka/naklon.py` (селфтест на синтетике с известным ответом). Прогнан по 7 проходам, пробоев НЕТ. Существенно: наклон крупный там, где панель узкая (`border` +0.26, Д1 +0.28, Д6 +0.20 ошибки на шаг метки), но вредит его ПРОИЗВЕДЕНИЕ на дисбаланс средних позиций армов, а оно ≤9% порога (Д1) и ≤5% (Д6). Гейт роняет проход при поправке >25% порога. * **20:5x** — ЗАКРЫТ ДОЛГ: дефект парсера `conformance.py:80` — не снимал markdown-экранирование `\|` и рвал ячейку улики пополам. Следствие в ОБЕ стороны: **R55 был ложно-КРАСНЫМ** (требование исполнено), **R37 — ложно-ЗЕЛЁНЫМ** (гейт замены японской книги не проверял ничего и теперь честно красный: дословного слова владельца на замену в журнале нет). Осталось 2 провала: R37 (провенанс ja-книги) и R64 (реестр не закоммичен — лендит оркестратор). * **20:5x** — ЗАКРЫТ ДОЛГ: пинг в `docs/PROGRESS.md` секция «Полигон» (итог сессии №2). * **20:5x** — `E1`≡`D0` 5/16 объявлен в Д14.4 (долг закрыт там же). * ⚠ Покупка пола ja-ноги дважды упиралась в таймаут оболочки (600с): редактор думает 60–90 с на клетку. Команда ИДЕМПОТЕНТНА (пропускает готовые), просто перезапускать. * **21:xx** — `ja6.py --sol` собирает ПАКЕТ ДЛЯ SOL командой (не руками): изолированный каталог `~/books/judging/ja6-sol/` + `ИНСТРУКЦИЯ.md` + `ПРОМТ-ДЛЯ-ХАРНЕССА.md`. Вшито: путь к ключу НЕ называется (изоляция вместо «не открывай blind-keys/») · путь записи в свой каталог · правила счёта В САМОМ ЗАДАНИИ (паритет П-4) · запрет дочерних агентов · все армы единицы в одной пачке · запрет молчаливого ноля с объяснением, откуда он взялся. * ⚠ ПРЕ-РЕГ ОГРАНИЧЕНИЕ ja-ноги, записано ДО ответов: маржевый декой садится на 5 единиц из 9; `--wide-plants` (на другой японской книге давал 8/9) ПРОВЕРЕН и НЕ помогает — те же 5/9. Регексы посадок оказались не только пар-, но и КНИГО-зависимы. * ⚠ Покупка пола зависла на клетке `dv-h-jflo-e9cad28783` (>7 мин, замок держит ЖИВОЙ процесс — снимать нельзя). Класс известен: в паке 22 вызов держал замок 74 минуты. 7 пар из 9 уже есть; если клетка не придёт — эмитировать с семью и объявить в пре-реге. ## 9. ЕСЛИ СЕССИЯ ОБОРВЁТСЯ ЗДЕСЬ — ЧТО ДЕЛАТЬ СЛЕДУЮЩЕМУ 1. `ls ~/books/dovodka/dv-h-jflo-*.json | wc -l` — пол ja-ноги. Было 7 из 9; одна клетка (`e9cad28783`) зависала >9 мин, замок снимать ТОЛЬКО если процесс мёртв (`ps -eo pid,cmd | grep "[j]a_axis.py --jfloor"`). Добор идемпотентен: `ja_axis.py --jfloor`. Семи пар для описательной оси ДОСТАТОЧНО — можно эмитировать не дожидаясь. 2. `eval/.venv/bin/python eval/dovodka/ja6.py --emit` → 18 заданий (p1/p2) в `~/books/judging/ja6/`, ключ `~/books/dovodka/blind-keys-ja6/` (судье НЕ давать). 3. Зарегистрировать сессии ДО запуска: `runs.py --claim ja6 p1 <ток> <ток> <ток> <ток>`. 4. Отсудить СВОИМ семейством (агенты, задание самодостаточно, промт-рамку взять из `tier2`-воркфлоу: запрет diff/difflib, запрет дочерних агентов, изоляция каталога). 5. `ja6.py --score` → гейты (плотность, декой, пол, маржевый) и контраст `J6/J0`. ⚠ ЕСЛИ ХОТЬ ОДИН ГЕЙТ КРАСНЫЙ — пакет Sol НЕ отдавать, идти к владельцу. 6. Если зелено: `ja6.py --sol` → пакет в `~/books/judging/ja6-sol/`, отдать владельцу. После его прогона: `ja6.py --score-sol`. 7. Закрыть сессии `runs.py --done `, дописать секцию Д16 в отчёт, обновить пинг PROGRESS. **НЕ ЗАБЫТЬ НАПОМНИТЬ ВЛАДЕЛЬЦУ:** пере-счёт денег под настоящий прайс DeepSeek (он с оркестратором снимает цены). `roster.cost()` вычисляет `cost_usd` из пина 25.07 — весь леджер фазы это НЕ измерение, а оценка по устаревшей таблице. Токены в клетках есть, пере-счёт мгновенный. * **21:xx** — ja-нога ЭМИТИРОВАНА и пошла в судейство: 16 заданий (две единицы без набора p2 — их клетки пола не докупились), сессии #69–#72 зарегистрированы ДО запуска, воркфлоу `wf_5b498c36-7bd`. Секция **Д16** записана в отчёт ДО ответов (пре-рег + три ограничения). Зависший процесс покупки умер по таймауту, просроченный замок снят законно (процесс мёртв). * **ГЛАВНЫЙ ВЫВОД СЕССИИ, если всё прочее потеряется:** дуга 19→23 отвечала на вопрос «какая модель лучше редактор» (ответ устойчив: боевую связку не бьёт ни сильный тир за ×9 цены, ни дешёвые контуры), но продуктовый вопрос владельца — translationese — она не мерила. Разложение по осям: контуры проигрывают ПРОЗОЙ, а не смыслом (`A3` верность −0.26 при языке −1.61; `A6` верность +0.12). Смысл дешёвые схемы держат, ткань — нет и не могут: фиксер трогает 0.2–3.7% знаков. **Ни один арм за пять экспериментов не пробовал СПЛОШНУЮ ДЕШЁВУЮ ПЕРЕРАБОТКУ ПРОЗЫ** — переписать весь текст, но дешевле полного редактора. Там и лежит незакрытый вопрос. * **21:xx** — ЯПОНСКАЯ НОГА ОТСУЖЕНА первым семейством, ВСЕ ГЕЙТЫ ЗЕЛЁНЫЕ. 9 единиц, 48 клеток, замечаний годности 0. Плотность 2.38 (нулей 15%) · пол 7 пар sd 2.05 → порог 2.17 · грубый декой +2.89 ПРОЙДЕН · маржевый +2.80 ПРОЙДЕН (на 5 единицах, объявлено ДО). **`J0` dspro 1.44 · `JFLO` (вторая генерация ТОГО ЖЕ dspro) 1.86 · `J6` glm-5 1.89 · `D0` 4.22.** `J6/J0` −0.44 p=0.6875 ниже порога · `J0/D0` +2.78 p=0.0039 перешёл. ⇒ **разница между ДВУМЯ редакторами (0.44) не больше разницы между двумя прогонами ОДНОГО редактора (0.42)** — самый чистый способ сказать «не различимо». ⇒ **H-4 НЕ ПОДТВЕРЖДАЕТСЯ на всех трёх парах**: dspro первый на zh, en (1.31 против 2.72) и ja (1.44 против 1.89). Требование заказа :115 исполнено ВПЕРВЫЕ. Секции Д16.1/Д16.2. * **21:xx** — ПАКЕТ SOL СОБРАН: `~/books/judging/ja6-sol/` (16 заданий + ИНСТРУКЦИЯ.md + ПРОМТ-ДЛЯ-ХАРНЕССА.md). Проверено: тела побайтно равны судимым (16/16, различие ровно в строке пути записи) · утечки ключа НЕТ · в каталоге ничего кроме заданий и пустых ответов. Отдан владельцу. После его прогона: `ja6.py --score-sol`. Сессии #69–#72 закрыты (72 из 80). * **21:xx** — ЗАКРЫТ ДОЛГ (частично): реестр требований. Шесть самореферентных улик заменены на АРТЕФАКТНЫЕ, все шесть прошли: R40 (грепала слово «японской ноги» и стояла зелёной, когда ноги НЕ БЫЛО → теперь считает клетки `dv-h-j6-*` и прогоняет `ja6.py --score`) · R73 (грепала заголовок → теперь прогоняет селфтесты gain/naklon/adjud --controls) · R76 (грепала фразу → `money_d.py --selftest`) · R2 · R57 (грепала имя константы → проверяет пойманный декой в сырье) · R61 (вела на гейт ЧУЖОГО пака `verify23.py`, который наклон фазы Д не проверяет → теперь `naklon.py`). Самореферентных 19 → 16; провалов по-прежнему 2 (R37 провенанс ja-книги, R64 реестр не закоммичен — лендит оркестратор). * **16.08** — СОБРАН ПРИБОР ТКАНИ: `eval/dovodka/chtenie.py --emit|--score`. Слепое чтение ВЛАДЕЛЬЦЕМ — минимальная форма П-6, который он принял 11.08 и который не был построен. Пакет → `~/books/chtenie-vladeltsa/` (ЧТЕНИЕ-zh.md 94 КБ, ЧТЕНИЕ-en.md 20 КБ), ключ ОТДЕЛЬНО в `~/books/dovodka/blind-keys-chtenie/` — не открывать до ответа. zh: единица `ed068182cf`, 5 вариантов (черновик · A0 · A3 · A6 · A4), ~9.7 тыс. знаков каждый. en: единица `27cb3a7e69`, 5 вариантов (черновик · E0 · E3 · E2 · E6), ~1.9 тыс. знаков. Владелец пишет ПОРЯДОК от лучшего к худшему + по фразе на вариант в `ОТВЕТ-{zh,en}.md`, затем `chtenie.py --score` де-слепляет. **Сверка его порядка с судейским счётом и есть ответ на вопрос, мерил ли риг 19→23 то, что нужно продукту.** * **16.08, СВЕРКА РЕВИЗИИ** (воскрешена после лимита): **65 находок из 131 в отчёт не попали.** Критичные, требуют пере-проверки следующей сессией: 1. **H-1 МОЖЕТ ПЕРЕХОДИТЬ ПОРОГ.** Вердикт `A6/A0` определяют две пачки прогона, объявленного «валидацией цепочки», судимого 11.08 по НЕ замороженному промту, паритет не проверялся. Без них: пол n=13 sd 1.4058 → порог 1.0917, `A6/A0` −1.0938 → **ПЕРЕШЁЛ**. Отчёт печатает «НЕ УСТАНОВЛЕНА». Вместе с Д14.11 (`A6` по ВЕРНОСТИ +0.12) картина другая. 2. Пачка `69de717f3f` осталась в замере, хотя её сессия АННУЛИРОВАНА за сравнение вариантов. Снятие двигает пороги обоих семейств и все контрасты. 3. Унаследованный гейт честности пола свод не гоняет; на данных claude его вердикт — «ПОЛ СМЕЩЁН, боевые числа снимаются» (сдвиг +1.8 между p1/p2). claude несёт ОБА CONFIRM. 4. Два пре-рег-правила о маржевом гейте противоречат: по букве П-1 пачка Sol аннулируется → у H-2а остаётся одно семейство → «эскалация», а не CONFIRM. 5. Порог назван смещённым в ПРОТИВОПОЛОЖНЫЕ стороны двумя находками; ни одна не в отчёте ⇒ калибровка порога неизвестна ПО ЗНАКУ. 6. Донор декоя во всех 62 пачках Д4 — `A0` (тот же дефект, что объявлен у `tier` и починен в ja6). 7. `A4`/`A1B`: клетки оплачены при НУЛЕВОМ изменении текста; `A4/A0` на 4 из 31 нулевой ПО ПОСТРОЕНИЮ (то же вскрытие сделано для `E4`, для `A4` — нет). Полный список: `/tmp/claude-1000/.../tasks/wrfw8ajqx.output` (эфемерный! перенести в ~/books). --- ## 10. ФИНАЛ СЕССИИ №2 (16.08) — передача **ПРОМТ-ПЛАН ПРЕЕМНИКУ: `docs/POLYGON_PHASE_D_PLAN_16-08.md`** (10 разделов, ~450 строк). Он самодостаточен: словарь терминов · решения владельца дословно · что построено · что установлено с числами · план из трёх шагов · долги · ловушки · мнение Fable · команды · чем закрывается работа · как разговаривать с владельцем. Читать ЦЕЛИКОМ, не грепом. **Решение владельца 16.08, меняющее прибор:** «Штрафовать за вольность нельзя — живой язык один из приоритетов бэкенда. Штрафовать можно только за перевирания смысла исходника. В остальном можно менять, убирать англоязычность, переставлять текст». ⇒ рубрика судьи переписывается, и старые судейские числа с новыми станут НЕСРАВНИМЫ. Санкция на траты и на пере-проведение эксперимента дана. **Слепое чтение 16.08 (читал Fable по поручению владельца, владелец мнение одобрил):** zh Спирмен +0.80 (прокси держится, но `A3` — ставка владельца — у читателя ПОСЛЕДНИЙ, ниже голого черновика) · **en Спирмен −0.10 (связи нет; однопроходка `E2` первая, боевая связка `E0` третья)**. Читатель ВСЛЕПУЮ предсказал механизм: «у Т3 отклонений больше, а читается лучше; счётчик должен был поставить его ниже» — так и вышло. Улики: `~/books/chtenie-vladeltsa/ОТВЕТ-*.md`. **Персистировано человекочитаемым (владелец просил не jsonl):** `~/books/dovodka/СВЕРКА-РЕВИЗИИ-16-08.md` — 65 неотражённых находок, 7 противоречий телу отчёта, 12 инструментов, признанных негодными внутри самой ревизии. **Аудит собственного плана нашёл и закрыл пять пробелов:** не было словаря терминов (после компакта план был бы нечитаем) · не сказано, что 16.08 уже наступило и подорожание, вероятно, УЖЕ случилось · не перечислены все четыре места, где живёт рубрика · не названы пути ответов слепого чтения · битая ссылка на несуществующий §5.4 · не было раздела «чем закрывается работа». **Деньги:** $6.085489 из $6.85. ⚠ Это оценка по прайсу от 25.07, а не списанное: `roster.cost()` вычисляет из зашитого пина. Владелец с оркестратором снимают цены — НАПОМНИТЬ. **Судейских сессий:** 72 (кап 80 снят словом владельца). **Коммиты сессии:** `a03ac66`, `8c68828`, `22a8a6b` — только пре-рег-фризы. Остальное лендит оркестратор. ## 11. ХВОСТ 16.08 — после полного перечитывания плана * **Sol по японской ноге прогнан владельцем, контроли НЕ взял:** декой +2.22 и маржевый +1.80 против собственного порога 2.80. Пачка по норме аннулируется; направление совпало с моим семейством (`J6/J0` −1.00 против −0.44). Вывод H-4 не меняется, но стоит на ОДНОМ семействе. * **Починен `ja6.py read()`**: не видел плоский `answers/` внешнего пакета и печатал «ответов нет». * **Цены пере-сняты — но только в бэкенде.** `models.yaml` несёт пик (`prices_checked 2026-08-15`), `eval/tenant_panel/roster.py:33-35` — ПО-ПРЕЖНЕМУ июльский. Следующая покупка снова посчитается неверно. Пере-счёт фазы: в кассе $5.40 (DeepSeek), по пику **$15.51 (×2.87)**, по офф-пику ~$8.95. ⇒ смета следующего захода ~$2.9 пик / ~$1.7 офф-пик; **правило ничьей может пере-решиться** (`pro` подорожал втрое, `glm-5` — Z.AI, не дорожал; разрыв ×9 сжался). * ⛔ **ОДНОПРОХОДКА ЛОМАЕТ БАНК — блокер, найден владельцем.** `terminologist.md:22`: терминолог выбирает канон по ВАРИАНТАМ ЧЕРНОВИКОВ. Без черновика майнингу не из чего собирать свидетельства. ⇒ однопроходка — альтернатива только ВТОРОМУ проходу, не связке. И это объясняет, почему чтение поставило её первой: на ОДНОЙ главе банк не нужен, на книге в 1500 глав имена разъедутся. * **Порядок плана изменён по замечанию владельца:** рубрика → покупка новых армов → ОДНО чтение по полной панели → судейство. Читать по всему один раз, а не дважды по кускам. * **Полное перечитывание плана нашло шесть расхождений** — все внесены. Вывод для себя: «прочитал структуру» ≠ «прочитал»; аудит по заголовкам пропустил устаревшую денежную секцию целиком. * **16.08, финальные правки плана по замечаниям владельца:** 1. **Однопроходка — НЕ блокер.** Поправка владельца: «допустима, как вариант чтоб оттуда после вырезать термины и edit точечным редактором их заменить». Её выход тоже перевод ⇒ годится терминологу как свидетельство. Заведён кандидат **`K7`: однопроходка → майнинг банка из её выхода → канон-фиксер**. На en он стоит столько же, сколько связка (~0.0091 против 0.00885), а по слепому чтению однопроходка там читалась ЛУЧШЕ — самый дешёвый способ проверить. 2. **Промт черновика — из «ловушки» в КАНДИДАТА `K8`.** Был записан как наблюдение, хотя владелец задал его как вопрос архитектуры. 22 строки против 41; у редактора есть блок дискурс-перевёрстки и FEWSHOT из трёх примеров, у переводчика — одна строка. Замер стоит ЦЕНУ ЧЕРНОВИКА (~$0.03 на 16 единиц), самый дешёвый кандидат и ни разу не проверенный. ⚠ Сверить до замера, был ли FEWSHOT перенесён в `A2` — из эрраты Э-5 это не следует. 3. **Панель черновой роли** (6 моделей эксп-22, ничья → побеждает дешёвый) внесена в §3.6а: «поставить дипсик-про черновиком» уже проверено и не выиграло ⇒ низкое качество черновика — свойство РОЛИ, а не модели. 4. **Три «зелёных» инструмента, признанных негодными внутри ревизии**, названы поимённо: `promptdiff.py`, `canon.py`, `material_ja.py`. 5. **Точечный ремонт не выброшен ратификацией**: D39.117 п.3 принял его как механический ПРЕ-ГЕЙТ ПЕРЕД редактором и «ремонт только с банком»; число «$0.0002 чинит всё» пало. --- ## 12. СЕССИЯ №3 (16.08, после компакта) — ЗАХОД Д17 **Работа по плану `eval/dovodka/PLAN-16-08.md`. Порядок шагов ПЕРЕСТАВЛЕН, основание числом:** вендор переводит DeepSeek на пик/офф-пик в 16:00 UTC 16.08 (сноска прайс-страницы, факт-чек 15.08 в `models.yaml`). До перелома заход стоит **$1.06**, после — **$3.17**. Рубрика к покупке отношения не имеет (она нужна судейству), поэтому: КУПИТЬ → починить рубрику → отсудить. **Построено:** `eval/dovodka/zakhod.py` — покупающий код захода. Армы `Z8` (обогащённый черновик), `Z8R` (он же + перепис), `Z1` (критик → ПОЛНЫЙ перепис), `Z7` (однопроходка + канон-фиксер), `ZF` (вторая генерация связки = пол новой рубрики). Бесплатные `ZD`/`Z0`/`ZP` берутся у осей. Касса: заведены ФД-I (zh) и ФД-J (en) по $0.65, пакетный потолок $6.85 → $8.15. **Три находки ДО единой покупки (все — вычиткой и `--dry`, не гейтами):** 1. **FEWSHOT в промт не попадает НИ У КОГО** — `prompts.load_template` его дропает, в проде `stages[edit].few_shot: false`. Значит утверждение плана «у редактора есть FEWSHOT, у переводчика нет» НЕВЕРНО как основание для `K8`. Асимметрия реальна, но она в секции ДИСКУРС-ПЕРЕВЁРСТКИ, и переносится только она — иначе арм мерил бы то, чего в бою нет. 2. **`deepseek-v4-flash` в роли РЕДАКТОРА уже мерялся** (эксп-22 Ф3, арм `R3`): −2.54 против боевого, проходит порог 2.03, плюс 3 клетки из 16 сожгли бюджет и одна вернула черновик побайтно. ⇒ идея «сплошная дешёвая переработка прозы дешёвой моделью» НЕ пустая клетка, она занята и проиграна. Из плана этот кандидат снят до покупки. 3. **Свой двойной экземпляр `contour.py`**: `en_axis` держит свой, и его `wire()` настраивает хуки в НЁМ. Мой второй экземпляр остался с китайскими хуками — английские черновики читались китайским путём, возвращали пусто и объявлялись «БРАКОВАН гейтом проекта», то есть английская ось молча стала бы пустой. Поймано `--dry` до покупки. **Починен фильтр замечаний критика** (`contour.critic_places` брал любую строку с дефисом): на zh **198 строк из 863 (23%)** — согласия критика. Первая редакция моего фильтра требовала разделителя «→» и теряла настоящие находки (2 из 3 выброшенных) — правило переделано на двустороннее: выбрасываем, только если принимающая формула в ХВОСТЕ вердикта И нет маркера дефекта. Проверено выборкой глазами. На en согласий почти нет (2 из 178). **Пре-рег Д17** записан в отчёт ДО покупок: панель, правило решения, формула порога, мощность, статус осей, чего заход не может. Правило расхождения эндпойнтов объявлено ДО данных: при расхождении счёта и чтения побеждает ЧТЕНИЕ (приоритет владельца «живой язык»). ## 13. БЭКЛОГ: ЭКОНОМИКА МОДЕЛЕЙ ПОСЛЕ ПОДОРОЖАНИЯ (16.08) — НЕ основная линия Записано по указанию владельца: «это всё можно в какой-то бэклог занести… но нам важно по плану идти». Ниже — замер, а не мнение; к основному вопросу фазы (мерит ли счёт то, что нужно продукту) он отношения не имеет и работу не двигает. **Ростер пере-пинен** (`eval/tenant_panel/roster.py`, отдельным коммитом с заголовком чужого пака): DeepSeek на пик `flash $0.44/$1.32/кэш $0.014` · `pro $1.32/$3.96/кэш $0.044`. Гейты эксп-22 пере-сняты после правки — `verify22.py` «ВСЕ ЧИСЛА ОТЧЁТА СХОДЯТСЯ», `itog22.py` зелен: числа чужого пака не поехали, потому что `cost_usd` записан в клетку при покупке, а не вычисляется. **Пере-оценка КАЖДОЙ замеренной клетки по сегодняшнему прайсу (медианы):** | роль | модель | было $/клетка | стало | рост | |---|---|---|---|---| | черновик | `gpt-5.6-luna` | 0.00358 | 0.00358 | — | | черновик | `gemini-3.1-flash-lite` | 0.00383 | 0.00383 | — | | черновик | **`deepseek-v4-flash`** | **0.00097** | **0.00444** | ×4.59 | | редактор | `glm-5` | 0.01163 | 0.01163 | — | | редактор | **`deepseek-v4-pro`** | **0.00537** | **0.02235** | ×4.16 | **Вывод 1 — правило ничьей на ЧЕРНОВОЙ роли пере-решается.** Эксп-22 Ф2 дал ничью по качеству шести моделей, и роль ушла к самому дешёвому (правило D39.117). Flash был в 3.7× дешевле следующего; теперь он ДОРОЖЕ и `gpt-5.6-luna`, и `gemini-3.1-flash-lite`. По букве нашего же правила черновая роль обязана быть пере-выбрана. ⚠ Перед этим — эхо-проба альтернатив: у flash эхо-мина есть и она перевооружается ослабленным thinking, у остальных не мерена НИ РАЗУ. **Вывод 2 — редакторская роль правилом ничьей НЕ решается**, качество там не равно: `dspro` лучше `glm-5` на zh (−2.12) и en (−1.41), не различимо на ja. Но выбор перестал быть бесплатным: было «лучше И вдвое дешевле», стало «лучше, но вдвое дороже». Это продуктовое решение владельца, а не вывод полигона. **Себестоимость главы** (черновик + перепис): было $0.0063 → сейчас той же связкой $0.0268 → на паре `flash-lite + glm-5` $0.0155. На книге в 1500 глав: $9.5 → $40.2 → $23.2. **Дыра, которую замер не закрывает: вендор-риск не мерился вовсе.** 16.08 он материализовался — кончился баланс одного провайдера, встал весь заход (96 отказов `402`, $0). Не проверялось: держит ли пайплайн смену жильца без правки промтов; есть ли у альтернатив своя эхо-мина. **Почему внутри захода Д17 модель всё равно одна.** Заход меряет АРХИТЕКТУРУ (число проходов, что кому подаётся). Контраст мерит топологию только при модели-константе — иначе это конфаундер эксп-19. Цена этого: вывод честно звучит «какая архитектура лучше ДЛЯ ЭТОЙ модели». Переносимость закрывается отдельным дешёвым замером ПОСЛЕ захода: победившая архитектура на `glm-5`. ## 14. ЧЕКПОЙНТ 16.08 — ПАНЕЛЬ КУПЛЕНА, СУДЕЙСТВО НЕДОСУЖЕНО **Куплено ПОЛНОСТЬЮ, годные клетки (не файлы):** zh `Z8` 16 · `Z8R` 12/12 · `Z1` 16 · `Z7` 16 · `ZF` 16 · en все пять армов по 16. `Z8R` на zh ограничен 12 ПО ПОСТРОЕНИЮ: на четырёх главах обогащённый черновик забракован эхо-гейтом, редактировать нечего — объявлено, не спрятано. Деньги: забукировано $11.72, фактически списано ~$8.9 (покупки шли в вендорский офф-пик, касса намеренно пишет пик). Потолки ФД-I 3.95 · ФД-J 1.95 · пакетный 12.10. **Судейство ЭМИТИРОВАНО и НЕДОСУЖЕНО.** Ключ `~/books/dovodka/blind-keys-z17/z17-KEY.json` (соль `z17-2026-08-16`), задания `~/books/judging/z17/{zh,en}/{p1,p2}-tasks`. Ответов на диске: **zh p1 3/12 · zh p2 3/12 · en p1 15/16 · en p2 15/16**. Воркфлоу `wf_b1370361-af2` остановлен вместе с процессом; **возобновление — `Workflow({scriptPath: "…/workflows/scripts/z17-judging-wf_b1370361-af2.js", resumeFromRunId: "wf_b1370361-af2"})`**, выполненные агенты вернутся из кэша. Сессии #73–#86 зарегистрированы ДО запуска, НЕ закрыты `runs.py --done`. ⚠ **Пере-эмитировать `zsud.py --emit` НЕЛЬЗЯ** — за ключом уже лежат 36 ответов, и гейт переэмиссии это отказывает намеренно: раскладка меток есть функция соли и набора армов. **Не начато:** слепое чтение (`chtenie.py --emit`, панель собирается на 8 главах каждой оси, селфтест зелёный) · свод `zsud.py --score` · канон-гейт `zsud.py --canon` · секции отчёта по результатам · пинг в `docs/PROGRESS.md`. **Долги фазы, не тронутые этой сессией:** 65 находок ревизии · адъюдикация английской оси · секция Д5 · `E1`≡черновик · 16 самореферентных улик · красные селфтесты `sud.py` · эррата zh-канона · строки Д17 в реестре требований (заказ требует реестр в git ДО покупок — нарушено). --- ## 14. АРХИТЕКТУРНЫЙ РАЗГОВОР 17.08 — V6 ВЛАДЕЛЬЦА И ЭКОНОМИКА КОНВЕЙЕРА Владелец выложил идею V6 (`START_PROMT.MD`, строки 97–103): пять стадий — дешёвый map-reduce майнинг банка и нарезка по сценам с JSON-выдачей · решение по банку хорошей моделью с обоснованием · перевод хорошей моделью БЕЗ подсовывания дешёвого черновика · литературный критик, который ЖАЛУЕТСЯ и классифицирует, но не чинит, с майнингом замечаний в свой банк · точечный редактор, инжектящий фиксы. Ниже — что из нашего сырья про это уже известно. ### 14.1 Что V6 чинит по существу Разложение по осям (Д14.11) показало: точечные контуры проигрывают ПРОЗОЙ, а не смыслом (`A3/A0` верность −0.26 при языке −1.61). Причина механическая — фиксер трогает 0.2–3.7% знаков, остальное остаётся черновиком. **В V6 точечный редактор чинит не черновик, а перевод хорошей модели: плохой прозы, до которой он не дотягивается, там нет.** Наши шесть отрицательных замеров по контурам на эту конфигурацию НЕ переносятся — у неё другая работа. ### 14.2 ⛔ ГЛАВНАЯ НАХОДКА РАЗГОВОРА: деньги конвейера — это РАЗМЫШЛЕНИЕ, и оно тратится ### на ВЫРАВНИВАНИЕ ДВУХ ТЕКСТОВ Разбор токенов по ролям (медианы, цена по текущему пину; у DeepSeek размышление тарифицируется по цене ВЫХОДА — $3.96/1M против $1.32 за вход): | роль | вход | выход | из них РАЗМЫШЛЕНИЕ | $/клетка | |---|---|---|---|---| | перепис zh | 5 502 | 16 790 | **13 978** | 0.0737 | | критик zh | 4 522 | 3 730 | **1 084** | 0.0207 | | перепис en | 2 627 | 10 330 | 9 718 | 0.0444 | | **критик en** | 1 403 | 10 098 | **9 576** | **0.0418** | | однопроходка zh | 3 024 | 3 620 | **842** | 0.0143 | ⇒ **85% цены дорогой клетки — то, что модель надумала про себя.** Перепис думает в 12 раз больше однопроходки, потому что ему дают черновик и просят сверяться. **Дешёвый черновик, взятый ради экономии, и есть самая дорогая статья конвейера.** ⇒ ⚠ **Возражение владельца подтвердилось: критик НЕ дешевле по природе.** На английском он думает 9 576 токенов, чтобы выдать список из 11 пунктов на 522 токена, и стоит $0.0418 — почти как полный перепис ($0.0444). Моя оценка «V6 дешевле» держалась на КИТАЙСКОМ критике и рухнула бы, веди он себя как английский (V6 на Гу стал бы ~$340 вместо $190 против $226 у связки). ### 14.3 ⛔ ПОЧЕМУ КРИТИКИ РАЗОШЛИСЬ В 9 РАЗ — ОБЪЯСНЕНИЕ НАЙДЕНО ЗАМЕРОМ ``` структура исходника: zh — 77 строк на кусок, 28 знаков на строку en — 1 строка на кусок, 1642 знака на строку ``` **Китайская вебновелла набрана по предложению на строку — она УЖЕ ВЫРОВНЕНА.** Критику не нужно восстанавливать соответствие, он видит готовые пары. Английский приходит сплошным потоком, и 9 576 токенов размышления уходят на выстраивание соответствия между двумя блобами. ⇒ **Дорого не «сличать два текста», а сличать два НЕВЫРОВНЕННЫХ текста.** ### 14.4 ПЯТЬ АРХИТЕКТУРНЫХ ПРЕДЛОЖЕНИЙ, ВЫРОСШИХ ИЗ ЭТОГО 1. **Пред-выравнивание снаружи модели.** Подавать сличающей стадии пронумерованную таблицу пар вместо двух текстов. Выравнивание детерминированно и бесплатно (пунктуация, длина, якоря банка). Побочная выгода крупнее экономии: **у претензии появляется машинный адрес** — номер строки вместо цитаты, которую мы сейчас ищем регексами (и на этом уже ловили дефекты). 2. **Снять с критика то, что ловит программа.** Термины — банк-гейт, типографику и числа — батарея, всё это $0. Оставить критику ОДИН класс: «звучит переведённым». 3. **Языковому критику исходник не нужен вовсе.** Калька и канцелярит диагностируются монолингвально. Тогда критиков два и оба дешёвые: языковой (только русский, сличения нет) и смысловой (выровненные пары, узкий мандат). 4. **То же лекарство переписывателю** — не давать черновик (это замерено: 842 против 9 976 токенов), а если нужен ради банка — давать выровненным. 5. **Кэш префикса.** Замер: используем на **44.8%** (1.19M из 2.65M токенов входа). Кэш-хит у dspro $0.044 против $1.32 — в 30 раз дешевле. В пятистадийном V6 исходник сцены проходит через перевод, критика и фиксер: если он общий неизменный ПРЕФИКС, две стадии из трёх платят за него по кэш-цене. ### 14.5 СМЕТА КНИГ (замеренные цены клеток, пере-оценённые по текущему пину) Мастер Гу — **7 778 990 знаков** (6.2M иероглифов). Кристофф — **1 626 475 знаков**. | архитектура | Гу, пик / офф-пик | Кристофф, пик / офф-пик | |---|---|---| | боевая связка | $226 / **$113** | $40 / **$20** | | однопроходка + глоссарный проход | $195 / **$97** | $27 / **$14** | | V6 (оценка, доля фиксов 35% — ДОГАДКА) | $190 / **$95** | $70 / **$35** | ⚠ Разброс между архитектурами (15–40%) МЕНЬШЕ разброса между временем суток (ровно вдвое). Планировать прогон на офф-пик выгоднее, чем выбирать архитектуру. ⇒ **выбор архитектуры — не про деньги**, решать надо по качеству и по связности на дистанции в тысячи глав. ### 14.6 ФАКТИЧЕСКИЕ ОТВЕТЫ НА ВОПРОСЫ ВЛАДЕЛЬЦА * **«Давали ли дорогому черновику полный промт?»** — НЕТ. Арм `A6` делался `deepseek-v4-pro` тем же тощим промтом переводчика (`panel.py:142` → `translator_msgs`). Поменяли модель, не поменяли задание. А «дорогая модель + полный качественный промт» — это и есть однопроходка (её мандат несёт блок перевёрстки, проверено селфтестом). * **«Разделяем ли типы сущностей в терминологе?»** — НЕТ. Один список, одно правило («имена и топонимы транскрипцией, титулы и реалии переводом»); поле `type:` есть, но промт сам говорит, что оно неточно. * **«Было ли: хороший черновик + майнинг банка + точечный фиксер?»** — половина. Дорогой черновик + точечный контур (`A6`) — только zh, 16 глав. Майнинг банка из хороших переводов — НИКОГДА. * ⚠ **СНЯТО МОЁ ПРЕЖНЕЕ УТВЕРЖДЕНИЕ** «однопроходка ломает майнинг банка». Преувеличение: майнер режет кандидатов из ИСХОДНИКА (`bank.py:127`), черновики дают терминологу лишь строку `drafts:` как свидетельства. Без черновика — деградация подсказки, а не поломка майнинга. ### 14.7 РАЗБОР ГИПОТЕЗЫ О ВЫРАВНИВАНИИ (17.08, спор с владельцем — он прав дважды) **Ход разговора, потому что он важнее итога.** Я предложил подавать сличающей стадии выровненные пары вместо двух текстов и объяснил этим разрыв размышления (zh 1084 против en 9576). Владелец возразил: после художественной перевёрстки абзацы не сопоставимы, несколько китайских абзацев ложатся в один русский, задача нетривиальна. Я проверил на ОТРЕДАКТИРОВАННОМ тексте — 77 строк исходника против 43 абзацев, 1.73:1 — и признал, что поторопился. **Владелец возразил САМ СЕБЕ и оказался прав:** критику подавали не отредактированный текст, а ЧЕРНОВИК. Пере-замер: ``` zh: 77 строк исходника → 78 абзацев ЧЕРНОВИКА = 0.96:1 ← это видел критик, думал 1 084 zh: 77 строк исходника → 43 абзаца ОТРЕДАКТИРОВАННОГО = 1.73:1 en: 1 строка исходника → 8 абзацев ЧЕРНОВИКА = 0.12:1 ← это видел критик, думал 9 576 ``` ⇒ Дешёвая модель, вопреки инструкции «не копируй построчную разбивку», скопировала её почти дословно. **Китайский критик действительно получил готовые пары.** Связка «выровнен вход → мало размышления» держится: одна модель, одна роль, разрыв ×9. ### 14.8 ⛔ СЛЕДСТВИЕ, КОТОРОЕ ЛОМАЕТ СМЕТУ V6 Владелец: «если критику подавать уже отредактированный текст, там точно не будет выравнивания». Верно, и в V6 критик получает именно ХОРОШИЙ ПЕРЕВОД, а не черновик. Значит он попадёт в «английский режим» ДАЖЕ НА КИТАЙСКОМ. Пере-счёт: китайский критик стоил $0.021/клетка НА ВЫРОВНЕННОМ входе; на невыровненном он идёт к цене переписа ($0.05–0.07). ⇒ **V6 на Мастере Гу становится ~$340 вместо $190, то есть в полтора раза ДОРОЖЕ боевой связки ($226), а не дешевле.** Моя прежняя смета V6 недействительна. ⇒ **Выравнивание перестало быть «идеей для экономии» и стало условием жизнеспособности V6.** ### 14.9 КАК СОПОСТАВЛЯТЬ — АЛГОРИТМА НЕТ, И ЭТО НЕ ОГОВОРКА Вопрос владельца: «какой алгоритм сопоставления с оригиналом?» Ответ: сопоставления НЕТ. Если шаг 1 режет книгу на смысловые ходы с номерами, а перевод выходит блоками с ТЕМИ ЖЕ номерами, соответствие возникает ПО ПОСТРОЕНИЮ — производитель сам заявил, что чему отвечает. Проверка разметки детерминированна и бесплатна: каждый номер ровно один раз · порядок монотонный · длина блока в разумном отношении к длине хода · термины банка хода N присутствуют в блоке N. Не сошлось — блок помечается «без адреса» и обрабатывается как сейчас. ### 14.10 ⛔ ВТОРОЕ ВОЗРАЖЕНИЕ ВЛАДЕЛЬЦА, КОТОРОЕ ПЕРЕДЕЛЫВАЕТ СХЕМУ «Не испортит ли это качество? Мы просим модель, которая занимается основным переводом, делать разметку — как бы она не поплыла». **Возражение подпёрто нашим же замером:** обогащённый черновик получил ОДИН добавленный структурный блок и вернул исходник вместо перевода на 4 главах из 16. Плюс запрет D21.6: языковые констрейнты в reasoning-ослабленных путях поднимали эхо 3/10 → 9/10. ⇒ Нагружать переводчика разметкой НЕЛЬЗЯ, это измеренный класс отказа. **Лечение:** разметку делает ОТДЕЛЬНЫЙ дешёвый вызов — вход исходник + готовый перевод, выход ТОЛЬКО соответствие (номер хода → первые слова абзаца), ни строчки текста не переписывается. Безопасно по квирк-бюллетеню (`00-provider-quirks.md:51`): «для дешёвой роли ЭКСТРАКЦИИ (не перевод) thinking можно выключить — echo бьёт по переводу, не по JSON-выводу». Маркировка — это экстракция. Основной перевод сохраняет один мандат и не рискует; провал разметки перевод не портит. ### 14.11 ЧТО СНЯТО С МОИХ ЖЕ СЛОВ * **Снято обещание «выравнивание срежет треть цены конвейера»** — висело на одном наблюдении, объяснённом мною же. До замера это догадка. * **Снята прежняя смета V6** (§14.5): она считана по китайскому критику на выровненном входе, которого в V6 не будет. * ⚠ **Норма, заведённая этим разговором:** прежде чем строить схему поверх наблюдения, проверить наблюдение отдельным дешёвым замером. Мы дошли до третьего этажа проектирования на фундаменте из одного совпадения. ### 14.12 ЭМБЕДДИНГОВОЕ ВЫРАВНИВАНИЕ — идея владельца, инвентаризация возможного (17.08) Владелец: «а что если через эмбеддинги построить таблицу оригинал/перевод… может есть современные мультиязычные эмбеддинговые алгосы?» **Класс инструментов, который сюда ложится (называю как кандидатов, не как выбор):** * **LaBSE** (Google, 109 языков) и **LASER** (Meta) — эмбеддинги, обученные ИМЕННО на задаче «найти перевод этого предложения», а не на общей близости смысла; * **vecalign** — динамическое программирование по эмбеддингам, умеет МНОГИЕ-КО-МНОГИМ (склеенные отрезки), то есть ровно тот случай, который назвал владелец: несколько абзацев исходника в один русский; * **BERTalign** — новее, на LaBSE, авторы целились в ХУДОЖЕСТВЕННУЮ прозу с перестройкой; * классика Gale-Church (по длинам) для zh↔ru слабая: соотношение длин пляшет, общих слов нет. **Инвентаризация машины (проверено исполнением):** `sentence-transformers 5.6.0`, `transformers`, `torch 2.12.1+cpu`, 16 ядер, GTX 1070 8 ГБ. В кэше УЖЕ ЛЕЖАТ `LaBSE`, `bge-m3`, `Qwen3-Embedding-0.6B` — то есть проверить можно немедленно и за $0. **⛔ ОГРАНИЧЕНИЕ ВЛАДЕЛЬЦА: в облаке только CPU + диск, видеокарты нет.** Из-за этого: * выравнивание — **не горячий путь**: делается один раз на книгу и лежит на диске; * объём работы режется тремя рычагами: эмбеддить не предложения, а СМЫСЛОВЫЕ ХОДЫ (43–78 на кусок против сотен предложений) · сперва ЯКОРЯ (термины банка, числа, реплики, имена) прибивают опорные точки, эмбеддинги нужны лишь на промежутках · модель меньше + int8/ONNX; * **и главное разведение ролей:** в ЛАБОРАТОРИИ выравнивание — измерительный инструмент (проверить, работают ли дешёвые механизмы); в ПРОДЕ адреса берутся из номеров смысловых ходов ПО ПОСТРОЕНИЮ, и ни эмбеддингов, ни GPU там не нужно. ⇒ эмбеддинги — способ ПРОВЕРИТЬ более дешёвый механизм, а не сам механизм. **Чего я не знаю:** как эти алгоритмы ведут себя на НАШЕЙ прозе. Заявленное качество меряют на корпусах, где перевод следует за оригиналом близко; у нас редактор ОБЯЗАН сливать абзацы (77 строк → 43 абзаца). Числа из чужих статей сюда не переносятся. Плюс поле движется быстро — сверка с текущим состоянием отдельным ресёрчем не помешает. **Чем мерить точность БЕЗ ручной разметки (у нас уже есть):** банк терминов — если отрезок исходника содержит термин, выровненный отрезок перевода обязан содержать его канонную форму; и маржевые посадки — мы сами знаем, куда вставили порчу, и выравнивание обязано указать туда же. --- ## 15. СЕССИЯ №4 (20.08) — КУРС `PLAN-17-08.md`, ШАГ 1 Восстановление контекста после компакта: прочитаны ЦЕЛИКОМ заказ (`POLYGON_EXP2223_REDO_SESSION_PROMPT.md`, 207 строк), хендофф, `PLAN-16-08.md`, `PLAN-17-08.md`, этот журнал, `СВЕРКА-РЕВИЗИИ-16-08.md`, бриф владельца `START_PROMT.MD` (V0–V6), отчёт секции Д17–Д20, CURRENT-STATE, инвентаризация `~/books`. ### 15.1 ШАГ 1 — Г5 ЗАКРЫТ. $0, ни одного платного вызова Инструмент: `itog_d4.py --sens` (новый режим В СВОДЕ, отдельного файла не заводил — энтропия). Плюс два рычага `--drop=`/`--restore=`, оба ПУСТЫ по умолчанию: печатаемый вердикт не меняется. Правило решения записано в докстринге `sens()` ДО прогона. **Результат — вердикт «H-1 НЕ УСТАНОВЛЕНА» устоял.** Секция отчёта **Д21**. Ключевое: 1. Арифметика находки P13 воспроизведена ПОБАЙТНО (n=13 · sd 1.4058 · порог 1.0917 · `A6/A0` −1.0938 · запас +0.0020) — спор не о вычислении. 2. Переворот живёт только в сценарии, который ВОЗВРАЩАЕТ пачку аннулированной сессии и ОДНОВРЕМЕННО снимает пачки-валидации: норма применена в одну сторону и отменена в другую. На нынешнем дереве снятие валидации даёт запас **−0.0710** — ниже порога. 3. Посылка «другой режим замера» по УРОВНЮ не подтверждается: `д-01` отклоняется на +2.1 sd, а неоспариваемая `д-21` соседнего набора — на +2.4 sd. По промту проверить нечем: транскрипт `agent-aa9688762dc325180.jsonl` с диска исчез. 4. **Калибровка порога закрыта ПО ЗНАКУ** (находка ревизии №6, R73 против P40): шум самого контраста против пола — `A1B/A0` 1.03× · `A3/A0` 1.01× · `A6/A0` **0.65×**. Пол на Д4 откалиброван честно, а для несущего H-1 контраста ЗАВЫШЕН в 1.5×. Число R73 (1.40×) — свойство прохода `border`, переносить не следовало. 5. **Шум судьи зависит от АРМА**: тот же текст, две сессии — `A0` 2.24, `A3` 3.18, `A1` 3.26. Контурные тексты оцениваются в полтора раза менее устойчиво, чем перепис. 6. Наклон наборов реален (p1 строже p2 на +1.50 ошибки, пол +1.79, p=0.0117), но контрастов не задевает: армы сбалансированы по половинам, снятие пачки убирает все армы единицы разом. Контраст ВНУТРИ половины даёт те же числа до 4-го знака. **Честный итог сильнее печатаемого:** `A6/A0` во всех пяти способах счёта встаёт вплотную к порогу (запас −0.62 · −0.07 · −0.51 · +0.002 · −0.007) при шаге шкалы в ОДНУ ошибку. Это «эффект ровно размером с шумом прибора», то есть та же болезнь, что заход Д17 намерил на новом материале. ### 15.2 ⛔ МОЯ ОШИБКА В ПЛАНЕ, НАЙДЕНА ЧТЕНИЕМ КОДА `PLAN-17-08.md` нёс строку «Г5: H-1 переворачивается, дорогой черновик ВСЁ-ТАКИ помогает». **Неверно по знаку.** В своде минус = «арм ХУЖЕ эталона» (сверка: `A1B/A0` −3.53 при `A1B` 7.52 против `A0` 4.00). Значит «перешёл порог» читалось бы «дорогой черновик + контур ЗНАЧИМО ХУЖЕ связки» — H-1 опровергается, а не подтверждается. Строка в плане исправлена. ### 15.3 Смежные находки ревизии, разобранные тем же заходом | находка | статус после проверки исполнением | |---|---| | **P13** H-1 переворачивается | **ЗАКРЫТА**: арифметика верна, вывод не следует (Д21.1–21.2) | | **P12** пачка `69de717f3f` в замере | **ЗАКРЫТА ИСПОЛНЕНИЕМ**: на диске `.ANNULLED`, свод её не читает; база уже n=14/1.65. Строка сверки 16.08 устарела | | **P07** гейт честности пола | **снята по существу**: сдвиг реален, объявлен, вердиктов не двигает (Д21.4) | | **R73/P40** порог смещён в противоположные стороны | **ЗАКРЫТА ЗАМЕРОМ**: направление названо числом (Д21.3) | | **P42** два пре-рег-правила о маржевом гейте | ⛔ **ОТКРЫТА — ВОПРОС ВЛАДЕЛЬЦУ.** Объявлена девиацией в Д21.6; сессия решать не вправе | ### 15.4 Команды ``` eval/.venv/bin/python eval/dovodka/itog_d4.py --axis=d4 --sens # весь замер Г5 eval/.venv/bin/python eval/dovodka/itog_d4.py --axis=d4 # базовый свод (не изменился) ``` ### 15.5 ШАГ 2 — ПОКУПКА ОСТАНОВЛЕНА ГАРДОМ НА ПЕРВОЙ ЖЕ ГЛАВЕ. Что найдено Санкция владельца 20.08 «Хорошо, поехали» на $1.70. Построен `eval/dovodka/podacha.py` (зафризен `650b4fe` вместе с потолками ФД-K/ФД-L). Куплено 4 клетки одной китайской главы, потрачено $0.2927 из $0.40 — **гард отказал и остановил прогон**, как и положено по норме. **1. Цена клетки впятеро выше сметы.** $0.101 против сметных $0.0204. Причина найдена и разведена БЕСПЛАТНО: не потолок вывода (арм `ZF` — побайтно тот же запрос, что боевая связка, но с потолком 32000 против 16000 — даёт всего ×1.23 размышления на 16+16 клетках), а САМА ПОСАДКА. На одной и той же главе, тем же промтом, той же моделью: чистый черновик 1 612 токенов размышления, черновик с удалённым абзацем — **22 887, то есть ×14**. ⇒ **реальный дефект в черновике запускает ту же дорогую работу выравнивания, что и невыровненный формат.** Это находка, а не помеха: цена критика определяется не длиной входа, а тем, сколько несоответствий он вынужден локализовать. **2. Идея владельца работает — на первом же замере.** Та же глава, та же модель: размышление 22 887 → 10 211 (−55%), цена $0.101 → $0.0485. ⚠ **Но находок стало вдвое меньше: 24 → 12.** Это ровно тот риск, который пре-рег объявил ДО покупки, и он реализовался на первой клетке. **3. ⛔ ГЛАВНАЯ НАХОДКА, И ОНА НЕ ПРО ДЕНЬГИ: критик НЕ ВИДИТ ПРОПАВШЕГО АБЗАЦА.** Из черновика удалён целый абзац («Хо Цзунь с трудом поднялся из-под обломков…», 124 знака). Критик выдал 24 находки, все локальные, и **не упомянул пропажу ни словом** — при том что в том же тексте поймал снятую частицу «не». `glm-5` тоже не упомянул. Мандат критика прямо требует искать «потери смысла». ⇒ **пропуски обязан ловить детерминированный гейт покрытия, а не критик.** **4. Мой детектор пропажи оказался негодным, и поймала его НУЛЕВАЯ МОДЕЛЬ** — 3 ложных срабатывания из 4 на чистых клетках. Проверены ещё два правила: строгое (маркер пропажи И редкие слова в ОДНОЙ строке) не срабатывает ВООБЩЕ ни на одной клетке; счётное (число находок класса «пропущено») сигнала не даёт — на испорченной клетке их 2 против 2·3·3·7 на чистых. ⇒ эндпойнт «сохранил ли критик бдительность к пропускам» этим способом не меряется, потому что базовая бдительность УЖЕ нулевая. **5. `glm-5` с включённым размышлением НЕ ВЛЕЗАЕТ в потолок вывода на китайском:** клетка `dv-k-p0gl-13c5f52fa3` вернулась `finish=length` — деньги списаны, текста нет. Квирк-бюллетень (:52) предупреждал, риск был объявлен в шапке файла до покупки, и он материализовался. **Что это меняет в дизайне.** Дорог именно абзацный пропуск; без него замер возвращается к цене чистого критика (zh ~$0.008, en ~$0.042 за клетку) и ВЕСЬ план влезает в санкционированные $1.70. Отказ от абзацной посадки ничего не теряет, потому что её эндпойнт уже отвечен: критик пропуска не видит вовсе. Решение — за владельцем, сессия панель не режет. ### 15.6 РЕШЕНИЕ ВЛАДЕЛЬЦА 20.08: ПРОГОН ОСТАНОВЛЕН Дословно: «Прогон предлагаю стопнуть раз критик не находит проблемы пропуска абзацев он скорее всего еще сильнее будет деградировать». Английская пара НЕ покупалась вовсе (ФД-L $0.00); на китайской остались 4 клетки одной главы, $0.2927. Процессов нет, замков нет, дерево чистое. ⚠ **МОЯ ФОРМУЛИРОВКА ВВЕЛА ВЛАДЕЛЬЦА В ЗАБЛУЖДЕНИЕ, И ЭТО МОЯ ОШИБКА, А НЕ ЕГО.** Я написал «абзацная посадка» и «словесная посадка», и он прочёл это как ФОРМУ ПОДАЧИ — будто предлагается кормить критика таблицей «слово ↔ слово». Ничего такого в замере нет: «посадка» — это намеренная порча, которую я вношу в черновик, чтобы знать правильный ответ заранее; вход критика всё время остаётся прежним, целый исходник плюс целый перевод. Термин рига был употреблён в разговоре с владельцем без расшифровки — прямое нарушение нормы «продуктовые формулировки, термины расшифровывать при первом употреблении». **Возражение владельца по существу — верное и в замере подтверждается.** Дробить вход мельче означает увеличить число кусков, которые модель обязана сопоставить; фразеологизм и идиома живут в границах фразы, а не слова, и наш собственный критик ловит их именно как ЦЕЛОЕ («愿赌服输 — смысл „проиграл — расплачивайся“, а не „уговор дороже денег“»). Мельчить нельзя. **Что остаётся правдой после остановки** (одна глава, 3 годные клетки — сигнал, не вывод): 1. фраза о параллельности срезает размышление на 55% и цену вдвое, но и находки вдвое; 2. критик не видит удалённого абзаца, ловя при этом снятую частицу «не» в том же тексте; 3. реальный дефект в черновике удорожает критика в 14 раз против чистого; 4. `glm-5` с включённым размышлением не влезает в потолок вывода на китайском. ### 15.7 ⛔ ПОПРАВКА К МОЕМУ ЖЕ ОБЪЯСНЕНИЮ: «КИТАЙСКИЙ КРИТИК ПОЛУЧАЛ ГОТОВЫЕ ПАРЫ» — НЕВЕРНО Вопрос владельца 20.08: «а если критику сказать, что текст выровненный, перевод идёт след в след?» Проверено ДО ответа, бесплатно, на 16 китайских главах. **Счёт кусков совпадает, ПОЗИЦИИ — нет.** ``` ровно 1:1 по числу кусков 1 глава из 16 (расхождение 0…17) корреляция длин по одинаковому номеру медиана +0.12 (≈ ноль) реплика исходника на том же номере, что реплика перевода 193/385 = 50% при шансовом поле ≈33% (такова доля реплик в тексте) ``` ⇒ **«след в след» — НЕПРАВДА и на китайском тоже.** Прежняя запись §14.7 («китайский критик действительно получил готовые пары») выведена из МЕДИАН счёта кусков (78 строк → 80 абзацев, 0.96:1) и позиционной проверки не проходит. Медиана скрыла разброс. **Что от объяснения уцелело — не выравненность, а ЗЕРНИСТОСТЬ.** На китайском обе стороны нарезаны кусками по 24–30 знаков и идут примерно в одном порядке, поэтому критик работает локально даже при сдвиге на пару позиций. На английском одна строка против восьми абзацев — локальной опоры нет вовсе. Разрыв размышления ×9 замерен и остаётся фактом; моё объяснение его ослаблено. **Побочное наблюдение, полезное для дела:** глава `9120ad112e` — единственная, где счёт кусков совпал точно (79/79), и там же якорь реплик даёт **96%**. То есть соответствие держится, пока не случится слияние или дробление, после чего сдвигается ВСЁ последующее. Значит лечение — не «сказать модели», а дешёвая ПЕРЕ-СИНХРОНИЗАЦИЯ по якорям (реплики уже дают 50% против шансовых 33%). ⚠ И вывод для формулировки: врать модели нельзя не по этике, а по механике — пре-рег объявил заранее, что при ложном обещании точных пар модель будет искать соответствие, не найдёт и потратит БОЛЬШЕ. Правдивая версия (порядок сохранён · покрытие обязано быть полным · членение может отличаться · точных пар не искать) уже куплена и дала −55% размышления при −50% находок. ### 15.8 ГИПОТЕЗА, РАДИ КОТОРОЙ СТОИТ ЖИТЬ ДАЛЬШЕ — И ЕЁ ЦЕНА, СНЯТАЯ С КУПЛЕННОГО ($0) Владелец 20.08: «подумать и придумать ахуенное решение, вероятную гипотезу которую можно проверить». Ниже — четыре бесплатных замера по УЖЕ КУПЛЕННОМУ сырью, в порядке, в котором они делались. **Замер 1 — снос регистра. ГИПОТЕЗА НЕ ПОДТВЕРДИЛАСЬ.** Идея: порядок владельца решается не смыслом, а регистром (он назвал «шествовала» вместо ярости, смягчённый мат, вежливое «Пойдёмте» в выплюнутой реплике). Посчитал на его же панели плотность мата, восклицаний, длину фразы, долю реплик — против исходника. Порядок владельца (`ZP > ZF > Z1 > Z0`) НЕ воспроизводится: признаки дают `ZF > Z1 > Z0 > ZP`, его фаворит последний. Причина видна: на прочитанных им главах мата 0.61 и 0.00 на 1000 знаков, восклицаний ноль, длины фраз в пределах пары процентов — агрегатные признаки регистра варианты не различают вовсе. Идея снята, $0. **Замер 2 — РАЗМЕР ПРИЗА. Он больше всего, что мерила дуга.** По 32 прочитанным единицам (обе пары, оба машинных читателя): ``` размах между ВСЕМИ архитектурами (Z8R 2.16 … Z1 2.88) 1.78 позиции разброс ДВУХ ПРОГОНОВ ОДНОЙ связки (Z0 против ZF) 2.59 позиции выигрыш «взять лучшую из двух» против «взять любую» +1.30 позиции лучшая смена архитектуры (Z0 2.50 → Z8R 2.16) +0.34 позиции ``` ⇒ **выбор ПРОГОНА стоит вчетверо больше выбора АРХИТЕКТУРЫ.** Цена — один лишний дешёвый вызов против полной пере-сборки конвейера. **Замер 3 — ПРИЗ ОРАКУЛЬНЫЙ, И ЧИТАТЕЛЬ ЕГО НЕ БЕРЁТ.** Два независимых машинных читателя, выбирая между теми же двумя прогонами, совпали **9 из 16 = 56% при случайных 50%, p=0.40**. Монетка. То есть +1.30 — это ПОТОЛОК при идеальном отборщике, а не достижимая величина. ⚠ Здесь же поймана моя ошибка в пробе: ответы читателей лежат в `.md`, а я искал `.txt`, и первая редакция замера напечатала «прочитано обоими: 0». Число 56% снято после починки. **Замер 4 — ⭐ ГДЕ ОТБОРЩИК ВСЁ-ТАКИ РАБОТАЕТ.** Посчитал текстовое расхождение двух прогонов (`difflib`, $0) и сверил с согласием читателей: ``` более РАЗЛИЧНАЯ половина (расхождение ≥10% текста): читатели совпали 6/8 = 75% более ПОХОЖАЯ половина (расхождение <10%): совпали 3/8 = 38% — ниже монетки четыре самые различные главы (16…38%): совпали 4 из 4 самая похожая (0.3% расхождения): разошлись zh: медиана расхождения 18% · согласие 6/8 · en: медиана 6% · согласие 3/8 ``` ⇒ **разница zh/en — не языковая, а РАСХОЖДЕНЧЕСКАЯ**, и это независимо подтверждает поправку владельца из Д20.6 («дело не в языке, а в диапазоне шкалы»), снятую на другом приборе. **ГИПОТЕЗА К ПРОВЕРКЕ (шаг 2 нового курса вместо остановленного):** > Два прогона одной дешёвой связки плюс БЕСПЛАТНЫЙ детектор расхождения. Разошлись сильно — > выбор осмыслен и его берёт читатель-модель; почти совпали — выбирать нечего, берём любой и > не платим. Приз до +1.30 позиции против ≤0.34 у любой смены архитектуры. ⚠ **Порог 10% выбран ПО ЭТИМ ЖЕ ДАННЫМ — это разведка, а не проверка.** Гипотеза обязана проверяться на НОВЫХ главах с порогом, объявленным ДО них. n=16, разбиение по медиане post-hoc. **Смета проверки:** вторая генерация связки ~$0.027/глава (замер), 16 глав × 2 пары = **$0.86**; чтение бесплатно (агент-сессии). Плюс уже потраченные $0.29 на остановленный замер подачи. ### 15.9 ВОПРОС ВЛАДЕЛЬЦА 20.08 ПРО ПРОМТ ОДНОПРОХОДКИ — ОТВЕТ ПО КОДУ, НЕ ПО ПАМЯТИ «Ты писал хороший промт для неё, чётко ограниченный? Который я писал в стартпромте?» **НЕТ.** `contour.a2_msgs` собирает однопроходку так: боевой промт ПЕРЕВОДЧИКА плюс мандатная часть боевого промта РЕДАКТОРА, механически склеенные — четыре строки выброшены (`A2_DROP`), четыре подставлены (`A2_SUBST`). Среди подстановок есть прямая мета-фраза про наш конвейер: ``` "Твой мандат — художественная редактура черновика со сверкой по исходнику:" → "Отдельного редактора после тебя НЕ БУДЕТ, поэтому мандат редактуры входит в твой:" ``` **Почему так сделано — основание честное, но оно измерительное, а не продуктовое.** Контраст «однопроходка против связки» в эксп-21 был загрязнён: у арма без редактора системный промт вдвое короче (×1.92), и замеренная разница могла быть разницей ОБЪЁМА ИНСТРУКЦИИ, а не топологии. Уравнивание было правильным ДЛЯ ЗАМЕРА. Цена — **однопроходка ни разу не испытывалась как продуктовый промт**, только как уравненный по объёму двойник связки. **И при этом она уже выигрывает, неся гандикап:** по судейской оси от связки не отличается; по банку лучше на ОБЕИХ парах (потерянных терминов на главу 1.38 против 2.88 на zh, 0.31 против 0.56 на en); при слепом чтении владелец поставил её ПЕРВОЙ на английском; стоит один вызов вместо двух. **Цена двух прогонов однопроходки против одной связки — по текущему прайсу, из замеренных токенов:** ``` zh: связка (черновик $0.00514 + перепис $0.02016) = $0.02531 · две однопроходки $0.03498 = 1.38× en: связка (черновик $0.00193 + перепис $0.03527) = $0.03720 · две однопроходки $0.04235 = 1.14× ``` ⇒ За 1.14–1.38 цены нынешнего прода можно получить ДВА независимых текста и выбрать лучший. Удвоение самой связки стоило бы 2.0×. **Это соединяет самый сильный измеренный кандидат (E) с самым сильным измеренным рычагом (A) почти без доплаты.** **Что осталось дотестировать в однопроходке, по убыванию:** 1. **Промт начисто как РОЛЬ** (пункт 3 брифа V6): роль литературного переводчика · оригинал плюс ТОЛЬКО релевантный банк · рамки, а не бесконечные правила · критерии проверки результата · БЕЗ мета-фразы про отсутствующего редактора. Сравнить со склейкой. 2. **Банк без черновика** — единственное измеренное слабое место. Терминолог опирается на то, как термин передавали черновики. Замер детерминированный, судейства не требует. 3. **Границы сцен как единица нарезки** (тот же пункт брифа) — сейчас режем по числу знаков, не делалось ни разу. 4. **Два прогона однопроходки** плюс детектор расхождения — см. цену выше. ### 15.10 ⛔ ВЛАДЕЛЕЦ ПОЙМАЛ ПОТЕРЮ ПРАВИЛ В НОВОМ ПРОМТЕ. Покупка остановлена, гейт заведён Вопрос 20.08: «Ты этот промт перегенерил на основе двух имеющихся? Там же довольно много пропущено? Ты читал оригиналы промтов переводчика и редактора?» **Читал — и всё равно потерял три правила.** Покупка остановлена немедленно; успели уйти только три пред-полётные пробы ($0.00174), боевых клеток НЕТ. Просроченный замок мёртвого процесса снят законно (процесс проверен — его нет). **Что было потеряно, построчной сверкой с `backend/prompts/zh-ru/{translator,editor}.md`:** 1. ⛔⛔ **«Повтор, стоящий в параллельных позициях самого исходника, — авторский рефрен: сохраняй его, не разнообразь лексику там, где автор повторяется намеренно.»** Потеря ОПАСНАЯ: мой новый промт прямо говорит «буквальность здесь не достоинство» и разрешает синонимическую замену, то есть толкает ровно в обратную сторону. Модель вычистила бы авторский рефрен как «лишний повтор». Возвращено, и не отдельным пунктом, а ГРАНИЦЕЙ внутри блока «ТЫ ВПРАВЕ» — там, где свобода объявлена, там же назван её предел. 2. **«Кальки жестов и идиом · неверно понятые реалии»** с конкретным примером (поклон как «ударил головой»). Возвращено запретом 3: жест, идиома и реалия названы тремя местами, где подстрочник врёт чаще всего. 3. **«Не пересочиняй сцены».** Возвращено в запрет 2. Плюс одно СОЗНАТЕЛЬНОЕ снятие, теперь объявленное явно: боевое «не сокращай» отменено решением владельца 16.08 («вольность не ошибка»); полнота охраняется не запретом сокращать, а запретом терять смысловые ХОДЫ — то есть на уровне содержания, а не числа слов. **Заведён ГЕЙТ ПОКРЫТИЯ (`rol.py --coverage`, часть селфтеста).** Каждое правило обоих боевых промтов перечислено характерной подстрокой, у каждого объявлена ДИСПОЗИЦИЯ, и селфтест роняет замер, если хоть одно правило не покрыто: ``` "в промте" правило стоит в ядре нового промта (проверяется вхождением ключевых слов) "блок пары ДОСЛОВНО" правило приезжает пар-блоком — сверяется САМА СТРОКА боевого промта "покрыто смыслом" покрыто более полным местом промта, но не дословно; место названо "снято" снято сознательно, с основанием прямо в таблице ``` Итог гейта: **zh — 38 правил, непокрытых 0** (18 в промте · 7 дословно блоком · 4 смыслом · 9 снято); **en — 43 правила, непокрытых 0** (18 · 12 · 4 · 9). ⚠ Различие «дословно» и «смыслом» заведено ОТДЕЛЬНЫМИ диспозициями намеренно: смешать их значит потерять ровно ту границу, на которой первая редакция и погорела. И проверка блока сверяет строку, а не начало блока: слабая проверка пропустила бы усечённый блок. ⚠ **Урок шире этого файла: обещание «я всё перенёс» проверяемо только механизмом.** Гейт вдобавок сломается ГРОМКО, если чужая зона правит боевой промт, — сейчас такая правка молча меняла бы смысл арма. **Мнение Fable-5 заказано ДО покупки** (просьба владельца): полный контекст проекта, оба боевых промта, новый промт, гейт покрытия; вопросы — как он зажимал бы промт для такой задачи, разбор построчно, что мы потеряли (сверить самому, нашей таблице не доверять), и замечания по замерам. ### 15.11 ПРИЁМКА FABLE-5 ПРОМТА-РОЛИ (20.08). Три дефекта гейта, один — тяжёлый Заказана владельцем ДО покупки. Всё существенное пере-проверено моим исполнением, не принято на слово. **ПОДТВЕРЖДЕНО ИСПОЛНЕНИЕМ:** 1. ⛔⛔ **Гейт покрытия сертифицировал правило словом из правила ПРОТИВОПОЛОЖНОГО смысла.** Строка `("editor","лишние повторы","промт","разнообразь")` считала боевое «убирай лишние повторы» покрытым, потому что слово «разнообразь» есть в промте — но стоит оно в РЕФРЕН-ГРАНИЦЕ, то есть там, где повторы убирать ЗАПРЕЩЕНО. Требования убирать немотивированный повтор в новом промте не было вовсе (проверено грепом). Гейт, заведённый именно против потерь, сам произвёл потерю и напечатал «покрыто». Сертификат пере-привязан; в промт и в критерий ЯЗЫК вернулось «немотивированные повторы убирай». 2. **Короткие правила гейт не сканировал вовсе:** порог `len(s) < 25` выбрасывал строку «- Сноски: {{footnotes}}» (23 знака). Порог снижен до 10; правил на zh стало 39 против 38. 3. **Мёртвые строки таблицы неотличимы от живых:** три строки не срабатывали ни разу (пере-считано точно; первая грубая проверка дала 14 — моя ошибка сопоставления по усечённой строке). Заведена проверка «каждая строка COVERAGE обязана сработать хотя бы раз», две строки-заголовка удалены как мёртвые. 4. **Потеряна оговорка «Максимума длины абзаца нет»** — клауза внутри покрытого буллета. Гейт слеп к потерям на уровне полуфразы; класс зафиксирован, оговорка возвращена. **НЕ ПОДТВЕРДИЛОСЬ:** висячая ссылка «в глоссарии ниже» при отсутствии банк-блока — на всех 32 главах обеих пар термы банка есть, ссылка всегда обеспечена. Дефект латентный, а не живой; условность «(если он приложен)» всё равно возвращена. **ПРИНЯТО ИЗ РАЗБОРА, сверх дефектов** (каждое — одна строка, промт не разбух): * «Живой не значит нарядный: если герой идёт — он идёт, а не шествует» — закрывает КЛАСС, из которого пришла главная претензия владельца, а не отдельный случай; * «Сворачивая описание, ты сжимаешь СЛОВА, а не факты» — снимает рассогласование зернистости: ядро охраняло смысловые ХОДЫ, пар-блок — смысловые АТОМЫ, и «сворачивать описание» было легально по одному порогу и нелегально по другому; * мотивация канона («книга выходит на тысячу с лишним глав, форма имени обязана совпасть») — правило Anthropic «давай мотивацию, а не только запрет»; * оговорка про иноязычные вставки — иначе «не оставляй исходный язык» выполет французский слой, который пар-правила велят СОХРАНЯТЬ; * пример «поклон — не ударил головой» обезличен: это китайский кэтоу, уехавший в пар-нейтральное ядро, — ровно та утечка, которую запрещает гардрейл общности; * удалён дублирующий запрет (гигиена вывода стояла дважды) — правило Anthropic «минимально необходимая структура»; * императив «проверь себя по ним сам, молча» снят, критерии оставлены УТВЕРЖДЕНИЕМ. Основание двойное: документация Anthropic прямо предупреждает, что перенесённые инструкции самопроверки дают ИЗБЫТОЧНУЮ проверку — лишние токены и латентность; а у нас размышление тарифицируется как выход и составляет 85% цены дорогой клетки. **Дельта `reasoning_tokens` RN против ZP объявляется обязательным печатаемым числом отчёта** — проверка бесплатна, токены уже пишутся в клетки. ### 15.12 ⭐ КРОСС-ЧИТАТЕЛЬСКИЙ ПРИЗ — БЕСПЛАТНЫЙ ЗАМЕР, КОТОРЫЙ ПЕРЕВОРАЧИВАЕТ ВАРИАНТ A Возражение Fable: приз «лучший из двух прогонов» (+1.30 позиции) измерен ТЕМ ЖЕ прибором, которым предлагается выбирать, — круговое рассуждение. Развязка стандартная: выбирает прибор S, оценивает прибор E ≠ S. У нас ДВА независимых читателя, значит считается за $0 на купленном. Метод: выбор читателя A между двумя прогонами связки, а оценка выигрыша — по рангам читателя B (и симметрично). ``` ВСЕ главы: n=16 · выигрыш +0.28 позиции · 18 подтвердили, 14 опровергли · p=0.2983 расхождение ≥10% текста: n=7 · выигрыш +2.36 позиции · 12 подтвердили, 2 опровергли · p=0.0065 расхождение <10%: n=9 · выигрыш −1.33 позиции · 6 подтвердили, 12 опровергли · p=0.9519 ``` ⇒ **Три вывода, и все три меняют картину:** 1. **Наивный «лучший из двух» бесполезен** — в среднем +0.28 при p=0.30, то есть шум. Круговой приз +1.30 был в основном регрессией к среднему на шуме ранжировщика, как Fable и сказал. 2. **Но на разошедшихся главах приз РЕАЛЕН и БОЛЬШЕ оракульного: +2.36 позиции, p=0.0065** — и это уже НЕ круговое число: выбирал один читатель, оценивал другой. 3. **На похожих главах отбор ВРЕДИТ: −1.33.** То есть применять его вслепую хуже, чем не применять вовсе. Бесплатный детектор расхождения перестаёт быть оптимизацией и становится УСЛОВИЕМ работоспособности схемы. ⚠ Порог 10% по-прежнему выбран post-hoc на этих же данных, n=7 против n=9. Кросс-читательская конструкция снимает КРУГОВОСТЬ, но не снимает подгонку порога: он обязан быть заморожен пре-регом и проверен на новых главах. ### 15.13 РЕШЕНИЕ ВЛАДЕЛЬЦА 20.08: СМЕНА ПРИБОРА. Первичным становится СЛЕПОЕ ЧТЕНИЕ Дословно: «меняем принцип судейства. Вот тот текст что ты давал мне на слепое чтение, теперь корми фабл 5 и пусть он решает какой из вариантов ближе по художественному смыслу, лучше по переводу». **Что запущено.** Fable-5 читает ТУ ЖЕ панель, что читал владелец (`ЧТЕНИЕ-{zh,en}.md`, армы `Z0`/`ZF`/`ZP`/`Z1`), двумя отдельными сессиями — по одной на пару, чтобы порядок одной не переносился на другую. Ответы в `ОТВЕТ-{zh,en}.FABLE.md`, файл владельца не трогается. ⚠ **Идентичность читателя записана ДО запуска** — `blind-keys-chtenie-z17/READERS-fable-vladelets.json`. В заходе Д17 я записал её постфактум, и это было объявлено нарушением нормы; здесь порядок соблюдён. Сессия зарегистрирована `runs.py` ДО запуска (#91, судья д-91). ⚠ Читателю запрещены: `blind-keys*`, `dv-*.json`, код зоны, каталоги `~/books/dovodka`, `~/books/chtenie-z17`, `~/books/judging`, файл ответа владельца, дифф-инструменты и дочерние агенты. Транскрипт проверяется греп-аудитом ПОСЛЕ — механизм тот же, что у судейских сессий. **Что это решает.** Панель та же, значит порядок владельца становится ЭТАЛОНОМ. Совпадёт порядок Fable с его порядком — у нас есть масштабируемый первичный прибор вместо счётчика ошибок, у которого Спирмен с владельцем на английском **−0.64**. Разойдётся — прибор не готов, и это тоже результат за $0. ### 15.14 ЭКСТРАКТОР: почему чинить его на месте нельзя и что сделано вместо Владелец: «Ну почини экстрактор. В чём проблема то?» **Проблема механическая и замерена.** `bakeoff.uid_of` = `sha1(source.strip())`, то есть uid единицы есть хеш ТЕКСТА ЦЕЛИКОМ, вместе с пробелами. Возврат абзацев меняет пробелы ⇒ меняет все uid. Цена: **289 оплаченных клеток на $2.6385** теряют адресата, плюс семь файлов слепых ключей и все судейские ответы английской пары. Манифест это поймает и остановит покупку (гейт работает), но история оси всё равно умрёт. **Что сделано вместо.** Починка НА ПОДАЧЕ: тот же текст той же единицы, тот же uid, но с возвращёнными границами абзацев из epub. Функция взята у `podacha.py`, второй раз не написана; проверено — текст всех 16 английских единиц находится в абзацной версии побайтно. ⚠ **И это ОТДЕЛЬНЫЙ АРМ `RA`, а не подмена входа у `RN`.** Иначе несущий контраст смешал бы два эффекта, и разделить их было бы нечем: ``` RN / ZP — эффект ПРОМТА (вход у обоих ОДИНАКОВЫЙ, плоский) RA / RN — эффект ПОДАЧИ (промт у обоих ОДИНАКОВЫЙ, новый) ``` У китайской пары `RA` невозможен по построению: её исходник абзацы не терял. ⛔ **ДОЛГ ЧУЖОЙ ЗОНЕ, назвать оркестратору:** настоящая починка — в бэкенде, у продуктового экстрактора epub. Полигонный `pair_en.raw_text` чинить нельзя ценой оси; бэкенд правится своей зоной. Пинг обязателен. ### 15.15 РЕФАКТОРИНГ ПРОМТА И ЧТО ПОЙМАЛ СОБСТВЕННЫЙ ГЕЙТ Возвращённые правила и правки по Fable раздули ядро с 2743 до 3835 знаков — системный промт стал **1.22× склейки** вместо 1.05×, то есть вернулся конфаундер эксп-21 (там было ×1.92, и вывод оказался про ОБЪЁМ инструкции, а не про топологию). Лечение — то, что советовали и владелец («можно дорефакторить или что-то выкинуть»), и Fable, и документация Anthropic («минимально необходимая структура»): **два пересекавшихся списка сведены в ОДИН.** Было «ЧЕГО НЕЛЬЗЯ — четыре запрета» плюс «ПО КАКИМ КРИТЕРИЯМ — пять критериев», причём запрет про жест/идиому размазывался между СМЫСЛОМ и ЯЗЫКОМ, гигиена вывода была только в запретах, а РЕГИСТР — только в критериях. Модель получала две почти совпадающие таксономии и должна была сама решать, какая главная. Стало: **пять осей, у каждой в теле — что считается нарушением**, и одна строка «других запретов нет». Объём 1.19×. ⚠ **ГЕЙТ ПОКРЫТИЯ ПОЙМАЛ МОЙ ЖЕ РЕФАКТОРИНГ:** после слияния списков **девять** правил боевых промтов потеряли сертифицирующие подстроки («Перевирать факт» → «Перевран факт», «Терять смысловые ходы» → «Пропал смысловой ход» и так далее). Правила остались, слова изменились — и гейт честно упал, вместо того чтобы промолчать. Последний случай был тоньше прочих: подстрока «жест, идиома и реалия» не нашлась, потому что фраза разорвана переносом строки; сертификат пере-привязан на «подстрочник врёт». Это первое подтверждение, что гейт ловит не только чужие правки, но и мои собственные. ### 15.16 ⭐ НОВЫЙ ПРИБОР ОТКАЛИБРОВАН ПРОТИВ ВЛАДЕЛЬЦА. И моя же подсказка в пакете снята замером **Прогон 1 — пакет, который читал владелец.** Fable-5 воспроизвёл его порядок ТОЧНО на обеих парах: ``` zh владелец Z0 > ZF > ZP > Z1 Fable Z0 > ZF > ZP > Z1 Спирмен +1.00 en владелец ZP > ZF > Z1 > Z0 Fable ZP > ZF > Z1 > Z0 Спирмен +1.00 ``` Против счёта ошибок на английском у обоих **−0.80**. Контроль шума на китайском (две генерации одной связки) Fable взял так же, как владелец, — поставил соседями; машинные читатели захода Д17 на той же оси его ПРОВАЛИЛИ, разведя ту же пару на три позиции. Аудит обеих сессий чист: по два вызова инструментов, ключей и диффов не касались. ⛔ **НО В ПАКЕТЕ БЫЛА МОЯ ПОДСКАЗКА, и я нашёл её сам, перечитав собственный текст.** Шапка пакета говорила читателю: «вариант с наименьшим числом ошибок читался почти хуже всех». Это наводка, и она была в том же пакете, который читал ВЛАДЕЛЕЦ, — то есть часть совпадения могла объясняться общим внушением от меня, а не общим вкусом. **Прогон 2 — НЕЙТРАЛЬНЫЙ пакет.** Тексты и метки побайтно те же (проверено ассертом), рамка переписана без единого упоминания счётчика, контроля и расхождений. Свежие читатели, чистый контекст. Английская пара: ``` владелец ZP > ZF > Z1 > Z0 Fable с подсказкой ZP > ZF > Z1 > Z0 Спирмен с владельцем +1.00 Fable БЕЗ подсказки ZF > ZP > Z1 > Z0 Спирмен с владельцем +0.80 счёт ошибок Z0 > ZF > Z1 > ZP Спирмен с владельцем −0.80 ``` ⇒ **Подсказка стоила 0.20 и перестановки двух верхних мест. ГЛАВНОЕ УСТОЯЛО: боевая связка `Z0`, у которой по счётчику НОЛЬ ошибок, у чистого читателя по-прежнему ПОСЛЕДНЯЯ из четырёх.** Значит вывод «счётчик и читатель на английском смотрят в разные стороны» — не артефакт моей наводки. Это его первая настоящая проверка. ⚠ **И сверх задания: чистый читатель НЕ ЗНАЛ, что в панели есть контрольная пара** (из нейтральной рамки это убрано), и всё равно написал «Т4 — почти клон Т2». Т4=`Z0`, Т2=`ZF` — это ровно две генерации одной связки. Он опознал их чтением, без подсказки и без диффа. ⚠ При этом развёл он их на 1-е и 4-е места. По букве гейта это «порядок читателя = шум», но Д20.3 уже установила предел этого гейта: он не умеет отличить «читатель шумит» от «арм шумит», а на английской паре две генерации связки расходятся сильно — это замерено независимо (расхождение текста, §15.12). **Норма, заведённая этим:** пакет слепого чтения не имеет права называть читателю ни вердикт другого прибора, ни существование контроля. Прежняя рамка объясняла ему, зачем всё это нужно, — и объясняла слишком много. ### 15.17 ИТОГ КАЛИБРОВКИ НОВОГО ПРИБОРА — обе пары, чистый пакет, чистый аудит ``` пара кто порядок Спирмен с владельцем zh ВЛАДЕЛЕЦ (эталон) Z0 > ZF > ZP > Z1 +1.00 zh Fable, пакет С ПОДСКАЗКОЙ Z0 > ZF > ZP > Z1 +1.00 zh Fable, пакет ЧИСТЫЙ Z0 > ZP > ZF > Z1 +0.80 zh счёт ошибок (СТАРЫЙ) ZF > Z0 > ZP > Z1 +0.80 en ВЛАДЕЛЕЦ (эталон) ZP > ZF > Z1 > Z0 +1.00 en Fable, пакет С ПОДСКАЗКОЙ ZP > ZF > Z1 > Z0 +1.00 en Fable, пакет ЧИСТЫЙ ZF > ZP > Z1 > Z0 +0.80 en счёт ошибок (СТАРЫЙ) Z0 > ZF > Z1 > ZP −0.80 ``` ⇒ **НОВЫЙ ПРИБОР СОГЛАСЕН С ВЛАДЕЛЬЦЕМ ОДИНАКОВО НА ОБЕИХ ПАРАХ (+0.80 и +0.80). СТАРЫЙ согласен на китайской (+0.80) и АНТИ-согласен на английской (−0.80).** Это и есть основание сменить прибор: дело не в том, что счётчик хуже вообще, а в том, что он меняет ЗНАК от пары к паре, а чтение — нет. **Значимость посчитана точным перестановочным счётом, а не на глаз.** На панели из четырёх вариантов случайная перестановка даёт Спирмена ≥ +0.80 в 4 случаях из 24 (0.167). Обе пары независимо дали ≥ +0.80 ⇒ **p = 0.028**. Пакет с подсказкой дал точное совпадение на обеих (1/24 каждая) ⇒ p = 0.0017. ⚠ Это счёт по ОДНОЙ панели на пару. Он говорит «совпадение вряд ли случайно» и НЕ говорит «прибор работает на книге»: 4 варианта × 2 панели — калибровка, а не валидация. **Что чистый читатель сделал СВЕРХ задания, не зная о контроле** (из нейтральной рамки убрано всякое упоминание, что контрольная пара существует): * на английском назвал «Т4 — почти клон Т2»; это `Z0` и `ZF`, две генерации ОДНОЙ боевой связки; * на китайском назвал «Т4 и Т1 дословно совпадают целыми фразами, Т1 читается как редактура этого же черновика» — то есть опознал родство армов ЧТЕНИЕМ, без диффа и без подсказки; * независимо от владельца нашёл сквозной дрейф пола персонажа между отрывками — класс дефекта, который наш судья не видит ПО ПОСТРОЕНИЮ (он работает поотрывочно). **Аудит обеих чистых сессий:** по 2 вызова инструментов, ноль обращений к ключам, сырью, коду, чужим ответам и дифф-инструментам. **Что снято и что осталось.** Снято подозрение, что совпадение произведено моей наводкой: на чистом пакете верх и низ порядка устояли, боевая связка с НУЛЁМ ошибок по счётчику осталась последней у читателя. Осталась перестановка двух средних мест — она и есть цена подсказки (0.20). ### 15.18 ⛔ РЕЗУЛЬТАТ ЗАМЕРА ПРОМТА-РОЛИ: лучше склейки, но не стоит своей цены **Слепое чтение, первичный прибор (решение владельца 20.08).** Панель: прежняя склейка `ZP` · новая роль `RN` · боевая связка `Z0` · её вторая генерация `ZF`. Три самые длинные китайские главы с полной панелью, рамка нейтральная, ключ отдельно, идентичность читателя записана ДО запуска, сессия #92 зарегистрирована ДО. Аудит: 6 вызовов, только файлы пакета, нарушений 0. ``` общий порядок: Z0 > ZF > RN > ZP отрывок 1: Z0 > ZF > ZP > RN отрывок 2: Z0 > RN > ZF > ZP отрывок 3: RN и ZF в паритете контроль шума (две генерации связки Z0/ZF): места 1 и 2 — СОСЕДИ, гейт ВЗЯТ ``` **Что это значит по существу:** 1. **Новая роль БЬЁТ прежнюю склейку** (3-е место против 4-го). Направление правки верное. 2. **Но обе однопроходки проигрывают боевой связке**, причём связка занимает оба верхних места ОБЕИМИ своими генерациями — то есть выигрыш не случайный розыгрыш. 3. **Выигрыш над склейкой — одна позиция на трёх отрывках, и по отрывкам он неустойчив:** на первом `RN` последний, на втором второй. Внутри разброса. 4. **Цена: ×6.3 против склейки** ($0.1116 против $0.0177), плюс 3 клетки из 13 оборваны на потолке вывода. ⇒ **новая роль своей цены НЕ СТОИТ на этих уликах.** ⭐ **ДИАГНОЗ ЧИТАТЕЛЯ, и он объясняет ОБА числа сразу.** Про новую роль он написал: «самый точный по деталям … но проза самая серая: гладкопись подстрочника». То есть промт сделал модель ТОЧНЕЕ и МЕРТВЕЕ — ровно наоборот замыслу, при том что вольность в нём разрешена явно, а поднимать слог запрещено прямым текстом. Связная гипотеза, объясняющая и ×26 размышления, и серую прозу: **я напечатал в промте пять осей, по которым результат будут проверять, — и модель занялась удовлетворением чек-листа.** Она думает в 26 раз больше, потому что взвешивает пять критериев; и пишет площе, потому что оптимизирует проверяемое, а не читаемое. Это ровно тот отказ, о котором предупреждали и Fable («не сделает ли блок критериев модель осторожной вместо смелой»), и документация Anthropic (перенесённые инструкции самопроверки дают избыточную проверку). Я снял оттуда императив, но оставил перечень — и этого хватило. ⚠ **Статус: ОПИСАТЕЛЬНО.** Три отрывка, одна пара, один читатель. Это направление и механизм, а не доказанная величина. ⭐ **ВТОРОЕ НЕЗАВИСИМОЕ ПОДТВЕРЖДЕНИЕ ОСТРОТЫ ЧИТАТЕЛЯ:** не зная, что в панели есть контроль, он написал «Т1 и Т4 читаются как черновик и доведённая редакция одного текста». Т1 и Т4 — это `Z0` и `ZF`, две генерации ОДНОЙ связки. Он опознал их чтением уже второй раз подряд, на другой панели и в другой сессии. **Что из этого следует для курса.** Проверяемая и дешёвая ветка теперь одна: **выкинуть из промта блок критериев и померить размышление заново.** Если оно вернётся к тысяче, а чтение не ухудшится — промт чинится удалением, а не деньгами, и это ровно то, что владелец предлагал с самого начала. ### 15.19 ⭐⭐ МЕХАНИЗМ ВСКРЫТ ТРЕЙСОМ: размышление у dspro — это ЧЕРНОВИК, а не проверка Абляция (3 главы, два реза, трейс сохранён по флагу `TM_KEEP_TRACE=1` — совет приёмки Fable-5): ``` арм размышление $/клетка перевёрстка годных RN экзамен, риск на смелости 28 809 0.1265 1.60 2/3 RB экзамен ПЕРЕВЁРНУТ 23 301 0.1050 1.14 2/3 RC экзамена НЕТ 11 268 0.0593 1.37 3/3 ZP прежняя склейка (эталон) 950 0.0177 1.77 31/31 ``` RC против RN: размышление ×0.42, цена ×0.50. RB против RN: ×0.86 и ×0.88. ⇒ **рез помогает, перевёртывание риска — почти нет.** Но лучший рез всё ещё думает ×12 против склейки, то есть объявленный экзамен был НЕ главной причиной. **И трейс объясняет, чем он был.** Прямая мера: доля предложений ФИНАЛЬНОГО текста, встречающихся в трейсе дословно: ``` RB 89614f9bfa размышление 31 515 · 11/11 = 100% RB b2a7464dbd размышление 23 301 · 61/65 = 94% RB ef9cd38ec4 размышление 13 337 · 46/76 = 61% RC b2a7464dbd размышление 23 410 · 66/67 = 99% RC ef9cd38ec4 размышление 11 268 · 69/71 = 97% RC 89614f9bfa размышление 1 180 · 0/72 = 0% ← ЕДИНСТВЕННАЯ дешёвая клетка МЕДИАНА: 96% ``` ⇒ **96% финального текста написано ВНУТРИ канала размышления.** Разбор трейса по содержанию: черновик перевода в уме 54% абзацев · разбор структуры 11% · само-проверка **всего 4%** · перечисление глоссария 3%. ⛔ **Значит и моя гипотеза, и гипотеза приёмки были НЕВЕРНЫ по механизму.** Мы оба думали, что деньги жжёт верификационный цикл по объявленным критериям. Верификации там 4%. Деньги жжёт то, что **модель пишет весь перевод дважды: сперва черновиком в размышлении, потом набело в ответе.** Мы платим за обе копии по цене выхода. ⚠ **Режим БИМОДАЛЕН.** Одна клетка из шести (RC на главе `89614f9bfa`) в ум не писала вовсе: 1 180 токенов размышления, 0% совпадения, цена в двадцать раз ниже соседей. То есть «писать в уме» — это состояние, в которое модель входит или не входит, а не плавная функция промта. ### 15.20 СЛЕДСТВИЕ ДЛЯ АРХИТЕКТУРЫ, которого никто не искал Прежняя склейка думает 950 токенов и в ум не пишет. Новый промт — пишет. Разница между ними — приглашение к ремеслу: «ты вправе», «живая фраза», регистр, «не украшай». **Промт, который просит творчества, у думающей модели с неотключаемым размышлением оплачивается вторым черновиком.** ⇒ **Боевая двухстадийная связка дёшева не вопреки, а благодаря своей топологии: она выносит черновик ИЗ канала размышления дорогой модели В ВЫХОД дешёвой.** То же самое, что дорогая модель делает у себя в уме за $3.96/1M, дешёвая делает наружу за $1.32/1M — и результат виден, проверяем и переиспользуем, а не выбрасывается. Это объясняет разом три вещи, которые до сих пор стояли порознь: почему связка держится пять экспериментов; почему однопроходка выигрывает по банку, но не по цене на дорогой модели; и почему у критика размышление взлетает ×14 на дефектном черновике (ему тоже приходится до-писывать текст в уме, чтобы понять, чего в нём не хватает). ⚠ Статус: 3 главы, 6 клеток, одна пара, одна модель. Механизм НАБЛЮДЁН прямо (трейс), величины — описательны. Бимодальность на n=6 названа, но не объяснена. ### 15.21 ⭐ АБЛЯЦИЯ ОТСУЖЕНА ЧТЕНИЕМ: формулировка владельца ПЕРВАЯ, но контроль шума КРАСНЫЙ Панель 5 вариантов × 3 главы, рамка нейтральная, ключ свой, идентичность читателя и сессия записаны ДО. Аудит: 6 вызовов, только файлы пакета, нарушений 0. ``` RB > Z0 > RC > RN > ZF 1. RB экзамен ПЕРЕВЁРНУТ — брак = просвечивающий исходный язык (формулировка ВЛАДЕЛЬЦА) 2. Z0 боевая связка, продакшен 3. RC экзамен вырезан 4. RN экзамен с риском на смелости (первая редакция) 5. ZF ВТОРАЯ ГЕНЕРАЦИЯ ТОЙ ЖЕ БОЕВОЙ СВЯЗКИ ``` **Три редакции промта между собой: `RB > RC > RN`.** Порядок обратен моей гипотезе: я ждал, что победит чистый рез (он дешевле всех и убирает экзамен целиком), а победила ПЕРЕВЁРНУТАЯ рамка — та, где браком объявлен просвечивающий исходный язык. То есть дело не в наличии экзамена, а в том, ЧТО им объявлено браком. Формулировка владельца оказалась не смягчением, а рычагом. ⛔ **НО КОНТРОЛЬ ШУМА КРАСНЫЙ, И ЭТО СНИМАЕТ ПРАВО ГОВОРИТЬ «РАЗЛИЧИМО».** Две генерации ОДНОЙ боевой связки встали на 2-е и 5-е места — разошлись на всю панель. Победа `RB` над `Z0` — одна позиция, а один и тот же способ занимает у того же читателя места со 2-го по 5-е. ⇒ **Порядок этой панели не разрешим при n=3 главах.** Единственное, что уцелевает: `RB` не хуже продакшена, и три редакции промта упорядочены между собой. ⚠ **Существенная поправка к трактовке красного контроля.** Читатель НЕ спутал близнецов: он прямо написал, что `ZF` «в отрывке 1 маскируется под `Z0`», то есть родство опознал — и всё равно поставил один вариант вторым, другой последним, назвав последний «откровенно машинным». Значит это не шум ЧИТАТЕЛЯ, а разброс АРМА — ровно то, что владелец сказал словами при своём чтении («один прогон приличный, второй сырой») и что счёт ошибок намерил на китайской оси (sd 4.42). Это уже ЧЕТВЁРТЫЙ независимый прибор, показывающий одно и то же. ⚠ Третий раз подряд читатель опознаёт контрольную пару, не будучи о ней предупреждён. **Цена победителя.** `RB` стоит $0.105 за клетку против ~$0.025 у боевой связки — вчетверо, и выигрывает одну позицию внутри шума. Как продукт это пока не кандидат; как направление правки промта — единственное, что сработало. **Что из этого следует по существу.** Механизм, вскрытый трейсом (§15.19), объясняет и этот порядок: `RB` думает 23 301 токен и пишет 94–100% текста в уме — то есть покупает качество той же дорогой монетой. Дешёвый `RC` (11 268) написал хуже. **Качество здесь пропорционально не удачности формулировки, а количеству черновиков, которые модель успела написать про себя.** Если так, то однопроходка на думающей модели упирается не в промт, а в тариф: чтобы писать лучше, ей надо писать дважды, и оба раза мы платим по цене выхода. ### 15.22 РЕШЕНИЯ ВЛАДЕЛЬЦА 20.08, ЗАКРЫВАЮЩИЕ СЕССИЮ 1. **Кап агент-сессий снят** («не припомню, чтоб ставил тебе жёсткие ограничения»): 100 → 200. ⚠ Уточнение, которое стоит помнить: 80 пришло из ЗАКАЗА, владелец снял его 15.08, а 100 поставил в код Я САМ. То есть сессия упёрлась в СВОЁ ограничение и подала его владельцу как чужое. Норма: прежде чем назвать границу «ограничением владельца», найти его слово. 2. **Новые редакции промта — в английскую панель** («Нужны»). Куплены `RN`/`RC`/`RB`, 16 глав, смета $1.05, касса ФД-N, с сохранением трейса. 3. **Sol паркуется, судит только Fable** («забьём на сол… а потом на сол если хватит времени»). ⇒ P42 снят с повестки, но НЕ решён; норма П-1 о двух семействах временно не исполняется и это объявленное отступление; контролем служит внутренняя пара близнецов в каждой панели. 4. **Документация актуализирована:** баннер «закрыт» на `PLAN-16-08.md`, шапка состояния на `PLAN-17-08.md`, поправка на день в `КОНТЕКСТ-ДЛЯ-КОНСУЛЬТАЦИИ.md`, создан `HANDOFF-21-08.md`. ### 15.23 ⛔ АНГЛИЙСКАЯ ДОКУПКА ОПРОВЕРГЛА МОЙ ЖЕ ВЫВОД ПРО ЦЕНУ ПРОМТА ``` китайская пара английская пара прежняя склейка 950 4 494 промт-РОЛЬ (RN) 27 039 (×28) 5 804 (×1.29) рез критериев (RC) 11 268 (×12) 3 586 (×0.80) ``` ⇒ **разгон ×28 — свойство КИТАЙСКОГО МАТЕРИАЛА, а не промта.** На английском тот же промт стоит на четверть дороже склейки, резаный — дешевле неё. Вывод §15.20 («промт, просящий творчества, оплачивается вторым черновиком») СНЯТ как общее утверждение. ⚠ И это стояло в нашем же бюллетене, прочитанном в тот же день (`00-provider-quirks.md` п.7: «разгон думания привязан к ПЛОТНОМУ ХАНЬСКОМУ ВХОДУ… при сопоставимом входе zh требует ×7.8 против en»). Прочитал и всё равно приписал эффект промту. **НОРМА: эффект, замеренный на ОДНОЙ паре, не называть свойством промта, пока не проверен на второй. Пара — конфаундер по умолчанию.** **Что устояло и стало прочнее:** черновик в уме — на ОБЕИХ парах (zh 93–97% на 6 клетках, en 88–94% на 47). Механизм подтверждён на 53 клетках, само-проверки 4%. Меняется следствие: не «двухстадийность спасает от второго черновика», а «второй черновик пишется ВСЕГДА, но дорого обходится только на плотном входе». ### 15.24 ПАНЕЛЬ ПЕРЕ-СОБРАНА НА 11 АРМОВ И ПРОВЕРЕНА 15 пакетов английской пары, по одной главе, панель `ZD Z0 ZF ZP Z8 Z8R Z1 Z7 RN RC RB`. Сверка: 15 уникальных глав · 15 РАЗНЫХ раскладок · **165 текстов побайтно против клеток, расхождений 0** · имён армов в пакетах нет · рамка нейтральна · указание владельца «торопиться не надо» стоит в каждом пакете (проверено гейтом). ⚠ Глава `100b088f71` пропущена: нет клетки `RN` после двух попыток. **Пропуск ПЕЧАТАЕТСЯ**, а не умалчивается — первая редакция эмиттера падала на такой главе и молча собирала 5 пакетов вместо 16, что выглядело как «панель полна только на пяти». Починено: пропуск с печатью. ⚠ Прежние пакеты тега `arch` (панель из 8) УДАЛЕНЫ — ответов по ним не было. Две панели одной пары рядом однажды кончатся сведением ответов разных панелей одним ключом. **Указание владельца 20.08, вписанное в рамку КАЖДОГО пакета:** «времени нет ограничения, торопиться не надо · прочти ВСЕ варианты целиком прежде чем ранжировать · не выдумывай различий там, где их нет, знак `=` законен · но и не сваливай в кучу различимое». Закрывает обе стороны: пересудил (выдуманные различия) и недосудил (свалил в кучу). ## 16. СЕССИЯ №5 (21.08, после компакта) — СУДЕЙСТВО ПАНЕЛИ arch2 ### 16.1 ⛔ ПАНЕЛЬ НЕ ИЗ ОДИННАДЦАТИ АРМОВ. `Z7` — побайтная КОПИЯ `ZP` на 10 главах из 15 Нашлось не гейтом, а ЧИТАТЕЛЕМ: первые же два ответа независимо сообщили «два варианта совпадают дословно, связываю знаком `=`». Проверка побайтно подтвердила и назвала пару: **`Z7` ≡ `ZP`**. Причина в конструкции арма, а не в сборке пакета (`zakhod.py:486`): `Z7` = однопроходка + канон-фиксер, и фиксер зовётся ТОЛЬКО при непустом списке щелей `C.canon_gaps`. Щелей нет — клетка пишется `_free_cell(tg, op, places=0)`, то есть текстом `ZP` без единого вызова. По клеткам: ``` глав с places=0 (фиксер НЕ звался, Z7 ≡ ZP) 10 глав с places≥1 (фиксер работал) 6 (одна из них — пропущенная 100b088f71) ``` ⇒ **В 10 пакетах из 15 читателю показывали 10 разных текстов под видом 11.** Сверка сборки, объявленная «сплошной» (§15.24: 165 текстов побайтно против клеток, расхождений 0), этого не видела ПО ПОСТРОЕНИЮ: она сличала пакет с клетками, а клетки друг с другом — нет. **НОРМА: сверка панели обязана проверять не только «текст тот», но и «тексты РАЗНЫЕ».** **Что это значит для вердикта, и чего НЕ значит.** * Резать `Z7` из панели решением сессии ЗАПРЕЩЕНО заказом — и не нужно: данные не испорчены, испорчена их трактовка. Среднее место `Z7` на этих главах — это среднее место `ZP`, и считать их двумя независимыми армами значит дважды засчитать один текст. * Свод печатает обе величины: `Z7` как есть и контроль тождества отдельной строкой. Вывод об арме «однопроходка + канон-фиксер» законен ТОЛЬКО на 5 главах, где фиксер работал. * Отдельный результат, который стоит записать сам по себе: **на 2/3 английских глав канон-гейт не находит ни одной щели**, то есть стадия канон-фиксера на этой паре в две трети случаев — пустой проход. Это ответ про её цену, полученный бесплатно. ### 16.2 ⭐ ПОБОЧНЫЙ ПРИЗ: получился КОНТРОЛЬ ТОЖДЕСТВА, которого никто не закладывал Два одинаковых текста в панели — это проверка читателя строже близнецов `Z0`/`ZF`: у близнецов разброс арма реален, у тождества его нет по построению. Читатель, разводящий побайтно одинаковые тексты, дисквалифицирует себя без всяких допущений. **На отсуженных главах контроль ПРОЙДЕН: развод мест 0.00, худший 0** — каждый читатель, которому попалась пара, связал её знаком `=` и написал, что различий не нашёл. Это первая на фазе проверка разрешения прибора, не опирающаяся на предположения о шуме арма. ### 16.3 ИНСТРУМЕНТ: `rol.py --score-arch` `score_read` разбирал ОДИН пакет и один ключ; здесь пакетов 15, ключей 15, раскладок 15. Свод: дробные места при связках (`Т8=Т9` на 1–2 → обоим 1.5) · отказ от главы, чей порядок не покрывает панель ровно один раз, ВСЛУХ · три контроля рядом со средним местом, а не под ним. ``` eval/.venv/bin/python eval/dovodka/rol.py --score-arch en --tag=arch2 ``` ### 16.4 ⭐ ВЕРДИКТ ПЕРЕ-СУДЕЙСТВА: связку не обошёл никто, абляция опровергнута 15 глав × 11 армов, один читатель на главу, все контроли зелёные. Полный разбор — отчёт Д24. Коротко, что меняется в знании: | было | стало | |---|---| | `RB > Z0` (абляция, n=3, контроль КРАСНЫЙ) | `RB` на **2.03 места позади** связки при n=15 и ЗЕЛЁНОМ контроле | | «однопроходка первая на английском» (1 глава, чтение владельца) | `ZP` шестая из 11; от связки НЕ отличима (+1.67 при пороге 2.98) — кандидатом остаётся, победителем не была | | «`Z1` критик→перепис ОТРИЦАТЕЛЬНО» (счёт, другие главы) | **лучший из девяти претендентов** (+1.30), но и он в пределах порога | | «`Z8` обогащённый черновик хуже голого» (на грани) | различимо хуже: 9.30 против 8.20 у голого, разрыв со связкой +5.40 | | «второй проход нужен» (счёт) | устояло при смене прибора: `ZD` и `Z8` проигрывают на 15 и 14 главах из 15 | **Что различимо вообще:** только три арма — `RC`, `ZD`, `Z8`. Шестёрка середины между собой не упорядочена, и говорить «A лучше B» внутри неё нельзя. **Методическое, ради чего стоило городить:** собственный пол замера (близнецы) разошёлся на +0.53 места при пороге 2.56 — **впервые за фазу контроль шума ЗЕЛЁНЫЙ на панели архитектур.** Разгадка не в приборе, а в n: по ОДНОЙ главе тот же способ прыгает на 9 мест из 11 (глава 7 в раскладке), но среднее по 15 главам устойчиво. То есть «архитектуры неразличимы» захода Д17 было утверждением о РАЗМЕРЕ ВЫБОРКИ, а не о мире. ### 16.5 ⛔ ЕЩЁ ОДНА НЕВЕРНАЯ СТРОКА В МОЁМ ЖЕ ХЕНДОФФЕ `HANDOFF-21-08.md` §1 утверждал: «прежние 15 пакетов с тегом `arch` (панель из 8) УДАЛЕНЫ». **Не удалены.** На диске 16 пакетов, 16 пустых ответов и 16 ключей тега `arch`. Я записал намерение как исполненное. Поправка внесена в сам хендофф; файлы не тронуты (сырьё чужой рукой не сносят, механической коллизии глобов `arch-`/`arch2-` нет — проверено). **Класс ошибки тот же, что «объявил 80 клеток куплено, годных 23»: отчёт о действии вместо действия.** Норма: строку «сделано» писать после проверки диска, а не после решения сделать. ### 16.6 Инвентарь перед следующим шагом (против энтропии, по слову владельца) ``` ~/books/chtenie-rol/ ЧТЕНИЕ/ОТВЕТ-en-arch2-* 15 пакетов, ВСЕ отсужены 21.08 ЧТЕНИЕ/ОТВЕТ-en-arch-* 16 пакетов панели из 8, НЕ читаны, НЕ годны ЧТЕНИЕ/ОТВЕТ-zh(-abl) старые китайские панели (4 и 5 армов) китайская пара, клеток: Z8 18 · Z8R 14 · Z1 16 · Z7 16 · ZF 17 · RN 14 · RC 3 · RB 4 ⇒ панель из 9 (8 + RN) на zh собирается БЕСПЛАТНО, RC/RB — нет ``` ⇒ **Следующий дешёвый шаг очевиден и стоит $0:** та же панель на КИТАЙСКОЙ паре из уже купленного. Он проверяет главное ограничение Д24 — вывод стоит на одной паре. ### 16.7 ⛔ БАГ РАЗБОРЩИКА, КОТОРЫЙ ВСКРЫЛСЯ ТОЛЬКО ОТ СВЕРКИ С КЛЕТКОЙ `_variants` резал пакет по заголовкам вариантов и не отрезал разделитель `---`, стоящий ПЕРЕД следующим вариантом: он прилипал к хвосту предыдущего тела и переживал `strip()` — ровно 6 знаков. **Почему это было невидимо и что урок.** Первым потребителем `_variants` был контроль тождества, то есть сравнение ДВУХ ТЕЛ между собой — а артефакт стоял у обоих, и равенство сходилось. Баг проявился в ту же секунду, когда тела сверили с ВНЕШНИМ источником (клеткой): 84 «расхождения» из 96, все ровно на 6 знаков. ⇒ **сверка «своё со своим» не ловит систематическую порчу; ловит только сверка с источником, к разбору не причастным.** **И он же поправил находку в мою же пользу — в сторону строгости.** Правильный счёт по английской панели: `Z7` ≡ `ZP` не на 10 главах, а на **12**. Разбор: ``` 10 глав фиксер не звался (places=0) 2 главы фиксер ЗВАЛСЯ, ОПЛАЧЕН и вернул побайтно тот же текст ← этого первая версия не видела 3 главы фиксер действительно правил текст ``` ⇒ **канон-фиксер на английской паре меняет перевод в одном случае из пяти**, а в 13% случаев вызывается и оплачивается впустую. Вердикты Д24 не двигаются (`Z7` и так шёл рядом с `ZP`), двигается цена стадии. ### 16.8 СВЕРКА СБОРКИ СТАЛА ИНСТРУМЕНТОМ, А НЕ РАЗОВЫМ СКРИПТОМ `rol.py --verify-read <пара> --tag=<тег>`: побайтная сверка каждого текста с клеткой своего арма · исходник главы · разные раскладки · имена армов в пакете · указание владельца «торопиться не надо» · **и новый пункт: побайтно совпадающие армы**. Прошлые два раза это был скрипт в консоли — и оба раза он проверял не то, что нужно. Гейт проверен на ЗАВЕДОМО больном входе: на английской панели он поднимает `Z7 ≡ ZP` (12 пакетов), на китайской молчит. Гейт, который не может упасть, ничего не сторожит. ### 16.9 КИТАЙСКАЯ ПАНЕЛЬ ОТСУЖЕНА — И ГЛАВНЫЙ ВЫВОД ДУГИ СОБРАЛСЯ 12 глав, 8 армов, $0 (всё из уже купленного). Полный разбор — отчёт Д26. **Реплицировалось на обеих парах при зелёных контролях:** второй проход нужен (`ZD` различимо последний: en +4.30, zh +3.33) · обогащение промта черновика ВРЕДИТ (`Z8` ниже голого черновика на обеих парах) · вся середина в пределах порога. ⛔ **НЕ реплицировался порядок внутри середины:** на en боевая связка первая-вторая, на zh третья, впереди критик-перепис и однопроходка. Разрывы с обеих сторон меньше порога. ⇒ **Правильная формулировка одна: ни одна архитектура второго прохода не отличима от другой ни на одной паре.** Моя вчерашняя «связку не обошёл никто» верна только для английской панели — и это нарушение нормы, которую фаза записала 20.08 (эффект одной пары не называть свойством). ### 16.10 ⛔ ИНЦИДЕНТ: ОБОРВАННАЯ КЛЕТКА ПРОДАКШЕНА В КИТАЙСКОЙ ПАНЕЛИ Глава `41599f30df`, арм `Z0`: `finish=length`, 5759 знаков против медианы панели 6888, оборвана кульминация. Читатель поставил последним — законно. **Причина в коде:** `contour.base_a0` читает `content` БЕЗ проверки `finish`, тогда как соседний `base_draft` гейт годности имеет на ОБЕИХ ветках. Щель ровно в одну функцию. **Масштаб:** из 22 клеток боевой связки оборвана ОДНА; у `ZF` такая же клетка уже была в карантине и в панель не прошла. **Чувствительность** (`--drop=41599f30`): `Z0` 3.29 → 2.86, то есть из третьего места в первое. Качественный вердикт устоял, порядок середины перевернулся от ОДНОЙ главы — третье независимое подтверждение, что этот порядок и есть шум. **Лечение — гейт сборки, а не правка данных:** `--verify-read` роняет панель, если текст арма короче 0.85 медианы. Проверен на больном входе. ⛔ **Правку самого `base_a0` сессия НЕ делает: он питает ВСЕ прошлые замеры фазы. Вопрос владельцу.** ### 16.11 АУДИТ ПРОГОНА ПО ВОПРОСУ ВЛАДЕЛЬЦА «прошло без инцидентов?» Отчёт Д27. Коротко: **инцидентов два (16.10 и `Z7`≡`ZP`), ошибок в выводах читателей — ноль.** * разбор порядка однозначен: в каждом из 27 ответов ровно ОДНА цепочка полной длины; * все 12 английских заявлений «совпадают дословно» верны побайтно; * три китайских «ложных» заявления оказались **ложной тревогой моей проверки** — читатели писали «ПРАКТИЧЕСКИ дословно» и называли расхождение; матчер цеплялся за корень и за соседнее предложение о другой паре. Вскрыто чтением строк. Класс известен (тревога 20.08 про «метки»); * 4 содержательных утверждения проверены побайтно — подтвердились все. **Качество в понятных единицах** — доля глав, где читатель назвал текст машинным/подстрочником: ``` ZD 0.41 · Z8 0.33 · ZP 0.11 · Z7 0.11 · Z1 0.07 · Z0 0.04 · ZF 0.04 · Z8R 0.04 · RN 0.00 ``` ⇒ каждая пятая глава голого черновика читается машиной, после второго прохода — каждая 25-я. **Сквозной дефект-регистр продукта (назван независимо на обеих парах):** пол персонажа плывёт внутри главы · куски исходного языка в русской прозе (`cultivation`, `priory`, `Oui`, иероглифы) · сбитая атрибуция реплик · родство и ранги · теряется речевой портрет (заикание, брань) · идиомы и девизы переворачиваются. **Это и есть настоящий бэклог, а не выбор архитектуры.** ### 16.12 ЦЕНА РАЗМЫШЛЕНИЯ У `glm-5`, ЗАМЕРЕННАЯ ПОПУТНО Конфаунд Д25.1 обернулся самостоятельным замером: ``` glm-5, размышление ВЫКЛ (наш дефолт) $0.0029/клетка 0 токенов glm-5, размышление ВКЛ $0.0553/клетка 16 339 токенов deepseek-v4-pro (для шкалы) $0.0278/клетка 6 139 токенов ``` ⇒ **размышление у glm-5 стоит ×19 и по объёму в 2.7 раза больше, чем у dspro на том же входе.** ⚠ Докупка `RGT` упёрлась не в наш потолок, а в БАЛАНС вендора (`429/1113 Insufficient balance`). Отказных клеток 5, денег на них сожжено $0.0000. Владелец пополнил, докупка продолжена. ### 16.13 ⭐⭐ ПЕРЕНОСИМОСТЬ ОТСУЖЕНА. Конфаунд, пойманный до судейства, перевернул бы вывод 13 глав, 6 армов, якорь — тот же промт на `deepseek-v4-pro` (как назначено пре-регом Д25). Полный разбор — отчёт Д28. ``` RGT (glm-5 С думанием) 2.54 разрыв с якорем −0.08 при пороге 1.86 — ПЕРЕНОСИМ RN (deepseek-v4-pro) 2.62 якорь ZF/Z0 (боевая связка) 2.85 / 3.08 RK (grok-4.3) 4.77 +2.15 при пороге 1.95 — НЕ переносим (знаковый p=0.09, на грани) RG (glm-5 БЕЗ думания) 5.15 +2.54 при пороге 1.20 — НЕ переносим (оба прибора) пол Z0/ZF +0.23 при пороге 1.43 — ЗЕЛЁНЫЙ ``` **Если бы эрратa Д25.1 не была найдена, вывод был бы ЛОЖНЫМ РОВНО НАОБОРОТ:** в панели стоял бы один `glm-5` — тот, которому наш ростер гасит размышление, — и мы записали бы «промт не переносится на glm-5». **Норма: конфигурация модели — часть арма, а не фон; вендор-дефолт, переопределённый ростером, называть в пре-реге наравне с моделью.** **⭐ Кросс-вендорное подтверждение механизма трейса.** Трейс дал предсказание «выключи размышление — качество упадёт различимо». Проверено на ДРУГОМ вендоре вслепую: тот же `glm-5`, тот же промт, те же главы — с думанием 2.54, без думания 5.15, разрыв **+2.61 места внутри одной модели**. **Для денег:** дешёвого вендора не нашлось. Оба дешёвых различимо хуже, равный по качеству вдвое дороже якоря. **Платим не за вендора, а за размышление.** `dspro` остаётся оптимумом цена/качество; `glm-5` с думанием — валидный ЗАПАСНОЙ жилец (вендор-независимость при квотах и цензуре) за ×2. ⚠ Гард кассы отказал на 15-й клетке `RGT`: потрачено $2.3166 + ожидание $0.1063 > потолок $2.40. Панель собрана на 13 главах вместо 15. Недостающая сумма $0.11 названа владельцу; **потолок сессией НЕ поднимался.**