diff --git a/docs/POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md b/docs/POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md new file mode 100644 index 0000000..a5184e3 --- /dev/null +++ b/docs/POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md @@ -0,0 +1,75 @@ +# Промт: полигон-сессия — exp15: эмпирика сегментации/когезии/контракта t-e по research/19 §D (2026-07-16) + +> Исполняет **пре-регистрированный дизайн research/19 §D (Q0–Q5)** — дизайн-оф-рекорд трека B (D39.1). +> Этот промт — оркестровка исполнения; сам дизайн НЕ пересочинять: армы/метрики/дерево решений — в +> `docs/research/19-chunking-cohesion.md` §D0–D5 (+§B для контекста дизайна, §C для Q4-армов). +> Отчёт: `docs/experiments/15-segmentation-empirics.md`. Зона: `eval/` + `docs/experiments/`. НЕ коммитить +> НИЧЕГО, кроме пре-рег фриза (см. ниже — его коммитишь ДО первого платного вызова); лендит оркестратор. + +## Решения владельца, вшитые в исполнение (16.07 — НЕ пересматривать) +1. **Бюджет: жёсткий кап $15 на весь пакет** (ключи D36.1; Gemini ~€2.6 — аддитивный thinking, судейские + семьи выбирать с учётом). Точные капы и бюджет судей (trap-N × повторы × 2 порядка × ≥2 судьи) + пересчитать в пре-реге с live-ценами; per-call predicted-cost кап ДО каждого вызова; стоп-гейт после + каждого Q (порядок ниже). +2. **Пол персонажа в схеме сида — ОДОБРЕН.** Построй детерминированный транспорт (паттерн + `exp14b_reseed_promote`: идемпотентный, байт-стабильный, пре-снапшот + лог): поле `gender` + (m/f/hidden/n-a) для персонажных записей сида. **Наполнение — на подпись владельца** (approved-инвариант; + спорные — draft). T-gen-трапы и стейт-армы Q3a′ используют это поле; если подпись не успевает до + Q3a′ — арм честно помечается «стейт без пола», НЕ имитировать. +3. **CJK-глоссы в скобках — СОХРАНЯТЬ (решение владельца).** Скоринг эмпирики НЕ штрафует как CJK-утечку + сбалансированный Han-в-скобках сразу после кириллического терма («Кулак Ло Ханя (羅漢拳)») — детектор + скоринга обязан этот класс исключать. (Бэкенд-whitelist — фикс-лист пак-2, не твоя зона.) +4. **W1.5-гейт (человеческая подпись между волнами) — решается ПОСЛЕ Q3** — на дизайн армов не влияет. + +## Пре-рег ФРИЗ (первый коммит, ДО первого платного вызова — дисциплина D30.10/D37) +Фриз-файл (§1 отчёта) пинит: армы/метрики/пороги/дерево решений (из §D дословно + твои конкретизации), +капы и live-цены, судейские семьи и модель-майнер трапов (исключается из судейского пула и не совпадает +семьёй с арм-моделями), **хеш коммита бэкенда (текущий HEAD ≥ `d3f6b34` — пак-1 залендён: memmatch-v4, +sanitizer-v5, pair-сеам), хеш сида-снапшота, sha256 промт-файлов (`translator.md`/`editor.md` v3), конфиг +инъекции** — грязный A0 испортил бы все контрасты; любое изменение после первого платного вызова = новый +experiment-ID. ⚠ Якорь A0 воспроизводит прод-инъекцию ПО ТЕКУЩЕМУ коду (trust-gated matcher!), не по +памяти exp14 — реконструируй из `retrieval_state.injected_ids` свежего среза или таргетным портом с +пометкой «при расхождении верить Go». + +## Порядок и стоп-гейты (из §D2/§D4) +**Q2b ($0, ре-атрибуция sizecurve) → Q1+Q3a/Q3b (несущие, S2) → Q2a/Q2c → Q4a/Q4b/Q4c → Q0 (обязателен, +дёшев — скоринг do-nothing).** Стоп при исчерпании бюджета легитимен (пре-рег фиксирует приоритет), но +стоп после Q2b НЕ закрывает центральный конфликт. Двойной якорь A0↔A0′ на S2 (floor шума) — обязателен +до интерпретации любого Q. + +## Материал и трапы (из §D0/§D1 — исполнить как написано) +Корпус S1–S4 билдерами (`gu/ja/en/jpm_corpus_build`, `webnovel_slice`); платные армы — ТОЛЬКО S1/S2 +(zh→ru); S3/S4 — $0 чанкер-профилирование (инвариант общности §0.1); структурный профиль каждого среза — +в отчёт ДО прогона (срез обязан задействовать рычаг — урок полигон-синка). Трап-набор: 8 типов §D1, +несущие ≥20 (T-ana/T-ent/T-tense), остальные ≥10; стратификация по дистанции антецедента; **общий +знаменатель контраста** (пересечение границы в арме = ковариата, НЕ фильтр); ожидаемое поведение каждого +трапа записано до прогона. Недобор → домайнить или пометить «Q недоказуем a priori» ДО платных вызовов. + +## Метрики/агрегация (из §D3 — исполнить как написано) +Reflow-инвариантный omission (валидируется на вручную вычитанном whole-chapter выходе ДО скоринга армов); +детерм. KPI ($0); **карта независимости сигналов** (метрики с общим драйвером длины = ОДИН сигнал); +span-судьи ≥2 кросс-семейных, temp 0, оба порядка, 6→10 голосов при расколе, leave-one-judge-out, +катастроф-скрин к победителю; fidelity-first; парные по-главные разности; один первичный контраст на Q + +Holm-Bonferroni; слепые пакеты владельцу; человеческий эндпоинт гейтит. + +## Прep-задачи (до платных вызовов, вместе с фризом) +1. **⚠ DeepSeek-слаги до 2026-07-24** (research/19 §E.8): оф. дока депрекейтит `deepseek-chat`/`-reasoner` + 24.07; конфиг на `deepseek-v4-flash/pro` вероятно не задет — грепни eval-скрипты + live `/models` + фактчек (правило двух направлений); находки — в `00-provider-quirks.md`-пинг оркестратору. +2. **⚠ Вендор-чек префикс-кэша ZAI/GLM** (§E.8-бис): оф. дока z.ai/bigmodel.cn; вся кэш-экономика + Q2c/warm-then-fan условна на нём. Не верифицируется → Q2c-стоимости репортить as-billed only, без + cache-normalized колонки. +3. Gender-транспорт сида (решение №2 выше) + лист спорных владельцу. + +## Дисциплина (жёстко) +- **Мандат самопроверки (CLAUDE.md):** ревью ИСПОЛНЕНИЕМ своего кода + сформированных запросов + результатов + в КАЖДОМ скрипте; каждый платный скрипт персистит usage/cost (D30.10). Полигон дважды собирал ложную + сходимость (D32.4) и один раз «0 ошибок»=36 (D37) — лови себя. +- Все выходы/артефакты — ВНЕ git (`/home/ubuntu/books/gu-zhenren/exp15/`); `.env` не читать; 18+ корпус — + только через существующие билдеры/счётчики; бэкенд НЕ трогать (0 правок; порт-зеркала — только в своей + зоне с пометкой «верить Go»); батчи НЕ коммитить (фриз — единственный твой коммит). +- Реюз $0 (из §D4): `exp14/sizecurve/*`, `A-ref-prev/both`, `material.json→trap_chunks`, exp14b-батарея, + 25-глав `records.json` (калибровка фертильности B1.2 — попутный deliverable чанкер-спеке). +- Отчёт: §1 фриз · §2 профили срезов + трап-леджер · §3 результаты по Q (первичка/вторичка раздельно) · + §4 дерево решений §D5 применённое · §5 деньги · §6 самопроверка + отклонения от пре-рега (если были — + явно). Слепые пакеты владельцу — отдельно (`exp15/monitor/`). diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index f8fb01a..837b9e0 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -80,7 +80,7 @@ ## Оркестратор №6 — трек A пак-1 залендён (D39.2, `d3f6b34`), 2026-07-16 -Бэкенд исполнил T1–T4; **верификация прямая, исполнением** (мандат): build/vet/race-тесты зелёные (прогнал сам), golden-детерминизм PASS, пиновые тесты вербозно, несущие диффы прочитаны построчно, **golden re-capture воспроизведён независимо** (маскированный структурный дифф = 0 расхождений — только хеши/версии/2 новых пустых поля). ⚠ **Мульти-агентный второй рубеж 3× упал на API-529 — зарегистрирован ДОЛГОМ** (по восстановлении API; находки → фикс-лист пак-2, маршрут D37). Залендено: **терм-дрейф закрыт в КОДЕ** (trust-gated suppressor, memmatch-v4, громкий retrieval_state) · export-contract нормализация каждого финала (width.Fold, не NFKC — тот калечит «…»/«№») · **pair-keyed промпт-сеам** (fail-loud на не-zh-ru; `Book.LangPair()` ожил) · реестр role→инъекция · target-gated readability · `tmctl report` (детерм. quality-KPI). Снапшот: memmatch-v4+sanitizer-v5 → плановый единый resnapshot (и так требовался D38.5). Открытое → D39.2 (полигон-экспорт-поверхность ДО пере-прогона; CJK-глоссы — владельцу; билингв src→dst; ja-пример). Разбор — D-лог **D39.2**. Дальше: промт полигон-эмпирики по research/19 §D. +Бэкенд исполнил T1–T4; **верификация прямая, исполнением** (мандат): build/vet/race-тесты зелёные (прогнал сам), golden-детерминизм PASS, пиновые тесты вербозно, несущие диффы прочитаны построчно, **golden re-capture воспроизведён независимо** (маскированный структурный дифф = 0 расхождений — только хеши/версии/2 новых пустых поля). ⚠ **Мульти-агентный второй рубеж 3× упал на API-529 — зарегистрирован ДОЛГОМ** (по восстановлении API; находки → фикс-лист пак-2, маршрут D37). Залендено: **терм-дрейф закрыт в КОДЕ** (trust-gated suppressor, memmatch-v4, громкий retrieval_state) · export-contract нормализация каждого финала (width.Fold, не NFKC — тот калечит «…»/«№») · **pair-keyed промпт-сеам** (fail-loud на не-zh-ru; `Book.LangPair()` ожил) · реестр role→инъекция · target-gated readability · `tmctl report` (детерм. quality-KPI). Снапшот: memmatch-v4+sanitizer-v5 → плановый единый resnapshot (и так требовался D38.5). Открытое → D39.2 (полигон-экспорт-поверхность ДО пере-прогона; CJK-глоссы — владельцу; билингв src→dst; ja-пример). Разбор — D-лог **D39.2**. **Решения владельца (16.07, пост-D39.2):** бюджет §D-эмпирики ≤$15 ✅ · поле gender в схеме сида ✅ (транспорт+подпись — в exp15-преп) · **CJK-глоссы СОХРАНЯТЬ** (против текущего стрипа → whitelist в фикс-лист пак-2; скоринг exp15 глоссы не штрафует) · W1.5-гейт — решить после Q3. **Промт exp15 ВЫДАН:** `POLYGON_SEGMENTATION_EMPIRICS_SESSION_PROMPT.md` (исполнение research/19 §D: пре-рег фриз пинит бэкенд-HEAD/сид/промты; Q2b→Q1+Q3→Q2a/Q2c→Q4→Q0; преп: DeepSeek-слаги до 24.07, вендор-чек кэша ZAI/GLM, gender-транспорт). ## Компоненты единого resnapshot залендены (D38.5), 2026-07-12