2.2 KiB
Raw Blame History

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 нет