Write the handoff prompt for the probe session to orchestrator norm, with the procedure as its law and the three costly ambiguities named up front

This commit is contained in:
heaven 2026-09-02 00:20:04 +03:00
parent 04ed58c8a4
commit c8b97f37bc

View file

@ -0,0 +1,180 @@
# Промт: полигон-сессия «Контролируемая проба редактора по четырём осям»
> Составлен полигон-сессией фазы Д 02.09 по слову владельца. Исполнитель — ОТДЕЛЬНАЯ сессия,
> онбординг у неё СВОЙ. Форма — по `docs/ORCHESTRATOR_SESSION_PROMPT.md` §«Пишешь промт сессии?»
> (12 обязательных блоков).
## 1. Какая проблема и что решит твой результат
Проект переводит художественные книги zh→ru мультиагентным LLM-конвейером. **Самая дорогая стадия —
редактор**, и платим мы там в основном не за выданный текст, а за «размышление» модели перед ответом:
у этого поставщика оно тарифицируется внутри выходных токенов и составляет большую часть счёта.
**Проблема:** мы не знаем, чем управляется эта цена. На книге в 2283 главы редактор стоит порядка
полусотни долларов, и мы не можем сказать, платим ли за то, что модель много думает, или за то, что
она много пишет.
**Что решит твой результат:** контролируемая проба разделит рычаги. Если снижение усилия режет
расход и текст не портится — книга дешевеет вдвое по самой дорогой статье. Если не режет — мы
перестаём искать там, где нет.
**Повод, который ты обязана не повторить.** Предыдущая сессия за четверо суток одиннадцать раз
утверждала или предлагала то, что уже сделано либо опровергнуто в репозитории. Класс один:
**показания инструмента, собственной памяти или своей ветки принимались за факт о мире**. Реестр —
§8 плана и §Д52.5 отчёта фазы.
## 2. Зона записи и git
**Зона:** `eval/` + `docs/experiments/` + секция «Полигон» в `docs/PROGRESS.md`. Ветка `polygon`.
Артефакты прогона — в `~/books/gu-zhenren/probe-4axes/` (это ОТДЕЛЬНЫЙ git-репозиторий `books/`,
видимый обоим рабочим деревьям).
**Ты НЕ коммитишь ничего, КРОМЕ пре-рег-фриза** — это единственное исключение канона, и он
объявляется владельцу вслух ДО коммита. Форма коммита — только с явным списком путей
(`git commit -- <путь>`); `git add -A`, `git add .`, `git commit -a` запрещены.
⛔ Никогда не читать `.env`. ⛔ Никаких `reset --hard`, перезаписи истории, `checkout` поверх грязного
дерева: рядом работают параллельные сессии.
## 3. Карта чтения (≤5 позиций; дальше — только по её ссылкам)
1. **`CLAUDE.md`** — канон: цели, роли, зоны, гардрейлы, дисциплина чтения.
2. ⭐ **`eval/dovodka/PLAN-01-09.md`ЗАКОН этой сессии.** Читать целиком; **§9 «ПРОЦЕДУРА» —
первым**, там команды, коды выхода и три места, где домысливание стоит денег.
3. **`eval/dovodka/SESSION-30-08.md` §0-ЧЕТЫРЕ** — состояние фазы и реестр ошибок. Остальное в файле
исторично; ⛔ §5 «КОМАНДЫ» — команды АВГУСТОВСКОГО РИГА, не твои, там есть помеченная
«не запускать никогда».
4. **`~/books/gu-zhenren/coldrun-v16/`** — образец стенда: `book.yaml`, `pipeline.yaml`,
`pairs/zh-ru.yaml`, и `REPORT.md` §14 «Форма следующего замера» (⚠ в файле ДВА раздела «## 14»,
нужен второй). ⛔ Каталог — образец, а не рабочее место.
5. **`docs/experiments/00-provider-quirks.md`** — провайдерские ловушки. Канон требует читать ПЕРЕД
правкой вызовов; здесь особо записи про ручку размышления и эхо-мину.
## 4. Жёсткий контур — **делай РОВНО так**, отступление = пинг владельцу
1. ✅ **Санкция владельца 01.09: вариант A — 17 глав, потолок $8.6 в ПИКОВЫХ терминах.**
⛔ Потолок сессией не поднимается. Срабатывание гарда = **стоп и вопрос владельцу**; добор после
просмотра чисел запрещён. К владельцу за этим решением ходить не надо — оно принято.
2. **Замер ратифицирован** (D39.184 п.5 — ⚠ нота есть только в ветке `main`, в `polygon` реестр
обрывается на D39.170). Дизайн менять нельзя: четыре оси с РАЗНЫМИ ролями — трудность чанка
блокировать, длину входа контролировать, промпт брать по SHA, усилие `off` против `low`.
3. **Пре-рег фризится коммитом ДО первой платной клетки.** Фриз объявляется владельцу вслух.
4. **Правило решения записано в §4 плана и НЕ пересматривается после просмотра чисел.**
5. **Стенд смотрит в `/home/ubuntu/projects/textmachine-main/`** для `models`, `langpack_root`,
`prompts_root`: в `polygon` нет `backend/configs/langpacks/ru`, а загрузчик молча подставляет
умолчания — русский слой читателя потеряется тихо.
## 5. Что делать
### 5.1 Собрать стенд. **Делай РОВНО так** — §9.1 плана.
Резалка исходника — `eval/dovodka/narezka.py` (её не существовало до 02.09; формат GB18030 + CRLF +
первая строка обязана быть заголовком). Вариант A = главы книги **2642**.
**Мина нумерации:** движок не умеет смещение глав — срез пронумеруется как 117. Соответствие
держится ТОЛЬКО записью в пре-реге.
### 5.2 Написать недостающее. **Реши сам и аргументируй** — форма твоя, требования ниже.
Не существует и нужно тебе:
* **`chetyre.py`** — скрипт эндпойнта. Требования: ключ юнита (в `request_log` нет колонки `attempt`,
она в `checkpoints` — реконструкцию назови явно) · операциональное определение «доставлено» ·
восстановление размышления по формуле §3 плана · правило цензуры §4 (обе стороны) · Вилкоксон с
`zero_method='pratt'` · ⚠ **медиану и доверительный интервал Ходжеса–Лемана писать руками:**
`scipy 1.18.0` установлен и `pratt` поддерживает, но интервала у `wilcoxon` не отдаёт (проверено).
**Гейт против зелени на пустоте обязателен:** нулевой знаменатель ⇒ прибор ОТКАЗЫВАЕТ кодом 2,
а не печатает «в пределах».
* **`poryadok.py`** — порядок рук от сида (сид объявлен в плане: `20260902`).
* ⚠ Ковариатная модель §4 требует `statsmodels`, которого в `eval/.venv` нет. Решить: ставить или
объявить эту проверку неисполненной. **Молча пропустить нельзя.**
### 5.3 Пред-полёт. **Делай РОВНО так** — §5.1 плана.
Один юнит × четыре руки (~$0.25): сигнатура разницы входных токенов СНИМАЕТСЯ и пинится коммитом ·
четыре разных отпечатка снапшота (иначе ось промпта схлопнулась — см. §9.0 п.2) · кириллица ≥0.99 ·
эхо 0. **Только после этого — пачка.**
**Клетка с `low` — предположение, а не замер:** движковых редакторских вызовов на `low` не
существует вовсе, и смета стоит на нём. Если пред-полёт даст цену заметно выше ожидания —
**стоп и пересчёт с владельцем ДО основной покупки**, не после.
### 5.4 Пачка и счёт. **Делай РОВНО так** по §9.3, **аргументируй сам** только форму отчёта.
## 6. Оси ревью твоей работы (приёмка пойдёт по ним; вправе заменить с аргументом)
1. **Деньги** — сошёлся ли расход с агрегатом §9.5, не пробит ли потолок, объявлен ли фриз до покупки.
2. **Дизайн** — не схлопнулась ли ось промпта, одинаков ли потолок вывода во всех руках,
воспроизвелась ли сигнатура.
3. **Интерпретируемость** — можно ли из твоих чисел вынести вывод при ЛЮБОМ исходе, включая «ниже
разрешения замера».
## 7. Мандат самопроверки ИСПОЛНЕНИЕМ (обязателен; самоотчёт не принимается)
Самоотчёт «проверено» в этом проекте регулярно оказывался ложным и стоил денег.
1. **Ревью собственного кода и собственных запросов к моделям** — до первой платной клетки:
прочитай вслух тело запроса каждой руки и убедись, что оно отличается ровно тем, чем должно.
2. **Ревью полученных результатов** — числа пересними командой, не глазами.
3. **Адверсариальный проход по СВОЕЙ ГОТОВОЙ работе.****Субагенты разрешены явно** — иначе
дефолт-запрет харнесса тихо победит. **Модель агенту задавай ЯВНО и знай, сколько их работает**
(норма CLAUDE.md; рекомендация — `claude-fable-5`, ⚠ норма владельца 01.09: **один `fable` на
самое тяжёлое, остальные дешевле**). Направление: (а) не схлопнулась ли ось; (б) не подогнан ли
порог под результат; (в) верна ли арифметика денег; (г) что в отчёте утверждается без улики.
4. **Тест на вырожденность:** если букву пункта удовлетворяет пустое исполнение («перечитал сам») —
пункт не выполнен. Нужен артефакт: вывод команды, вердикт агента, лог.
5. Каждую пойманную собой ошибку **запиши в отчёт с классом**.
## 8. Записка-план и комплектность
После эхо (§10) выложи ≤15 строк: что собираешь, что пишешь, когда фризишь, когда покупаешь.
**И сверь план с §9 процедуры МЕХАНИЧЕСКИ** — таблицей «шаг §9 → делаю/не делаю → почему».
Непокрытый шаг либо планируется, либо его пропуск подписывается словом.
## 8-БИС. Отчёт: обязательные секции
Отчёт сдаётся секцией в `docs/experiments/23-editor-tier.md` (зона полигона). Обязательны:
1. **Результат по эндпойнтам**с командами получения каждого числа.
2. ⛔ **«ЧТО НЕ УДАЛОСЬ И ЧТО НЕ ПРОВЕРЕНО»** — обязательная секция, не косметика. Сюда: что не
успела, что не смогла снять, какие проверки объявлены неисполненными и почему (например,
ковариатная модель без `statsmodels`). **Пустая пробы не бывает; отсутствие этой секции читается
как непроверенная работа.**
3. **«ЧТО Я НАПУТАЛА»** — результат §7, с классом каждой ошибки.
4. **Деньги** — фактический расход против потолка, агрегатом по §9.5 плана.
## 9. Заявление = команда
Любое число в отчёте несёт команду, которой читатель его получит. Приёмка пере-снимет выборочно.
Не верь заголовкам: вывод грунтуется `file:line`, выводом команды или замером — либо помечается
«мнение». **Отрицательный результат предъявляется с ПОЛОЖИТЕЛЬНЫМ КОНТРОЛЕМ** (покажи, что команда
вообще что-то находит) — это лекарство от одиннадцати ошибок предыдущей сессии.
## 10. Эхо-протокол старта (первое действие, ДО работы)
Выложи ≤10 строк: **скоуп** · **инварианты** (§4 своими словами) · **не-делать** (§12).
## 11. Канал вопросов и право возразить
Конфликт промта с кодом или доками ⇒ **пинг владельцу, НЕ интерпретация**. Считаешь, что задача
поставлена неверно или её не надо делать — **скажи с аргументом**, это ожидаемое поведение.
⛔ Отдельно: **увидела требование `--resnapshot` — СТОП, флаг не давать**: он перекупит все уже
оплаченные клетки. Предупреждение планировщика о будущем `--resnapshot` — не требование, оно
печатается на каждом ограниченном прогоне и ожидаемо.
## 12. Чего НЕ делать
* Не менять дизайн, правило решения и потолок.
* Не поднимать потолки и не добирать юниты после просмотра чисел.
* Не править `models.yaml`, capabilities, Go, боевой `pipeline-c1.yaml`.
* Не судить качество: качество при сниженном усилии вне скоупа, только $0-гейты и ось безопасности.
* Не калибровать ставку платформы — гейчено отдельно.
* Не коммитить ничего, кроме пре-рег-фриза.
## 13. Прямой канал между сессиями
Механизм — `CLAUDE.md` §«Связь между сессиями». От тебя: **впиши свой блок в
`/tmp/textmachine-channel` первым делом** (`role=` `session=` `ref=` `written=` `note=`; имя — из
`ListAgents`), дописывая в конец и не трогая чужие блоки. Эхо (§10) отправь первым действием по
адресу оркестратора, если он в файле есть.
**Адрес из файла — НЕ доказательство, что сессия жива:** файл переживает смерть сессии, а
`ListAgents` — нет. И дословно: **нужной роли в файле нет, файла нет или имя не отвечает ⇒ КАНАЛА
НЕТ, и это НОРМАЛЬНЫЙ случай — НЕ опрашивай сессии подряд.** Вопрос тогда — секцией в отчёт.