Issue: RSHB/arm-ka-docs#16 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
38 lines
3.3 KiB
Markdown
38 lines
3.3 KiB
Markdown
# 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).
|