textmachine/backend/docs/SEAM_PACK_PLAN.md

2.4 KiB
Raw Blame History

Записка-план: бэкенд-пак «входная дверь шва» (движковая половина D39.156)

Записка ОТРАБОТАВШЕЙ сессии (24.08.2026), а не задание: не исполнять. Пак закончен, принят и залендён — D39.158. Что реально построено, чем доказано и что осталось — доказательная база backend/docs/SEAM_PACK_FINDINGS.md (состав §0, попунктный чек заказа §12, пинги §10). Промт архивирован: docs/archive/prompts/BACKEND_SEAM_PACK_SESSION_PROMPT_2026-08-27.md.

Развилки, которые сессия решала своим доводом

(а) Имена файлов решений — каталог книги, а не сайдкар при базе. Все банк-сайдкары движка висят на project_db (.bank.json, .auto-bank.yaml, .mined-signature.yaml), но project_db может указывать КУДА УГОДНО (в т.ч. за пределы каталога книги), а решения пользователя — это его данные, они обязаны ехать с книгой в бэкапе и экспорте каталога. Отсюда <dir книги>/<book_id>.mined-delta.yaml и <book_id>.mined-rejects.yaml: префикс book_id повторяет механизм <book_id>.db и не даёт двум книгам в одном каталоге столкнуться. ⚠ Объявляемые ключи mined_delta/mined_rejects, которые эта записка ещё предполагала, СНЯТЫ фикс2 — путь стал чистой функцией каталога и book_id (D39.158 п.5); довод конвенции пережил снятие ключей, форма — нет.

(б) Словарь входа глагола. Ровно словарь УЖЕ публикуемой поверхности банк-экспорта (id/src/dst/kind/sense/since_chapter/until_chapter/aliases) плюс note. Поля, которого движок не публикует, во входе нет — в частности gender: ось мертва в производителях, а строить «на вырост» запрещено заказом.