textmachine/eval/dovodka/SESSION2-LOG.md

1676 lines
174 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Журнал полигон-сессии №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.114.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.23.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.52.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 ×612. 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` + декой + пол + маржевый.
~23 сессии. Результат ОПИСАТЕЛЬНЫЙ (ось разведочная, n=9).
3. Закрыть сессии `runs.py --done <n>` (#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.24.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с): редактор думает 6090 с на
клетку. Команда ИДЕМПОТЕНТНА (пропускает готовые), просто перезапускать.
* **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 <n>`, дописать секцию Д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.23.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`, строки 97103): пять стадий — дешёвый map-reduce
майнинг банка и нарезка по сценам с JSON-выдачей · решение по банку хорошей моделью с
обоснованием · перевод хорошей моделью БЕЗ подсовывания дешёвого черновика · литературный критик,
который ЖАЛУЕТСЯ и классифицирует, но не чинит, с майнингом замечаний в свой банк · точечный
редактор, инжектящий фиксы. Ниже — что из нашего сырья про это уже известно.
### 14.1 Что V6 чинит по существу
Разложение по осям (Д14.11) показало: точечные контуры проигрывают ПРОЗОЙ, а не смыслом
(`A3/A0` верность 0.26 при языке 1.61). Причина механическая — фиксер трогает 0.23.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** |
⚠ Разброс между архитектурами (1540%) МЕНЬШЕ разброса между временем суток (ровно вдвое).
Планировать прогон на офф-пик выгоднее, чем выбирать архитектуру. ⇒ **выбор архитектуры — не про
деньги**, решать надо по качеству и по связности на дистанции в тысячи глав.
### 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.050.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 + диск, видеокарты нет.** Из-за этого:
* выравнивание — **не горячий путь**: делается один раз на книгу и лежит на диске;
* объём работы режется тремя рычагами: эмбеддить не предложения, а СМЫСЛОВЫЕ ХОДЫ (4378 на кусок
против сотен предложений) · сперва ЯКОРЯ (термины банка, числа, реплики, имена) прибивают
опорные точки, эмбеддинги нужны лишь на промежутках · модель меньше + 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` (V0V6), отчёт секции Д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.121.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) и позиционной проверки не проходит. Медиана скрыла разброс.
**Что от объяснения уцелело — не выравненность, а ЗЕРНИСТОСТЬ.** На китайском обе стороны нарезаны
кусками по 2430 знаков и идут примерно в одном порядке, поэтому критик работает локально даже при
сдвиге на пару позиций. На английском одна строка против восьми абзацев — локальной опоры нет
вовсе. Разрыв размышления ×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.141.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 токен и пишет 94100% текста в уме — то есть покупает качество той же
дорогой монетой. Дешёвый `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 9397% на 6 клетках,
en 8894% на 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` на 12 → обоим 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 названа владельцу; **потолок сессией
НЕ поднимался.**