19 KiB
Реестр требований фазы Д — сверка с буквой заказа
Источник: 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 | Армы A0–A4 обязательны; 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 | 8–10 единиц: связка · 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 |