diff --git a/docs/BACKEND_BANK_QUALITY_SESSION_PROMPT.md b/docs/BACKEND_BANK_QUALITY_SESSION_PROMPT.md index 654c46c3..ed2b788d 100644 --- a/docs/BACKEND_BANK_QUALITY_SESSION_PROMPT.md +++ b/docs/BACKEND_BANK_QUALITY_SESSION_PROMPT.md @@ -1,10 +1,10 @@ # Промт бэкенд-сессии: КАЧЕСТВО БАНКА — этап 1 ресёрч+дизайн ($0), этап 2 стройка (по ратификации) -**Выдан 01.08.2026, оркестратор №9; санкция владельца D39.67/68.** Ты — бэкенд-сессия TextMachine. Зона записи: `backend/` + свой отчёт в `docs/archive/reports/`. НЕ коммитить — лендит оркестратор. **Первый деливерабл — эхо-блок ≤10 строк.** +**Выдан 01.08.2026, оркестратор №9; санкция владельца D39.67/68.** Ты — бэкенд-сессия TextMachine. Зона записи: `backend/` + свой отчёт в `docs/archive/reports/`. НЕ коммитить — лендит оркестратор. **Первый деливерабл — эхо-блок ≤10 строк** (первым сообщением ДО работы: как понял скоуп/стоп-точки/$0/зону; продублируй шапкой отчёта; подтверждения не жди — СТОП только в конце этапа). ⚠ **Денег — НОЛЬ.** Платные вызовы моделей запрещены (развилка 74: DeepSeek-0731 покупает пустое, бьёт и терминолога). Все нужные платные пробы УЖЕ куплены и лежат в отчётах — не докупать. `--resnapshot` не запускать. -⚠ **Параллельно может идти сессия пакета-чекеров** (пишет `backend/internal/checks` + `configs/langpacks` + харнесс labels). Твой этап 1 — read-only по коду (пишешь только отчёт-дизайн), конфликтов нет. **Этап 2 НЕ начинать без отдельного релея оркестратора** (дерево общее, очерёдность лендинга — за ним). +⚠ **Параллельно может идти сессия пакета-чекеров** (пишет `backend/internal/checks` + `configs/langpacks` + **`membank` в части пост-чека #10** + харнесс labels). Твой этап 1 — read-only по коду (пишешь только отчёт-дизайн + разрешённый тест п.7), конфликтов нет. **Этап 2 НЕ начинать без отдельного релея оркестратора** (дерево общее; обычно — после лендинга пакета-чекеров, D39.68). ## Глобальный критерий владельца (01.08 — мерило КАЖДОГО решения ниже) @@ -20,7 +20,8 @@ 2. **Факты-вход (ратифицированы, пере-мерять не надо):** `docs/archive/reports/POLYGON_BANK_RAWMATERIAL_2026-08-01.md` (замеры: нестабильность 43.3% · §C2-3 точна, но финал решает терминолог по KWIC 50/75 — **веса НЕ тюнить, D39.65** · тип ненадёжен 12–22%, branch-harm 元石/元海 · Decl 142/142 null) и `POLYGON_BANK_PROBES_2026-08-01.md` (**проверенные живьём фиксы**: со-батчинг серии = детерминированная унификация; сфокусированный тип-классификатор чинит 6/6 harm; §6 — советы с порядком ценности). 3. `docs/architecture/13-tech-debt-anchors.md` — file:line-якоря по строкам 73/80/84 (что уже построено: `InjectivityCollisions` · `AttachRubyAliasesToManual` · `repin.go`/`rebill.go`). 4. D-лог по грепу: D39.65 (вход целиком) · D39.58 (холодный прогон, дыра 蛊 — строка 18) · D39.42/45 (терминолог/консолидация/пере-пин) · D39.63 (Р2/Р4-контракты). Бэклог-строки: 73 · 80 · 18 · 27 · 36а–36г · 84 · 86(feed_cap). -5. Код: `backend/internal/terminology/` · `membank/` (memory.go селекция/пост-чек) · `pipeline/terminologist.go`/`seeding.go`/`repin.go`. +5. Код: `backend/internal/terminology/` · `membank/` (memory.go селекция/пост-чек; ⚠ пост-чек #10 однознаковых ключей СТРОИТ параллельная чекер-сессия — читай, не проектируй заново; её контракт придёт релеем) · `pipeline/terminologist.go`/`seeding.go`/`repin.go` (feed_cap-претензия: гейт бюджета terminologist.go:256-264 при лексикографическом сорте :191). +6. Сырьё (read-only): `~/books/gu-zhenren/coldrun-a/` (БД+артефакты холодного прогона) · готовый python-харнесс `eval/bank_autonomy/` (parse_common и m21*/m22*/m36*). ## ЭТАП 1 — ресёрч + дизайн (СЕЙЧАС; деливерабл = отчёт-дизайн, кода НЕ писать) @@ -31,10 +32,10 @@ 3. **Decl-шов (строка 27+73):** 142/142 null ⇒ E1/E2 без входа; варианты — эмиссия форм терминологом в том же проходе / дешёвый морфопроход / отложить с обоснованием. Сюда же: пост-чек принимает сокращённую форму терма (Р3/Q4, строка 27) и связка со строкой 84 (средний род «гу»: enum+`gender: neuter` сегодня тихий no-op — нужен seed-lint). 4. **36б «второе мнение другой моделью»:** ЧЕСТНО оспорь нужность — если (2) чинит harm-направление, что докупает рецензент? Дизайн только если переживёт (б). 5. **Вопрос резюме-слоя (строка 80):** дать РЕКОМЕНДАЦИЮ с обоснованием — строить резюме глава→арка→книга + fact-gate (D25 п.8–9) или закрыть («KWIC-банк+reveal-окна достаточны»). Решение — владельца; твоя работа — честная инженерная оценка обоих исходов. -6. **Дыра эмиссии 蛊 (строка 18):** голова частотного понятия не приходит ни одним каналом; три сайта порога длины (см. якоря). Фикс или обоснованное «оставить». -7. **Кандидаты (быстрые вердикты, без глубокого дизайна):** STITCH-ретирование инъекции · ranked-set-остаток (тип + порядок ступеней; инъективность УЖЕ есть) · tmctl «замена термина с главы N» (тонкая CLI над repin) · feed_cap (гейт режет лексикографический хвост — предметно) · эмбеддинг-второй-эшелон A7/D2 (дать диспозицию: строить/закрыть) · first-occurrence-тест KWIC-консолидатора ($0 по артефактам coldrun-a — МОЖНО исполнить в этапе 1, если дёшево; «вывод на агрегате до вскрытия единиц запрещён»). +6. **Дыра эмиссии 蛊 (строка 18):** голова частотного понятия не приходит ни одним каналом; сайты порога длины: `internal/miner/miner_alias.go:44,93` + греп порога ≥2 по `internal/miner/` + `membank/memory.go:144` (minKeyLen/allow_short — приёмная сторона). Фикс или обоснованное «оставить». +7. **Кандидаты (вердикт-тройка в 1–2 строки КАЖДОМУ, без проработки альтернатив — полная форма только для пп.1–6):** 36г формат каналов `{{banknote_format}}` (Р5) · STITCH-ретирование инъекции · ranked-set-остаток (тип + порядок ступеней; инъективность УЖЕ есть) · tmctl «замена термина с главы N» (тонкая CLI над repin) · feed_cap (гейт режет лексикографический хвост — предметно) · эмбеддинг-второй-эшелон A7/D2 (дать диспозицию: строить/закрыть) · first-occurrence-тест KWIC-консолидатора ($0 по артефактам coldrun-a — МОЖНО исполнить в этапе 1, если дёшево; код — В `eval/bank_autonomy/m_firstocc*.py` рядом с готовым харнессом: расширение зоны на ЭТУ папку санкционировано промтом, единственное исключение из «кода не писать»; coldrun-a read-only; «вывод на агрегате до вскрытия единиц запрещён»). -**Деливерабл этапа 1:** `docs/archive/reports/BANK_QUALITY_DESIGN_<дата>.md` — по пунктам: вердикт-тройка · выбранный дизайн · альтернативы с причиной отказа · сдвигаемые снапшот-оси · тесты приёмки · **отдельным блоком: вопросы владельцу** (только те, что реально его — вкус/деньги/продукт). Самопроверка исполнением: свои утверждения о коде грунтуй `file:line` и перепроверь грепом; посылки из отчётов цитируй, не пересказывай по памяти. **СТОП — ратификация оркестратором/владельцем.** +**Деливерабл этапа 1:** `docs/archive/reports/BANK_QUALITY_DESIGN_<дата>.md` — по пунктам: вердикт-тройка · выбранный дизайн · альтернативы с причиной отказа · сдвигаемые снапшот-оси · тесты приёмки · **отдельным блоком: вопросы владельцу** (только те, что реально его — вкус/деньги/продукт). Самопроверка исполнением: свои утверждения о коде грунтуй `file:line` и перепроверь грепом; посылки из отчётов цитируй, не пересказывай по памяти. Плюс краткий итог 3–5 строк — в секцию «Бэкенд» `docs/PROGRESS.md` (таблицу бэклога и CURRENT-STATE НЕ трогать). **СТОП — ратификация оркестратором/владельцем.** ## ЭТАП 2 — стройка (ТОЛЬКО по релею ратификации, отдельным сообщением) diff --git a/docs/BACKEND_CHECKER_PACKAGE_SESSION_PROMPT.md b/docs/BACKEND_CHECKER_PACKAGE_SESSION_PROMPT.md index 88be0ec5..e8bd91c8 100644 --- a/docs/BACKEND_CHECKER_PACKAGE_SESSION_PROMPT.md +++ b/docs/BACKEND_CHECKER_PACKAGE_SESSION_PROMPT.md @@ -1,6 +1,6 @@ # Промт бэкенд-сессии: ПАКЕТ-ЧЕКЕРОВ — детекторы качества против размеченного корпуса ($0-код) -**Выдан 01.08.2026, оркестратор №9; санкция владельца D39.67/68 (строка 25 бэклога — вес «скоро»).** Ты — бэкенд-сессия TextMachine. Зона: `backend/` (+ `configs/langpacks/`) + свой отчёт в `docs/archive/reports/`. НЕ коммитить — лендит оркестратор. **Первый деливерабл — эхо-блок ≤10 строк.** +**Выдан 01.08.2026, оркестратор №9; санкция владельца D39.67/68 (строка 25 бэклога — переведена в работу этим промтом).** Ты — бэкенд-сессия TextMachine. Зона: `backend/` (+ `configs/langpacks/`) + свой отчёт в `docs/archive/reports/`. НЕ коммитить — лендит оркестратор. **Первый деливерабл — эхо-блок ≤10 строк** (первым сообщением ДО работы: как понял скоуп/стоп-точки/$0/зону; продублируй шапкой отчёта; подтверждения не жди — СТОП только в конце). ⚠ **Денег — НОЛЬ** (развилка 74). ⚠ **Параллельно может идти банк-сессия в режиме read-only дизайна** — её файлов нет; если в дереве появятся чужие правки `backend/` — СТОП и пинг. `--resnapshot` не запускать; `TM_UPDATE_GOLDEN` — только ОДИН раз в самом конце (см. приёмку). @@ -16,25 +16,25 @@ 1. `CLAUDE.md` → CURRENT-STATE `docs/PROGRESS.md` (строка 25 — твой полный перечень) → **`docs/architecture/13-tech-debt-anchors.md`, секция «строка 25»** — там file:line-якоря КАЖДОГО дефекта (chevron `cheapgates.go:248-275` · K5a digit-требование `:508-519` · заглавная латиница `checkers.go:527` · K5c-супрессор `:411-435` + «a design, not a patch» `cheapgates.go:84-89` · 两 `dc-checkers.txt:65` · 转-подстрока `memory.go:1048/144` · R4-резидуал). 2. **Контракты:** D39.63 — **Р2 = детекторы единиц/шкал жёстко флагают ТОЛЬКО неверное ЗНАЧЕНИЕ, неконвертированная форма = мягкий счётчик** (нужен split hard/soft в результате чекера); **Р4 = потолок recall by construction записывается В КОНТРАКТ правила** (комментарий+тест), не «переспрашивается». -3. **Корпус и харнесс:** `~/books/gu-zhenren/labels/` (k1–k6.jsonl, verdicts/, README с рецептом ре-рана НАСТОЯЩИХ чекеров) — корпус СТАТИЧЕН, свежий прогон не нужен. Прежний харнесс замера утрачен в scratch (урок «персист, не scratch») — **пересобери и положи В GIT**; рекомендуемая форма — env-гейченный Go-тест по образцу майнер-парити (`TM_CHECKER_LABELS=1 go test …`), выбор за тобой, но durable. +3. **Корпус и харнесс:** `~/books/gu-zhenren/labels/` (разметка УРОВНЕМ НИЖЕ: `labels/labels/{k1..k4,k5a-d,k6}.jsonl` · `pools/` · `raw/corpus.jsonl` (91 юнит) · `verdicts/` · **`metrics.json` — ратифицированный базлайн пакета-6**; README с рецептом ре-рана НАСТОЯЩИХ чекеров, вкл. ловушку ApplyHeading) — корпус СТАТИЧЕН, свежий прогон не нужен. Прежний харнесс замера утрачен в scratch (урок «персист, не scratch») — **пересобери и положи В GIT**; рекомендуемая форма — env-гейченный Go-тест по образцу майнер-парити (`TM_CHECKER_LABELS=1 go test …`), выбор за тобой, но durable. 4. Происхождение дефектов: D39.39/40 (пакет-6, 12 дефектов) · `docs/archive/reports/GENERALITY_RESEARCH_2026-07-31.md` §8 (актуальные якоря; ссылки D39.39 устарели) · D39.64 отчёт §5.5 (что фаза-2 сознательно НЕ делала и почему). 5. `docs/experiments/00-provider-quirks.md` — НЕ нужен (вызовов нет); `12-go-style-notes.md` — норматив общности. ## Состав пакета (= строка 25 + строка 79; приёмка КАЖДОГО — по labels) -**Корзина II пака-21:** #3 атрибуция речи сверх «X», — (восклицательные/безатрибуционные; 38/46 реплик мимо) · #5 K5a: 数/几-магнитуды проходят к подчекеру (сейчас recall=0 на 149k знаков; узкий DC2-проб покрывает ровно 数十万) · #6 класс «заглавная латиница/маркеры TM-BANK в финале» (с allowlist) · #7 порог-3 — решить ПО ДАННЫМ labels: фикс или Р4-запись «потолок by construction» · #10 однознаковые Han-ключи пост-чека (转 в 转身): контекст/граница для Confirmed-miss — согласуй интерфейс с банк-сессией, зона общая с memory.go. +**Корзина II пака-21:** #3 атрибуция речи сверх «X», — (восклицательные/безатрибуционные; 38/46 реплик мимо) · #5 K5a: 数/几-магнитуды проходят к подчекеру (сейчас recall=0 на 149k знаков; узкий DC2-проб покрывает ровно 数十万) · #6 класс «заглавная латиница/маркеры TM-BANK в финале» (с allowlist) · #7 порог-3 — решить ПО ДАННЫМ labels: фикс или Р4-запись «потолок by construction» · #10 однознаковые Han-ключи пост-чека (转 в 转身): **СТРОИТЬ ЗДЕСЬ** — `membank/mempostcheck.go`+`memory.go` пишешь ТЫ (банк-сессия на этапе 1 read-only, её стройка идёт после твоего лендинга — D39.68); контракт границы/контекста коротких Han-ключей опиши отдельным §-блоком отчёта — оркестратор релеит его в дизайн-пак банка. **Из (I)/(III):** #1 K5c-супрессор пер-вхождением + **имплементация Р2-контракта** (сравнение ЗНАЧЕНИЯ, hard/soft split — «a design, not a patch», проектируй как дизайн) · #8 两/兩 → `cheng_re` (данные, батчем). **Отложенные фазой-2 (D39.64 §5.5):** K4b-атрибуция · inner_marker-вето-на-тире · приёмка гомоглиф-детектора (существует — `tk.mixed`, замерить на labels) · строгий OffLanguage (⚠ оговорка 36а: «甲等 → класс Цзя» строгой формой НЕ ловится — не заявлять выигрышем). -**R4-резидуал пака-11:** DC7 grade/role · omission-бэкстоп (лёгкий ru-стеммер + лемма-матч по {dst, decl.forms, aliases}) · DC2 word↔word дроби (дизайны — PACK11_CONT_REPORT §резидуал). -**Довески:** Problem-классы research/22 §2 №5 (char-freq-degeneration, control-code-loss) — вердикт-тройка, строить только если labels подтверждают класс · alignment-защита рефренов: МИНИМУМ = правка `prompts/zh-ru/editor.md` («повторы, которых НЕТ в оригинале»; двигает PromptSHA256/wire — допустимо, перекупок нет D39.63), детектор повторов — только вердикт-тройкой · **строка 79:** `checks/repair.go:131` DC1-трим и `checkers.go:457,474` isCyrLetter → `c.wordScript`; `lintNumberMagnitude` гейтить по объявленному письму источника (`SourceScripts`). +**R4-резидуал пака-11:** DC7 grade/role (⚠ предусловие — approved-promote 甲乙丙丁, owner-only, PACK11_CONT:195: если approved-строк нет — легитимный исход тройки = дизайн + вопрос владельцу, не стройка вслепую) · omission-бэкстоп (лёгкий ru-стеммер + лемма-матч по {dst, decl.forms, aliases}) · DC2 word↔word дроби (дизайны: PACK11_CONT §«Открытые эскалации» п.4 (:195-197) → полные — план-11 §5(б), `archive/architecture/11-implementation-plan.md`). +**Довески:** Problem-классы research/22 §2 №5 (char-freq-degeneration, control-code-loss) — вердикт-тройка, строить только если labels подтверждают класс · alignment-защита рефренов: МИНИМУМ = правка `prompts/zh-ru/editor.md` + `editor-mono.md` той же строкой («повторы, которых НЕТ в оригинале»; двигает PromptSHA256/wire — допустимо, перекупок нет D39.63; mono — DORMANT, но класс закрывается целиком), детектор повторов — только вердикт-тройкой · **строка 79:** `checks/repair.go:131` DC1-трим и `checkers.go:457,474` isCyrLetter → `c.wordScript`; `lintNumberMagnitude` гейтить по объявленному письму источника (`SourceScripts`). **Выход пакета:** пере-замер recall чекеров на labels (вход решения строки 12 `postcheck_gate`) — таблица per-класс ДО/ПОСЛЕ со вскрытыми единицами. ## Приёмка и самопроверка (обязательны, «ВСЕГДА на важных») -1. Харнесс labels: два независимых пути счёта совпадают; метрики per-defect ДО/ПОСЛЕ; **перед любым сравнительным выводом — глазами ≥1 единица с каждой стороны** (вывод на агрегате до вскрытия единиц запрещён). -2. `go build`/`vet`/`go test -race ./...` зелёные; майнер-парити EXACT; мутационные тесты на новые данные-классы. +1. Харнесс labels: **калибровка = сперва ВОСПРОИЗВЕДИ `metrics.json` пакета-6 на НЕизменённом коде** (каждую дельту объяснить; конвенцию k5c — их две: `k5c_unit` 0.167 vs `k5c_unit_codeconv` 1.0 — выбрать и назвать) — это и есть колонка ДО; два независимых пути счёта совпадают; метрики per-defect ДО/ПОСЛЕ; **перед любым сравнительным выводом — глазами ≥1 единица с каждой стороны** (вывод на агрегате до вскрытия единиц запрещён). +2. `go build`/`vet`/`go test -race ./...` зелёные В ФИНАЛЕ (после единственного пере-захвата голдена; красный голден-тест ПО ХОДУ работ — ожидаем, промежуточными захватами не чинить); майнер-парити EXACT; мутационные тесты на новые данные-классы. 3. **Голден:** вердикт-двиги для чекер-класса ОЖИДАЕМЫ и ратифицированы этим промтом — пере-захват ОДИН раз в конце (`TM_UPDATE_GOLDEN`), маскированный дифф, в отчёте: какие оси/вердикты двинулись, почему КАЖДЫЙ двиг верен (вскрытые единицы). Перекупок нет (D39.63) — но оси протоколируй. 4. Общность: свип своих диффов на новые язык-ветвления (их быть не должно — данные/контракт). 5. Адверсариальное селф-ревью исполнением: свой код + свои метрики (author≠reviewer внутри сессии). -**Отчёт:** `docs/archive/reports/CHECKER_PACKAGE_<дата>.md` — эхо-блок · вердикт-тройки ВСЕХ пунктов (вкл. «не чинить» с обоснованием) · метрики · голден-протокол · вопросы владельцу отдельным блоком. Бэклог не правишь; расхождение промта с кодом = пинг. **СТОП — приёмка оркестратора.** +**Отчёт:** `docs/archive/reports/CHECKER_PACKAGE_<дата>.md` — эхо-блок · вердикт-тройки ВСЕХ пунктов (вкл. «не чинить» с обоснованием) · метрики · голден-протокол · вопросы владельцу отдельным блоком. Плюс краткий итог 3–5 строк — в секцию «Бэкенд» `docs/PROGRESS.md` (таблицу бэклога и CURRENT-STATE НЕ трогать). Расхождение промта с кодом = пинг. **СТОП — приёмка оркестратора.**