215 lines
20 KiB
Markdown
215 lines
20 KiB
Markdown
|
||
|
||
> ⛔ **АРХИВ — ЗАКРЫТО СЛОВОМ ВЛАДЕЛЬЦА 11.09: «полигон это вообще не наш скоуп».** Заказ снят не по
|
||
> качеству промта и не по исчерпанию предмета: зона выведена из работы целиком. **Инструкции отсюда НЕ
|
||
> ИСПОЛНЯТЬ** (правило архива). Пере-открывается только новым словом владельца; до тех пор содержимое —
|
||
> история, а не задание. ⚠ Ссылки на этот файл из журнала решений и старых отчётов сознательно не
|
||
> правлены: тела нот не переписываются, и их адреса указывают в историю.
|
||
|
||
> ⛔⛔ **БАННЕР ОРКЕСТРАТОРА 10.09 — ГЛАВНАЯ ПОСЫЛКА ЭТОГО ФАЙЛА ОПРОВЕРГНУТА ЗАМЕРОМ. Читать только через него.**
|
||
>
|
||
> **(1) «Живой конец фазы НЕ в `main`, он на ветке `polygon`» — НЕВЕРНО.** Замер: `git merge-base --is-ancestor
|
||
> polygon main` истинно, `main..polygon` = **0** коммитов, `polygon..main` = **630**. То есть `polygon` — ПРЕДОК
|
||
> `main`, и всё, что на нём было, уже в `main`. Инструкции этого файла «искать на ветке» исполнять НЕ надо.
|
||
>
|
||
> **(2) Адреса `~/books/*` МЕРТВЫ.** Тринадцать путей из таблицы «где что лежит» через `test -e` не резолвятся
|
||
> ни один; те же тринадцать под `<репозиторий>/books/` резолвятся все тринадцать. Книги переехали 24.08 и
|
||
> версионируются ОТДЕЛЬНЫМ репозиторием (`CLAUDE.md`, греп `books`). Долг несёт живая строка бэклога **217**.
|
||
>
|
||
> **(3) «Гейт красный, и это правда, а не поломка» — сегодня ВЕРНО НАПОЛОВИНУ.** Он красен ЕЩЁ и по окружению:
|
||
> `eval/conformance.py` держит абсолютный корень `/home/ubuntu/projects/textmachine`, которого не существует
|
||
> (тот же мёртвый литерал — в 118 из 290 py-файлов `eval/`). Содержательную красноту от инструментальной надо
|
||
> разделять, иначе чинится не то.
|
||
>
|
||
> **(4) Предупреждение «в `main` у `adjud.py` нет `--controls`, не запускать» — СНЯТО:** флаг там есть
|
||
> (`eval/dovodka/adjud.py`, греп `--controls`), а `git diff polygon main` по файлу пуст.
|
||
>
|
||
> ⚠ **Почему файл НЕ уехал в архив, хотя заслужил:** на него ссылаются рабочие журналы полигона в `eval/`
|
||
> — чужая зона, и оборвать им ссылку я не вправе. Живёт здесь с этим баннером; правку тела делает зона
|
||
> полигона, когда разморозится.
|
||
|
||
# ХЕНДОФФ: полигон, фаза Д эксп-22/23 — состояние на 15.08
|
||
|
||
> ⚠⚠ **СНИМОК НА 15.08, ПЕРЕКРЫТЫЙ ЗОНОЙ. Живое состояние фазы Д — НЕ здесь** (баннер дописан
|
||
> оркестратором №18 22.08 при актуализации доков; тело ниже не переписано).
|
||
>
|
||
> Зона с тех пор ведёт свою цепь носителей в `eval/dovodka/`, и живой её конец НЕ в `main`: планы,
|
||
> ревью и консилиумы лежат на ветке `polygon` (`git ls-tree --name-only polygon eval/dovodka/`),
|
||
> последний на 02.09 — `PLAN-01-09.md` (редакция 4; редакции 1–3 отвергнуты консилиумом). В `main`
|
||
> из цепи есть только `PLAN-21-08.md` и `PLAN-22-08.md`. Какой носитель ЖИВОЙ, называет зона:
|
||
> прежде чем читать этот файл как инструкцию, спроси у владельца.
|
||
>
|
||
> ⚠ Там же и прибор: `eval/.venv` из команд §2/§4 в `main`-дереве отсутствует — они рассчитаны на
|
||
> рабочее дерево ветки `polygon` (`git worktree list`).
|
||
>
|
||
> **Снимок ПОДРЕЗАН 02.09** (ревизия доков): опровергнутое и исполненное деревом снято, адреса
|
||
> уехавшего — в §1 и §3.
|
||
>
|
||
> Что в файле по-прежнему полезно: устройство приборов, грабли отладки и незакрытое требование Д5.
|
||
> Приёмка фазы — у ПАРАЛЛЕЛЬНОГО оркестратора.
|
||
|
||
Развёрнутая версия с историями отладки — в git-истории коммитов фазы.
|
||
|
||
---
|
||
|
||
## 1. Старт
|
||
|
||
1. `CLAUDE.md` → `docs/POLYGON_EXP2223_REDO_SESSION_PROMPT.md` — **заказ, читать ЦЕЛИКОМ**.
|
||
Прошлая сессия читала грепом и потеряла целый пункт заказа (внешнюю подпись Sol). В конце заказа
|
||
— приписка-эррата 02.09: четыре его факта (кап 80 · состав секций · ja-книга · потолок) дерево
|
||
опровергло, тело при этом не правится.
|
||
2. **Живой носитель курса — ветка `polygon`, каталог `eval/dovodka/`** (см. баннер выше).
|
||
Онбординг под план 22.08 лежит в нём самом (`PLAN-22-08.md`, §0).
|
||
3. Отчёт `docs/experiments/23-editor-tier.md` — состав секций с 15.08 вырос, грепать
|
||
`grep '^## Д' docs/experiments/23-editor-tier.md`; записи полигона 15.08 из `docs/PROGRESS.md`
|
||
срезаны в `docs/archive/PROGRESS-2026-08-10-15.md`.
|
||
|
||
---
|
||
|
||
## 2. Где что лежит
|
||
|
||
| что | где |
|
||
|---|---|
|
||
| код | `textmachine/eval/` |
|
||
| **сырьё и судейство** | `~/books/` — **отдельный git-репозиторий**, закоммичен целиком (`4c3ff02`, 1295 файлов — снимок 15.08, не пере-снимался) |
|
||
| клетки фазы | `~/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/` (154 претензии → 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`; кап — `CAP` в `eval/dovodka/runs.py`, там же его история |
|
||
|
||
Запуск: `eval/.venv/bin/python` из корня репо. Флаги: `--axis=d4|d3|d6|d1`, `--fam=claude|sol`,
|
||
`--wide-plants`, `--no-twins`. Шум `SyntaxWarning` фильтровать.
|
||
|
||
---
|
||
|
||
## 3. Результаты
|
||
|
||
Числа фазы живут в отчёте `docs/experiments/23-editor-tier.md`, и с 15.08 они ПЕРЕ-СУЖЕНЫ:
|
||
вердикты двух семейств — Д13.1 · панели осей — Д3 / Д6 / Д1 · сводка «пробел → чем закрыт» — Д9 ·
|
||
пере-суд починенным прибором — Д15 и дальше. ⚠ У числа один носитель, и это отчёт.
|
||
|
||
**Деньги:** фактическая цепь потолков — `eval/dovodka/money_d.py` (`PACK_CEILING`/`CEILINGS`),
|
||
механизм её подъёмов — отчёт Д14.9. ⚠ $10.00 в заказе — ИСХОДНАЯ рамка 10.08, с тех пор
|
||
поднятая: сверять цепь, а не заказ (приписка в конце заказа).
|
||
|
||
---
|
||
|
||
## 4. Что осталось
|
||
|
||
**Сессии:**
|
||
1. **Адъюдикация английской оси** — П-1 требует при расхождении семейств, файлов нет. Единственное,
|
||
что блокирует несущий вывод. Запуск: `eval/.venv/bin/python eval/dovodka/adjud.py`; контроли,
|
||
дефектные на 15.08, починены и закрыты гейтом `--controls` (отчёт §Д14.8). ⚠ **Починка живёт на
|
||
ветке `polygon`; в `main` файл ПРЕ-ФИКС** — грепа `--controls` там нет, дефектный регекс разбора
|
||
осей стоит живым. Перед прогоном сверить наличие гейта: нет его — не запускать.
|
||
2. **Д5 — требование заказа НЕ ИСПОЛНЕНО** (секция в отчёте есть, требование — нет). Места потерь
|
||
отсняты честно (`~/books/dovodka/canon-dissect.json`, 24 записи), но КЛАССИФИКАЦИЯ мест негодна:
|
||
поле `why` несёт случайное слово окна. Честное закрытие — ручная пере-классификация 24 мест
|
||
против исходника, $0, одна сессия. Разбор — отчёт §Д5.
|
||
3. **Эррата zh-канона:** поправка границы слова живёт в `bank._rx`, но в СОХРАНЁННЫЙ банк не дошла
|
||
(`coverage` читает `rx` из файла). Завышение **+0.0039**, относительные выводы не двигаются.
|
||
Пере-сборка = правка закрытой оси, ратифицирует оркестратор.
|
||
4. **Реестр требований** — гейт `eval/.venv/bin/python eval/conformance.py eval/dovodka/requirements.md`
|
||
красный, и это правда, а не поломка. Провалы на 15.08 поимённо: R55 (статус-баннеры) · R64
|
||
(реестр не в git до покупок) · R71 (правка чужого рига одним коммитом); счёт с тех пор двигался —
|
||
пере-снимать командой, а не читать отсюда. ⚠ Урок дороже счёта: часть улик реестра была
|
||
«грепом СВОЕГО документа» — настоящая улика проверяет АРТЕФАКТ, а не текст отчёта.
|
||
5. **Селфтест `sud.py`** красный: en 3 пункта, ja 1 — все настоящие. **Константы под зелень не
|
||
подгонять** (норма проекта).
|
||
|
||
**Владельца:** ратификация выводов (полигон не ратифицирует).
|
||
|
||
---
|
||
|
||
## 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` уехала вниз: пять нулевых клеток тянули медиану (числа — отчёт §Д13.4).
|
||
7. **Порог различимости — свойство СЕМЕЙСТВА, а не оси** (§Д13.3). Сравнивать «перешёл/не
|
||
перешёл» без сверки полов — ошибка.
|
||
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`** — алиас вместо второй переменной (сам дубль и был багом).
|
||
* **`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 (разбор — §Д11).
|
||
* **Вести зонный журнал ПО ХОДУ**; судейские сессии закрывать `runs.py --done` сразу после ответов.
|
||
* **Обязательны лишь фризы ПОКУПАЮЩЕГО кода**, основание вслух ПЕРЕД каждым.
|
||
|
||
---
|
||
|
||
## 9. Новые файлы фазы
|
||
|
||
Состав каталога читается `ls eval/dovodka/` (39 файлов). Существенно одно: провайдера пары
|
||
`para.py` и пар-промтов **не существовало, банк новой пары собрать было нечем**.
|
||
|
||
⚠ `prompts-free/{en-ru,ja-ru}/` — свободные редакции от Fable-5, **в замер НЕ входят**.
|
||
|
||
⚠ Три урока фазы (§5 пп.3–5) записаны и в память машины. Память машинно-локальна и в
|
||
репозиторий не едет — общие уроки класть в промт, а не в неё.
|