Proposal, design и tasks сквозного change'а Среза 4: enum counterparty_match_kind и колонка osv_entry.counterparty_match_kind, правила приведения периодов (ключ, пробел), явная привязка документов, статусы Среза 4, контракт API для фронта. Refs RSHB/arm-ka-docs#19 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
32 lines
2.9 KiB
Markdown
32 lines
2.9 KiB
Markdown
# Design: Срез 4 (сквозное) — документы
|
||
|
||
## Context
|
||
|
||
Дочерний change в arm-core (`slice-4-consolidation`) держит технические решения D-1…D-16. Здесь — что меняется в
|
||
документах контекста и модели и почему.
|
||
|
||
## Decisions
|
||
|
||
### D-1. Новая версия DBML ради одной колонки
|
||
`osv_entry.counterparty_match_kind` — ручное решение аналитика (DECISION-5 разрешает хранить ручные решения), а
|
||
`INN/NAME/ALIAS` — зафиксированный шаг автоматического резолва, нужный для подсветки строк к проверке. Вычислять на
|
||
чтение нельзя (алиас после ручного связывания маскирует ручное). Версия 5.16, v5.15 остаётся в репозитории.
|
||
|
||
### D-2. §2 переписывается из «[открыто]» в правило
|
||
Формула остаётся; добавляются ключ, выбор источников, пробел и нули. OQ-03 закрывается решением владельца 06.10.2026.
|
||
|
||
### D-3. §3 п. 1 меняет «последние подтверждённые» на явную привязку
|
||
Подхват при создании версии и расширении периметра заменяет fallback «если версия ещё не зафиксировала документы».
|
||
Фраза убирается, чтобы код и правило не расходились.
|
||
|
||
### D-4. Контракт API для фронта — отдельный документ в `docs/dev/`
|
||
Разработчик фронта не читает OpenSpec arm-core. `api-contract-slice-4.md` — выжимка: маршруты, схемы, фильтры, коды
|
||
ошибок, соответствие экранам макета. Источник истины — спеки arm-core; документ помечен как производный.
|
||
|
||
## Decisions made without discussion
|
||
|
||
| # | Дата | Решение | Обоснование | Цена ошибки |
|
||
|---|---|---|---|---|
|
||
| 1 | 2026-10-06 | OQ-40 закрывается допущением `reporting_date` по правилу банка, макет помечен неточным | владелец не возражал на двух срезах; правило банка — в DBML note | одно поле, правится миграцией данных |
|
||
| 2 | 2026-10-06 | Контракт для фронта выносится в `docs/dev/api-contract-slice-4.md`, а не в `docs/contracts/` | `docs/contracts/` — JSON Schema между сервисами с версией; API фронта описывает OpenAPI | дублирование OpenAPI текстом; помечено «производный» |
|