textmachine/eval/dovodka/PLAN-22-08.md

41 KiB
Raw Permalink Blame History

ПЛАН 22.08 — ДОВЕСТИ ЭКСПЕРИМЕНТ ДО АРХИТЕКТУРНОГО ВЕРДИКТА

⚠⚠ ЭТОТ ФАЙЛ — ПРОМТ ДЛЯ СЕССИИ ПОСЛЕ КОМПАКТА. Он написан так, чтобы читающий его с нуля мог продолжить работу, не восстанавливая контекст из разговора. Читать ЦЕЛИКОМ, не грепом. Заведён по слову владельца 22.08: «составим план… это как промт. Я этот промт скормлю тебе же после компакта (ты потеряешь кучу контекста, и придётся восстанавливать его)».

Прежде чем что-либо делать — прочитай §0 и §1. Там записано, кто ты и во что не наступать.


0. КТО ЧИТАЕТ ЭТОТ ФАЙЛ

Ты — полигон-сессия TextMachine. Зона записи: eval/ и docs/experiments/. Чужие зоны (backend/, frontend/, platform/) — только чтение. Коммитишь ТОЛЬКО пре-рег-фризы, формой git commit -m "…" -- <явные пути>; git add -A и git commit -a запрещены.

Разговор с владельцем — по-русски, код и комментарии — по-английски. Владелец с бэкграундом C++/userver; Go-решения объясняются по существу, не ссылкой на «так принято».

Онбординг, если контекст пуст: CLAUDE.md → этот файл → eval/dovodka/KONSILIUM-22-08.md (итог консилиума двух экспертов, на нём стоит весь этот план) → eval/dovodka/REVIEW-21-08.md (51 дефект глобального ревью) → отчёт docs/experiments/23-editor-tier.md, секции Д24Д30 (⚠ файл огромный, читать выборочно по секциям).


1. ЗАЧЕМ ВСЁ ЭТО: три вопроса владельца

Вопрос 0 (метавопрос, главный): живой художественный русский перевод с консистентными терминами по ВСЕЙ книге (1000+ глав). Победить translationese; удержать имена, термины и голоса на протяжении книги.

Вопрос 1: оптимальная архитектура пайплайна. Вопрос 2: связка моделей для неё — без привязки к одному вендору. Дословно владелец: «архитектура от вендора не зависит никак… даже на худших вендорах наша архитектура должна отрабатывать лучше, чем худшие вендоры на другой архитектуре».

ГЛАВНОЕ, ЧТО НАДО ПОНЯТЬ ПРО СОСТОЯНИЕ ЗНАНИЯ: на вопрос 0 не отвечает ни один наш прибор. Все панели мерят художественность ОДНОЙ главы; консистентность тысячи — ортогональная ось, и она не мерилась ни разу. Это вывод консилиума, с ним согласны оба эксперта.


2. ЕДИНИЦА ИЗМЕРЕНИЯ — «ГЛАВА ГУ». Решение владельца 22.08

«Глава» у нас не единица: китайская и английская отличаются вдвое. Эталон — глава «Мастера Гу»:

1 глава Гу = 3 326 ЗНАКОВ исходника с пунктуацией (из них иероглифов ~2 690)
              медиана; источник — ~/books/gu-zhenren/guzhenren-utf8.txt, сплит по заголовкам глав
              ⚠ пере-счёт скептика другим сплитом дал 2 301 главу и квартили 3 2933 490;
                медиана сходится в пределах 1.5%, но СПЛИТ НАЗВАТЬ при следующем использовании
наша китайская единица = 2 156 знаков (иероглифов ~1 797) = 0.65 главы Гу
                          пере-счёт яблоки-к-яблокам: 0.670.68 — расхождение ≤5%, не влияет
наша английская  единица = 1 642 знака = 0.49 — ⛔ СМЕШЕНИЕ АЛФАВИТОВ, см. ниже

ОТКРЫТОЕ РЕШЕНИЕ ВЛАДЕЛЬЦА, БЕЗ КОТОРОГО СТАНДАРТ ДВУСМЫСЛЕН. Коэффициент 0.49 получен делением английских знаков на китайские — это разные алфавиты. По объёму СМЫСЛА английская единица ближе к 1/5 главы Гу, и тогда «стандарт 15 глав Гу» на английском = 5075 единиц, а не 30. Какая конверсия правит стандартом — знаковая или смысловая — решает владелец. До решения английская панель «стандартного размера» рискует молча оказаться вдвое меньше замышленной.

⚠ По объёму СМЫСЛА английская единица ближе к 1/5 главы Гу (1 642 знака ≈ 280 слов). ⚠ Мощность движется числом независимых ЧТЕНИЙ, а не объёмом текста. Главы Гу — ценник владельца, не физика прибора.

Следствие, которое надо помнить: все прошлые панели были 7.47.8 главы Гу, а не «1215 глав». Номинальный объём наших вердиктов был завышен вдвое.

СТАНДАРТ ПАНЕЛИ — 6 ГЛАВ ГУ. Решение владельца 22.08 («15 глав на китайском слишком много… давай опустим до 6 глав мастера Гу, а то оценка фаблом на несколько архитектур, языков и вендоров — это взрыв кардинальности»). В единицах: 9 китайских · 12 английских. Конверсия — ЗНАКОВАЯ (смысловая дала бы 30 английских единиц и противоречила бы самой цели сокращения). ⚠ Английская единица по содержанию беднее китайской: межпарные АБСОЛЮТНЫЕ сравнения этим загрязнены, внутрипарные контрасты — нет.

⚠⚠ И это НЕ экономия, а честное следствие — записать именно так. 6 глав Гу дают разрешение 2.61 места (zh) и 3.39 (en) — ХУЖЕ уже прогнанных панелей (7.8 главы Гу: 2.26 и 2.94). Принято потому, что ранговый прибор безнадёжен при ЛЮБОМ разумном размере: эффект в одно место стоит 4068 глав Гу. Разница между 2.26 и 1.63 — это разница между «не различаем» и «не различаем». ⇒ ранговый эндпойнт объявляется ОПИСАТЕЛЬНЫМ по построению, несущим становится СЧЁТНЫЙ — при 6 главах Гу он работает для частых классов.

Драйвер расхода — число ПАНЕЛЕЙ, а не глав в панели. Сессий израсходовано 98 из 200; запланированные бесплатные шаги съедят ещё ~62. Урезание главы экономит единицы, отказ от лишней панели — десятки. Вторые чтения гнать на подвыборке 6 глав Гу, не на всей панели. ⚠ Стандарт — для ПОКУПАЕМЫХ ранговых панелей. Бесплатные природные эксперименты (Шаги 1 и 4) идут на 7.8 главы Гу — именно поэтому их ранговый эндпойнт заранее объявлен ОПИСАТЕЛЬНЫМ.


3. КАРТА: ГДЕ ЧТО ЛЕЖИТ

eval/dovodka/KONSILIUM-22-08.md   итог консилиума — ОСНОВАНИЕ ЭТОГО ПЛАНА
eval/dovodka/REVIEW-21-08.md      51 дефект глобального ревью (11 блокеров)
eval/dovodka/PLAN-21-08.md        прошлый план: реестр дефектов и что уже починено (§6)
docs/experiments/23-editor-tier.md  отчёт: Д24 en-панель · Д26 zh-панель · Д27 аудит ·
                                    Д28 вендоры · Д29 сводные таблицы · Д30 ЭРРАТА ревью
docs/experiments/00-provider-quirks.md  вендор-ловушки. ЧИТАТЬ ПЕРЕД любой правкой вызовов
eval/dovodka/rol.py               главный инструмент: сборка промтов, покупка, панели, своды
eval/dovodka/zakhod.py            армы Z8/Z8R/Z1/Z7/ZF, отбор единиц, гейт цены
eval/dovodka/contour.py           склейка ZP, критик, фиксер, банк, канон-гейт
eval/dovodka/money_d.py           касса: фазы, потолки, фриз-гейт
eval/dovodka/runs.py              журнал агент-сессий (кап 200)
~/books/dovodka/dv-*.json         клетки моделей (сырьё)
~/books/dovodka/blind-keys-rol/   ключи слепых панелей + READERS-*.json
~/books/chtenie-rol/              пакеты чтения и ответы читателей

Команды, которые понадобятся:

eval/.venv/bin/python eval/dovodka/rol.py --selftest              # гейты починок, ОБЯЗАТЕЛЕН
eval/.venv/bin/python eval/dovodka/rol.py --wire en [--arm=X]     # ЧТО УХОДИТ В МОДЕЛЬ, читать вслух
eval/.venv/bin/python eval/dovodka/rol.py --emit-read <пара> --panel=A,B,C --tag=<тег> --each --n=16
eval/.venv/bin/python eval/dovodka/rol.py --verify-read <пара> --tag=<тег>   # сверка сборки
eval/.venv/bin/python eval/dovodka/rol.py --score-arch <пара> --tag=<тег> [--anchor=RN] [--drop=uid8]
eval/.venv/bin/python eval/dovodka/rol.py --buy <пара> <АРМ> [--n=N]
eval/.venv/bin/python eval/dovodka/money_d.py --report | --selftest
eval/.venv/bin/python eval/dovodka/runs.py --claim <прогон> <проход> <ток…> | --done N | --report

4. ЧТО УЖЕ РЕШЕНО КОНСИЛИУМОМ (не пере-открывать без нового основания)

решение статус
«Второй проход нужен» — СНЯТО как конфаунд. Верно: «каждого слова обязана коснуться дорогая пишущая модель; число проходов — вопрос цены» замерено
Дефолт — одно дорогое письмо с банком-законом; черновая стадия — конфиг профиля пары, причина пишется как «модель × длина входа × потолок вывода» принято ПО ЦЕНЕ при неразличимости схем (не замер); причинность черновика — замерено (В6)
«Какая схема второго прохода» — рычаг не подтверждён при разрешении прибора. НЕ «схемы равны» замерено
Главный механизм качества — детерминированный слой: узкий канон-фиксер + гейты на хвосты + ре-ген красной главы (~$0.03) фиксер замерен; ре-ген принят без замера
Минимакс владельца: по браку несут гейты, по прозе — ростер принято
ЦЕЛЕВАЯ ФОРМА (не факт): «худший жилец — ДОРОЖЕ при том же браке; по прозе деградирует честно и видимо» ГИПОТЕЗА, решает Шаг 1; действительна лишь при идеально работающем слое. До закрытия Шага 1 НЕ основание для решений
Вердикт о вендоре — конъюнкция порога И знакового p<0.05 принято
«Вендор-дефолт» как продуктовая конфигурация ЗАПРЕЩЁН — только явный пин уровня принято
Дефолт письма — deepseek-v4-pro; запасной — glm-5 с размышлением (втрое-вчетверо дороже, полосой) замерено; финальная формулировка — в Д31 после Шага 2
Дешёвая линия (gemini на low, luna) — кандидаты, НЕ прод до цензур-оси, zh-клеток и второго чтения принято
grok в роли письма: high — хуже, но НА ГРАНИ (+1.93 при MDE 1.93, знаковый p≈0.035, одно семейство); low — одним прибором из двух (p=0.0923, по конъюнкции НЕ закрыт) ожидает второго чтения; финальный вердикт — только в Д31 после Шага 2

КРИТЕРИЙ ПРИЁМКИ (в главах Гу). ⚠ Это НОРМАТИВ, а не замер:

  • класс А (пол · термин/имя · кусок исходного языка · полнота сцены · родство/ранги): ≤1 фатала на 100 глав Гу по каждой оси, ПОСЛЕ гейтов и ре-гена = ≤15 на книгу 1500 глав. Счётчиков рода, родства и голосов ЕЩЁ НЕ СУЩЕСТВУЕТ; частота проверяема только гейтами прод-прогонов ≥100 глав Гу, НЕ панелями.
  • класс Б (доля глав, названных читателем машинными): ≤1 на 25 глав Гу. База не грунтована — пере-снимается Шагом 5.1 ДО печати нормы.
  • Редкий класс (ломается в ~10% глав) при 15 главах Гу НЕ РАЗРЕШАЕТСЯ — по редким печатать частоту с интервалом, а не вердикт.

Цена детерминированного слоя, которую нельзя прятать: канон-фиксер несёт замеренный однонаправленный штраф читаемости 0.58 места (6 глав хуже / 0 лучше, p≈0.03).


5. ШАГИ. ПОРЯДОК ВАЖНЕЕ СОДЕРЖАНИЯ

ШАГ 1 — ПАНЕЛЬ-0: «архитектура × слабый жилец». $0. ПЕРВЫМ

Отвечает на минимаксный вопрос владельца. На диске лежит природный эксперимент: арм E6 (glm-5 РЕДАКТОРОМ над боевым черновиком, dv-g-e6-*) и арм RG (тот же glm-5 ОДНОПРОХОДКОЙ, dv-n-rg-*) — одни и те же 16 английских глав, один жилец, у обоих reasoning=0, finish=stop 16/16. Единственный варьируемый фактор — топология.

Предварительный сигнал по клеткам (глава 001e6ac4, окончания глаголов 1 л., жен/муж): D0 черновик 3/1 · E6 редактор 3/2 — пол сохранён · RG однопроходка 0/5 — пол сломан. Обратная сторона (197f98eb): разрядку «Т Е Р П Е Н И Е» потерял сам черновик → потеряли и E6, и RG. ⇒ буфер чинит только то, что черновик донёс.

НЕ ПЕРЕНОСИТЬ ЭТОТ ПРЕДВАРИТЕЛЬНЫЙ СИГНАЛ В ПАКЕТЫ ЧИТАТЕЛЕЙ. Пакет не имеет права называть ни вердикт другого прибора, ни существование контроля (§6).

Пре-рег (записать в отчёт ДО сборки пакетов): 0. БЛОКЕР СБОРКИ: rol.py НЕ ЗНАЕТ арм E6 — единственное его вхождение там комментарий, клетки dv-g-e6-* читают contour.py/en_axis.py, и схема клеток другая (нет полей pair и podacha, role=editor3). Команда --emit-read --panel=RG,E6,… в текущем коде НЕ соберётся. Сперва правка сборки: зарегистрировать источник dv-g-e6-*, учесть иную схему, уронить селфтест на заведомо больном входе. Зона твоя, править можно. Старые теги не пере-эмитировать. ⚠ Промт E6 для «wire-аналога» (п.5) берётся из рига фазы ФД-G, не из rol.py.

  1. Состав панели: RG · E6 · Z0 · ZF. 16 английских глав пересечения, uid-список зафиксирован ДО чтения. Тег новый; существующие теги не пере-эмитировать.
  2. В шапке пре-рега напечатать: оба арма — glm-5, reasoning=0 на 16/16, finish=stop 16/16.
  3. ПЕРВИЧНЫЙ ЭНДПОЙНТ — ДЕФЕКТ-КЛАССЫ, НЕ МЕСТА. Грепы объявить и снять ДО сборки пакетов: пол рассказчика (окончания глаголов 1 л.) · авторские приёмы (разрядки) · куски исходного языка · термины банка. Тест — парный знаковый по главам. 3а. Эталон грепов фиксируется ДО снятия, иначе их можно подогнать под увиденное: для КАЖДОЙ главы таблицей — применим ли класс и какое значение верно по исходнику (пол рассказчика и т.п.). Грепы валидируются на D0/E0 с известным полом и печатают строки-совпадения, не только счёт. 3б. Правило решения первичного эндпойнта: первичная величина — число глав с ≥1 фаталом из списка (агрегат), парный знаковый тест p<0.05. По-классовые разбивки — вторичные.
  4. Вторичный эндпойнт — ранги (RGE6). При 7.8 главы Гу MDE≈2 места ⇒ заранее объявляется ОПИСАТЕЛЬНЫМ.
  5. Сверки до чтения: исходник побайтно тот же (у E6 нет поля podacha — риг другой фазы); потолки вывода напечатать; промт E6 распечатать --wire-аналогом и прочесть вслух.
  6. --verify-read EXIT=0; ключ до ответов; раскладка своя на каждую главу.

Критерий готовности шага: свод напечатан, дефект-классы посчитаны, вердикт сформулирован как «интеракция архитектура × жилец на ИСПЫТАННЫХ жильцах» — не «минимакс» (худший редактор не искался; связка двухвендорна).

ШАГ 2 — ВТОРОЕ ЧТЕНИЕ vendor2. $0. БЛОКИРУЕТ ВЕРДИКТ ПО ВЕНДОРАМ

БЛОКЕР, ЕСЛИ СДЕЛАТЬ НАИВНО: путь файла ответа ВПЕЧАТАН В САМ ПАКЕТ. Значит «ответы в другой каталог» невозможно без правки пакета, а правка пакета померяет разницу промтов, а не разброс прибора. И читатель-2 получил бы путь к ответу читателя-1 — перезаписал бы его либо увидел, и согласие читателей оказалось бы сфабриковано молча.

Правильная процедура: ДО запуска перенести ответы первого чтения в r1/ (счёт файлов до и после — ни один не потерян). Пакеты не трогать вовсе; читатели пишут по прежнему впечатанному пути. После прогона собрать новые ответы в r2/. Ключи НЕ пере-эмитировать. Новые сессии. Промт чтения — тот же байт в байт.

Метрики, объявленные ДО: (i) корреляция порядков читатель-1/читатель-2 по главе; (ii) пере-счёт всех контрастов на втором чтении, счёт перевёрнутых вердиктов, отдельно маржевые RK/RE; (iii) доля дисперсии разностей читателей в дисперсии парной разности — это и есть «сколько в пороге прибора»; (iv) держится ли p у RKT.

⚠ Одно семейство меряет ШУМ, не ВКУС. Вкус закрывают только якорные главы владельца.

Вердикт Д31 по вендорам НЕ ПЕЧАТАТЬ до метрики (ii).

ШАГ 3 — ВТОРОЕ ЧТЕНИЕ arch2. $0

То же самое на архитектурной панели. Без него ни одно «неразличимо» не имеет паспорта разрешения.

ШАГ 4 — ДУЭЛЬ «промт против без промта». $0

16 клеток dv-n-re-*.БЕЗ-ПРОМТА.json (gemini перевёл их вообще без инструкции — вендор молча выбросил второе системное сообщение) уже оплачены и лежат в карантине.

Стандартный загрузчик их НЕ ПРОЧТЁТ: суффикса .БЕЗ-ПРОМТА в rol.py нет нигде. Завести псевдо-арм под нейтральным именем (например RQ) со своим загрузчиком карантинного суффикса. ⚠ Строк «БЕЗ-ПРОМТА» не должно быть ни в пакете, ни в ключе. Гейт правильности файлов: у карантинных prompt_tokens ≈515 против ≈2951 у нормальных. --verify-read прогнать на новом теге.

Панель: RE · RQ (карантин) · Z0 · ZF, 16 глав. «Родство пары не прятать» относится к СВОДУ: пакет о родстве молчит, как и обо всём прочем. Решает систематический знак, а не величина разрыва. Сверить у карантинных клеток finish=stop и prompt_tokens ≈ 515 против ≈ 2951 у нормальных.

⇒ Даёт вес ВСЕГО промта в единицах прибора. Если даже полный промт не даёт устойчивого знака — у прибора нет разрешения для промт-инженерных выводов, и это печатается рядом с каждым «не хуже».

ШАГ 5 — ДВЕ БЕСПЛАТНЫЕ ПЕРЕ-СНЯТИЯ БАЗЫ

  1. База класса Б не грунтована. «6% машинных глав» надо пере-снять из 40 уже лежащих ответов читателей, объявив формулировку вопроса. До этого норму класса Б не печатать.
  2. Счётчики отладить на купленных срезах (род по морфологии · удержание канона по позиции · голоса · девизы). Покупать 15 глав Гу с несуществующими счётчиками — купить сырьё без прибора (класс В20 ревью: оплаченные клетки, которых не прочёл ни один прибор).

ШАГ 6 — ПОЧИНКА ПРОВЕНАНСА РИГА. $0. ДО ЛЮБЫХ ПОКУПОК

  • Клетки обязаны хранить call_kwargs и reasoning_text — сейчас прямого доказательства того, что ушло по проводу, на диске нет, только косвенность по токенам.
  • Свод обязан печатать паспорт разрешения под каждым вердиктом:
ПАСПОРТ: прибор=ранговый · слепое чтение fable-5 · 1 чтение/глава · семейств 1
n=15 ед (7.4 глав Гу) · k=10 армов · sd контраста 4.2 · MDE 3.07 места
пол |Z0ZF|=2.80 (случайное 4.0; НИЖНЯЯ граница: общий черновик, читатель опознаёт родство)
правило: |Δ|>MDE И знаковый p<0.05 · клетки: [теги]
слеп к: эффектам <MDE · кросс-главной консистентности · расхождению вкуса прибора с владельцем

ШАГ 7 — КРОСС-ГЛАВНЫЙ ПРИБОР. ~$2. ЕДИНСТВЕННЫЙ ЗАМЕР ПОД ВОПРОС 0

15 глав Гу ПОСЛЕДОВАТЕЛЬНО одной книги одним профилем + счётчики из Шага 5. Единица анализа — персонаж×глава и термин×глава, не глава.

САМОЕ ОПАСНОЕ МЕСТО ВСЕГО ПЛАНА. Если гнать полигон-ригом БЕЗ живого банка и терминолога, замер консистентности померяет пайплайн без носителя консистентности — и ответ на вопрос 0 будет ложно-отрицательным ПО ПОСТРОЕНИЮ. И ВТОРАЯ ПОЛОВИНА ТОЙ ЖЕ МИНЫ, ПРОВЕРЕНА 22.08: в банке НЕТ ПОЛЕЙ ПОЛА. В bank-en.json имена персонажей есть, а полей пола/рода/характер-листов нет вовсе. Значит английские прогоны, на которых владелец увидел плывущий пол, шли с банком, которому НЕЧЕГО было сказать про пол, а движковое поле Gender (store/glossary.go:27) на этих данных никогда не работало. ⇒ Решение «банк чинит пол» не имеет НИ ОДНОГО замера, даже косвенного. Хорошая новость: «пол плывёт у всех» его и не опровергает — механизма просто не существовало. Перед прогоном засеять в банк характер-листы (пол минимум для именованных персонажей), иначе прибор консистентности снова померяет пайплайн без носителя, и по оси пола это будет тот же ложно-отрицательный ПО ПОСТРОЕНИЮ.

В пре-реге назвать до покупки: книга 蛊真人 · 15 её родных глав ПОДРЯД, диапазон указать числами · профиль — боевой, С ЖИВЫМ БАНКОМ и засеянными характер-листами, движковым путём · исполнитель. Если движковый прогон вне зоны полигона — пинг оркестратору ДО покупки. Счётчики бегут по экспорту.

Слои: дрейф рода по персонажам · удержание банка по позиции в книге · маркеры речевого портрета · повторяемые формулы и девизы.

Оба тезиса этого шага имеют ПРЯМУЮ ЦИТАТУ ВЛАДЕЛЬЦА (его ответы chtenie-vladeltsa-z17, вскрыты 22.08): дрейф пола «Рейн» между отрывками он нашёл САМ у всех четырёх армов и пометил «что счётчик не увидит»; генерационную лотерею тоже сформулировал сам — «сравнивать нужно по нескольким прогонам на метод». Это не наша выдумка, это его наблюдение.

⚠ Честно записать: один прогон одного профиля — это n=1 по пайплайну. Он ОТКРЫВАЕТ классы дефектов, но НЕ сравнивает схемы. Тот же прибор — готовая in-loop телеметрия боевого прогона. Покупается один раз.

ШАГ 8 — ОСТАЛЬНЫЕ ПОКУПКИ, по убыванию

что цена что закрывает
пере-покупка английской базы ZP ~$0.4 несущий контраст Д23 стоит на арме с ЧУЖИМ (китайским) мандатом. Либо чиним, либо ЯВНО пишем «контраст условный». Молча уронить нельзя
З-2: критик → точечная правка над однопроходкой ~$0.35 ядро V6 владельца; мерился только фиксер над ДЕШЁВЫМ черновиком, перенос запрещён. ПЕРЕД ПОКУПКОЙ — $0-долг К-3 (PLAN-21-08.md:81): фильтр замечаний критика выбрасывает 20.7% строк на китайском против 0.6% на английском (×34), и «выброшенное — действительно согласия» НЕ ПРОВЕРЕНО. У фильтра уже была история: прошлая редакция съела 10 настоящих находок. Если он ест находки — вердикт по ядру V6 сместится к «критик бесполезен» ещё ДО покупки
З-1: RN + канон-фиксер ~$0.10 лучший промт с детерминированной страховкой, не пробован
цензур-ось всей дешёвой линии ~$0.20.6 без неё «gemini за $9 на книгу» продуктово пусто. Порог отказов объявить ДО пробы; wire-лог отделяет отказ от таймаута
KE: grok-редактор на low над ЗАМОРОЖЕННЫМ D0 ~$0.15 только если Шаг 1 покажет буфер. RK пере-читается в той же панели (гард от регрессии к среднему)
якорные главы владельцу $0 (его время) СВЕРЯЮТСЯ ОБЕ ОСИ РАЗДЕЛЬНО, не только итоговый порядок. Основание — вскрытые 22.08 ответы владельца ~/books/chtenie-vladeltsa-z17/: читаемость совпала с прибором точь-в-точь (Т3>Т2>Т1>Т4, «в книгу Ту обоих), а ось ВЕРНОСТИ разошлась радикально — владелец ставит смелый текст по верности ПЕРВЫМ, прибор ПОСЛЕДНИМ («больше всех вольностей»). Наши панели ранжируют по правилу смысл→брак→художественность, то есть ось расхождения стоит ПЕРВОЙ. Риск: прибор системно топит смелое письмо там, где владелец бы не топил
дозная калибровка $00.1 карта «дефекты ↔ места». Порченым клеткам свой префикс и помета «в своды не брать»

6. ГАРДРЕЙЛЫ И ЛОВУШКИ — читать перед каждым шагом

Деньги. СОСТОЯНИЕ НА 22.08: пакетный резерв $1.26 (17.04 из 18.30), в ФД-N свободно $0.29. Шаг 7 ($2) и Шаг 8 целиком ($1.11.65) в резерв НЕ ВЛЕЗАЮТ — нужна НОВАЯ фаза и слово владельца ДО начала. Это штатный вопрос, а не авария: сессия после компакта иначе упрётся в гард на первой же покупке и не поймёт, почему. Потолки фаз поднимать решением сессии ЗАПРЕЩЕНО: называть сумму и ждать слова владельца. Пакетный потолок не трогать вовсе. Срабатывание гарда = СТОП и вопрос. Фриз-гейт отказывает покупке из незакоммиченного файла и из stdin — это правильно, фризить ПЕРЕД покупкой.

Панели. Пере-эмиссия с другим составом армов переписывает раскладку уже прочитанной панели — ответы становятся мусором молча. Новый состав = новый тег, всегда. Резать панель, ось или кандидата решением сессии ЗАПРЕЩЕНО.

Читатели. Идентичность в файл ДО запуска · runs.py --claim ДО запуска · аудит транскриптов ПОСЛЕ (⚠ инструмента --audit-read НЕ СУЩЕСТВУЕТ — либо руками по образцу Д24: вызовов/путей/глав на читателя, либо построить его Шагом 6) · пакет не имеет права называть ни вердикт другого прибора, ни существование контроля · один читатель на главу (главы большие).

Провод. Аномалия (флейк, 404 живой модели, новый finish_reason, игнор параметра) → сперва официальная дока вендора, потом диагноз. Не гадать. DeepSeek: НИКОГДА не отключать thinking. Слаг ≠ модель: веса меняются молча.

Класс дефекта, который поймал нас пять раз за два дня — «реализация не то, чем названа»: промт нёс мандат чужой пары · размышление молча гасилось нашим кодом · вендор молча терял второе системное сообщение · опубликованные числа не совпадали с сырьём · два арма панели оказались одним текстом. Ни один гейт этого не поймал — ловит только чтение того, что реально уходит в модель.--wire перед каждой покупкой, и прочесть вслух в отчёте.

Нулевые выводы — единственные, которым дефекты этого класса ПОМОГАЮТ: любой такой дефект раздувает разброс и производит «неразличимость». Прежде чем печатать «схемы неразличимы», спроси себя, не куплена ли эта неразличимость дефектом.

EXIT=0 и «СБОРКА ГОДНА» — НЕ СЕРТИФИКАТ. --verify-read печатает побайтно совпадающие армы, но сборку НЕ роняет; --score-arch возвращает 0 всегда. Дубли и контроли свода читать ГЛАЗАМИ — именно так панель из 11 армов однажды показывала читателю 10 текстов.

Мандат самопроверки (решение владельца 12.07). Каждый шаг закрывается ревью ИСПОЛНЕНИЕМ: своего кода · сформированных запросов к моделям · полученных результатов. Полигон регулярно ошибается, и это искажает эксперименты.

Тесты и гейты под зелень не подгонять. Несогласие с тестом — вопрос владельцу, не правка.


7. ЧЕМ ЗАКРЫВАЕТСЯ РАБОТА

Эксперимент считается доведённым до архитектурного вердикта, когда:

  1. Шаг 1 закрыт — известно, буферизует ли топология слабого жильца, и вердикт назван в терминах интеракции на испытанных жильцах.
  2. Шаги 23 закрытыу каждого «неразличимо» есть паспорт разрешения, и известно, сколько в пороге от прибора, а сколько от текста.
  3. Шаг 4 закрыт — известен вес всего промта в единицах прибора.
  4. Шаг 7 закрыту вопроса 0 впервые появился прибор.
  5. Долг по английской базе ZP либо закрыт покупкой, либо явно объявлен условным.
  6. Отчёт получил секцию Д31 с вердиктом по вендорам (по конъюнкции!) и паспортом.
  7. Долг В21 — сверка кассы ДВУМЯ путями — закрыт либо ЯВНО перенесён (несведённого $10.44, потолки Д17.5 врут в 6×). В прошлом плане он был, в этот не переехал — после компакта о нём не вспомнит никто.
  8. Пинг в docs/PROGRESS.md, секция «Полигон» — там уже висит пинг №19 о движковом дефекте (Gemini теряет глоссарий на эскалации), ответа нет.

8. ЧЕГО НЕ ДЕЛАТЬ

  • Не покупать новые главы ради различения схем середины. Цена: эффект 1.0 места ≈ 40 глав Гу (zh) / 68 (en); эффект 0.5 места ≈ 160 / 271. Там решают цена и хвосты, а не чтение.
  • Не печатать «схемы равны» — только «рычаг не подтверждён при разрешении прибора».
  • Не называть английские армы продакшеном — английского пар-пакета в backend/prompts/ нет вовсе, он живёт только в полигоне.
  • Не чинить contour.base_a0 гашением текста — проверено исполнением: единица выпадает из отбора, и chosen() молча подставляет другую. Гейт годности стоит на СБОРКЕ панели.
  • Не лезть в backend/ — пинговать оркестратора.