3.3 KiB
Raw Blame History

Proposal: Срез 2c (сквозное) — DBML v5.15, правила маппинга ОСВ в ядре по факту, OQ

Срез: 2, подсрез 2c (загрузка файлов, очередь, маппинг результата парсера в document/osv_entry). Репозиторий: arm-ka-docs. Issue: RSHB/arm-ka-docs#16. Дочерний change: arm-core/openspec/changes/slice-2c-osv-ingest (RSHB/arm-core#14).

Why

Решения владельца 05.10.2026 (OQ-45 NU хранить; OQ-59 регистр email; OQ-01/02/05; автозамена файлов) требуют новой версии модели и фиксации правил маппинга, которых в §1.3/§3/§9 нет в деталях (кто ставит статусы файла, как разделены inbox и маппинг, что делать с повтором счёта в файле, что такое period_check без консолидации).

What Changes

  • DBML v5.15 (model/data-model-v5.15.dbml, v5.14 остаётся): osv_data_type + NU; app_user.email в нижнем регистре (структура без изменений); уточнения семантики stored_file.status/recognition_job.group_schema в changelog. entities-v5.15.md, 04-data-model-guide.md, ссылки в CLAUDE.md/repo-templates — на v5.15.
  • 05-domain-rules.md: §1.3 — маппинг в ядре по факту (TOTAL не хранится, нормализация кода, account_root при нечисловом первом сегменте, повтор счёта в файле); §1.5 — period_check = UNKNOWN до Среза 4, is_cumulative по Q1; §3 п. 4 — резолв без policy, нормализация имени ЮЛ как алиаса; §9.2 — таблица «кто ставит статус файла»; §9.3 — условия RECOGNIZED/NEEDS_CHECK; новый §9.5 «Автозамена и удаление файлов» (решение владельца).
  • 03-architecture.md: цикл маппинга как третий фоновый процесс ядра (outbox, вахтёр, маппинг), OQ-69 закрыт.
  • 07-open-questions.md: закрыты OQ-67, OQ-69, OQ-70, OQ-59 (реализацией), OQ-109 (лимит на загрузке у ядра); новые OQ: удаление файлов после появления консолидаций (ANL-020 — уточнить условие), ретеншн expires_at (связь с OQ-22).
  • 09-delivery-plan.md: 2c по факту; dev/qa-guide.md: сценарии загрузки ОСВ, статусы, просмотр строк через API.

Capabilities

Change документный (skip_specs: true); поведение описывают спеки дочернего change'а.

Impact

  • Таблицы: osv_entry (enum), app_user (данные). Правила: §1.3, §1.5, §3, §9. Потребители: arm-core (миграция 0003, DBML_VERSION), tabular-parser — без изменений (контракт не меняется).

Non-goals

  • UI (2d), ББ/ОФР (2b/Срез 3), replay заданий, JetStream, аудит обмена (OQ-55).