textmachine/docs/archive/prompts/BACKEND_BANK_FIXPACK_SESSION_PROMPT.md

6.7 KiB
Raw Blame History

Промт бэкенд-сессии: ФИКС-ПАК БАНКА (строка 87 + Q5; $0-код, короткий)

⚠ АРХИВ (02.08.2026): исполнен и ПРИНЯТ — D39.75 (9/9 пунктов; (а) откачен по делу — finding-1 → строка 91). Отчёт: ../reports/BANK_FIXPACK_2026-08-02.md. Файл несёт живые правки владельца. Инструкции НЕ исполнять.

Выдан 02.08.2026, оркестратор №9 (D39.71); санкция владельца («передать записку тем же бэкендерам»). Ты — бэкенд-сессия TextMachine, продолжение банк-пака D39.69 (если ты свежий инстанс — онбординг: CLAUDE.md вкл. НОВЫЙ канон «Цели и мерило» → CURRENT-STATE docs/PROGRESS.md → ревью-шапка docs/archive/reports/BANK_QUALITY_DESIGN_2026-08-01.md — там все якоря находок). Зона: backend/ + отчёт. НЕ коммитить. Первый деливерабл — эхо-блок ≤8 строк (первым сообщением; подтверждения не жди).

Состав (= бэклог-строка 87; каждому пункту — краткая вердикт-тройка по мандату D39.68, «не делать с обоснованием» — легитимный исход для (в)/(е)/(и))

(а) decl_suffix: добавить «ь» и закрыть палладиевский класс. Приёмочный кейс дизайна «Фан Юаню»→«Фан Юань» сейчас ПРОВАЛИВАЕТСЯ (ревью-шапка, находка 1). Добавить «ь» (+проверить симметрию класса: -нь/-ль/-й/-ью — что реально нужно консервативному стеммеру, не перечисляй лишнего); тест ИМЕННО на палладиевский кейс (Фан Юаню/Фан Юанем/Фан Юаня → база) — не подменять «мечом». (б) series/head_final → в данные. SeriesMorphology (script.go) хардкодит head_final Go-константой CJK-класса — перенести объявление в lang-script.txt (третья колонка/строка класса), Go читает данные; тест «плотный не-head-final скрипт заводится данными без правки Go» (D39.70, канон целей п.2). (в) Оверсайз-серия + лживый комментарий. Комментарий Batch «request hash … independent of this ordering» НЕВЕРЕН (ChunkIdx фолдится в RequestHash) — переписать на правду. Оверсайз-серия сейчас кладётся ОДНИМ батчем сверх бюджета (помни мину cap-8000 терминолога, PROBES §1) — вердикт-тройкой решить: явный кап/WARN vs рендер-капнутое разрезание vs оставить (с записанным потолком по Р4-образцу). (г) classify_types гигиена. При выключенном terminology-гейте сейчас ТИХИЙ no-op — привести к норме блока (bad() или объявленный no-op с комментарием-обоснованием); config-тесты classify-веток (fail-loud пары без classifier.md · бюджет ≤0 · неизвестная модель). (д) Мутационный тест neuter-фолда. Строка с gender: neuter двигает memory_version (тег neuter-directive-v1), банк без neuter — байт-идентичен (по образцу memvoice-пина). (е) Voice-checker × стеммер. Дизайн-«учесть» дал нулевой исход молча — вердикт-тройкой РЕШИТЬ: заводить стем-матчинг в voice-канал или объявить не-нужным (контракт-запись в код). (ж) Дистилл-фикстура BANK-FULL. Свойство «ровно 4 серии, ноль блоба, 方源/元石/元海 вне» не запинено регрессионно — дистиллировать поверхности в testdata (тест-данные пары легитимны) и запинить. (з) Q5 — промпт-инструкция реалий (D39.70). В пар-промпты ролей, рендерящих dst реалий (терминолог; проверь — нужна ли и переводчику/классификатору): «реалии переводи по смыслу; транслитерация — именам собственным». Двигает PromptSHA256 — перекупок нет; отчитай, какие промпты тронуты и почему именно они. (и) Дубль токенизации. lang.TokenizeWords рядом с text.TokenizeScript — консолидировать, если чисто (text — script-agnostic слой, lang его импортировать МОЖЕТ, обратное — нет); иначе «оставить» с обоснованием в код.

Приёмка (короткая, но обязательная — «ВСЕГДА на важных»)

go build/vet/go test -race ./... зелёные В ФИНАЛЕ · майнер-парити EXACT · голден: пере-захват ОДИН раз в конце, маскированный дифф, отчитать оси (двинутся embedded_version от (а)/(б)-данных и PromptSHA256 от (з) — вердикты двигаться НЕ должны; если двинулись — вскрытые единицы и обоснование) · греп-общность своего диффа.

По окончании: селф ревью на алгоритмическую правильность, на алгоритмическое соотвествие стандартам репозитрия и правильность предложенных заранее фиксов.

Отчёт: docs/archive/reports/BANK_FIXPACK_<дата>.md (компактный: тройки · метрики · голден-протокол) + итог 35 строк в §Бэкенд docs/PROGRESS.md (таблицу не трогать). Расхождение промта с кодом = пинг. СТОП — приёмка оркестратора.