textmachine/docs/ACCEPTANCE_SESSION_PROMPT.md

56 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 — ПЕРЕ-ПРОГОН 25 глав кандидат-конфигом → этап B (2026-07-12, D30.9)
> **Предусловие запуска (все ПЯТЬ, иначе стоп и пинг оркестратору):** (1) бэкенд-пакет D15.2 **этап А** залендён (билингв-редактор D30.1 + reflow D30.2 + output-санитайзер D30.3 + новый golden — D33, коммит 00f8e36) **+ 2 обязательных фикса санитайзера (D33.1: хвостовая утечка «Основные правки для справки»; false-positive «около колонны»/«стало талой») залендены с golden re-capture**; (2) **переводчик пере-прогона = deepseek-v4-flash СОХРАНЁН** (exp13/D32 — pro отклонён; escalate_to=pro без изменений); (3) сид v2 финализирован, спорные термины + род «гу» подписаны владельцем (D32/`diag/glossary_v2_signoff.md`); (4) `escalation.budget_usd>0` в c1 (D22.11 — иначе echo-эскалация не стреляет); (5) **единый resnapshot выполнен** (промпты+editor-модель+санитайзер-фикс+сид v2 — всё в один снапшот; это НЕ дубль оплаты этапа A, а новый снапшот по ратифицированной смене поведения). Чистое дерево (`git status`; в дереве часто ДВЕ живые сессии — чужие правки не трогать).
---
## Кто ты и что делаешь
Ты — **приёмочная сессия Ф1**. Этап A (draft deepseek → editor glm-5 **моно**) выполнен и ратифицирован (D24), но чтение владельцем дало «нечитаемо» → диагностика exp12 (D30) вскрыла 4 дефекта и ратифицировала фиксы. Твоя задача сейчас — **пере-прогнать те же 25 глав кандидат-конфигом и проверить, что (а) инфраструктурные инварианты этапа A держатся на новом снапшоте, (б) качество стало читаемым** (арбитр читаемости — владелец; ты готовишь замер и сэмплы). После «читаемо» + «да» владельца — **этап B (срез ~300 глав)**.
Зона: `backend/` (только фиксы найденных багов, с тестами) + своя секция `docs/PROGRESS.md` «## Приёмка Ф1». **Ничего не коммитить** — лендинг оркестратора. Гардрейлы `CLAUDE.md` жёсткие: `.env` не читать; книга и ВСЕ производные (store.db, выходы, отчёты с цитатами) — ВНЕ git; 18+ уровень 3 — не обрабатывать; никаких деструктивных git-операций; стейджинг оркестратора пофайловый.
## Онбординг (~40 мин)
1. `CLAUDE.md` → CURRENT-STATE в `PROGRESS.md`**`02-mvp-plan.md §Приёмка Фазы 1 (v3.2)`** (твой чек-лист).
2. `05-decisions-log.md` (карта актуальности сверху): **D30** (флип D1, reflow, санитайзер, exp13, дорожка D30.9), **D24** (итоги этапа A — методология чек-листа), **D24.2** (alias-слепое пятно в методику D10), **D28.1** (post-check precision/recall-трейдофф), D10/D1.1 (консистентность/оговорка верности), D2/D12 (диспозиции/redrive), D25.1 (release-state — если строишь reader-экспорт).
3. `backend/README.md` (инварианты, golden-гард, как гонять) + `00-provider-quirks.md` (шапка + строки редактора БИЛИНГВ/санитайзер) + `08-cost-model-v2.md` (читать через D30.4: ~$0.85/ранобэ).
4. Материал: книга `/home/ubuntu/books/gu-zhenren/guzhenren-gb18030.txt`; **сид v2** (финализирован exp13); кандидат-конфиг пере-прогона (собран из пакета D15.2 + переводчик exp13).
## Конфигурация пере-прогона (по контракту, не по вкусу)
- **Стадии:** draft = **переводчик-победитель exp13** (интерим deepseek-v4-flash, thinking ON) → editor = **БИЛИНГВ (D30.1), кандидат glm-5-билингв** (gemini — премиум-эскалация ТОЛЬКО за санитайзером, течёт преамбулой; grok reasoning-off НЕ ставить — no-op); output-санитайзер включён; reflow-промпты (без «Сохраняй разбивку на абзацы»); сид v2.
- **Деньги:** `escalation.budget_usd > 0` (echo-эскалация); потолок книги/дня из этапности; ledger-числа сверять с D30.4 (~$0.85/ранобэ — не с до-флиповым exp08 $0.69).
- Гейты — дефолт конфига; санитайзер в вердикт-оси. Промпты/пороги менять НЕЛЬЗЯ (это уже сделано пакетом D15.2 — ты гонишь готовый снапшот).
## Этапность (деньги по нарастающей, с чекпоинтом владельца)
- **Этап пере-прогона — те же 25 глав** (~$0.40.6). Полный цикл: ingest → прогон → паспорта → верификация ниже → **сэмплы владельцу** → СТОП: чтение владельца (арбитр читаемости) + «да» на этап B + потолок.
- **Этап B — срез ~300 глав** (после «да», ~$5). Ночной прогон под супервизором (`tmctl` перезапускается — D4/D12); resume обязан подхватывать.
## Что верифицировать (чек-лист, каждое — исполнением)
**A. Инфраструктура держится на НОВОМ снапшоте (регресс-проверка этапа A):**
1. **Деньги:** `committed == SUM(checkpoints)` на живом прогоне; **настоящий kill -9** посреди прогона → resume без переоплаты байт-идентичных запросов; искусственно низкий `budget_usd` → честный стоп (committed+reserved), возобновление после поднятия.
2. **Гейты/диспозиции:** echo-эскалация стреляет и ре-гейтится; refusal/empty/**санитайзер** → flag+skip+continue, мусор в TM не коммитится; flagged → `tmctl redrive` (на реальном флаге); `tmctl status` живой (OpenReadOnly).
3. **Санитайзер (новый, D30.3):** проверь, что он ловит классы exp12 (сервис-преамбула gemini, битые словоформы, латиница-врезки, markdown-`###`) и НЕ даёт ложных на чистом тексте; счётчик срабатываний в паспорт.
**B. Качество стало читаемым (главная цель пере-прогона):**
4. **Re-gate верности (ОБЯЗАТЕЛЕН — D30.1):** билингв-редактор мог купить гладкость ценой смысла. Span-цитирующий судья reasoning-ON (раздельно стиль/верность) + ручная охота на **класс инверсий правки** (exp12: A2 внёс «пожертвуй мной», «молва считал» — которых в черновике не было). «Гладко-неверное» не должно пройти молча (D1.1). Скаляр-судьи без спанов НЕ использовать (урок exp12).
5. **Консистентность D10 ≥98%** по процедуре Р7/D10 — **методику приложи СКРИПТОМ** в артефакты (числа этапа A третьей стороной не воспроизводились — D24); учти **alias-слепое пятно** (D24.2: вложенный алиас внутри longest-match полного имени невидим флаггеру — гл.18/0 蛊真人); D10-флаггер теперь осмыслен (сид v2 + post-check union D24.4).
6. **Вёрстка:** замерь консистентность репараграфизации после reflow (D30.2) — 1:N на диалоге норма (Розенталь), описательное слияние слабее; парность абзацев src↔dst (метод research/16 §0 — пиновать определение абзаца).
7. **Сэмплы владельцу:** слепые/удобочитаемые пакеты (тот же monitor-паттерн exp12, вне хостинга — копирайт) — оригинал + новый перевод + опционально старый этап A для контраста.
**C. Прочее:**
8. Ноль молчаливых потерь глав (spine); паспорта/`status --json`; **echo-rate чекпоинт**: замерь cjk_artifact-долю и сверь с прайором книги ~25% (exp10/D18) и 3.5% этапа A — расхождение в отчёт; контроль эскалаций после флора D24.3 (length-хопы должны проходить ре-гейт).
9. Санити стоимости против D30.4 (~$0.85/ранобэ; билингв-вход +60% токенов редактора — не подгоняй под старый $0.69).
## Дисциплина находок
Баги чинить можно (зона твоя): фикс = минимальный + тест (mutation-verified); **golden обязан остаться бит-в-бит** — если фикс меняет wire/вердикты, это НЕ багфикс, а изменение поведения → СТОП и пинг оркестратору (golden сам не обновляй). Правки промптов/конфиг-семантики запрещены (это зона пакета D15.2). Провайдерские странности — правило двух направлений (вендор-дока, не гадание).
## Deliverable
1. Запись `PROGRESS.md` «## Приёмка Ф1»: таблица чек-листа (пункт → как проверено → результат), деньги этапов, **re-gate верности (span-цитаты)**, консистентность D10 с методикой-скриптом, вёрстка, echo-rate, санитайзер-счётчики, баги+фиксы, **вердикт: читаемо / не читаемо + инфра-инварианты держатся/нет**.
2. Сэмплы владельцу (monitor-пакет) + вопросы владельцу отдельным блоком (этап B: да/нет/потолок — после чтения).
3. Производные — вне git; в отчёте цифры и короткие иллюстрации (≤15 слов), не тексты глав. Ничего не коммитить.