textmachine/docs/ACCEPTANCE_SESSION_PROMPT.md

51 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Промт: приёмочная сессия Фазы 1 — 蛊真人 zh→ru end-to-end (2026-07-10; ред. 11.07 — этап B)
> **⟶ ⚠ ЭТАП B ЗАМОРОЖЕН (D26, 11.07):** владелец прочитал 25 глав — качество нечитаемо; сначала диагностика exp12 и читаемый конфиг на 25 главах (пере-прогон выигравшим конфигом), только потом B. Предусловия ниже пополняются четвёртым: **«читаемый конфиг ратифицирован (пост-exp12 D-блок)»**.
>
> **⟶ Статус (11.07, D24): ЭТАП A ВЫПОЛНЕН и ратифицирован** (25 глав, $0.41, вердикт с оговорками — отчёт в PROGRESS «## Приёмка Ф1», ратификация D24). **Следующий запуск этой сессии = ЭТАП B**, скоуп переопределён владельцем: **срез ~300 глав** (НЕ полная книга), проекция ~$4.96. **Предусловия этапа B (все три, иначе стоп):** (1) бэкенд-мини-пакет №5 залендён (floor max_tokens D24.3 + post-check D24.4 + новый golden); (2) сид обогащён мн.ч. (полигон-пакет №4 п.1); (3) явное «да» владельца + потолок (`book_usd` — рекомендация ≈7). Прогон — свежий resnapshot (фиксы меняют wire и вердикты; этап A не переоплачивается — это новый снапшот по ратифицированной смене поведения). Редактор — glm-5, как в этапе A (сравнимость; D20.3).
> **Дополнительно к чек-листу на этапе B (D24.5):** (а) **echo-rate чекпоинт**: замерь cjk_artifact-долю на ~680 чанках и сверь с прайором ~25% (exp10/D18) и 3.5% этапа A — расхождение в отчёт; (б) **контроль эскалаций после флора**: length-класс хопов должен начать проходить ре-гейт (cjk_artifact-класс гл.1 останется — интринсик); (в) перегенерируй **parallel-экспорт** (на этапе A остался stale для спасённого ch1/4); (г) методику D10-пересчёта приложи **скриптом** в артефакты (числа этапа A третьей стороной не воспроизводились — D24); (д) D10-флаггер теперь осмыслен (сид+код починены) — жду фактический confirmed-miss-rate против ≥98%.
Скопируй в новую сессию Claude Code в `/home/ubuntu/projects/textmachine`. **Предусловие: чистое дерево** (`git status` — если в `backend/` чужие незакоммиченные правки, стоп и пинг владельцу).
---
## Кто ты и что принимаешь
Ты — **приёмочная сессия Фазы 1**: прогоняешь реальную книгу end-to-end и выносишь вердикт по критериям приёмки. Приёмка — **инфраструктурная веха** (деньги/resume/гейты/консистентность; художественное качество меряет пилот Ф2.5 — не ты). Зона записи: `backend/` (только фиксы найденных багов, с тестами) + своя секция в `docs/PROGRESS.md` («## Приёмка Ф1»). **Ничего не коммитить** — лендинг у оркестратора. Гардрейлы `CLAUDE.md` жёсткие: `.env` не читать (ключи сорсятся скриптами/командами); книга и ВСЕ производные (store.db, выходные тексты, отчёты с цитатами) — ВНЕ git; 18+ уровень 3 — не обрабатывать (в 蛊真人 его нет — корпусные аудиты чисты, но правило в силе); никаких деструктивных git-операций.
## Онбординг (~40 мин)
1. `CLAUDE.md` → CURRENT-STATE в `docs/PROGRESS.md`**`docs/architecture/02-mvp-plan.md` (критерии приёмки Ф1 — твой чек-лист)**.
2. `docs/architecture/05-decisions-log.md`: **D18** (книга/скоуп), **D10** (знаменатель консистентности = ВСЕ approved-термины, порог 98%), **D11** (приёмка по стоимости = механизм budget_usd + точность телеметрии, жёсткие $-гейты СНЯТЫ; sanity — пропорции exp08), **D20.3** (glm-5-редактор допустим), **D22.11** (`escalation.budget_usd>0` ОБЯЗАТЕЛЕН), D2/D12 (диспозиции, паспорта, redrive).
3. `backend/README.md` (инварианты, golden-гард, как гонять) + `docs/experiments/00-provider-quirks.md` + `08-cost-model-v2.md` (ценовая модель для сверки).
4. Материал: книга `/home/ubuntu/books/gu-zhenren/guzhenren-gb18030.txt` (GB18030; smoke дал 2283 главы / 5088 чанков), сид `/home/ubuntu/books/gu-zhenren/guzhenren-seed.yaml` (49 записей, финализирован D19.3/D22: 白凝冰 gender=hidden).
## Конфигурация прогона (по контракту, не по вкусу)
- **Стадии:** draft = deepseek-v4-flash (thinking ON — эхо-мина; temperature там wire-no-op — известно, не чинить) → editor = **по итогам exp12/D26-ратификации** *(ред. 11.07: ограничение «grok не гонять текущим ключом» СНЯТО — D27; glm-5-замена D20.3 больше не вынуждена)*; draft `escalate_to` = deepseek-v4-pro (заведён пакетом №3).
- **Деньги:** `escalation.budget_usd > 0` (иначе echo-эскалация не стреляет — D22.11); потолок книги/дня выставить из этапности ниже; ledger-числа сверять с exp08-пропорциями.
- Гейты — дефолт конфига (coverage zh-ru коридор [2.2,4.2]; postcheck-гейт OFF — флаги пишутся; cheap-gates как наблюдаемость). Промпты/пороги НЕ менять (правка промпта = resnapshot = переоплата — D15; анти-эхо правки гейтятся отдельно D21.6).
## Этапность (деньги — по нарастающей, с чекпоинтом владельца)
- **Этап A — срез 25 глав (~$0.30.6 по exp08-пропорции).** ✅ ВЫПОЛНЕН 10.07 ($0.41, D24). Полный цикл: ingest → прогон → паспорта → верификация ниже; промежуточная запись в PROGRESS; СТОП-чекпоинт владельца.
- **Этап B — срез ~300 глав** *(ред. 11.07: скоуп переопределён владельцем, НЕ полная книга; ~$4.96 по факту этапа A)* — после «да» владельца, с его потолком, на новом снапшоте (предусловия в шапке). Ночной прогон под супервизором (`tmctl` перезапускается — D4/D12); resume обязан подхватывать.
## Что верифицировать (приёмочный чек-лист, каждое — исполнением)
1. **Деньги:** `committed == SUM(checkpoints)` на живом прогоне; **kill -9 посреди этапа A** (настоящий SIGKILL) → resume без переоплаты байт-идентичных запросов; потолок: искусственно низкий `budget_usd` → прогон останавливается ЧЕСТНО (committed+reserved), возобновляется после поднятия.
2. **Гейты/диспозиции в бою:** echo-эскалация реально стреляет и ре-гейтится (deepseek-эхо ~25% на этой книге — exp10); refusal/empty → flag+skip+continue, мусор в TM не коммитится; flagged-чанки переатакуются `tmctl redrive` (продемонстрируй на реальном флаге); `tmctl status` живой во время прогона (OpenReadOnly, пакет №4) — паспорта глав/N из M/деньги.
3. **Консистентность (D10):** по завершении — замер: числитель = вхождения approved-dst (лемма по decl), знаменатель = вхождения src/алиасов ВСЕХ approved-терминов; порог **≥98%**; names-only — как под-метрика. Отчёт: где промахи, класс (инъекция не сработала / модель проигнорила / decl).
4. **Телеметрия/паспорта:** `report`/`status --json` — chunks ok/flagged/skipped, worst reason, вердикты pass|attention|fail, $/глава; **первый замер G2**: flag-rate на главу на реальной книге (стратревью §8.10 — ёмкость человеческой петли).
5. **Санити стоимости:** $/глава и доля редактора против exp08-модели (~90% стоимости на редакторе; glm-5 дешевле grok — пересчитай ожидание честно, не подгоняй).
6. **Стиль-флаггеры:** счётчики по книге (наблюдаемость), примеры срабатываний БЕЗ длинных цитат книги в git-доки.
## Дисциплина находок
Баги чинить можно (зона твоя), но: фикс = минимальный + тест (mutation-verified где применимо); **golden-гард обязан остаться бит-в-бит** — если фикс меняет wire/вердикты, это НЕ багфикс, а изменение поведения → СТОП и пинг оркестратору (не обновляй golden сам); правки промптов/конфиг-семантики — запрещены. Всё странное от провайдеров — правило двух направлений (вендор-дока, не гадание — шапка quirks).
## Deliverable и приёмка сессии
1. Запись в `docs/PROGRESS.md` («## Приёмка Ф1»): таблица чек-листа (пункт → как проверено → результат), деньги этапов (committed/reserved/потолки, $/глава, доля стадий), консистентность D10 с разбором промахов, G2 flag-rate, список багов+фиксов, **вердикт: критерии 02-mvp-plan выполнены / не выполнены / выполнены с оговорками**.
2. Вопросы владельцу — отдельным блоком (включая «этап B: да/нет/потолок» после этапа A).
3. Производные книги (store.db, выходы, срезы) — вне git; в отчёте цифры и короткие иллюстрации, не тексты глав. Ничего не коммитить.