textmachine/eval
2026-09-11 22:43:23 +03:00
..
bank_arbitration Land accepted editor-wire probe 18 with acceptance review header, frontier harness and gold, and section renumber fix 2026-08-06 16:10:10 +03:00
bank_autonomy Land bank quality both stages as D39.69: head-aware series batching, classifier-first typing, data-driven decl stemmer with neuter, golden verdict-neutral, fix list and owner questions queued 2026-08-01 15:59:14 +03:00
cold_run_b Freeze the second door-to-file run before any money: what it buys, the measure it will answer, the limits it declares and the instruments that take them 2026-09-11 22:43:23 +03:00
design11 Land the ratified implementation plan as D39.12 with design11 verifications, record the mistral rate-limit quirk, and issue the backend single-pack session prompt 2026-07-19 04:03:39 +03:00
door_to_file Make the local provider's address mean opposite things in the two phases: required in the smoke, refused while money is on the wire. 2026-09-11 04:27:35 +03:00
dovodka Record that the active null was ratified in July as the D39.7 floor gate, so phase D bought back a norm it already owned, and tie the result to the owner's three questions 2026-09-03 00:24:42 +03:00
editor_contract Land accepted diff-contract experiment 19 with review header pinning frozen-scorer numbers, premise-review verifiers and the falsification run log 2026-08-06 16:10:26 +03:00
editor_harness Land accepted editor-role experiment 20 with review header downgrading unpersisted judge claims, plus its harness and judge scripts 2026-08-06 16:10:26 +03:00
editor_tier Freeze phase D pre-reg erratum and harness repair: A2 arm built, battery wired with violation whitelist, per-contrast power with Student quantile, guard is a real stop 2026-08-11 03:18:37 +03:00
exp12 Group closed experiment scripts into eval/exp12|13|14|14b folders with import shims preserved, keep live seed and oracles in eval/, and update all path citations 2026-07-12 21:48:55 +03:00
exp13 Group closed experiment scripts into eval/exp12|13|14|14b folders with import shims preserved, keep live seed and oracles in eval/, and update all path citations 2026-07-12 21:48:55 +03:00
exp14 Group closed experiment scripts into eval/exp12|13|14|14b folders with import shims preserved, keep live seed and oracles in eval/, and update all path citations 2026-07-12 21:48:55 +03:00
exp14b Commit the reseed transform in eval/exp14b and note the seed-provenance lineage in the eval README, accepting the folder placement since it carries no contract citation 2026-07-12 23:34:16 +03:00
exp15 Fix stale trad2simp data paths in eval after the pack-15 move to internal/text 2026-07-25 01:20:42 +03:00
exp16 Land exp16 bank-mining: the which-what split with the 0.97 recall code detector, banknote as the dst channel, the clean exp14b re-audit, and the stop-only truncation errata 2026-07-19 00:24:24 +03:00
pilot Fix stale trad2simp data paths in eval after the pack-15 move to internal/text 2026-07-25 01:20:42 +03:00
pkg7 Accept D39.51 measurements as D39.52: format example fixes the language slip and joins the build, P1 consistency fails to separate 2026-07-26 22:05:20 +03:00
premise_review Land accepted diff-contract experiment 19 with review header pinning frozen-scorer numbers, premise-review verifiers and the falsification run log 2026-08-06 16:10:26 +03:00
promptlang Land the polygon package as D39.61: R6 negative, fidelity gate passed with no cost found, DeepSeek swapped flash weights under the slug so the owner fork blocks paid runs 2026-08-01 00:57:33 +03:00
rerun2_judge Land the rerun2 judge rig and blind-packet builder into eval: D39.7 full-window pairwise judging and D39.8 per-chapter-salted anonymization, outputs stay on the stand 2026-07-24 01:17:58 +03:00
role_topology Freeze two ablation variants with the verification tail cut from both and opt-in trace capture 2026-08-20 18:52:19 +03:00
softsign-decl Land softsign decl study and both decisions as D39.76: seed stopgap for two names, finding closed outside the core, engine anchor rule gated behind a cross-pair measure 2026-08-01 18:43:47 +03:00
tenant_panel Correct the battle-config comment that justified the vendor default by a premise the 30.08 probe retired, leaving the configuration itself untouched 2026-08-30 01:51:47 +03:00
.gitignore Initial commit: documentation, eval polygon, backend step 0 verdict 2026-07-04 06:50:59 +03:00
.python-version Pin the polygon environment: one commented requirements file with the heavy embedding extra split out, interpreter version declared, README rule five corrected 2026-08-03 02:02:26 +03:00
adaptive_incontext.py Add the adaptive-memory research verdict (doc 14) with four executable probes: flagship logprob access, in-context demos vs glossary, lemma post-check, and the deterministic lever curve 2026-07-05 01:34:18 +03:00
adaptive_levers.py Add the adaptive-memory research verdict (doc 14) with four executable probes: flagship logprob access, in-context demos vs glossary, lemma post-check, and the deterministic lever curve 2026-07-05 01:34:18 +03:00
adaptive_probe.py Add the adaptive-memory research verdict (doc 14) with four executable probes: flagship logprob access, in-context demos vs glossary, lemma post-check, and the deterministic lever curve 2026-07-05 01:34:18 +03:00
adaptive_reask.py Add the adaptive-memory research verdict (doc 14) with four executable probes: flagship logprob access, in-context demos vs glossary, lemma post-check, and the deterministic lever curve 2026-07-05 01:34:18 +03:00
build_editor_artifact.py Land pilot-harness package: memory_eval echo control and fidelity axis, M0-M3 rename, artifact blinding, exp09 v2 with D13, kana precision, Mistral probe, webnovel slice; journal entries for both sessions 2026-07-09 19:05:28 +03:00
conformance.py Report the delivery check red with a diagnosis per line, fix the checker that counted table headings as requirements, and record the gate I almost turned green by quoting it 2026-08-29 22:44:37 +03:00
content_filter_probe.py Land polygon session 3: coverage-gate precision (0 FP/57, flip safe), cost-model v2 on grok-editor stack, and Phase-2.5 pilot protocol with a Go-mirror memory-eval 2026-07-05 15:44:44 +03:00
cost_model_v2.py Trim grok-reasoning re-narration in exp08 and cost_model: single-source the mechanism in provider-quirks, keep only cost-relevant facts plus pointers 2026-07-05 21:17:06 +03:00
coverage_precision.py Land polygon session 3: coverage-gate precision (0 FP/57, flip safe), cost-model v2 on grok-editor stack, and Phase-2.5 pilot protocol with a Go-mirror memory-eval 2026-07-05 15:44:44 +03:00
dialogue_precision.py Land polygon package 2: mirror sync with Go v3, explicit benchmark exp10, Mistral fidelity rerun, terse dialogue precision, with orchestrator corrections from external review 2026-07-09 21:16:32 +03:00
editor_bench.py Add polygon eval scripts for local-model, editor and MoE benchmarks plus ollama launcher and provider config 2026-07-04 19:26:36 +03:00
en_corpus_build.py Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
exp13_seed_signoff.py Land seed v2 signoff transform script: reproducible provenance for owner-signed glossary v2 term statuses (D34.1) 2026-07-11 15:58:46 +03:00
exp13_seed_v2.py Land exp13 translator bake-off with review banner: seed v2 accepted pending owner sign-off, draft flash retained (pro rejected — manufactured convergence, core-term catastrophe, no fidelity gain), ratify D32 2026-07-11 08:50:55 +03:00
explicit_judges.py Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
extract_bench.py Track the closed memory-validation and extraction sessions' eval artifacts that committed docs already reference 2026-07-05 01:34:18 +03:00
gu_corpus_build.py Land polygon package 2: mirror sync with Go v3, explicit benchmark exp10, Mistral fidelity rerun, terse dialogue precision, with orchestrator corrections from external review 2026-07-09 21:16:32 +03:00
ja_corpus_build.py Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
jpm_corpus_build.py Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
llama_moe_bench.sh Add polygon eval scripts for local-model, editor and MoE benchmarks plus ollama launcher and provider config 2026-07-04 19:26:36 +03:00
local_bench.py Add polygon eval scripts for local-model, editor and MoE benchmarks plus ollama launcher and provider config 2026-07-04 19:26:36 +03:00
memory_hotpath.py Track the closed memory-validation and extraction sessions' eval artifacts that committed docs already reference 2026-07-05 01:34:18 +03:00
mistral_fidelity.py Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
ollama-up.sh Add polygon eval scripts for local-model, editor and MoE benchmarks plus ollama launcher and provider config 2026-07-04 19:26:36 +03:00
providers.json Correct the Gemini thinking-knob and billing notes against vendor docs and ping the orchestrator about the engine losing the glossary on Gemini hops 2026-08-22 01:03:20 +03:00
providers_erotica.json Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
providers_explicit.json Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
providers_grok_reason.json Land polygon package 2: mirror sync with Go v3, explicit benchmark exp10, Mistral fidelity rerun, terse dialogue precision, with orchestrator corrections from external review 2026-07-09 21:16:32 +03:00
providers_judges.json Land polygon package 2: mirror sync with Go v3, explicit benchmark exp10, Mistral fidelity rerun, terse dialogue precision, with orchestrator corrections from external review 2026-07-09 21:16:32 +03:00
providers_local8b.json Land polygon package 2: mirror sync with Go v3, explicit benchmark exp10, Mistral fidelity rerun, terse dialogue precision, with orchestrator corrections from external review 2026-07-09 21:16:32 +03:00
README.md Give the polygon README the two steps a clean machine needs, the map of the phase-D zone it described as one file, and the mtime gates the move silently broke 2026-08-29 22:08:47 +03:00
refusal_bench.py Land polygon erotica package: exp11 three-register benchmark closing D14.4, seed finalized gender-hidden, fix-list D19.5, journal entries for both sessions with orchestrator review corrections 2026-07-10 04:02:10 +03:00
refusal_corpus_build.py Initial commit: documentation, eval polygon, backend step 0 verdict 2026-07-04 06:50:59 +03:00
requirements-embed.txt Pin the polygon environment: one commented requirements file with the heavy embedding extra split out, interpreter version declared, README rule five corrected 2026-08-03 02:02:26 +03:00
requirements.txt Pin the polygon environment: one commented requirements file with the heavy embedding extra split out, interpreter version declared, README rule five corrected 2026-08-03 02:02:26 +03:00
retrieval_bench.py Track the closed memory-validation and extraction sessions' eval artifacts that committed docs already reference 2026-07-05 01:34:18 +03:00
run_refusal.sh Harden refusal benchmark: split verdict taxonomy, live-audited provider configs, local warmup 2026-07-04 21:06:47 +03:00
token_calc.py Initial commit: documentation, eval polygon, backend step 0 verdict 2026-07-04 06:50:59 +03:00
webnovel_slice.py Land pilot-harness package: memory_eval echo control and fidelity axis, M0-M3 rename, artifact blinding, exp09 v2 with D13, kana precision, Mistral probe, webnovel slice; journal entries for both sessions 2026-07-09 19:05:28 +03:00

eval/ — полигон TextMachine

Зона сессии «Полигон»: эмпирическая валидация допущений архитектуры (мерить, а не верить). Отчёты — docs/experiments/NN-*.md (методика + цифры + честные ограничения). backend/ только читать; расхождения с architecture/research — пингом оркестратору в docs/PROGRESS.md. .env не читать; data/refusal_corpus/* не открывать без прямой задачи владельца; 18+ уровень 3 (несовершеннолетние в сексуальном контексте) — не обрабатывать и не анализировать ни в каком виде (гардрейл владельца; вынесен сюда из CLAUDE.md 01.08 — специфика зоны 18+-корпусов).

Очередь полигона (освежено оркестратором 02.08, D39.80): исследовательская программа дуги качества ЗАВЕРШЕНА (exp1216 закрыты; rerun2 закрыт D39.22); полигон-пакеты 58, ToS-речек (D39.57, следующий триггер 25.10) и Р6+P4 «язык промптов/анти-эхо» (D39.61, харнесс eval/promptlang/) ЗАКРЫТЫ. Текущий курс проекта здесь НЕ дублируется — PROGRESS CURRENT-STATE; полигон работает ТОЛЬКО по выданным промтам (актуальный — список в docs/README.md), платные пробы — по слову владельца. Редактор = deepseek-v4-pro ИНТЕРИМ (D39.22; glm-5 резерв; mistral ИСКЛЮЧЁН как несущий — анти-корреляция гладкость↔верность ×3); итерация №2 редакторов — первым прогоном добора идеала (D39.67).

DeepSeek-V4-Flash-0731 (31.07): веса сменились ПОД ТЕМ ЖЕ СЛАГОМ — боевая черновая форма покупает пустые ответы; эхо стохастично по вызову. Платные прогоны/докупки СТОП до ре-пробы (бэклог-строка 74); детали и развилка — 00-provider-quirks.md секция катовера + D39.61.

Инварианты полигона (соблюдать всегда): судейский риг-стандарт D39.7 (per-vote, полно-evidence, floor-гейт) · генерации — только finish=stop · авто-QA ключуется СЛЕПЫМИ метками (директива D39.20) · экстракция прод-выходов — ТОЛЬКО tmctl export (D39.5, инвариант №8, см. правило 7 ниже) · стайл-каноны D39.21 как эталон верности (时辰 = 2 часа · generic-«гу» средний род · стихи смыслом · 资质 = «талант»).

ToS/AUP-трек: факты под accepts_labels сняты пакетом-5, ре-чек исполнен 31.07 (D39.57: дельт вердиктов нет, Google-мониторинг перевешен на цепочку договора; применение строк — только подписью владельца). Тачпойнты владельца — сайдкары books/gu-zhenren/exp16/. Residual-трекер пилота/18+/echo — docs/POLYGON_PACKAGE4_SESSION_PROMPT.md (отложен; P4-хвост из него закрыт D39.61).

Карта

Скрипт Эксперимент Заметки
refusal_bench.py exp02; его split_sentences/classify_output = приёмочный оракул coverage-гейта Go (паритет закреплён Go-тестом; любое изменение — Python-first, лок-степ) run_refusal.sh — однокоманда
token_calc.py exp01 токен-калибровка (r-множители) токенизаторы в tokenizers/
editor_bench.py + build_editor_artifact.py exp04 бейк-офф редакторов слепота починена (D13.5): рандомизация меток ПО ФРАГМЕНТУ (соль), ключ+цена в отдельном --key файле. ⚠ Выбор grok-4.3 SUPERSEDED дважды: D30.1 (билингв-флип) → D39.22 (боевой редактор = deepseek-v4-pro БИЛИНГВ ИНТЕРИМ, glm-5 резерв); grok reasoning-off из редакторских ролей снят (no-op); exp04-ранг был на дефолт-reasoning
coverage_precision.py, content_filter_probe.py exp07 precision гейта (0 FP/57)
cost_model_v2.py exp08 COGS (~$0.69/ранобэ — ДО-флиповый; после флипа D1 билингв ≈$0.85, D30.4) цены датировать и перепроверять
extract_bench.py exp06 экстракция терминов (спот=локаль/рендер=облако) health-верификация каждого ответа — образец. ⚠ recall 0.981.0 мерен на PD-классике; вебновелл-ре-замер = research/20 §D-A6 (полигон-стадия банк-майнинга)
retrieval_bench.py эмбеддинг-бенч памяти (bge-m3 дефолт)
pilot/declmetric.py, pilot/memory_eval.py, pilot/kana_precision.py харнесс пилота Ф2.5 (exp09) починен (D13.5): эхо-контроль, ПОЛНЫЕ выходы, fidelity-ось (cross-family судья), M0M3, Go-синк 7 расхождений (self-test+адверсариально verified). --self-test/--dry-run без API. ⚠ судья-дефолт memory_eval --judge = gemini-2.5-flash (EOL 16.10.2026, research/15-фактчек) — мигрировать слаг при следующем прогоне (residual POLYGON_PACKAGE4). Инъекция = зеркало memory.go — синк с Go v3 выполнен (пакет №2: suppressUnboundedPhonetic + апостроф-фолд, adversarial parity); при расхождении верить Go. kana_traps.json+trad2simp.txt (508, hash-синк)
webnovel_slice.py добор вне претрейна (r-коэф/эхо/coverage-precision) одна команда по появлению data/samples/webnovel/<lang>/*.txt; блокируется корпусом graceful
adaptive_*.py research/14 пробы (гибрид отклонён) индикативные, не решения
memory_hotpath.py УСТАРЕЛ (контракт до cc57c7b) — не переиспользовать актуальное зеркало — pilot/memory_eval.py
providers.json базовые URL/слаги для зондов квирки — docs/experiments/00-provider-quirks.md, читать ПЕРЕД любым вызовом
promptlang/ Р6+P4 (закрыт D39.61): язык промптов · анти-эхо wiring · верность митигаций; действующая редакция выводов = §12 отчёта docs/archive/reports/POLYGON_PROMPTLANG_ANTIECHO_2026-07-31.md slugcheck.py, wire_probe.py (сырой провод), run_arms.py, spend.py (два пути счёта денег — прогонять оба), judge_*.py

Действующие харнессы паков 1823 и фазы Д (добавлено эксп-22 08.08 — в карте их не было)

Папка Эксперимент Что внутри и чем полезно дальше
bank_arbitration/ exp-16/18 + research/24 editor_wire_probe.py — рендер боевых промптов (render, strip_comments, editor_block, HEADER_LAW_PLAIN/HEADER_LAW_CLAUSE), окна и посадки; inject_probe.py — глоссарий-блок переводчика и render_translator. Это фундамент всех последующих паков, ломать нельзя
editor_contract/ exp-19 (дифф-контракт Q4b) probe.py, apply.py (аппликатор, самотест 15/15), effort_probe.py (вахта маппинга эффорта DeepSeek)
editor_harness/ exp-20 (контракт редактора × модели) probe.py — сборка сообщений по контрактам (full/diff-*/locate/direct), en-зеркала промптов
role_topology/ exp-21 (топология ролей) absjudge.py — абсолютный судейский риг (слепые метки · декой · пол · обоснование цитатой · семейство в ключе · Холм), battery.py — 11 детерминированных проверок, buy.py — касса с проекционным гардом, bakeoff.py/pair_en.py — армы zh/en, itog.py/verify_report.py — образец гейтов чисел, ruff.toml — линтер зоны
tenant_panel/ exp-22 (панель жильцов) material.py — добыча и отбор невиданного среза, contam.py — проба контаминации, bank.py — банк книги + метрика покрытия канона, roster.py — ростер и цены с провенансом, money.py — касса с фриз-гейтом (покупка отказывает незакоммиченному коду) и configure() для пере-настройки под другой пак, judge.py — тот же absjudge, настроенный на другую панель, sol.py — пакеты внешнему судье (⚠ конструкция признана негодной, §16 отчёта)
editor_tier/ exp-23 (сильный тир редактора и граница glm-5) screen.py — скрин сильного тира, panel.py — панель редактур поверх якорной базы, judge.py — два прохода (tier/border) + режим --run <прогон> для ОТДЕЛЬНЫХ прогонов того же прохода (репликация), money.py — касса эксп-22 через configure, itog23.py/verify23.py — пере-счёт и гейт чисел (сторожат пол, порог, декой, наклон и СВЕЖЕСТЬ разбора), solscore.py — счёт ответов ВНЕШНЕГО судьи вне семьи Claude
dovodka/ фаза Д (доводка 22/23, заказ владельца 10.08) — ⚠ не один скрипт, а зона из ~40; ниже только несущие, остальные читать по шапкам файлов rol.py — ГЛАВНЫЙ инструмент: сборка промтов, покупка, слепые панели, сверка сборки (--verify-read), своды (--score-arch), реестр клеток чужих фаз FOREIGN · schet.py — детерминированный счётчик дефект-классов против эталона, снятого по исходнику вслепую · vtoroe.py — разложение порога на шум читателя и текст по двум кругам чтения · sysmsg.py — улика «какое системное сообщение выживает у Gemini» · money_d.py — касса фазы: потолки, фриз-гейт, атомарный замок · runs.py — журнал агент-сессий: запись ДО запуска суб-агента, кап 200 (снят владельцем 20.08 со 100), замок против ГОНКИ сессий по одному токену (в паке 23 гонка стоила соответствия голосов и сырья на 5 единицах) · power.py · naklon.py · sud.py · contour.py · zakhod.py — мощность, позиционный наклон, судейский риг, edit-контуры, армы захода. Отчёт фазы — docs/experiments/23-editor-tier.md, курс — eval/dovodka/PLAN-22-08.md

Две мины импорта, на которые наступает каждый новый пак. (1) Модуль probe.py существует И в editor_contract/, И в editor_harness/ — какой из них подхватится, решает ПОРЯДОК sys.path.insert в вызывающем файле. Проверять фактический путь (probe.__file__), а не догадываться. (2) Сырьё паков живёт в ~/books/<пак>/; путь зашит константой. Если каталог переехал — харнесс молча видит пустоту и печатает «голосов нет» вместо ошибки. И ОН ПЕРЕЕХАЛ. С 24.08 книги лежат в <репозиторий>/books и версионируются ОТДЕЛЬНЫМ git-репозиторием (CLAUDE.md), а риги ходят по Path.home()/"books"65 вхождений в 31 файле. На чистой машине это значит, что НИ ОДИН риг полигона не запускается, причём молча. Подъём зоны на новой машине — два шага, оба обязательны:

ln -s <репозиторий>/books ~/books          # контракт путей ригов, см. строку 217 бэклога
python3 -m venv eval/.venv && eval/.venv/bin/pip install -r eval/requirements.txt

⚠ Симлинк — восстановление контракта, а НЕ починка: корень книг обязан стать одной разрешающей функцией (env TM_BOOKS → репозиторий → ~). До тех пор каждая чистая машина упирается в ту же стену. ⚠ Переезд 24.08 обнулил mtime всего сырья (335 клеток Ф2 имеют ОДИН mtime). Любой гейт, отделяющий «до» от «после» ВРЕМЕНЕМ ФАЙЛА, больше не пере-снимается: tenant_panel/verify22.py:174-185 печатает границу двойной оплаты как $0.000000 и роняет R71 реестра фазы Д. Гейт НЕ правится под зелень — диагноз в docs/experiments/23-editor-tier.md Д35.2. Норма впредь: время покупки и время ответа писать ПОЛЕМ В АРТЕФАКТ, а не полагаться на файловую систему.

18+ / корпус-билдеры

Скрипт Эксперимент Заметки
explicit_judges.py, gu_corpus_build.py exp10 (violence-рука 18+) корпус-строки в data/ (gitignore); тексты вне git (Р8)
jpm_corpus_build.py, en_corpus_build.py, ja_corpus_build.py exp11 (erotica-рука 18+, zh/en/ja пары) jpm=金瓶梅 PD; en/ja — файлы владельца вне git
mistral_fidelity.py exp02/D14.2 (Mistral base-fidelity ре-съёмка с полным персистом) почему: первый Mistral-зонд потерял сырьё
dialogue_precision.py exp07 package-2 (precision гейта на диалог-плотном срезе)
refusal_corpus_build.py exp02 (наполнение refusal-корпуса L0L1) explicit/L3 этим НЕ наполняются
local_bench.py, llama_moe_bench.sh exp03 (локальный стенд) dense через ollama / MoE через llama.cpp

Скрипты «дуги качества» 12 → 13 → 14 → 14b — сгруппированы по папкам eval/expNN/ (эксперименты ЗАКРЫТЫ; отчёты см. docs/experiments/README.md)

Спент-семьи структурированы по папкам eval/exp12/, eval/exp13/, eval/exp14/, eval/exp14b/ (решение владельца — D38.2): declutter top-level eval/, логическая группировка кода (это код-репо, не «архив»/не заморозка). Прогонять повторно не нужно — вердикты ратифицированы (D30/D32/D37/D38). Импорты сохранены (проверено py_compile+find_spec): скрипты, тянущие refusal_bench, дотягиваются до eval/ шимом .parent.parent; exp14b_* тянут общий exp14_common/exp14_prompts из ../exp14/ (exp14b построен на харнессе exp14). ЖИВОЙ провенанс сида v2 (exp13_seed_v2.py/exp13_seed_signoff.py) НЕ перемещён — остался в eval/ (цитируется D-логом D30.5, регенерирует боевой сид).

Папка Эксперимент Скрипты / особые модули
eval/exp12/ exp12 диагноз (закрыт D30) arms, blocks, candidate, extract, glossary_v2, judges, monitor, pack, reflow_demo, rootcause; exp12_judgesexp12_pack
eval/exp13/ exp13 бейк-офф переводчиков (закрыт D32) aggregate, blind_stage, gates, judges, monitor, translate
eval/exp14/ exp14 рычаги качества (закрыт D37) arms, common, judges, kpi, material, monitor, prompts, rank, regate, sizecurve; фундамент exp14_common/exp14_prompts
eval/exp14b/ exp14b батарея смысл-трапов (закрыт D38) arms, judge, monitor, score; реюзят exp14_common/exp14_prompts из ../exp14/; + exp14b_reseed_promote.py = ЖИВОЙ reseed-провенанс сида (промоут грейдов+四代族长, D38.3/4, идемпотентен)
eval/ (НЕ перемещён) ЖИВОЙ провенанс сида v2 exp13_seed_v2.py, exp13_seed_signoff.py (D30.5, регенерируют боевой сид); лестница reseed → exp14b/exp14b_reseed_promote.py (D38.3/4; в папке — нет контракт-пина, в отличие от exp13_seed_*)

exp14_common.py + exp14_prompts.py живут в eval/exp14/ и служат фундаментом exp14 И exp14b; exp14b_* тянут их через шим ../exp14, поэтому переименование/перенос exp14 без правки шимов exp14b порвёт import exp14_common.

Правила (выучены на ошибках)

  1. Провенанс данных: results-файлы не перезаписывать ре-раном (урок exp02: сырьё 66 вызовов утрачено); каждый прогон — model id + дата + usage; сырые ВЫХОДЫ сохранять целиком.
  2. Претрейн-контаминация: вся классика (Лу Синь/Акутагава/Уэллс) в претрейне моделей — C0 частично выдаёт канон, эхо систематично (deepseek 13/24 zh-чанков). Выводы на классике = предварительные; решающие замеры — на вебновелл-корпусе владельца.
  3. Тест ставится, только если его исход может перевернуть решение и не установлен литературой (урок снятого exp05).
  4. LLM-судьи: ≤23 семейства, 11+ повторов со свапом позиций, Bradley-Terry/медиана, судья не судит выходы своего семейства (D13.3); κ против человеческого IAA, не «средняя корреляция».
  5. Env — источник истины eval/requirements.txt (у каждой строки комментарий «зачем и где»; интерпретатор — .python-version). Установка: python3 -m venv .venv && .venv/bin/pip install -r requirements.txt. Эмбеддинг-бенч (retrieval_bench.py) тянет ~2.5 ГБ ОТДЕЛЬНО — requirements-embed.txt (версии там намеренно не проставлены). ⚠ Замок снят 03.08.2026 с живого стенда Ubuntu 26.04 / CPython 3.14.4 и не является стендом закрытых exp1216/promptlang (те шли на Ubuntu 24 / ~3.12, версии не сохранились) — перепрогон на нём это НОВЫЙ замер, не репродукция. Ключи скрипты читают из eval/.env сами. Не офлайн: tokenizers ждёт файлы в eval/tokenizers/ (gitignore, на чистой машине их нет), tiktoken.get_encoding качает ~4 МБ BPE при первом вызове. Стенд: GTX 1070 8GB — модель полигона qwen3-abliterated:30b-a3b в ollama не выселять без нужды; localhost из-под прокси даёт 403 — для локальных вызовов no-proxy.
  6. data/ в .gitignore (коммитится только код) — критичные результаты дублируй цифрами в docs/experiments/.
  7. Экстракция прод-выходов — ТОЛЬКО через tmctl export (D39.5, инвариант №8 backend/README): сырое чтение чекпоинтов store (records.json-стиль) отдаёт НЕнормализованные байты (без export-contract слоя) и молча-неполную книгу (без manifest-join/drift-гарда). --plaintext для глаз, дефолтный JSON для скриптов. Прежний путь final_hash→response_text — только для форензики сырья, не для оценки качества.
  8. Аномалия провайдера ≠ повод гадать: странный отказ (интермиттентный 404/5xx, новый finish_reason, молча игнорируемые параметры) → сначала официальная дока вендора (deprecations/changelog/status) + свежий /models живьём, потом диагноз; в отчёт оба слоя — наблюдение И вендор-факт с датой/URL. Урок: 404-флейки gemini-2.5-flash оказались предвестником EOL всей 2.5-серии 16.10.2026 (research/15 → фактчек 10.07; правило — шапка 00-provider-quirks.md).
  9. Персист, не scratch (владелец 01.08; ударило дважды): код харнессов → eval/<папка> (git), сырые платные выходы → durable ~/books/...; эфемерный scratchpad/tmp теряется вместе с сессией — так утрачен харнесс замера дефектов чекеров (labels/ уцелел, скрипты нет), и его придётся пересобирать.
  10. Вывод на агрегате до вскрытия единиц ЗАПРЕЩЁН (D39.61): перед любым сравнительным выводом открыть глазами хотя бы одну единицу с каждой стороны; каждый агрегат — вторым независимым путём счёта; пре-регистрация порогов до вскрытия данных.

Доступные ключи от моделей

DEEPSEEK_API_KEY, ZAI_API_KEY, KIMI_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY, MISTRAL_API_KEY