Issue: RSHB/arm-ka-docs#9 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2.2 KiB
2.2 KiB
Design: Срез 2a (сквозное, docs)
Context
См. proposal. Дизайн парсера — в дочернем change tabular-parser/openspec/changes/slice-2a-osv-parser/design.md (D-1…D-10).
Decisions
D-1. MINOR 1.1 вместо «складывать extra в columns»
columns — диагностика документа, а не строки; extra нужен построчно. Новое необязательное поле — MINOR по правилу
версионирования, схема v1.0 остаётся валидной для старых файлов. Альтернатива — ждать 2.0: парсер потеряет данные.
D-2. Декомпозиция Среза 2 фиксируется в плане срезов
2a парсер ОСВ → 2b ББ/ОФР из Excel → 2c загрузка и маппинг в ядре (включая решения OQ-01/02/45/67/69/70) → 2d UI. Каждый подсрез — свой набор change'ей и PR.
D-3. Golden-снимки живут в fixtures, формат — файл результата без volatile-полей
Так снимки обновляются вместе с данными и видны всем сервисам; job_id, file_id, service.version, duration_ms
исключены, чтобы снимок зависел только от файла и кода парсера.
Decisions made without discussion
| № | Дата | Решение | Обоснование | Цена ошибки |
|---|---|---|---|---|
| 1 | 2026-10-05 | D-1: контракт MINOR 1.1 с rows[].extra |
§1.2; обратно совместимо | откат поля |
| 2 | 2026-10-05 | D-2: обозначения подсрезов 2a–2d в плане | владелец утвердил объём 2a, остальное — порядок по плану | переименовать |
| 3 | 2026-10-05 | D-3: формат и место golden | см. выше | перенос каталога |
| 4 | 2026-10-05 | Копия схемы v1.1 в arm-core — bounded-PR без логики, после merge docs и tabular-parser | тест идентичности в arm-core | нет |