115 lines
19 KiB
Markdown
115 lines
19 KiB
Markdown
# Реестр требований фазы Д — сверка с буквой заказа
|
||
|
||
Источник: `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 | grep -q .` |
|
||
| 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` |
|