> ⚠ **ЗАКРЫТ И ВЫПОЛНЕН.** Это ПРОШЛЫЙ курс (16.08); он привёл к заходу Д17 и > исчерпан им. Живой курс — `PLAN-17-08.md`, состояние на сегодня — `HANDOFF-21-08.md`. > Читать целиком НЕ надо: здесь только исторические основания решений захода Д17. # ПРОМТ-ПЛАН полигон-сессии: фаза Д, продолжение после сессии №2 (16.08) > Пишется САМОМУ СЕБЕ на случай сжатия контекста и передачи. Читать ЦЕЛИКОМ, не грепом: > прошлая передача потеряла целый пункт заказа именно из-за чтения грепом. > Предыдущие слои: заказ `docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md` (207 строк, читать целиком) · > хендофф №1 `docs/POLYGON_PHASE_D_HANDOFF.md` · рабочий журнал `eval/dovodka/SESSION2-LOG.md` (рядом). > Отчёт фазы — `docs/experiments/23-editor-tier.md`, секции Д0–Д16 (~2500 строк). --- ## 0. ГЛАВНОЕ В ОДНОМ АБЗАЦЕ Дуга экспериментов 19→23 честно ответила на вопрос «какая модель лучше в роли редактора» и устойчиво его закрыла. Но она мерила **счёт локальных ошибок**, а продуктовая цель владельца — **живая русская проза без translationese**, и под неё прибора нет. 16.08 слепое чтение показало, что на английской оси порядок по счёту ошибок и порядок по читаемости **не связаны вовсе** (Спирмен −0.10), причём наш прибор штрафовал ровно то, что покупает читаемость — вольность обращения с буквой. Владелец постановил: **штрафовать можно только за перевирание смысла, за вольность — нельзя**. Это меняет шкалу, и старые судейские числа с новыми сравнивать будет нельзя. ⇒ Следующий шаг — не новые модели, а **починка прибора**, затем маленький честный заход. ### 0.1 Словарь — расшифровать до чтения дальше * **Боевая связка** (то, что стоит в продакшене): дешёвая модель `deepseek-v4-flash` переводит главу начерно → дорогая `deepseek-v4-pro` получает исходник ПЛЮС черновик и **переписывает всё заново**. Два вызова. В таблицах обозначена `A0` (китайская ось), `E0` (английская), `J0` (японская). * **Однопроходка**: ОДИН вызов дорогой модели, которой дают исходник и **объединённую инструкцию** — переводчика плюс редактора. Ни черновика, ни второго прохода. Обозначена `A2` / `E2` / `J2`. * **Точечный контур**: черновик + нечто, что находит места ошибок (детерминированные флаги ЛИБО LLM-критик) + фиксер, правящий ТОЛЬКО указанные места. Обозначен `A1`/`A1B` (флаги) и `A3` (критик). Трогает единицы процентов текста, остальное остаётся черновиком — в этом его слабость. * **Канон-фиксер ПОСЛЕ**: боевая связка плюс отдельный проход, восстанавливающий термины банка (`A4` / `E4`). Единственный арм, чинящий канон, не двигая судейскую ось; цена аддитивна. * **Гипотезы владельца:** H-1 «проблема в черновике» (хороший черновик + точечный редактор не хуже связки) · H-2а «флаги → фиксер не хуже переписа» · H-2б «смысловой критик → фиксер ЛУЧШЕ переписа» (главная ставка) · H-3 «на английском перепис не нужен» · H-4 «перевес dspro — свойство китайской пары». * **Пол (шумовой)**: пара из двух генераций ОДНОГО лечения. Разница их оценок = шум прибора, из неё строится порог различимости. Половины обязаны судиться РАЗНЫМИ сессиями. * **Декой**: намеренно испорченный вариант в пачке. Грубый — ловит «судья вообще смотрит?». Маржевый — тонкая порча размером с искомый эффект, ловит «судья способен увидеть разницу такого размера?». Без второго вывод «не различимо» неотличим от слепоты прибора. --- ## 1. РЕШЕНИЯ ВЛАДЕЛЬЦА — дословно и с последствиями | дата | что сказал | что это значит механически | |---|---|---| | 15.08 | «Подтверждаю подъём расходов, сколько тебе нужно» | потолок записан числом **$6.85** в `money_d.py`; на 16.08 потрачено ~$6.09 | | 15.08 | про кап агент-сессий: «почему оставшиеся? ты можешь наспамить под 90» | кап 80 снят его словом; `runs.py` продолжает считать СУДЕЙСКИЕ сессии (на 16.08 — 72) | | 15.08 | «Можно пересудить [tier]. Но не подгонять. Нужно понять, кто ошибается из судей» | исполнено, см. §3.2 | | 15.08 | «gpt 5.6 sol это и есть модель» | **Sol = семейство OpenAI** ⇒ его возражение по `tier` дисквалифицировано (судил свою семью) | | 15.08 | про японскую ногу: «Бери, ладно» | куплено и отсужено, см. §3.3 | | 15.08 | про ja-книгу: «не помню; замена была потому что флагнули по 18+; кажется, я аппрувнул выкачивание» | дословной санкции на ЗАМЕНУ нет; `R37` реестра честно красный; в отчёте писать этой формулировкой, НЕ «по слову владельца» | | 16.08 | «Штрафовать за вольность нельзя — живой язык один из приоритетов бэкенда. Штрафовать можно только за перевирания смысла исходника. В остальном можно менять, убирать англоязычность, переставлять текст» | **МЕНЯЕТ РУБРИКУ СУДЬИ.** См. §4.1 — это первый пункт плана | | 16.08 | «Новые траты я разрешаю, перепровести эксп я разрешаю» | санкция на заход §4.3 | | 16.08 | про цены DeepSeek: «мы с оркестратором проводим пересчёт его цен и внесём в документацию, после я тебе скажу (или ты мне напомни)» | **НАПОМИНАТЬ.** См. §5.1 — это блокер денежных выводов | --- ## 2. ЧТО УЖЕ ПОСТРОЕНО И РАБОТАЕТ (не переделывать) Всё в зоне `eval/dovodka/`, все селфтесты зелёные, линтер чист. | файл | что делает | команды | |---|---|---| | `gain.py` | **калибровка усиления судьи** — ловит пачку, легшую на пол шкалы | `--density` (гейт: нулей ≥25% → пачка не несёт «не различимо») · `--samearm` · `--agree` · `--floor` · `--tier` · `--selftest` | | `naklon.py` | **гейт позиционного наклона** (норма требовала, кода не было) | без флагов — все 7 проходов; `--pass=d4`; `--selftest` (синтетика с известным ответом) | | `tier2.py` | пере-судейство прохода `tier` починенным заданием | `--emit` · `--score` · `--selftest` | | `ja6.py` | японская нога H-4: панель `J0`/`J6`/`D0` + контроли; ⚠ `read()` чинён 16.08 — считает и разведённые `p{1,2}-answers` своего семейства, и ПЛОСКИЙ `answers/` внешнего пакета | `--emit` · `--score` · `--sol` (пакет внешнему судье) · `--score-sol` · `--selftest` | | `chtenie.py` | **прибор ткани**: слепое чтение человеком | `--emit` · `--score` | | `adjud.py` | адъюдикация находок; **контроли починены** (4 дефекта) | `--emit` · `--controls` (гейт неразличимости классов) · `--score` · `--selftest` | | `itog_d4.py` | свод оси; чинён: считает ОБА семейства, печатает **полную цену единицы** | `--axis=d4\|d3\|d6\|d1` `--fam=claude\|sol` `--gates` | | `sud.py` | судейский риг; селфтест **перестал быть прибит к китайской панели** | `--axis=<ось> --selftest` | | `money_d.py` | касса, потолок $6.85, фазы ФД-A…ФД-H | `--report` · `--selftest` | | `runs.py` | журнал судейских сессий, запись ДО запуска | `--claim <прогон> <проход> <ток>…` · `--done ` · `--status` | | `conformance.py` (в `eval/`) | сверка с буквой заказа; **починен парсер** | `eval/conformance.py eval/dovodka/requirements.md --plan` | **Три коммита-фриза сессии №2** (полигон коммитит только пре-рег-фризы, основание вслух ПЕРЕД каждым): `a03ac66` (пре-рег `tier2` + `gain.py`) · `8c68828` (покупающий код ja-ноги) · `22a8a6b` (покупающий код пола ja-ноги + журнал). Остальное дерево НЕ коммичено — лендит оркестратор. --- ## 3. ЧТО УСТАНОВЛЕНО — с числами, которые нельзя потерять ### 3.1 Прибор: строгость счёта есть свойство ПРОГОНА, а не оси Тот же арм `R0`, те же 16 единиц, то же семейство судей, подписи текста совпадают **16/16**: проход `tier` дал **0.69** ошибки на единицу при 9 нулях из 16, проход `border` — **4.31** при нуле нулей; по-единично ниже в 15 из 16. Размах внутри семейства claude 1.41…6.47. ⇒ **межпроходные сравнения абсолютных чисел недействительны.** Под это попадает вывод «дешёвая модель на японском проваливается сильнее других пар» (5.44 против 2.78 — разные прогоны) и все заимствованные пороги. Внутри одной пачки сравнения законны — там сдвиг сокращается в контрасте. Доля нулей по проходам claude: `tier` 38% (24% без обоснования) · Д3 en 10% · Д6 3% · `border` 0 · **Д4 zh 2 нуля на 713 клеток** · Д1 0. По сессиям выбиваются ровно две (`d3r2/p1/д-52` 24%, `d3r2/p2/д-55` 21%). ⇒ выводы Д4/Д1/`border` этой болезнью НЕ заражены. ### 3.2 Проход `tier` пере-сужен — вывод пака 23 восстановлен Пре-рег зафризен `a03ac66` ДО первого ответа. Те же тексты, новый ключ со своей солью, старый не тронут. Правки: убран `CTRLfloorA` (был побайтно равен боевому арму `T1` в 16/16), добавлен маржевый декой, запрещён молчаливый ноль, в рубрику внесены пропускавшиеся классы. Результат на 16 единицах, 126 клеток, замечаний годности 0: ``` арм старый новый сдвиг гейты R0 боевой 0.69 3.44 +2.75 плотность 3.77, нулей 6% (было 38%) — ГОДНО T1 glm-5.2 1.00 3.56 +2.56 пол 16 пар sd 2.63 → порог 1.84 T2 gpt-5.6-terra 0.25 2.38 +2.12 грубый декой 16/16 T3 grok-4.5 0.62 2.94 +2.31 МАРЖЕВЫЙ ДЕКОЙ +2.50 против 1.84 — ПРОЙДЕН F голый черновик 2.56 6.56 +4.00 ``` Вердикт: `T1` −0.12 · `T2` **+1.06** · `T3` +0.50 — все ниже порога 1.84; контроль `R0 vs F` −3.12 p=0.0042. ⇒ **«сильный тир не отличим от боевого редактора» ВОССТАНОВЛЕН и впервые стоит на приборе с доказанной чувствительностью.** Возражение Sol (+8.69) не воспроизводится (+1.06) и вдобавок дисквалифицировано: `gpt-5.6-terra` — семейство самого Sol. ⚠ Пере-судейство сделано ОДНИМ семейством: второе на этом контрасте дисквалифицировано. ### 3.3 Японская нога H-4 — куплена, отсужена, гейты зелёные `J6` = `glm-5` поверх той же японской базы, 9 клеток, $0.046329, все `finish=stop`. Плюс свой пол (7 из 9 вторых генераций редактора; один вызов завис на 9+ минут — класс известен). ``` J0 deepseek-v4-pro 1.44 J6 vs J0 −0.44 p=0.6875 ниже порога 2.17 JFLO вторая генерация 1.86 J0 vs D0 +2.78 p=0.0039 редактор бьёт черновик J6 glm-5 1.89 грубый декой +2.89 ПРОЙДЕН · маржевый +2.80 ПРОЙДЕН D0 черновик 4.22 ``` **Разница между ДВУМЯ редакторами (0.44) не больше разницы между двумя прогонами ОДНОГО редактора (0.42).** Это самый чистый способ сказать «не различимо». **Второе семейство прогнано владельцем 16.08 (`ja6.py --score-sol`) и СВОИ КОНТРОЛИ НЕ ВЗЯЛО:** плотность 5.06 (нулей 6%) · пол 7 пар sd 2.64 → порог 2.80 · **грубый декой +2.22 против 2.80 — НЕ ПРОЙДЕН · маржевый +1.80 — НЕ ПРОЙДЕН**. Декой пойман ПО НАПРАВЛЕНИЮ, но собственный шум Sol так широк, что даже намеренная грубая порча в его порог не укладывается ⇒ **на японской оси у Sol нет разрешения**, его пачка по норме аннулируется. Направление при этом совпало: `J6/J0` −1.00 (мои −0.44), `J0/D0` +4.00 (мои +2.78). Вывод по H-4 не меняется, но опирается на ОДНО семейство. Третий раз за фазу пол Sol оказывается вдвое шире — свойство его харнесса, а не оси. ⇒ **H-4 не подтверждается на всех трёх парах**: `deepseek-v4-pro` первый на zh, на en (1.31 против 2.72) и на ja (1.44 против 1.89). Порядок редакторов от языка не зависит. Требование заказа (:115) исполнено ВПЕРВЫЕ. ### 3.4 Разложение контрастов ПО ОСЯМ — за всю дугу не делалось ни разу ``` A1B/A0 −3.13 = ВЕРНОСТЬ −0.94 + ЯЗЫК −2.19 A3/A0 −1.87 = ВЕРНОСТЬ −0.26 + ЯЗЫК −1.61 ← ставка владельца A6/A0 −1.06 = ВЕРНОСТЬ +0.12 + ЯЗЫК −1.19 ← носитель H-1 A4/A0 −0.13 E0/D0 +1.25 = ВЕРНОСТЬ +0.94 + ЯЗЫК +0.31 + ТЕРМИН +0.75 + ФОРМА +0.69 J0/J2 +0.11 = ВЕРНОСТЬ 0.00 + ЯЗЫК +0.11 ``` ⇒ дешёвые контуры проигрывают переписи **прозой, а не смыслом**; носитель H-1 по смыслу боевой связке не уступает вовсе; на английском редактор покупает в основном термины, верность и вёрстку — то есть H-3 опровергнута только в слове «ТОЛЬКО»; на японском второй проход по смыслу не покупает ничего. ### 3.5 Экономика — полная цена ЕДИНИЦЫ, а не вызова ``` zh: A2 однопроходка 0.00408 · A0 связка 0.00603 · A1B 0.00793 · A4 0.01419 · A3 0.01546 (2.56×A0) en: E2 однопроходка 0.00471 · E0 связка 0.00885 · E4 0.01321 черновик flash 0.00096 · перепис dspro 0.00507 · gpt-5.6-terra 0.04408 (×9) · grok-4.5 0.05276 ``` ⇒ «кандидат в прод вдвое дешевле» ЛОЖНО — он в 1.5–2.4 раза **дороже**; это платная страховка канона. Ставка H-2б стоит 2.56× боевой связки и по счёту ошибок хуже неё. ### 3.6 ⛔ СЛЕПОЕ ЧТЕНИЕ 16.08 — ПЕРЕВОРАЧИВАЕТ АНГЛИЙСКУЮ ОСЬ Пакет `~/books/chtenie-vladeltsa/` (`ЧТЕНИЕ-zh.md`, `ЧТЕНИЕ-en.md`), **ответы там же**: `ОТВЕТ-zh.md` и `ОТВЕТ-en.md` — это улики, их не терять. Ключ отдельно в `~/books/dovodka/blind-keys-chtenie/chtenie-KEY.json`. Пере-счёт: `chtenie.py --score`. Читал не владелец лично, а **Fable по его поручению**; владелец мнение одобрил и сам отметил, что «нашёл меньше замечаний, перевод читаемый». | ось | порядок судьи (счёт ошибок) | порядок читателя | Спирмен | |---|---|---|---| | **zh** (единица `ed068182cf`) | `A0` > `A4` > `A6` > `A3` > черновик | `A4` > `A0` > `A6` > черновик > **`A3`** | **+0.80** | | **en** (единица `27cb3a7e69`) | `E0` > `E3` > `E2` > черновик > `E6` | **`E2`** > `E6` > `E0` > `E3` > черновик | **−0.10** | * На китайском прокси держится; перестановка `A0`/`A4` внутри шума. Но читатель поставил `A3` (смысловой контур, ставка владельца) **последним, ниже голого черновика**. * На английском связи нет вовсе. **Однопроходка `E2` — первая у читателя, третья у судьи; наша боевая связка `E0` — третья у читателя, первая у судьи.** * ⚠ **Читатель назвал механизм ВСЛЕПУЮ и попал:** «у Т3 локальных отклонений от оригинала больше, чем у Т2, а читать его заметно лучше. Счётчик ошибок должен был поставить Т3 ниже Т2 — если так и вышло, порядок разошёлся не случайно, а системно». Т3 = `E2`, Т2 = `E0`. Так и вышло. ⚠ Одна единица на ось, английская всего 1.9 тыс. знаков, читатель — модель. Это **калибровка, а не замер**: она говорит «прибор и читатель расходятся», а НЕ «однопроходка лучше связки». ### 3.6а Черновая роль: панель мерялась, победила ценой Эксп-22 мерил ШЕСТЬ кандидатов черновой роли: `deepseek-v4-flash` (медиана $0.00096) · `gemini-3.1-flash-lite` ($0.00385) · `deepseek-v4-pro` ($0.00387) · `gpt-5.6-luna` ($0.00357) · `glm-4.7` ($0.00656) · `grok-4.3` ($0.00976). Вердикт — **ничья по качеству, побеждает самый дешёвый** (правило D39.117). То есть «поставить дипсик-про черновиком» УЖЕ проверено и не выиграло. ⇒ Низкое качество черновика — свойство не модели, а РОЛИ (и, возможно, промта — см. `K8` в §4.3). Двухступенчатость бьёт однопроходку на всех трёх парах ПО СЧЁТУ ОШИБОК: zh 4.00 против 6.51 · en 1.31 против 2.38 · ja 2.22 против 2.39. ⚠ Но на английском слепое чтение дало обратный порядок (§3.6), и это расхождение не разрешено. ### 3.7 Что уцелевает независимо от смены шкалы 1. Редактор поверх дешёвого черновика покупает много — три языка, два семейства судей, слепое чтение (черновик внизу везде). 2. Дорогие редакторы не бьют `deepseek-v4-pro` при цене ×9 — на приборе с сертификатом. 3. Выбор редактора от языка не зависит. 4. Банк терминов работает; **банк-дисциплина и качество прозы — разные умения** (gemini: канон 0.986 против 0.884 у боевого при равной судейской оси). 5. Схемы «залатать черновик точечно» проиграли и по счёту, и по чтению. ⚠ Но точечный ремонт **не выброшен ратификацией**: D39.117 п.3 отклонил его как ЗАМЕНУ редактора и принял как «механический ПРЕ-ГЕЙТ ПЕРЕД редактором» и «ремонт ТОЛЬКО с банком». Число «$0.0002 чинит всё» из эксп-20 при этом мерилось при ИДЕАЛЬНОЙ детекции и как несущее — пало; в фазе Д оно всё ещё служило основанием армов и прогнозов. Не переиспользовать без оговорки. 6. Гипотеза эксп-04 «проза gemini — аутлаер» не подтверждается (после снятия запрещённой клетки с `finish=length` точечная оценка ровно 0.000). 7. Потери канона у боевого редактора — в основном пере-формулировка, а не пропажа термина (⚠ но автоматическая КЛАССИФИКАЦИЯ этих мест негодна — секция Д5 отчёта объявлена НЕИСПОЛНЕННОЙ, см. §5.3). --- ## 4. ПЛАН. Порядок здесь важнее содержания ### 4.1 ШАГ ПЕРВЫЙ — ПОЧИНИТЬ СУДЬЮ ПОД ПРАВИЛО ВЛАДЕЛЬЦА ($0) Правило 16.08: **штрафовать только за перевирание смысла исходника; за вольность — нельзя.** Живой язык — приоритет продукта; переставлять текст, убирать англоязычность, менять структуру разрешено. ⚠ **Рубрика живёт в ЧЕТЫРЁХ местах, править надо все, иначе семейства разъедутся:** `eval/dovodka/judge-prompts/core.md` (ядро обвязки) · `claude.md` и `sol.md` (обвязки семейств) · константы `HEAD` в эмиттерах `sud.py`, `tier2.py`, `ja6.py` (шапка САМОГО задания — именно она достаётся обоим семействам и обеспечивает паритет П-4). После правки прогнать `paritet.py` и `promptdiff.py`. Что сделать в рубрике: * **ВЕРНОСТЬ остаётся и сужается до искажений факта:** инверсия адресата реплики · снятое или добавленное отрицание · подмена числа, разряда, ранга, единицы · выдуманный или потерянный факт · перевёрнутое состояние действия/идиомы. Это и есть «перевирание смысла». * **ЯЗЫК разворачивается:** сейчас он ловит «то, чего носитель не напишет». Оставить ТОЛЬКО это (калька, канцелярит, несуществующее слово, рассогласование) и **явно запретить штрафовать за**: перестановку предложений, слияние/дробление абзацев, замену оборота на более живой русский, синонимическую замену, добавление связок. Прямо написать судье: «вольность ради живой русской фразы — НЕ ошибка; ошибка — только то, что носитель не напишет». * **ФОРМА**: сейчас не входит в несущую сумму. Проверить, не штрафует ли она ИСПОЛНЕНИЕ мандата перевёрстки (такое уже переворачивало знак вывода однажды). * **ТЕРМИН** отдан детерминированному банк-гейту, судью им не грузить. ⚠ **Последствие, которое обязано быть напечатано:** после смены рубрики старые судейские числа с новыми **несравнимы**. Все панели дуги останутся действительными только внутри своей шкалы. ⚠ Пере-судить по новой рубрике придётся хотя бы **боевую связку против однопроходки** на обеих осях — иначе новую шкалу не с чем сверить. ⚠⚠ **ПОРЯДОК ИЗМЕНЁН ПО ЗАМЕЧАНИЮ ВЛАДЕЛЬЦА 16.08.** Первая редакция ставила чтение ПЕРЕД покупкой новых армов. Это половина работы впустую: читать старые армы, зная, что панель меняется, незачем. Правильный порядок — **починить рубрику → докупить новые армы → ОДНО слепое чтение по ПОЛНОЙ панели (старые + новые) → отсудить починенной рубрикой.** Тогда чтение делается один раз и отвечает сразу на оба вопроса: следит ли счётчик за читаемостью И какая архитектура читается лучше. Читай §4.2 и §4.3 в этом порядке: сначала 4.3 (покупка), потом 4.2 (чтение по всему). ### 4.2 ШАГ ТРЕТИЙ — ПРИБОР ТКАНИ НА НОРМАЛЬНОМ n ($0, только агент-сессии) Одна единица на ось ничего не решает. Нужно слепое ранжирование на **8–12 единицах на ось**, двумя-тремя независимыми читателями (агенты РАЗНЫХ семейств: claude, Sol через владельца, Fable). Контроли (они уже описаны в пре-реге П-6, `23-editor-tier.md:1114-1122`): * декой обязан ранжироваться последним; * половины шумового пола — соседями (если читатель разводит две генерации одного лечения далеко, его ранжирование — шум); * порядок вариантов перемешан, метки слепые, ключ вне рабочего каталога. Готовый скелет — `chtenie.py`; нужно расширить с одной единицы на выборку и добавить контроли. **Исход решает всё дальнейшее:** ранги согласуются со счётом ошибок → счёт остаётся дешёвым прокси; расходятся (как сейчас на en) → **до починки прибора новые платные замеры бессмысленны**. ### 4.3 ШАГ ВТОРОЙ — МАЛЕНЬКИЙ ЧЕСТНЫЙ ЗАХОД (санкция владельца 16.08 есть) ⚠ **Смета по НОВОМУ прайсу: ~$2.9 на пике, ~$1.7 на офф-пике** (прежняя оценка «около доллара» считалась по июльскому пину). Покупать офф-пик; перед покупкой пере-пинить `roster.py` (§5.1). Три схемы, обе пары (zh и en), 16 единиц на пару, базы частично куплены: 1. **боевая связка** — контроль (черновик → полный перепис); 2. **однопроходка** — один вызов, объединённый мандат (на en она прочиталась лучшей); 3. **черновик → критик → ПОЛНЫЙ ПЕРЕПИС по его замечаниям** (`K1`) — сильнейшая форма идеи владельца. ⚠ Отличие от проигравшего `A3`: там правщик был ТОЧЕЧНЫМ и трогал проценты текста; здесь перепис полный, а буллеты критика лишь ОБУСЛОВЛИВАЮТ его. Эндпойнты — **оба сразу**: починенный счёт ошибок (§4.1) И ранг читаемости (§4.2). Пре-рег до покупок: мощность, пороги, правило расхождения, статусы осей. ⛔⛔ **ОДНОПРОХОДКА ЛОМАЕТ БАНК ТЕРМИНОВ — блокер, найден владельцем 16.08, проверен исполнением.** `backend/prompts/zh-ru/terminologist.md:22`: «Варианты черновиков (строка `drafts:`) — это свидетельства, а не голосование». Терминолог видит всю книгу сразу и выбирает канонический перевод термина, опираясь на то, КАК ЕГО ПЕРЕДАВАЛИ ЧЕРНОВИКИ по кускам. Без черновика майнингу не из чего собирать свидетельства. ⇒ **Однопроходка не альтернатива связке, а альтернатива только ВТОРОМУ проходу.** Черновик нужен не только ради качества, но и ради банка. Честное сравнение — не «связка против однопроходки», а «черновик + перепис» против «черновик + нечто другое поверх него». ⇒ И это объясняет, почему слепое чтение поставило однопроходку первой, а продуктовым решением это не становится: на ОДНОЙ главе банк не нужен — термины внутри главы согласованы сами собой; на книге в 1500 глав та же схема даст разъезжающиеся имена. ⚠ **ПОПРАВКА ВЛАДЕЛЬЦА 16.08 — это НЕ блокер, а недостающий кусок архитектуры.** Дословно: «однопроходка допустима, как вариант чтоб оттуда после вырезать термины и edit точечным редактором их заменить». Выход однопроходки — тоже перевод, значит он годится терминологу как свидетельство; банк майнится ИЗ НЕГО, а термины приводятся к канону точечным редактором. ⇒ **Кандидат `K7`: однопроходка → майнинг банка из её выхода → канон-фиксер.** Точечный редактор здесь адекватен дефекту: термины локальны, а канон-фиксер УЖЕ замерен и работает (покрытие 0.892→0.937 на zh, 0.927→0.956 на en; судейскую ось не двигает). Цена единицы: zh 0.00408 + 0.00816 = **~0.0122** против 0.00603 у связки (дороже); en 0.00471 + 0.00436 = **~0.0091** против 0.00885 (вровень). ⇒ на английском `K7` стоит столько же, сколько связка, и по слепому чтению однопроходка там читалась ЛУЧШЕ — это самый дешёвый способ проверить, не выиграла ли она случайно. ⇒ Что при этом остаётся правдой: **банк без черновика не собирается**, поэтому однопроходка не может быть просто «связкой минус первый проход» — ей нужен свой источник свидетельств. ⇒ **Кандидат `K8`, самый дешёвый из всех: ОБОГАТИТЬ ПРОМТ ЧЕРНОВИКА.** Вопрос владельца 16.08: «почему такое низкое качество черновика? может, промт черновика от редактора сильно отличается и черновик тут выступает в роли недоведённого до ума инструмента?» — **подтверждено текстом**: `backend/prompts/zh-ru/translator.md` = 22 строки, `editor.md` = 41, и разница не в объёме, а в том, что есть ТОЛЬКО у редактора: весь блок ДИСКУРС-ПЕРЕВЁРСТКИ (четыре шага, как передавать китайский паратаксис русской гипотаксической прозой) + FEWSHOT с ТРЕМЯ разобранными примерами + правило чэнъюй обоими компонентами. У переводчика от всего этого одна строка «избегай канцелярита и калек». ⇒ Замер: тот же черновик тем же `deepseek-v4-flash`, но с промтом, куда перенесены блок перевёрстки и FEWSHOT. Цена — ЦЕНА ЧЕРНОВИКА ($0.00096/единица, входные токены длиннее и кэшируются), то есть ~$0.03 на 16 единиц. **Самый дешёвый кандидат в списке и не проверенный ни разу.** ⚠ Контраргумент, который надо снять замером, а не рассуждением: арм `A2` (однопроходка с УРАВНЕННЫМ мандатом) уже нёс мандатные части промта редактора и всё равно проиграл по счёту ошибок — **но перенесён ли в него FEWSHOT, из эрраты Э-5 не следует**. Сверить ДО замера: если примеров там не было, `K8` не дублирует `A2`, а закрывает его дыру. ⚠ Обязательно в панель — **арм голого черновика на китайской оси**: его там нет, и поэтому вклад самого контура не отделим от разрыва «черновик против переписа». ⚠ Если запускать `K1`: сначала починить `contour.py:611-619` — `critic_places()` берёт ЛЮБУЮ строку, начинающуюся с дефиса, без разбора вердикта, из-за чего фиксеру уходили **подтверждения** критика («верно», «допустимо», «не ошибка») — 311 строк из 1696 = **18.3%**. Ставка владельца была испытана инструментом, который на пятой части работы правил заведомо исправное. ### 4.4 ЧЕГО НЕ ДЕЛАТЬ СЕЙЧАС * Новых панелей моделей — вопрос «какой редактор» закрыт устойчиво. * Роутинга «платить дорого только там, где нужно» — закрыт отрицательно (отборщики-монетки). * Второго последовательного переписа — итеративный дрейф, и обратная связка уже проигрывала. * Дифф-контракта вместо переписа — дороже на thinking-модели и не берёт распределённый дефект. * Любых покупок DeepSeek до пере-снятия прайса (§5.1). --- ## 5. ДОЛГИ И ОТКРЫТОЕ ### 5.1 ⛔ ДЕНЬГИ — ЛЕДЖЕР НЕ ИЗМЕРЯЕТ, А ВЫЧИСЛЯЕТ (блокер) `roster.cost()` ВЫЧИСЛЯЕТ `cost_usd` из зашитого пина; провайдер сумму не возвращает. **СТАТУС НА 16.08: цены пере-сняты владельцем с оркестратором — но ТОЛЬКО в бэкенде.** `backend/configs/models.yaml` несёт новый пик (`prices_checked: 2026-08-15`): flash $0.44/$1.32 cache-hit $0.014 · pro $1.32/$3.96 cache-hit $0.044. ⛔ **`eval/tenant_panel/roster.py:33-35` ПО-ПРЕЖНЕМУ СТАРЫЙ** (pro 0.435/0.003625/0.87, помечен «live 08.08»). Значит СЛЕДУЮЩАЯ покупка полигона снова посчитается по июльскому прайсу: касса покажет неправду, а проекционный гард зарезервирует втрое меньше нужного и пропустит покупку. ⇒ **ПЕРВОЕ ДЕЙСТВИЕ ПЕРЕД ЛЮБОЙ ПОКУПКОЙ — пере-пинить `roster.py`.** Это риг эксп-22 (чужой пак): по норме — отдельный коммит с его заголовком плюс пере-снятие его гейтов (`verify22.py`, `itog22.py`). **ПЕРЕ-СЧЁТ ФАЗЫ ПО НОВОМУ ПРАЙСУ (сделан 16.08, 473 клетки DeepSeek: pro 430, flash 43):** | счёт | сумма | |---|---| | в кассе (июльский пин), часть DeepSeek | **$5.3996** | | та же работа по **пиковому** прайсу | **$15.5050** — ×2.87 | | та же работа по **офф-пику** (50%) | ~$8.95 | | не-DeepSeek клетки (не пере-считывались) | $2.3852 | Деньги УЖЕ списаны по ценам, действовавшим в момент покупки, — там пин был верен, перерасхода нет. Число важно для БУДУЩЕГО, и оно двигает три вещи: 1. смета заходов утраивается (см. §4.3); 2. потолок $6.85 в кассе больше ничего не охраняет, пока `roster.py` не пере-пинен; 3. ⚠ **правило ничьей может пере-решиться.** Оно звучит «при равном качестве берём дешёвого», и по нему `deepseek-v4-pro` побеждал `glm-5` и сильный тир при разрыве ×9. Теперь `pro` подорожал втрое, а `glm-5` (Z.AI) не дорожал — разрыв сжался. На этом правиле стоит вся рекомендация по редакторской роли; пере-считать её ценой ОБЯЗАТЕЛЬНО. Отдельная девиация к объявлению: последняя цифра потолка, приписанная слову владельца в файлах, была $4.50, а расход дошёл до $6.00 ДО санкции 15.08. Цепь подъёмов прошла все самопроверки, потому что **фриз-гейт сверяет ПОКУПАЮЩИЙ файл в стеке, а не кассу** — потолки правятся в рабочем дереве и действуют немедленно. ### 5.2 ⛔ СВЕРКА ВНУТРЕННЕЙ РЕВИЗИИ: 65 находок из 131 в отчёт не попали Источники: `~/books/dovodka/revizia-fazy-D-11-08.json` (82) и `priemka-D4-14-08.json` (49). Требуют пере-проверки исполнением — я их принял со слов сверки, сам не верифицировал: 1. **H-1 МОЖЕТ ПЕРЕХОДИТЬ ПОРОГ.** Вердикт `A6/A0` определяют две пачки прогона, объявленного «валидацией цепочки», судимого 11.08 по НЕ замороженному промту; паритет обвязок для них не проверялся. Без них: пол n=13 sd 1.4058 → порог 1.0917, `A6/A0` −1.0938 → **ПЕРЕШЁЛ**. Отчёт печатает «НЕ УСТАНОВЛЕНА». Вместе с §3.4 (`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` — нет). ⚠ Среди неотражённого — **12 инструментов, признанных негодными ВНУТРИ самой ревизии**, и трое из них гейты числят ЗЕЛЁНЫМИ: `promptdiff.py` (объявленное расхождение матчится по ПРЕФИКСУ строки; отсутствующий файл пар-пакета гейт не роняет) · `canon.py` (снятая ревью классификация всё равно пишется в артефакт — отсюда негодность секции Д5) · `material_ja.py` (фильтр AI-меток объявлен механическим, кода его не существует). Прежде чем опираться на любой из них — вскрыть. **Полный список сохранён человекочитаемым:** `~/books/dovodka/СВЕРКА-РЕВИЗИИ-16-08.md` (35 КБ). Кроме 65 неотражённых находок там **7 прямых противоречий телу отчёта** и **12 инструментов, признанных негодными внутри самой ревизии** — эти два числа в §5.2 выше не раскрыты, читать в файле. ### 5.3 Прочие открытые долги * **Адъюдикация английской оси** — контроли починены и проверены замером, прогона не было. ⚠ `adjud.py` намертво прошит на китайскую ось (ключи `blind-keys-d4`, каталог `sud-d4`, армы `A3`/`A0`) — для английской нужна параметризация. * **Секция Д5 объявлена НЕИСПОЛНЕННОЙ:** поле `why` в `~/books/dovodka/canon-dissect.json` — мусор («этот», «родов», «дочь»), классификация внутренней ревизией снята и всё равно писалась. Честное закрытие — ручная пере-классификация 24 мест ($0). * **`E1` побайтно равен черновику на 5 единицах из 16** — объявлено в Д14.4, но панель не пере-считана без них. * **Реестр требований:** 16 самореферентных улик из 89 (было 19, шесть заменил на артефактные). Провалов два: `R37` (провенанс ja-книги) и `R64` (реестр не закоммичен — лендит оркестратор). * **Селфтесты `sud.py`**: d4 зелёный, d3 4 провала, d6 1, d1 2 — все настоящие, диагнозы в журнале. ⚠ `MIN_FLOOR["d6"]=3` — константа, поставленная под зелень; НЕ править, это вопрос владельцу. * **Пакет Sol по японской ноге** отдан: `~/books/judging/ja6-sol/ORCHESTRATOR.md`. После прогона — `ja6.py --score-sol`. Пять промтов сессий, p1 и p2 разведены (проверено: 0 промтов смешивают). * **Эррата zh-канона**: поправка границы слова живёт в коде, в сохранённый банк не дошла (завышение +0.0039) — правка закрытой оси, ратифицирует оркестратор. --- ## 6. ЛОВУШКИ — на чём споткнёшься 1. **НЕ пере-эмитировать существующие слепые ключи.** Раскладка меток — чистая функция от соли, uid и НАБОРА армов; эмиссия с другим составом переписывает ключ отсуженной оси, и разбор сопоставит ответы с ЧУЖИМИ армами. Новый проход = НОВЫЙ ключ со своей солью (так сделаны `tier2`, `ja6`, `chtenie`). 2. **Пакет внешнему судье — ТРЁХУРОВНЕВЫЙ**, как в фазе Д: `ORCHESTRATOR.md` («по одному агенту на промт») + `prompts/*.md` + задания. Двухдокументная форма эксп-23 НЕ годится: харнесс владельца читает всё одной сессией, и половины шумового пола попадают одному судье. Путь к ключу в пакете **не называть** — «не открывай blind-keys/» значит показать пальцем. 3. **Правила счёта — в САМОМ задании**, не только в обвязке: асимметрия инструкций между семействами купила часть расхождения в 12 раз на проходе `tier` (норма паритета П-4). 4. **Запрет дочерних агентов** вписывать явно — сессия с ними перестаёт быть тем составом, который зарегистрирован до запуска. 5. **Замок кассы снимать ТОЛЬКО у мёртвого процесса** (`ps -eo pid,cmd | grep ...`). Покупка идемпотентна — просто перезапускать. Редактор думает 60–90 с на клетку, зависания до 9+ минут бывают (в паке 22 вызов держал замок 74 минуты); ставить `timeout` ≥900 и не опрашивать часто. 6. **Фриз-гейт кассы**: покупающий код обязан быть ЗАКОММИЧЕН до покупки. Полигон вправе фризить — основание вслух ПЕРЕД коммитом, форма `git commit -- <явные пути>`, никогда `git add -A`. 7. **`--wide-plants` на японской книге НЕ помогает** (проверено: 5 из 9 в обоих случаях). Регексы посадок оказались не только пар-, но и КНИГО-зависимы. 8. **Не считать по половине пачки.** Пороги, снятые на неполном поле, читаются увереннее, чем есть (на этом уже горела ось Д1: порог вырос 1.00 → 1.47, когда пол добрал пары). 9. **Промт черновика и промт редактора радикально асимметричны** (22 строки против 41): у редактора есть весь блок дискурс-перевёрстки и FEWSHOT с тремя разобранными примерами, у переводчика — одна строка «избегай канцелярита». ⚠ Но арм `A2` (однопроходка с УРАВНЕННЫМ мандатом) это учитывал и всё равно проиграл по счёту ошибок — **проверить, перенесён ли в него FEWSHOT**, это самая сильная часть промта и в эррате она не упомянута. --- ## 7. МНЕНИЕ FABLE-5 (архитектурный аудит 16.08) — что взять Полный отчёт был в эфемерном транскрипте; существенное: * Подозрение о самоподгонке харнесса **подтверждается наполовину**: прибор не мерит ткань, а эндпойнт под неё (П-6) принят владельцем 11.08 и не построен. Но ядро вывода («перепис покупает много») не артефакт — держится независимыми контурами и внешней литературой. * **Три механизма смещения В ПОЛЬЗУ большого переписывающего вызова:** боевой промт редактора прошёл три редакции и валидирован тем же классом судейства, а контуры шли первой редакцией с багами в свою сторону; мандат вёрстки исполняет только перепис, а судья за вёрстку штрафует; отрицательные результаты трижды оказывались свойством прибора, а не армов. * **Идея владельца испытана НЕ в сильнейшей форме.** Пустая клетка — «критик-буллеты → ПЕРЕПИСЫВАТЕЛЬ» (`K1`). Вторая пустая — «перепис → критик → точечная починка» (страховка смысла ПОСЛЕ переписа, там точечная форма адекватна дефекту, потому что остаточные ошибки локальны). * Внешние данные: на вебновелльном бенчмарке zh→en **DeepSeek-V3 (5.16) выше GPT-4o (5.09)**; китайские модели систематически бьют западные на китайском исходнике. То есть «фронтир не выигрывает» правдоподобно и снаружи. Но если преимущество фронтира есть, оно в ткани, а её автометрики и LLM-судьи не видят (LitEval: опознают человеческий перевод ≤20%). * **Кандидаты сверх `K1`:** перепис → критик → фиксер · два переписа + слепой селектор (два прогона одного редактора расходятся как два разных — это замерено на `JFLO`) · монолингвальная полировка ткани без исходника · перепис с окном соседних глав. Все дешевле $0.015 на единицу. * **Чего Fable не установил:** валидность счёта ошибок как прокси (П-6 не построен); долю знаков, которую трогает фиксер (спан-счёт даёт 0.2–3.7%, difflib — 8.5% медиана и до 81%); перенос выводов на другие книги и пары. --- ## 8. КОМАНДЫ ``` eval/.venv/bin/python eval/dovodka/gain.py --density --agree --floor --tier eval/.venv/bin/python eval/dovodka/naklon.py # все проходы; --selftest eval/.venv/bin/python eval/dovodka/tier2.py --score eval/.venv/bin/python eval/dovodka/ja6.py --score # и --score-sol после прогона Sol eval/.venv/bin/python eval/dovodka/chtenie.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 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 ``` Шум `SyntaxWarning` фильтровать. Интерпретатор — `eval/.venv/bin/python` из корня репо. --- ## 9. ЧЕМ ЗАКРЫВАЕТСЯ РАБОТА (иначе непонятно, что считать сделанным) 1. **Секция в отчёте** `docs/experiments/23-editor-tier.md` на каждый шаг плана. Нумерация уже занята по Д16 включительно — следующая свободная Д17. 2. **Пре-рег ДО покупок и ДО первого судейского ответа**, зафризенный коммитом с основанием вслух. Пре-рег обязан нести: состав панели · правило решения · пороги · мощность (MDE против ЦЕЛИ) · статус оси (несущая/описательная) · что замер НЕ может. 3. **Гейты зелёные ИЛИ красные с диагнозом.** Константы под зелень не подгонять — это норма проекта, нарушение = аннулирование куска. 4. **Пинг в `docs/PROGRESS.md` секция «Полигон»** (фронт и платформа туда не пишут, полигон пишет). 5. **Обновлённый `eval/dovodka/SESSION2-LOG.md` (рядом)** или его преемник — по ходу, не в конце. 6. **CONFIRM/DENY владельцу — только с артефактом-носителем.** Полигон не ратифицирует. 7. Дерево НЕ коммитить, кроме пре-рег-фризов; лендит оркестратор. --- ## 10. КАК РАЗГОВАРИВАТЬ С ВЛАДЕЛЬЦЕМ * Он просил **меньше аббревиатур** и продуктовых формулировок: не «H-2б» и «A3», а «схема критик-плюс-точечная-правка». Термины расшифровывать при первом употреблении. * Он **не всегда читает длинные тексты** — важное выносить в первые строки. * Он ловит дефекты процесса лучше гейтов: за сессию №2 нашёл структуру пакета Sol (я ошибся), устаревший прайс (леджер оказался не измерителем) и слепоту прибора к вольности. **Его реплики проверять исполнением, а не отмахиваться.** * Обязательство с адресатом вне зоны закрывается ТОЛЬКО изменением файла вне зоны. «Выпущено», «ждёт владельца», «объявлено в отчёте» — маркеры дефекта. * Полигон не ратифицирует выводы. CONFIRM/DENY — владельцу через оркестратора, с носителем.