textmachine/docs/BACKEND_PACK13_QA_SESSION_PROMPT.md

28 lines
7.4 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.

# Промт бэкенд-сессии: ПАК-13 «выпускной QA» (дефект-классы D39.20 → механизмы)
**Статус: ВЫДАН 23.07.2026, оркестратор №7.** Источник скоупа — D39.20/D39.21 (`05-decisions-log.md`) + `rerun2/RERUN_REPORT.md` + два слепых ревью (дефект-классы). **Пак — WIRE-ДВИГАЮЩИЙ** (заголовки, юнит-политика, стайл-строки промпта): golden пере-капчерится структурно, итерация №2 пойдёт со свежим `--resnapshot` (драфт копеечный, $0.011). Координация: пак-12 (wire-нейтральный) лендится ПЕРВЫМ; зоны почти не пересекаются (12 = `internal/llm/`, 13 = чанкер/санитайзер/чекеры/рендер) — можно одной сессией подряд, 12 → 13.
## Онбординг
`CLAUDE.md` → CURRENT-STATE `PROGRESS.md``05-decisions-log.md` D39.20D39.21 → `rerun2/RERUN_REPORT.md` §6 + блайнд-ревью-дефекты (в D39.20) → `internal/pipeline/{chunker,sanitizer,checkers_zh_ru,cheapgates,render,memory}.go` + `internal/lang/`+`configs/langpacks/`.
**Живой дефект-корпус для приёмки:** `rerun2/export-{glm,mistral,dspro}.txt` (ВНЕ git, читать можно) — все известные дефекты там: `again` · «лять» · «войть» · «Вперди» · «глава клан» · огрызки « :» · «три часа» (三个时辰) · «тысячи» (千万) · «6,6» (六成六).
## Скоуп (7 пунктов)
1. **mined_delta-крэш фикс** (девиация №1 rerun2): терм дельты, уже существующий в сиде (`UNIQUE(book_id,src,sense,since_ch,until_ch)`, `store/migrate.go:202`) → сейчас плоский INSERT крэшит прогон. Фикс: валидация при загрузке дельты — пересечение с сидом → ГРОМКАЯ ошибка со списком дубликатов и подсказкой («правьте сид / уберите из дельты»); никакого тихого merge поверх подписанного сида. Тест на оба пути.
2. **Заголовок-политика**: структурные маркеры глав/разделов (第N节/第N章 — данные в langpack, НЕ хардкод, §0.1) детектятся чанкером и рендерятся ДЕТЕРМИНИРОВАННО шаблоном («Глава N») — модели заголовок не доверяем; санитайзер/CJK-strip НЕ должен съедать заголовки (dspro-арм потерял 第一/四/五节); огрызки « :» устранить. Приёмка: на rerun2-срезе все 5+5 заголовков рендерятся единообразно.
3. **Юнит-конверсия (D39.21-меры)**: политика «привычные единицы target-языка» — zh→ru: 时辰=2 часа, 半个时辰=час. Механика: (а) строка в драфт-промпт/глоссарий (wire), (б) детерминированный чекер: 时辰+число в исходнике ↔ часы в выводе, конверсия ×2 не сошлась → флаг. Данные единиц — в langpack.
4. **Число-масштабы**: расширить число-дрейф-чекер: разряды 千万/数十万/亿 (маппинг масштабов, не только литеральные числа) + 成-проценты (六成六=66%). Приёмка: ловит «тысячи»↔千万 и «6,6»↔66% из rerun2.
5. **Broken-word / latin-residue чекеры**: (а) латинские остатки в ru-выводе (`again`) — дешёвый детектор с allowlist (аббревиатуры/цифры); (б) сломанные словоформы («лять», «войть», «Вперди», «глава клан» [сущ.+сущ. без согласования — детектор по паре голых номинативов?]) — сессия исследует ДЕШЁВЫЙ детектор без тяжёлых зависимостей (никакого hunspell/pymorphy — дефолт-B D39.12); честно доложить достижимый recall. Приёмка: все перечисленные живые дефекты rerun2 ловятся, 0 FP на чистых главах экспортов.
6. **Аудит полноты банк-инъекции (директива владельца D39.21)**: трассировать, какие поля банка (gender/decl/тип/алиасы/sense) РЕАЛЬНО доходят до драфт- и edit-wire, а какие теряются (`memory.go` renderGlossaryBlock/editorConstraintHeader-путь). Отчёт-таблица «поле → драфт-wire? edit-wire? где теряется (file:line)» + фикс ОЧЕВИДНЫХ дыр (gender-аннотация именных терминов — род «гу Надежды»/«цикады» должен доезжать); спорное — НЕ чинить, в отчёт оркестратору.
7. **Стайл-канон в промпт (D39.21)**: строки стайл-гайда в драфт/edit-промпт (пер-пара, langpack/промпт-пак): generic «гу» — средний род · стихи/названия классики — переводом смысла · 资质=«талант» (в чекер-словарь: «ресурсы» при 资质 в исходнике → флаг). Формулировки — данными пары, не кодом.
8. **Дефолт-редактор прод-конфига → deepseek-v4-pro (D39.22)**: базовый pipeline-конфиг едет на dspro-редактор (glm-5 остаётся арм-файлом-резервом); floor min_max_tokens 8000 и thinking-ON (эхо-класс deepseek) — из models.yaml, не переопределять.
## НЕ делать
Род-enforce реплик (промпт/банк-рычаг, не чекер) · hunspell/pymorphy-зависимости · рефакторинг чанкера сверх заголовков · GLM overflow-гард (ждёт вендора) · сид-правки (元-корень/春秋蝉 — решения владельца, оркестратор внесёт отдельно).
## Приёмка (ревью ИСПОЛНЕНИЕМ, мандат 12.07)
`go build/vet/test -race` зелёные · **майнер-парити EXACT неизменен** · golden: пере-капчер ОЖИДАЕТСЯ (wire-двигающий пак) — классифицировать диф (какие изменения от чего; wire-нейтральные пункты 1/4/5/6-аудит НЕ должны двигать wire) · **дефект-корпус rerun2: каждый известный дефект пойман, 0 FP на чистом** (таблица в отчёт) · самопроверка + адверсариальный селф-ревью (3 линзы: детерминизм/langpack-общность/FP-цена). Отчёт — `docs/archive/reports/PACK13_QA_REPORT_<дата>.md`, с file:line. Сессия НЕ коммитит — лендит оркестратор.