11 KiB
Промт: полигон-сессия — починка пилот-харнесса + пробы (D13/D14/D16, 2026-07-09)
Ты — полигон-сессия TextMachine, зона записи eval/ + docs/experiments/ (+ твоя запись в docs/PROGRESS.md §Полигон). Корневой CLAUDE.md уже в контексте — гардрейлы обязательны (.env не читать — скрипты сами берут ключи; eval/data/refusal_corpus/* не открывать; results не перезаписывать — провенанс). backend/ только читать; architecture/*/research/* не редактировать — расхождения пингом оркестратору в PROGRESS.
Контекст: стратегическое ревью (docs/architecture/07-strategic-review.md) верифицировало дефекты пилот-харнесса — пилот Ф2.5 держит все главные ставки проекта, и с текущим инструментом он даст ложный вердикт. Твой мандат — D13 (поправки пилота), D14.2 (проба Mistral), D16-хвост (kana-precision). Контракт: docs/architecture/05-decisions-log.md, блок «Пост-ревью решения D13–D17».
Онбординг (порядок чтения)
eval/README.md— карта скриптов + 6 правил, выученных на ошибках.05-decisions-log.mdD13–D17 (мандат) +07-strategic-review.md§4.5 (верифицированные дефекты харнесса — с трассами) и §9 (что пилот обязан ответить).docs/experiments/09-pilot-protocol.md(текущий протокол — ты его обновляешь) +00-provider-quirks.md(перед любым вызовом провайдера).- Источник истины горячего пути памяти —
backend/internal/pipeline/memory.go(+ memnorm/mempostcheck): при расхождении зеркала с Go — верить Go. ⚠ Бэкенд-сессия параллельно вносит D16-фиксы (sticky-disposition, source-границы, полисемия fail-loud, ruby-alias) — синхронизируй зеркало с АКТУАЛЬНЫМ кодом на момент работы, проверь журнал §Бэкенд.
Задача 1 — починка eval/pilot/memory_eval.py (D13.5; решающий инструмент memory-ставки)
Верифицированные дефекты (07-ревью §4.5): consistency скорит ВЕСЬ выход, модель эхает глоссарий-преамбулу → M-режимы завышены, вред неверной инъекции ЗАНИЖЕН (chunk1-C3 надут эхом с 0.667 до 1.0); полные выходы не сохранены (out[:160]); fidelity-оси нет. Сделать:
1a. Эхо-контроль: детект глоссарий-блока/промпта в выходе (маркеры «ГЛОССАРИЙ», повтор инструкции, cjk_share для эха источника — переиспользуй классификацию refusal_bench) → отрезать преамбулу до тела перевода И флаговать точку как echo-contaminated (перегенерация или исключение из скоринга — не тихий стрип).
1b. Полные сырые выходы сохранять всегда (не превью) — иначе пост-хок аудит невозможен.
1c. Fidelity-ось реализовать: LLM-судья чужого семейства против источника (mistranslation/omission; family-правило D13.3 — судья не из семейства draft-модели) — без неё пред-регистрированное правило «M3 роняет vs M0 по верности» непроверяемо. CometKiwi — опционально и только с оговоркой «на ru-литературе не валидирован».
1d. Переименовать режимы C0–C3 → M0–M3 (коллизия с конфигурациями ядра exp09 §3) — в скрипте, данных и exp09.
1e. Синк зеркала с Go по 7 расхождениям из ревью: sticky-глубина (Go: stickyDepth=2), until_ch (не реализован в eval-select), span-containment со спойлер-гейтом суппрессора, токен-бюджет/eviction, sticky-диспозиция (после D16.2-фикса бэкенда — наследование!), полная trad2simp-таблица (вендорить из backend/internal/pipeline/data/trad2simp.txt), ignorables (Cf+VS-диапазоны). Плюс declmetric.py: dash-fold/ignorable-strip + граница по unicode.IsLetter-эквиваленту (сейчас только кириллица).
1f. Пере-прогнать индикатив на Ah-Q после фиксов; ожидание: M3-вред станет виднее. Обновить exp09 и цифры в своей записи PROGRESS (старые «C1 1.0 = C2 1.0, C3 0.60» пометить как контаминированные).
Задача 2 — гигиена оценочных артефактов (урок exp04)
Верифицировано: ключ моделей+цены лежал В ТОМ ЖЕ артефакте при LLM-оценке (за <details> — для LLM-фетча это не скрытие), маппинг A/B/C/D фиксирован на всех фрагментах. Сделать: (а) build_editor_artifact.py — пере-рандомизация меток per-фрагмент, ключ — ОТДЕЛЬНЫМ файлом, не публикуемым до вынесения оценки; (б) в 04-editor-quality.md добавить честную оговорку о слепоте задним числом (сноска, историю не переписывать): выбор grok-4.3 остаётся провизорным, страхуют объективные латентность/цена и руки пилота (7-bis + D13.1).
Задача 3 — протокол пилота v2 (09-pilot-protocol.md; правки D13)
3a. Новые/правленые армы: «моно vs билингв редактор на ОДНОЙ модели, простой general-промпт» (D13.1 — прямой тест D1; отдельно от 7-bis); C2 — только ГЕТЕРОГЕННЫЕ кандидаты (разные модели, D13.2 — на гомогенных селекция ≈ монета). 3b. Панель судей (D13.3): 2–3 семейства максимум; 11+ повторов на вердикт со свапом позиций A/B; агрегация Bradley-Terry/медианой; grok исключён из судейства grok-редактированных выходов; валидация судьи — κ против человеческого IAA + tie-rate/top-1 within-prompt (НЕ средняя корреляция). 3c. Пре-регистрация (D13.4): MDE/мощность (число BWS-наборов), N аннотаторов ≥3 (иначе явный «безκ-режим»), правила решения по каждой руке — зафиксировать ДО решающего прогона неизменяемым разделом. 3d. Инструмент: оценить Pearmut (arXiv:2601.02933 — открытая платформа человеческой оценки с attention-checks) ПРЕЖДЕ постройки своего BWS-тулинга; вердикт «берём/своё» — в exp09.
Задача 4 — проба Mistral для канала B (D14.2)
Mistral Usage Policy (eff. 11.06.2026) без бланкетного запрета adult-текста → кандидат-фолбэк канала B (DeepSeek для explicit выбыл по своему ToS — D14.1). Сделать: завести Mistral в providers.json (⚠ MISTRAL_API_KEY в наборе НЕТ — запроси у владельца; без ключа задача блокирована — так и пометь); прогнать SFW/L1/L2-violence срез refusal-бенча сразу; explicit-часть — когда владелец даст фрагменты (та же 18+ рука exp02, единственный critical ревью). Заодно снять базовое качество ru-перевода Mistral на 2–3 PD-фрагментах (индикативно — годен ли вообще как переводчик канала B, не только «не отказывает»).
Задача 5 — kana-precision (D16-хвост; расширение E1-протокола)
minKeyLenPhonetic=3 в Go — «консервативный дефолт до замера» (memory.go:~42-48). Собери ja-kana ловушки (аналог омографов retrieval_bench: 2–3-kana ключи внутри частых слов/компаундов, реальные имена из PD-ja корпуса) и замерь precision матчера на MIN=2/3/4 — вход для прод-ja решения (подтвердить 3 / поднять / развести по типу каны). Учитывай D16.3-фикс бэкенда (source-границы) — мерь ПОСЛЕ него или на обеих версиях.
Задача 6 — вебновелл-срез (блокирована корпусом владельца; подготовь скрипты заранее)
Когда владелец положит 3–5 глав реальных вебновелл в eval/data/samples/: довалидация r-коэффициентов (exp01/08), precision coverage-гейта на терсных репликах (exp07 §просьба — гейтит снятие 1-флаг-толерантности), частота DeepSeek-эха вне претрейна. Подготовь прогоны так, чтобы по появлению файлов запускалось одной командой.
Приёмка сессии
Обновлённые memory_eval.py/declmetric.py (эхо-контроль, полные выходы, fidelity, M0–M3, синк с Go) + пере-прогнанный индикатив; 09-pilot-protocol.md v2 с D13-правками и пре-регистрационным каркасом; вердикт по Pearmut; Mistral-прогон (или явный блок «нет ключа»); kana-precision отчёт; всё — с провенансом (model id, дата, usage, сырые выходы). Запись в docs/PROGRESS.md §Полигон: итоги, изменившиеся цифры, вопросы оркестратору/владельцу.