textmachine/docs/ACCEPTANCE_SESSION_PROMPT.md

46 lines
8.9 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)
Скопируй в новую сессию Claude Code в `/home/ubuntu/projects/textmachine`. **Предусловие: чистое дерево** (пакет №4 залендён; `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 = **glm-5** (D20.3: чистого xAI-ключа нет; grok-4.3 НЕ гонять на книжном контенте текущим ключом — гигиена D8/D19.4); 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-пропорции).** Полный цикл: ingest → прогон → паспорта → верификация ниже. По итогам — промежуточная запись в PROGRESS с деньгами/flag-rate и **СТОП: подтверждение владельца на полный прогон** (полная книга 2283 главы ≈ $2555 по модели — это его согласие на трату, Р6).
- **Этап B — полная книга** (после «да» владельца, с его потолком). Ночной прогон под супервизором (`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; в отчёте цифры и короткие иллюстрации, не тексты глав. Ничего не коммитить.