2.8 KiB
Размеченный набор для чекеров (полигон, пакет-6, 26.07.2026)
Набор живёт ЗДЕСЬ, а не в git: он содержит текст книги (производные книги — вне git).
В git ушёл только отчёт docs/archive/reports/POLYGON_CHECKER_LABELS_2026-07-26.md.
Структура
raw/corpus.jsonl— 91 юнит из шести реальных прогонов:run, chapter, chunk_idx, members, heading, source, draft, final, disposition. Ключ юнита =run:chapter:chunk_idx(адресация лидера единицы редактуры — та же, по которой прогон пишетchunk_status).pools/*.jsonl— кандидаты по классам (независимые сети, шире чекеров).labels/*.jsonl— РАЗМЕТКА:id, label ∈ {defect, ok, disputable},subclass,note.verdicts/*— вердикты ТЕКУЩИХ чекеров (получены ПОСЛЕ разметки).metrics.json— precision/recall по классам + id ложных срабатываний и пропусков.
Стабильность ID
- юнит-классы:
run:chapter:chunk_idx:<класс>:<смещение в исходнике> - строчные:
run:chapter:chunk_idx:k4:<поле>:<номер строки> - токенные:
run:chapter:chunk_idx:k2:<поле>:<символьное смещение> - словотипы:
type:<слово> - глоссарий:
run:chapter:chunk_idx:k6:<исходный термин>
Смещения считаны по строкам corpus.jsonl — пока этот файл не переписан, ID воспроизводимы.
Как ре-ранить чекеры против набора
Харнесс, который вызывает НАСТОЯЩИЕ чекеры (internal/checks), — отдельный Go-модуль вне репо
с module textmachine/backend/labelharness и replace textmachine/backend => <репо>/backend
(имя модуля обязано начинаться с textmachine/backend/, иначе Go запретит импорт internal/).
Он ничего в репозитории не меняет. Скрипты сборки/замера — в скретчпаде сессии:
build_corpus.py, add_acceptance.py, build_pools.py, build_k6.py, measure.py.
ВАЖНО при повторе: гейты видят финал ДО chunk.ApplyHeading (waverun.go:516 идёт после :486),
поэтому детерминированный заголовок из corpus.final надо снимать — иначе номер главы читается
как «появившееся число» регресс-гардом.