Andrey Epifancev 92b46c9dbe spec(slice-4): документный OpenSpec change — DBML v5.16, правила §2/§3/§9/§10 по факту, OQ-03/19/110 и новые OQ
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
2026-10-06 02:52:32 +04:00

2.9 KiB
Raw Blame History

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 текстом; помечено «производный»