225 lines
20 KiB
Markdown
225 lines
20 KiB
Markdown
# ХЕНДОФФ: полигон, фаза Д эксп-22/23 — состояние на 15.08
|
||
|
||
> ⚠⚠ **СНИМОК НА 15.08, ПЕРЕКРЫТЫЙ ЗОНОЙ. Живое состояние фазы Д — НЕ здесь** (баннер дописан
|
||
> оркестратором №18 22.08 при актуализации доков; тело ниже не переписано).
|
||
>
|
||
> Зона с тех пор ведёт свою цепь носителей в `eval/dovodka/` — планы 16.08 → 17.08 → 21.08 → 22.08,
|
||
> ревью и консилиум; какой из них ЖИВОЙ, зона называет сама. Прежде чем читать этот файл как
|
||
> инструкцию, спроси у владельца, что сейчас живой носитель курса.
|
||
>
|
||
> **Чем именно этот снимок опровергнут деревом** (сверено аудитом доков 22.08): (1) п. 3 отправляет
|
||
> в `docs/PROGRESS.md` секцию «Полигон» за записями 15.08 — они срезаны в
|
||
> `archive/PROGRESS-2026-08-10-15.md`; (2) список «что осталось» разошёлся с деревом минимум по трём
|
||
> пунктам — часть работ зона с тех пор сделала; (3) денежная рамка снимка отстала от фактической цепи
|
||
> потолков, которая живёт в `eval/dovodka/money_d.py` (`PACK_CEILING`/`CEILINGS`), а не в тексте.
|
||
>
|
||
> Что в файле по-прежнему полезно: устройство приборов, грабли отладки и незакрытое требование Д5.
|
||
> Приёмка фазы — у ПАРАЛЛЕЛЬНОГО оркестратора.
|
||
|
||
Передача следующей сессии. Что снято, что осталось, на чём споткнёшься, чего не принимать за
|
||
твёрдое. Развёрнутая версия с историями отладки — в git-истории коммитов фазы.
|
||
|
||
---
|
||
|
||
## 1. Старт
|
||
|
||
1. `CLAUDE.md` → `docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md` — **заказ, 207 строк, читать
|
||
ЦЕЛИКОМ**. Прошлая сессия читала грепом и потеряла целый пункт заказа (внешнюю подпись Sol).
|
||
2. Отчёт `docs/experiments/23-editor-tier.md`: Д0 пре-рег · Д4 zh · Д3 en · Д6 ja · Д1 gemini ·
|
||
Д7 · Д9 сводка · Д10 наклон · Д11 исправления финального аудита · Д12–Д13 два семейства.
|
||
3. `docs/PROGRESS.md` секция «Полигон», записи 15.08.
|
||
4. Гейт заказа: `eval/.venv/bin/python eval/conformance.py eval/dovodka/requirements.md` —
|
||
**красный** (12 без улики, 3 провала). Это правда, а не сломанный гейт.
|
||
5. `git log --oneline --since="14.08" -- eval/` — 23 коммита, обоснования в сообщениях.
|
||
Перечитывание их 15.08 нашло живой баг (см. §5 п.6).
|
||
|
||
---
|
||
|
||
## 2. Где что лежит
|
||
|
||
| что | где |
|
||
|---|---|
|
||
| код | `textmachine/eval/` |
|
||
| **сырьё и судейство** | `~/books/` — **отдельный git-репозиторий**, закоммичен целиком (`4c3ff02`, 1295 файлов) |
|
||
| клетки фазы | `~/books/dovodka/dv-*.json` (579) + карантин `.ERROR .LENGTH .TWIN .STALE` |
|
||
| слепые ключи | `~/books/dovodka/blind-keys-{d1,d3,d4,d6}` и `-sol` — **по семействам**; соль отдельными `SALT-*.txt` |
|
||
| судейство | `~/books/judging/sud-{d1,d3,d4,d6}` (claude) и `sol-*-work` (Sol) |
|
||
| **адъюдикация zh** | `~/books/judging/adjud-d4/` (7 заданий, 7 ответов) + ключ истины `~/books/dovodka/adjud-key.json` — **адъюдикатору НЕ давать** |
|
||
| внешняя подпись Sol | `~/books/editor-tier/sol-tier/` (16), `sol-border/` (32) |
|
||
| банки | `role-topology/bank-en.json` · `dovodka/bank-ja.json` · `tenant-panel/bank.json` (zh) |
|
||
| журнал gemini | `~/books/dovodka/d1-attempts.jsonl` |
|
||
| счётчик сессий | `~/books/dovodka/agent-runs.json` — **64 из 80** |
|
||
|
||
Запуск: `eval/.venv/bin/python` из корня репо. Флаги: `--axis=d4|d3|d6|d1`, `--fam=claude|sol`,
|
||
`--wide-plants`, `--no-twins`. Шум `SyntaxWarning` фильтровать.
|
||
|
||
---
|
||
|
||
## 3. Результаты
|
||
|
||
Три новые оси отсужены **двумя семействами** (claude — суб-агенты; Sol — харнесс владельца).
|
||
|
||
| ось | claude | Sol | правило П-1 |
|
||
|---|---|---|---|
|
||
| **Д6 ja** (разведка, n=9) | +2.83, порог 2.10 — перешёл | +3.28, порог 2.97 — перешёл | **CONFIRM** |
|
||
| **Д3 en** (несущая, n=16) | +1.31, порог 0.90 — перешёл | +1.78, порог 1.94 — ниже | **ЭСКАЛАЦИЯ К АДЪЮДИКАЦИИ** |
|
||
| **Д1 gemini** (n=15) | −0.10, порог 1.47 | +2.53, порог 4.18 | не подтверждено ни одним |
|
||
|
||
Панель Д3 (ошибок/ед. · канон · $/клетка): `E0` 1.31 · 0.927 · 0.00789 → `E4` 1.38 · **0.956** ·
|
||
0.00436 → `E3` 2.06 · 0.947 · 0.00644 → `E2` 2.38 · 0.947 → `D0` 2.62 · **0.767** → `E1` 2.69 ·
|
||
0.949 → `E6` 2.72 · 0.935.
|
||
Д6: `J0` 2.28 · 0.914 → `J2` 2.39 · 0.916 → `D0` **5.11** · 0.654.
|
||
Д1: `A0` 4.80 · 0.884 → `R1` 4.90 · **0.986** (цена клетки ×30).
|
||
|
||
**Гипотезы:** H-1 не установлена · H-2а и H-2б **описательно** (ось Д4 пере-классифицирована по
|
||
её же пре-регу: свой пол 2.21 хуже прайора 2.12) · H-3 **в эскалации**, направление опровержения
|
||
подтверждено обоими семействами · H-4 не подтверждается на en, **японской ноги нет** ·
|
||
эксп-04 «gemini аутлаер» не подтверждается обоими.
|
||
|
||
**Сверх гипотез:** профиль «связка + канон-фиксер ПОСЛЕ» даёт лучший канон на zh и en ·
|
||
банк-дисциплина и качество прозы — РАЗНЫЕ оси (gemini неотличим по судье, канон 0.986) ·
|
||
дешёвая модель на японском проваливается сильнее всего.
|
||
|
||
**Деньги:** $6.0024, два пути счёта сходятся до шестого знака. Рамка заказа $10.00.
|
||
|
||
---
|
||
|
||
## 4. Что осталось
|
||
|
||
**Сессии:**
|
||
1. **Адъюдикация английской оси** — П-1 требует при расхождении семейств, файлов нет. Единственное,
|
||
что блокирует несущий вывод.
|
||
⚠ **КИТАЙСКАЯ адъюдикация ПРОГНАНА** (`~/books/judging/adjud-d4/`, 154 претензии → 7 заданий,
|
||
7 ответов), но её **контроли дефектны** (Д4.8): ложные претензии отличимы по формату контекста
|
||
(`context(quote, quote)` без окружения против окна 260 знаков у настоящих), только 4 из 15
|
||
«посаженных» позиций реально посажены, регекс разбора осей усекает `ВЕРНОСТЬ`.
|
||
**Чинить контроли ДО любого нового прогона** — иначе адъюдикация не разрешает спор, а
|
||
переносит доверие на уровень ниже. Запуск: `eval/.venv/bin/python eval/dovodka/adjud.py`.
|
||
2. **Секций Д2, Д5, Д8 в отчёте нет** — заказ требует поимённо. Д5 отснят
|
||
(`~/books/dovodka/canon-dissect.json`, 24 записи), раздела нет.
|
||
3. **Эррата zh-канона:** поправка границы слова живёт в `bank._rx`, но в СОХРАНЁННЫЙ банк не дошла
|
||
(`coverage` читает `rx` из файла). Завышение **+0.0039**, относительные выводы не двигаются.
|
||
Пере-сборка = правка закрытой оси, ратифицирует оркестратор.
|
||
4. **Гейт наклона не построен.** Замер: en +0.026 · ja +0.353 · d1 +0.277 ошибки на шаг метки;
|
||
поправка вердикты не переворачивает.
|
||
5. **Японская нога H-4** — купить `glm-5` на ja (~$0.05), напечатать порядок жильцов zh/en/ja.
|
||
6. **Реестр требований:** 12 без улики, 3 провала — R55 (статус-баннеры), R64 (реестр не в git до
|
||
покупок), R71 (правка чужого рига одним коммитом). **19 улик из 89 — «греп своего документа»**;
|
||
настоящая улика проверяет АРТЕФАКТ, а не текст отчёта.
|
||
7. **Селфтест `sud.py`** красный: en 3 пункта, ja 1 — все настоящие. **Константы под зелень не
|
||
подгонять** (норма проекта).
|
||
|
||
**Владельца:**
|
||
* **Возражение Sol по `tier`** (эксп-23): внешний судья `T2 vs R0` **+8.69, p=0.0002, РАЗЛИЧИМ**;
|
||
claude +0.50 ниже порога. **Противоречит несущему выводу пака 23.** Пере-счёт:
|
||
`eval/.venv/bin/python eval/editor_tier/solscore.py tier`.
|
||
* **Санкция замены ja-книги** (`enkan_no_hate_ja` вместо `isekai_majutsushi_jp`) — в CURRENT-STATE
|
||
до сих пор висит открытым СТОПом.
|
||
* Ратификация выводов (полигон не ратифицирует).
|
||
|
||
---
|
||
|
||
## 5. Ловушки рига — на чём споткнёшься
|
||
|
||
1. **ЭМИССИЯ ПЕРЕПИСЫВАЕТ КЛЮЧ.** Раскладка меток — чистая функция от соли, uid и НАБОРА армов.
|
||
Эмиссия с другим составом панели переписывает ключ, и разбор сопоставляет ответы с ЧУЖИМИ
|
||
армами: так вердикт `E0/D0` съехал с +1.56 на +0.38. Восстановилось только потому, что **соль
|
||
лежит отдельным файлом**. Перед эмиссией на отсуженной оси копировать `blind-keys-*` в сторону.
|
||
2. **Синглтон `buy`/`money`** — побеждает настроивший ПОСЛЕДНИМ. Наступал трижды: 7 клеток пробы
|
||
ушли в чужой каталог при $0 в кассе; `money_d` настраивает свой экземпляр, не чужой; драйверы
|
||
осей — свои экземпляры контура. **После загрузки чужого модуля пере-настроить кассу + ассерт.**
|
||
3. **Фриз-гейт сверяет ПОКУПАЮЩИЙ файл в стеке**, а не кассу. Потолки правятся без коммита — этим
|
||
я воспользовался и потратил ФД-C сверх закоммиченной границы (позже привёл в git).
|
||
4. **`finish=length` = деньги списаны, данных нет.** Считать СОДЕРЖИМОЕ, не файлы. Бюджет вывода
|
||
новых пар 32000 (16000 мало). DeepSeek: thinking НИКОГДА не глушить.
|
||
5. **Гард отказывает по ОЖИДАЕМОЙ цене**, втрое выше фактической ($0.028 против $0.0092). Решать
|
||
по срабатыванию гарда, а не по смете.
|
||
6. **Новый суффикс карантина — сразу в глоб свода.** `.STALE`/`.TWIN` не были вписаны, и цена
|
||
`E3` печаталась $0.00528 вместо $0.00644 (пять нулевых клеток тянули медиану).
|
||
7. **Порог различимости — свойство СЕМЕЙСТВА, а не оси.** Пол Sol шире на всех трёх осях при не
|
||
меньших оценках эффекта. Сравнивать «перешёл/не перешёл» без сверки полов — ошибка.
|
||
8. **Классы маржевых посадок пар-зависимы.** Подобранные на китайском (числительные) на английском
|
||
ложатся 5/16, на японском 4/9. Рабочий класс — «подмена принадлежности» (`его`→`её`): en 15/16,
|
||
ja 8/9. Флаг `--wide-plants`, **только для новых эмиссий** (декой восстанавливается при разборе).
|
||
9. **Пол из точечного фиксера почти детерминирован** — половины совпадают побайтно, перекупка НЕ
|
||
помогает (проверено). Гейт исключения заведён. Нужен полноценный японский пол — менять ЛЕЧЕНИЕ
|
||
пола (две генерации однопроходки), а не покупать заново.
|
||
10. **`pgrep -f` по имени файла матчит сам себя** (харнесс оборачивает команду в `eval '...'`).
|
||
Дважды сторож простоял часы впустую. Ставить команды последовательно, не опрашивать процессы.
|
||
|
||
---
|
||
|
||
## 6. Сомнения — чего не принимать за твёрдое
|
||
|
||
1. **Судейские ответы никто не читал по существу.** Проверены формат, контроли, цитаты — но не
|
||
«верно ли судья оценил вот этот вариант». Вся фаза стоит на этом допущении.
|
||
2. **Классы посадок подобраны ПОСЛЕ того, как видны вердикты** — по частоте в материале, не по
|
||
влиянию на результат, и применены только к новым эмиссиям. Формально правка детектора после
|
||
взгляда на вердикты.
|
||
3. **`--wide-plants` дал Sol контроль СИЛЬНЕЕ моего на en.** Первичный контраст не затронут
|
||
(тексты армов идентичны), межсемейное сравнение вторичных армов на en некорректно.
|
||
4. **Почему пол Sol систематически шире — не знаю.** Три версии (другая модель, харнесс, длина
|
||
сессии), не разбирался.
|
||
5. **«E4 — кандидат в прод» держится на 4 единицах** из 16: на остальных он побайтно равен
|
||
эталону. Цена **аддитивна** (`E4 = E0 + фиксер`), не альтернативна.
|
||
6. **Единственное двухсемейное подтверждение пришло с РАЗВЕДОЧНОЙ оси.** Поднять до несущего
|
||
нельзя, соблазн будет.
|
||
7. **Японский пол — 4 пары** после исключения близнецов. Почти не порог.
|
||
8. **Контам-проба `pro` на en: 1 попадание из 5** — ниже порога, но не ноль: модель назвала серию
|
||
и протагониста. Вся английская ось это несёт.
|
||
9. **Гейт близнеца на закрытой китайской оси не применялся** — совпадений там не искали.
|
||
10. **Пере-судейство en делалось, уже видя старые числа.** Промты суб-агентам идентичны прежним
|
||
(проверяемо), но осадок называю.
|
||
11. **Банк-закон проверен только на промтах, собираемых сейчас**, не на клетках эксп-21/22.
|
||
|
||
---
|
||
|
||
## 7. Костыли кода
|
||
|
||
* **`bank.py` покупает под кассой фазы**, ZONE кассы указывает на каталог покупающего модуля —
|
||
иначе фриз-гейт отвергал сам `bank.py`. Право покупать получил весь `tenant_panel`.
|
||
* **Флаги разбираются на уровне модуля из `sys.argv`** — при импорте поведение зависит от argv
|
||
вызывающего. Я этим пользовался; хрупко и неочевидно.
|
||
* **`sud.py` грузит `ja_axis.py` под именем `en_axis_sud`** — работает, имя врёт.
|
||
* **`itog_d4.py`: `KEYS = KEYS_D4`** — алиас вместо второй переменной (сам дубль и был багом);
|
||
там же `_dead` — пустой остаток рефактора, удалить при первой правке.
|
||
* **`sud.py:setup`: `FLOOR_HOOK=lambda u: (… if False else None)`** — мёртвая ветка.
|
||
* **`bank.py`: `sys.modules.setdefault("para", …)` + `exec_module`** — при уже загруженном `para`
|
||
исполнится второй экземпляр. Отмечено вычиткой, не починено.
|
||
* **Оркестраторские промты Sol размножены скриптом** из английского заменой строк, не шаблоном.
|
||
|
||
---
|
||
|
||
## 8. Дисциплина, которой я не держал
|
||
|
||
* **Не объявлять закрытие по памяти — инвентаризовать диск.** Так потерялся Sol: в отчёте стояло
|
||
«каталог ответов пуст», а там лежало 16 ответов с результатом против вывода пака 23.
|
||
* **Читать заказ на АРТЕФАКТЫ, а не только на требования:** «а не сделано ли уже?».
|
||
* **Вести зонный журнал ПО ХОДУ**, не в конце.
|
||
* **Закрывать судейские сессии** `runs.py --done` сразу после ответов.
|
||
* **Полигон коммитит только пре-рег-фризы**, основание вслух ПЕРЕД каждым; обязательны лишь фризы
|
||
ПОКУПАЮЩЕГО кода.
|
||
|
||
---
|
||
|
||
## 9. Новые файлы фазы
|
||
|
||
`para.py` (провайдер пары: письменность, банк, промты, парсер числительных, конформность имён,
|
||
снятые классы флагов) · `en_axis.py` · `ja_axis.py` · `d1_gemini.py` · `d7_self.py` ·
|
||
`prompts/{en-ru,ja-ru}/terminologist.md` — **их не существовало, банк новой пары собрать было
|
||
нечем**.
|
||
|
||
Существенно переписаны: `contour.py` (пара как параметр, диспетчер армов по ВИДУ контура, общая
|
||
покупка баз, пол по оси, бюджет вывода, карантин) · `sud.py` (ось и семейство как параметры,
|
||
гейты близнеца и пустых половин пола, пар-зависимые посадки) · `itog_d4.py` · `bank.py` ·
|
||
`battery.py` (хуки пары) · `pair_en.py` · `contam_d.py` (платный путь с нуля) · `promptdiff.py` ·
|
||
`sessii.py`.
|
||
|
||
⚠ `prompts-free/{en-ru,ja-ru}/` — свободные редакции от Fable-5, **в замер НЕ входят**.
|
||
|
||
⚠ Память машины пополнена тремя записями: фриз-гейт смотрит на покупающий файл · деньги при
|
||
срабатывании гарда, не по смете · файл клетки ≠ годная клетка. Память машинно-локальна; общие
|
||
уроки — в промт.
|
||
|
||
**Незакоммичено в `textmachine`:** правки харнесса, отчёт, журнал, этот файл. Лендит оркестратор.
|
||
`~/books` закоммичен полностью.
|