diff --git a/eval/dovodka/SESSION-30-08.md b/eval/dovodka/SESSION-30-08.md new file mode 100644 index 00000000..dbbc0769 --- /dev/null +++ b/eval/dovodka/SESSION-30-08.md @@ -0,0 +1,120 @@ +# СЕССИЯ 29–30.08 — ЖУРНАЛ И ПРОМТ ВОССТАНОВЛЕНИЯ ПОСЛЕ КОМПАКТА + +> ⚠⚠ **ЭТОТ ФАЙЛ — ПРОМТ ДЛЯ СЕССИИ ПОСЛЕ КОМПАКТА.** Заведён по слову владельца 30.08 («контекст +> приближается к компакту, напиши себе скратчпад»). Читать ЦЕЛИКОМ, не грепом. Норма D39.121: +> сохраняются список изменённых файлов · незакрытые находки и диспозиции · обязательства и +> открытые вопросы · команды. +> ⚠ Персист, не scratch (норма владельца 01.08): файл лежит в зоне и коммитится, потому что +> эфемерный scratchpad умирает вместе с сессией. + +## 0. КТО ТЫ И ГДЕ + +Полигон-сессия TextMachine **с полномочиями оркестратора в зоне полигона** (слово владельца 29.08: +можешь коммитить). Зона записи: `eval/` + `docs/experiments/` + секция «Полигон» в `docs/PROGRESS.md`. +Ветка **`polygon`**, дерево держи чистым. + +⚠ **Подпись коммитов.** 30.08 владелец сменил имя в `gitconfig` на `heaven ` +и попросил перегенерить локальные коммиты ветки. Сделано `filter-branch`-ем по диапазону +`28c2d0f..polygon`: 35 коммитов пере-подписаны, **хеш дерева HEAD не изменился** (`24bb72e4…` до и +после — доказательство, что содержимое цело), авторские даты сохранены, `origin/polygon` остался +предком (push пройдёт без force). Бэкап: `~/tm-backup-2026-08-30/polygon-before-rewrite.bundle`, +старая история в `refs/original/refs/heads/polygon`. + +## 1. ⛔ ЧТО БЕЖИТ ПРЯМО СЕЙЧАС — ПОКУПКА, САНКЦИОНИРОВАННАЯ И НЕ СДЕЛАННАЯ + +**Владелец 30.08 дословно: «Да, по поводу дипсика — бери».** + +Пре-рег **Д45** отчёта `docs/experiments/23-editor-tier.md` — **заморожен коммитом `87dd124`**. +Арм `RNL` заведён в `rol.py` (`ARMS` + `THINK_LEVEL["RNL"]="low"`), провод прочитан вслух, промт +сверен побайтно с `RN` (`True`). Фильтр `--only=` добавлен, селфтесты зелены. **Клетки НЕ куплены.** + +**Следующая команда, ровно она:** +``` +eval/.venv/bin/python eval/dovodka/rol.py --buy en RNL --only=001e6ac4 +``` +**ПРАВИЛО РЕШЕНИЯ ПО ЭТОЙ ОДНОЙ КЛЕТКЕ (записано ДО неё, Д45.1) — не пере-открывать:** +* `reasoning_tokens` **< 5 000** ⇒ ручка работает, покупаешь остальные 15: `--buy en RNL`; +* **≥ 10 000** ⇒ ручка НЕ работает, СТОП, 15 клеток не покупаются, пинг в квирк-бюллетень + «вендор-дока разошлась с поведением»; +* **5 000–10 000** ⇒ СТОП и вопрос владельцу. + +**Зачем замер (одной фразой):** развести конфаунд Д44.6 — весь разрыв «`luna` дешевле якоря в 8.1×» +снят с якоря, которому ручку размышления **не слали вовсе** (= вендор-дефолт `high`), против +испытуемого на явном `low`. По норме Д28 это разные армы. + +**Деньги:** касса ФД-N, потрачено $3.014505 при потолке $3.30, свободно **$0.285**, смета ~$0.16. +⛔ Потолок сессией НЕ поднимать. Гард остановит сам — порядок «одна клетка, потом пачка» для этого. + +⛔ **Ранговый эндпойнт (слепое чтение) в этой сессии НЕ снимается и объявлен таким ДО покупки:** +он стоит 16 агент-сессий, свободно **14 из 200** (израсходовано 186). Кап — слово владельца 20.08, +поднимать решением сессии запрещено. Панель эмитируется и передаётся, либо владелец поднимает кап. + +## 2. ЧТО СДЕЛАНО ЭТОЙ СЕССИЕЙ (секции отчёта — единственный носитель) + +| секция | что там | +|---|---| +| **Д35** | переезд машины: окружение поднято · **mtime обнулены ⇒ гейты на mtime не пере-снимаются** · Gemini выбрасывает ПЕРВОЕ системное (улика `sysmsg.py`) | +| **Д36** | **Шаг 4 плана 22.08 ЗАКРЫТ**: вес ролевого промта ≈1.3 порога, и он на ПРОЗЕ, не на браке | +| **Д36.8а** | ⛔ блокер приёмки: **декой не оказался последним**, буква фриза требовала аннулировать панель — диспозиция за приёмкой | +| **Д37** | третий круг панели-0: **шум прибора 0.34 порога**, долг Д34.5 закрыт | +| **Д38** | ⭐ **ОТВЕТ на два главных вопроса владельца** + статус Вопроса 0 | +| **Д39** | сдача: сверка `--final` КРАСНАЯ, диагноз на каждую из трёх строк | +| **Д40** | приёмка исполнением своей же работы: 1 блокер + 6 важных, все с диспозициями | +| **Д41** | ⭐ деньги: связка $127/книга, **90% — редактор**, замена редактора → $20 | +| **Д42** | ⭐ сплошное чтение корпуса: «$11 за книгу» = июльский прайс · смена черновика = 6% · конфликт приборов | +| **Д43** | ⛔ **реестр потерянного**: ~25 намерений, растерянных между планами | +| **Д44** | ⭐ у якоря НЕ БЫЛО выключателя размышления · **живая вахта 30.08: вендор изменил таблицу, `low→low` теперь и у `pro`** · `temperature` на dspro молча игнорируется | +| **Д45** | пре-рег покупки (см. §1) | + +## 3. ⛔ ОБЯЗАТЕЛЬСТВА И ВОПРОСЫ, ВИСЯЩИЕ НА ВЛАДЕЛЬЦЕ + +1. **Диспозиция по декою (Д36.8а)** — считать Шаг 4 закрытым по цели или пере-собирать панель по букве. +2. **Кап агент-сессий**: 186/200, ранговый эндпойнт Д45 требует 16. +3. **Шаг 7 (~$2 + движковый прогон)** — единственный прибор под Вопрос 0; в резерв $1.26 не влезает. +4. **Пере-выбор ЧЕРНОВОЙ роли** (`PLAN-17-08.md:105-119`) — его собственная развилка, потерянная + всеми планами; приз 6%, разбор в Д42.5а. +5. Прочее — Д43.1 (семь развилок). + +## 4. ⛔ ЧЕГО НЕ ДЕЛАТЬ + +* **Не править реестр `eval/dovodka/requirements.md`** — ни строки. Три красных в `--final` (R37, + R71, R77) диагностированы в Д39.2 как ПРОТУХШИЕ УЛИКИ, а не невыполненная работа. Правка улик в + момент сдачи = «дописать таблицу под результат». +* **Не чинить гейты под зелень** (`verify22.py` не тронут ни одним коммитом сессии — проверяемо). +* **Не пере-эмитировать существующие теги** (`p0`, `p4`, `arch2`, `vendor2`): раскладка есть функция + соли и НАБОРА армов, пере-эмиссия превращает уже полученные ответы в мусор. +* **Не поднимать потолки касс и кап сессий** решением сессии. +* **Не читать `.env`.** +* Не считать `cost_usd` в клетках списанными деньгами: `roster.cost()` вычисляет их из пина; + весь леджер фазы — оценка (Д32.11, долг В21 перенесён с доказательством невозможности). + +## 5. КОМАНДЫ + +``` +eval/.venv/bin/python eval/dovodka/rol.py --selftest # ОБЯЗАТЕЛЕН перед покупкой +eval/.venv/bin/python eval/dovodka/rol.py --wire en --arm=RNL +eval/.venv/bin/python eval/dovodka/rol.py --buy en RNL --only=001e6ac4 # ← пробная клетка +eval/.venv/bin/python eval/dovodka/rol.py --buy en RNL # ← пачка, ТОЛЬКО после пробы +eval/.venv/bin/python eval/dovodka/schet.py --report RNL RN RL # П2, $0 +eval/.venv/bin/python eval/dovodka/money_d.py --report | --selftest +eval/.venv/bin/python eval/dovodka/runs.py --report +eval/.venv/bin/python eval/dovodka/sysmsg.py # улика квирка Gemini +eval/.venv/bin/python eval/conformance.py eval/dovodka/requirements.md --final +python3 docs/scripts/counts.py --lint | grep ✗ # якоря доков +``` +⚠ Окружение на чистой машине: `ln -s <репо>/books ~/books` + venv (`eval/README.md`, врезка про переезд). + +## 6. ЧТО Я НАПУТАЛ ЗА СЕССИЮ — чтобы не повторить + +1. Объявил дефект движка живым, **не посмотрев в код** — он был закрыт лендингом `7d0c6f2` 28.08. +2. Напечатал контроль декоя пройденным **по критерию, которого не было во фризе** (блокер приёмки). +3. Свалил `luna` и `gemini` в одну строку «цензур-ось не мерена» — у gemini она **мерена и против него**. +4. Подал «однопроходка дешевле» без границы «прибор читает ОДНУ главу», хотя блокер про банк нашёл + сам владелец 16.08. +5. Написал «плана про луну нет» — план есть, `PLAN-17-08.md` §1б, и его потеряли все. +6. Чуть не позеленил гейт R77 тем, что **процитировал строку, которую гейт грепает**. +7. Три неточности чисел (знаки в матрице, описание метода класса Б, ложная точность) — поймал + адверсариальный пере-счёт. + +**Общее у всех семи: вывод публиковался раньше, чем проверялся первоисточник.** Ловили их — +адверсариальные опровергатели и сплошное чтение корпуса, а не мои гейты. diff --git a/eval/dovodka/rol.py b/eval/dovodka/rol.py index be9845bd..4b5bc3c2 100644 --- a/eval/dovodka/rol.py +++ b/eval/dovodka/rol.py @@ -712,6 +712,7 @@ def call_kwargs(model: str, msgs: list[dict], arm: str = "") -> dict: # чтобы купить оба. Ограничитель берёт ПЕРВЫЕ N глав отбора — тот же детерминированный порядок, # значит абляция сравнима с уже купленным `RN` глава в главу. N_LIMIT = next((int(a.split("=", 1)[1]) for a in sys.argv if a.startswith("--n=")), 0) +ONLY_UID = next((a.split("=", 1)[1] for a in sys.argv if a.startswith("--only=")), "") def buy(p: str, which: list[str]) -> None: @@ -720,6 +721,15 @@ def buy(p: str, which: list[str]) -> None: cfg["wire"]() ZK.preflight([ARMS[a][0] for a in which], cfg["phase"], cfg["letter"]) us = chosen(p)[:N_LIMIT] if N_LIMIT else chosen(p) + # ⚠ ФИЛЬТР ПО ГЛАВЕ, заведён 30.08. Пре-рег Д45.1 называет КОНКРЕТНУЮ главу для пробной клетки + # (`001e6ac4eb` — самая дорогая по размышлению у `RN`), а `--n=` умеет только «первые N» в + # порядке отбора. Без фильтра пришлось бы либо купить не ту главу, либо менять правило решения + # ПОСЛЕ фриза — то есть подгонять пре-рег под возможности рига. Добавление механическое: + # промт, касса, гейты и правила не тронуты. + if ONLY_UID: + us = [u for u in us if u["uid"].startswith(ONLY_UID)] + if not us: + raise SystemExit(f"⛔ главы {ONLY_UID} нет в отборе пары {p} — покупать нечего") led = MONEY.Guarded(cfg["phase"], default_expect=0.03) print(f"\nпара {p} · глав {len(us)} · армы {' '.join(which)} · касса {cfg['phase']}") for arm in which: