From b8a7863073dfb3ec13eccc8fc9fd0b2424ec4c14 Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Fri, 24 Jul 2026 03:36:33 +0300 Subject: [PATCH] Record the owner-caught parsePalladius addendum in pack-14: generic category parser, typed table struct instead of the four-map tuple, hash-neutral refactor --- docs/BACKEND_GENERALITY_PASS_SESSION_PROMPT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/BACKEND_GENERALITY_PASS_SESSION_PROMPT.md b/docs/BACKEND_GENERALITY_PASS_SESSION_PROMPT.md index a75c5dcd..4fdc5cd4 100644 --- a/docs/BACKEND_GENERALITY_PASS_SESSION_PROMPT.md +++ b/docs/BACKEND_GENERALITY_PASS_SESSION_PROMPT.md @@ -14,7 +14,7 @@ 2. **Инъекция-тексты — в пар-данные** (`memory.go:601` и рядом): русские строки инъекции (gender-аннотации «(муж. — …)», заголовки glossaryBlockHeader/editorConstraintHeader) рендерятся для ЛЮБОЙ пары без гейта. Вынести в pair-keyed данные (langpack-слот или prompts-pack по образцу stage-промптов). ⚠ Байты для zh-ru обязаны совпасть с текущими (иначе wire-сдвиг) — сверка golden. 3. **Refusal-блэклист** (`disposition.go:235-250`): en/ru/zh/ja-фразы отказов — в langpack-данные (per-source или общий файл `refusal.txt` со слотами). 4. **Чанкер:** zh-числительные (`chunker.go:207,270-304` — руны+value-мапы; heading-рендер уже данные, а числительные под ним — нет) и `sourceAbbrevs` (`chunker.go:628`, en-аббревиатуры) — в langpack. -5. **Майнер:** sentence-терминаторы `。!?` (`miner_alias.go:64`) и фонотактика Палладия (jqx/ретрофлексы/ü-finals, `miner_palladius.go:38`) — в langpack; формат loader'а расширь при необходимости (fail-loud, байты в Version()). +5. **Майнер:** sentence-терминаторы `。!?` (`miner_alias.go:64`) и фонотактика Палладия (jqx/ретрофлексы/ü-finals, `miner_palladius.go:38`) — в langpack; формат loader'а расширь при необходимости (fail-loud, байты в Version()). **Аддендум (владелец, 24.07):** расширяя формат — перепиши `parsePalladius` (`langpack.go`) правильно: (а) generic-парсер категорий `map[категория]map[string]string`, незнакомая категория ≠ ошибка парсера (обязательность категорий валидирует потребитель пары по required-списку); (б) вместо четырёх-кортежа `(ini, fin, yw, si …)` и четырёх параллельных полей `Pack` — один типизированный struct с говорящими именами; (в) байты данных не трогать — `Version()` хеширует файлы, рефактор хеш-нейтрален. 6. **Чекеры zh-ru:** таблицы DC1 (`checkers_zh_ru.go:30`) и `dcRegisterNegList` («терем»+формы, `:139`) — в langpack-данные пары; код чекера остаётся, читает данные. 7. **Калибровки как fallback-константы** (`config/pipeline.go:366-377`): fertility 1.1978/0.3852 + draft/edit-бюджеты — оставить механизм, но дефолты пере-документировать как «пар-калибровка zh-ru» и брать из пар-конфига, Go-fallback — только generic. 8. **Свип-добор:** полный grep CJK/Cyrillic-литералов в non-test `.go` (карта zone-6 аудита — спроси оркестратора при старте, он передаст список) — каждый решить: langpack / book-data / OK-generic; ратифицированные DEFER не трогать.