Confirm the ruby-seed contract for memory-v2: base to src, reading as the Polivanov dst bridge strengthening B6, with name-vs-double-reading classification

This commit is contained in:
Claude (backend session) 2026-07-05 02:47:45 +03:00
parent b26e4df465
commit 8096224a2f

View file

@ -98,6 +98,15 @@
4. **Трёхсторонний disposition инъекции (A2)** + `retrieval-state` per-chunk запись (A1/F2/G2: `n_exact_hits, n_sticky, n_ambiguous_flagged, n_spoiler_blocked, embedding_tier_used`) — наблюдаемость деградации с первого дня.
5. **Отложено в v1.1/Фазу 2 (не блокирует v1-схему, но заложить поля/место):** транслит-стандарты Палладий/Поливанов (B6), гейт фактичности резюме (D1), whole-book эмбеддинг-слой low-trust (A7/D2), бэкап/интеграл файла книги (F4), морфо-гейт глагольного рода (C3), измерение экстракции и flag-volume (G1/G2).
### Ruby-seed контракт (вход шага 4 из шага 3a — подтверждён оркестратором 05.07)
Шаг 3a захватил ruby/фуригану в `ruby_readings(book_id, base, reading, first_chapter, occurrences)` (capture-only, не в промпте/hash). Маппинг в глоссарий v2 **подтверждён, форма верна**, с 3 уточнениями:
- `base` (кандзи) → `src`; `first_chapter``since_ch`; `occurrences`**приор уверенности** (не прямой approved).
- `reading` (кана) → **НЕ dst напрямую, а мост к правильному dst**: это авторитетное произношение, по которому валидируется Поливанов-транслитерация. **Ruby прямо усиливает пробел B6** — reading есть ground-truth для транслит-стандарта (без него B6 нерешаем; с ним — механически проверяем).
- **Уточнение 1 (обязательно): различать имя-чтение vs авторское двойное чтение (фуригана-игра).** Ruby двойствен (04-unhappy §4): 鈴木→すずき (имя → name-lock, Поливанов) против 強敵→とも (база и чтение значат РАЗНОЕ — стилистический приём). Блайнд-лок второго (強敵→とも→«друг») = mistranslation. Классифицировать: фонетическая согласованность / паттерн собственного имени → name-lock; несвязанное чтение → **переводческая сноска, не лок**. Неоднозначное → человеку.
- **Уточнение 2: ruby — СИД в auto-кандидатный пул с приором `occurrences`, НЕ прямо в approved** (статус-машина G1: высоко-частотное чтение → auto-кандидат; батч-судья/человек промоутит в approved до распространения на будущие главы).
- **Уточнение 3: `decl`/`gender` ruby НЕ даёт** — они с term-commit LLM-пасса (decl) и контекста (gender). Ruby сидит src+reading→dst, остальное достраивается.
> ⚠ **Перед реализацией прочитай `research/13` §«Честные слабые места рекомендаций».** Два пункта прямо влияют на этот реестр: **F1** подан как решённый фикс, но там реальная развилка (snapshot материализует байты инъекции vs store версионирует глоссарий — я склоняюсь к «байты», но не доказал); **E1 post-check** — несущий гейт, но его надёжность в русской морфологии сама невалидирована (склонение-осознанный матч шумит → ложные флаги → редакторы игнорируют → safety рушится). Померить пост-check на русском ДО того, как доверять ему как гейту. Исполняемый эталон механизма (не продукт) — `eval/memory_hotpath.py` (T1T10 → Go-юниттесты).
## In-house eval — обязателен (числа литературы не переносятся)