textmachine/eval/dovodka/requirements.md

19 KiB
Raw Blame History

Реестр требований фазы Д — сверка с буквой заказа

Источник: docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md, прочитан ПОСТРОЧНО, включая придаточные. Так заведено потому, что все шесть пропусков эксп-22 стояли не в нумерованных блоках, а в придаточных предложениях, и «критик полноты», писанный той же головой, их не увидел.

Этот файл обязан быть закоммичен ДО покупок. eval/conformance.py --final отказывается сверять незакоммиченный реестр: гейт против таблицы, которую можно дописать под результат, ничего не доказывает — так эксп-23 получил зелёную сверку против реестра из scratchpad.

Проверка:

eval/.venv/bin/python eval/conformance.py eval/dovodka/requirements.md --plan     # по ходу
eval/.venv/bin/python eval/conformance.py eval/dovodka/requirements.md --final    # перед сдачей

Колонка «улика»: $ команда — обязана вернуть код 0; путь — артефакт обязан существовать и быть непустым; — улики ещё нет (в режиме --plan законно, в --final = провал).

⚠ Улика вида «греп собственного отчёта» доказывает, что НАПЕЧАТАНО, а не что СДЕЛАНО. Гейт такие улики считает отдельно и печатает их долю; здесь они помечены в тексте требования словом «печать».

ID требование (цитата или сжатие промта) улика
РАМКА
R1 Отчёт фазы — секции Д0Д8 в 23-editor-tier.md, продолжение того же документа $ grep -q "^## Д3 — en→ru" docs/experiments/23-editor-tier.md && grep -q "^## Д6 —" docs/experiments/23-editor-tier.md && grep -q "^## Д9 —" docs/experiments/23-editor-tier.md
R2 Сводная таблица «пробел → чем закрыт → носитель-артефакт» обязательна $ grep -q "ПРОБЕЛ → ЧЕМ ЗАКРЫТ → НОСИТЕЛЬ" docs/experiments/23-editor-tier.md && test -s ~/books/dovodka/canon-dissect.json && test -s ~/books/dovodka/d1-attempts.jsonl
R3 Пакетный потолок фазы сверен СЛОВОМ владельца при запуске $ grep -q "PACK_CEILING" eval/dovodka/money_d.py && grep -q "САНКЦИЮ" eval/dovodka/money_d.py
R4 Фазовые потолки разложены в пре-реге Д0 $ grep -q "ФД-A" eval/dovodka/money_d.py && grep -q "ФД-G" eval/dovodka/money_d.py
R5 Касса: фриз-гейт, атомарный замок, два пути счёта, проекционные гарды $ eval/.venv/bin/python eval/dovodka/money_d.py --selftest
R6 Стоп-правило: не влезает → СТОП и пинг ДО покупок $ eval/.venv/bin/python eval/dovodka/plan.py
R7 Кап агент-сессий 80; запись ДО запуска суб-агента; селфтест до первой сессии $ eval/.venv/bin/python eval/dovodka/runs.py --selftest
R8 Гипотезы H-1, H-2а, H-2б, H-3, H-4 внесены в пре-рег ДОСЛОВНО $ grep -q "H-2б" docs/experiments/23-editor-tier.md && grep -q "H-4" docs/experiments/23-editor-tier.md && grep -q "H-3" docs/experiments/23-editor-tier.md
Д1 — gemini
R9 Полная редакторская панель: 16 клеток поверх якорной базы эксп-22 $ set -- $HOME/books/dovodka/dv-e-r1-[0-9a-f]*.json; test $# -ge 12
R10 Ретрай-харнесс: экспоненциальный бэкофф на 5xx, окно ≥24 ч, поштучно, лимит цены на клетку $ grep -q "BACKOFF = (30, 120, 480, 1800)" eval/dovodka/d1_gemini.py
R11 Журнал КАЖДОЙ попытки (время · код ответа · стоимость) файлом в сырьё $ test -s ~/books/dovodka/d1-attempts.jsonl && grep -q "\"ts\"" ~/books/dovodka/d1-attempts.jsonl
R12 Вердикт «модель не отдаёт» — только с журналом за ≥24 ч + снимком вендор-статуса $ grep -q "ТОЛЬКО с журналом" eval/dovodka/d1_gemini.py
R13 Собрано ≥12/16 → судейство абс-ригом со всеми контролями $ set -- $HOME/books/judging/sud-d1/p1-answers/*.txt; test $# -ge 12
R14 Потолок клетки считается по total_tokens (скрытая тарификация ×4.5) $ grep -q "additive_total" eval/tenant_panel/roster.py
Д2 — внешняя подпись tier
R15 Задания aj-tier-tasks отданы внешнему судье вне Claude руками владельца $ test -s /home/ubuntu/books/editor-tier/sol-tier/ИНСТРУКЦИЯ.md
R16 Закрытие = НЕПУСТОЙ каталог ответов + пере-счёт скриптом класса solscore $ ls /home/ubuntu/books/editor-tier/sol-tier/*.txt
Д3 — en→ru несущая ось
R17 Провенанс каждого en-промпта объявлен в отчёте (печать) $ grep -q "Д3.0 Провенанс пар-промтов" docs/experiments/23-editor-tier.md
R18 Механический гейт консистентности en-промптов с zh: дифф по шаблону, не глазами $ eval/.venv/bin/python eval/dovodka/promptdiff.py en-ru
R19 Выверка пар-промптов против БОЕВОГО рендера $ eval/.venv/bin/python eval/dovodka/paritet.py
R20 Фриз пар-промптов ДО покупок `$ git log --oneline -- eval/role_topology/prompts/en-ru
R21 en-банк: майнинг + терминолог по методике эксп-22, signed:false $ grep -q "\"signed\": false" ~/books/role-topology/bank-en.json
R22 Банк-закон D39.104 на ВСЕХ армах — прошлое отступление (72 клетки) не повторять $ grep -q "law_block" eval/dovodka/contour.py && grep -q "law_block" eval/dovodka/en_axis.py
R23 Материал: Кристофф, добор до 16 единиц методикой эксп-21/22, fr-страты сохранены $ test $(eval/.venv/bin/python -c "import json;print(len(json.load(open(\"$HOME/books/role-topology/manifest-en.json\"))[\"sets\"][\"8\"]))" 2>/dev/null) -eq 16
R24 Проба контаминации гоняется ЖИЛЬЦАМИ, а не удобной дешёвой моделью $ ls ~/books/dovodka/dv-b-contam-deepseek-v4-pro-*.json >/dev/null 2>&1
R25 Материал непригоден по пробе → СТОП и пинг; замену без слова владельца не искать $ grep -q "СТОП и пинг" eval/dovodka/contam_d.py
R26 Армы: боевая связка · dspro-однопроходка УРАВНЕННОГО мандата (строка 153) · черновик + ОБА edit-контура · контроль редактора E0/D0 $ grep -q "a2_mandate" eval/dovodka/contour.py
R27 Судейство по нормам рига, Холм по объявленному семейству $ eval/.venv/bin/python eval/dovodka/sud.py --axis=d4 --selftest
Д4 — edit-контур zh
R28 Якорные единицы эксп-22 переиспользуются, $0 за старые армы $ set -- $HOME/books/dovodka/dv-a-a1b-*.json; test $# -ge 30
R29 Армы A0A4 обязательны; A3 (смысловой критик → фиксер) — ставка владельца, обязателен; A5 — опция при остатке $ set -- $HOME/books/dovodka/dv-a-a3-[0-9a-f]*.json; test $# -ge 30
R30 Позиция контура: A1/A3 «ВМЕСТО редактора», A4 «ПОСЛЕ»; «до редактора» не мерится $ grep -q "canonfix" eval/dovodka/contour.py
R31 Канон-гейт — детерминированная сверка покрытия банка после КАЖДОГО арма $ grep -q "def canon_gaps" eval/dovodka/contour.py
R32 Ответ по каждому арму печатается ТРЕМЯ осями: судья · канон-покрытие · цена $ grep -q "ТРИ ОСИ ПО КАЖДОМУ АРМУ" eval/dovodka/itog_d4.py
R33 Несущий вердикт фазы на zh — внешняя подпись судьёй вне Claude $ set -- $HOME/books/editor-tier/sol-tier/*.txt; test $# -eq 16
Д5 — канон-вскрытие
R34 КАЖДОЕ место потери покрытия у R0 классифицировано (исчез / парафраз / другой перевод), таблица по терминам и местам $ eval/.venv/bin/python eval/dovodka/canon.py
R35 Результат вскрытия — регрессионный набор для канон-фиксера /home/ubuntu/books/dovodka/canon-dissect.json
Д6 — ja→ru разведка
R36 Материал isekai_majutsushi_jp, проба контаминации жильцами $ eval/.venv/bin/python eval/dovodka/material_ja.py; test $? -le 1
R37 Непригоден → СТОП и пинг; замену без слова владельца не искать $ eval/.venv/bin/python eval/dovodka/material_ja.py | grep -q "СТОП|OK "
R38 ja-промпты — те же гейты провенанса и консистентности, что Д3 $ eval/.venv/bin/python eval/dovodka/promptdiff.py ja-ru
R39 810 единиц: связка · dspro-однопроходка · контроль редактора $ set -- $HOME/books/dovodka/dv-c-j0-*.json; test $# -ge 9
R40 Печатается сравнение ОТНОСИТЕЛЬНОГО порядка жильцов между парами zh/en/ja $ set -- $HOME/books/dovodka/dv-h-j6-*.json; test $# -ge 9 && eval/.venv/bin/python eval/dovodka/ja6.py --score
R41 Статус оси РАЗВЕДКА объявлен В ПРЕ-РЕГЕ, а не постфактум $ grep -q "FORCED_DESCRIPTIVE" eval/dovodka/power.py
Д7 — самооценка
R42 Жильцам обеих ролей по трём книгам (zh/en/ja) вопрос о самооценке; ответы персистятся $ set -- $HOME/books/dovodka/dv-d-self-*.json; test $# -eq 6
R43 Сверка самооценки с фактическими результатами пар; решений на ней не стоит $ grep -q "САМООЦЕНКА МОДЕЛЕЙ НЕНАДЁЖНА" eval/dovodka/d7_self.py
Д8 — поправки тел по приёмке №16
R44 §15 эксп-22 переписан: 5 из 6 клеток — эхо, пойманное гейтом; гейт длины сужен до finish=length $ grep -q "ИНТЕРПРЕТАЦИЯ ПЕРЕПИСАНА ФАЗОЙ Д" docs/experiments/22-tenant-panel.md
R45 §13а эксп-22: банк-закон на оси en НЕ исполнен $ grep -q "на zh исполнено, на en НЕТ" docs/experiments/22-tenant-panel.md
R46 Sol-статусы §10/§11/§14 эксп-22 приведены к §16; оборванная фраза дописана $ grep -q "АРБИТРАЖ НЕ СОСТОЯЛСЯ; ПАКЕТ (б)" docs/experiments/22-tenant-panel.md
R47 Счёт агент-сессий эксп-23 = 58, не 50 (§6, §14 п.9) + пинг в PROGRESS $ grep -q "Агент-запусков: 58" docs/experiments/23-editor-tier.md
R48 Противоречие §9/§13 эксп-23 против §12в о внешнем контуре снято $ grep -q "Внешний контур есть у .border. и НЕТ у .tier." docs/experiments/23-editor-tier.md
R49 Наклон border пере-снят (+0.708) и сторожится гейтом $ eval/.venv/bin/python eval/editor_tier/verify23.py
R50 Таблица §0 эксп-23: строка R2 помечена как число АННУЛИРОВАННОГО run2 $ grep -q "run2, ТОЖЕ АННУЛИРОВАН" docs/experiments/23-editor-tier.md
R51 Пере-штамповка aj-border* объявлена (копии replication-runA, mtime 23:31:54) $ grep -q "ПРОВЕНАНС КАТАЛОГОВ СУДЕЙСТВА .border. УТРАЧЕН" docs/experiments/23-editor-tier.md
R52 Голоса replication-runB несли judge-имена прогона A: ingest починен, объявлено $ eval/.venv/bin/python eval/editor_tier/judge.py --run replication-runB border --score
R53 Нумерация: два «п.7» в §8 эксп-23 и порядок §9 эксп-22 исправлены, ссылки поправлены $ grep -q "три ссылки в §13а и §14" docs/experiments/22-tenant-panel.md
R54 eval/README.md: editor_tier/ добавлен в карту действующих харнессов $ grep -q "editor_tier/. . ..exp-23" eval/README.md
R55 Статус-баннеры на отчётах экспов, где их нет $ test $(grep -l "баннер фазы Д" docs/experiments/*.md | wc -l) -ge 7
R56 Шапка эндпоинтов 00-provider-quirks.md актуализирована живым листингом $ grep -q "ЖИВОЙ ЛИСТИНГ ./models. ПЕРЕ-СНЯТ 2026-08-10" docs/experiments/00-provider-quirks.md
НОРМЫ РИГА
R57 Декой в каждой судейской пачке; сессия без пойманного декоя аннулируется целиком $ eval/.venv/bin/python eval/dovodka/ja6.py --score | grep -q "ГРУБЫЙ ДЕКОЙ.*ПРОЙДЕН"
R58 Шумовой пол — парой, чьи половины судят РАЗНЫЕ сессии (порог был занижен на 19%) $ grep -q "ПОБАЙТНО РАВНЫЕ ПОЛОВИНЫ" eval/dovodka/sud.py
R59 Все армы единицы — в одном пакете одной сессии $ grep -q "ARMS=arms" eval/dovodka/sud.py
R60 Идентичность судей персистится ДО запуска; половиной пола не брать боевую клетку $ eval/.venv/bin/python eval/dovodka/runs.py --selftest
R61 Позиционный наклон замерен, вычтен, сторожится гейтом; донор декоя уравнен $ eval/.venv/bin/python eval/dovodka/naklon.py
R62 Судье запрещено сравнивать варианты между собой И читать их рядом $ grep -q "Не сравнивай варианты между собой" eval/dovodka/judge-prompts/core.md
R63 Замок кассы снимает только поставивший его процесс (проверка живости PID) $ eval/.venv/bin/python eval/dovodka/runs.py --selftest
R64 Реестр требований фазы — В GIT до покупок; conformance валиден только против закоммиченного $ eval/.venv/bin/python -c "import sys;sys.path.insert(0,'eval');import conformance as c;ok,why=c.frozen(c.Path('eval/dovodka/requirements.md'));print(why);sys.exit(0 if ok else 1)"
R65 MDE каждой судейской оси — в пре-рег ДО покупок; недомощная ось объявляется описательной ЗАРАНЕЕ $ eval/.venv/bin/python eval/dovodka/power.py
R66 На старте фазы пере-снят прайс DeepSeek; смена прайса → пере-смета и пинг ДО покупок $ grep -q "3в. ВАХТА D39.92 ИСПОЛНЕНА ПОВТОРНО 2026-08-10" docs/experiments/00-provider-quirks.md
АНТИ-ЛЕНЬ
R67 Не собралось с первой попытки → ДОБИВАТЬСЯ; отказ принимается только с журналом попыток $ grep -q "BACKOFF" eval/dovodka/d1_gemini.py && grep -q "log_attempt" eval/dovodka/d1_gemini.py
R68 Панель, ось или кандидата НЕ резать решением сессии — СТОП и пинг владельцу $ grep -q "СТОП и вопрос владельцу" eval/dovodka/contour.py
R69 Обязательство с адресатом вне зоны закрывается ТОЛЬКО изменением файла вне зоны $ ls /home/ubuntu/books/editor-tier/sol-tier/*.txt
R70 Детекторы и пороги после взгляда на вердикты не менять; девиация = СТОП и пинг В МОМЕНТ $ grep -q "ПОРОГИ НЕ ТРОНУТЫ" eval/dovodka/contam_d.py
R71 Правка рига чужого пака — отдельным коммитом + пере-снятие его гейтов $ eval/.venv/bin/python eval/tenant_panel/verify22.py
R72 Приёмка адверсариальная author≠reviewer; опровергатель ДРУГОГО модельного семейства ОБЯЗАТЕЛЕН $ grep -q "Fable-5" docs/experiments/23-editor-tier.md
R73 Финал — построчный аудит закрытия заказа $ eval/.venv/bin/python eval/dovodka/gain.py --selftest && eval/.venv/bin/python eval/dovodka/naklon.py --selftest && eval/.venv/bin/python eval/dovodka/adjud.py --controls
ОТЧЁТ И СДАЧА
R74 Сверка H-1…H-4 с фактом отдельной таблицей, ВКЛЮЧАЯ опровержения $ grep -q "Гипотезы владельца — сверка с фактом" docs/experiments/23-editor-tier.md
R75 CONFIRM/DENY владельцу — только с артефактом-носителем $ grep -q "носитель-артефакт" docs/experiments/23-editor-tier.md
R76 Деньги: итог по фазам ДВУМЯ путями счёта $ eval/.venv/bin/python eval/dovodka/money_d.py --selftest
R77 Пинг в docs/PROGRESS.md секция «Полигон» при закрытии $ grep -q "15.08 · ФАЗА Д" docs/PROGRESS.md