Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
4.1 KiB
4.1 KiB
Proposal: Срез 2a (сквозное) — контракт результата v1.1, уточнения §1, фикстуры, OQ
Срез: 2, подсрез 2a «парсер ОСВ» (решение владельца 05.10.2026: сначала только парсер, без ББ/ОФР из Excel, ядра и UI).
Репозиторий: arm-ka-docs. Issue: RSHB/arm-ka-docs#9. Дочерний change: tabular-parser/openspec/changes/slice-2a-osv-parser
(RSHB/arm-tabular-parser#5). Фикстуры: RSHB/arm-ka-fixtures#4.
Why
§1.2 требует «неизвестные колонки сохранять в extra, не терять», а в контракте v1.0 у строки ОСВ такого поля нет —
парсер не может выполнить правило без MINOR-версии контракта. Кроме того, после реального прогона на 66 файлах §1 и
06-test-data нужно привести к факту, а план срезов — к принятой декомпозиции Среза 2.
What Changes
- Контракт v1.1 (
docs/contracts/recognition-result.schema.json):osvDocument.rows[].extra— объект «заголовок колонки → текст ячейки или null» для колонок внутри таблицы, не сопоставленных с суммами и ИНН;titleиdescriptionschema_version— «1.1»; примерexamples/result-osv-minimal.jsonдополняетсяextra; новый примерexamples/result-osv-needs-check.json(нарушение §1.4). Сообщение и запрос не меняются. Спекаrecognition-contract: требование «Файл результата» — v1.1. 05-domain-rules.md§1: уточнения по факту реализации (статусы и коды D-6, формула «стратегия иерархии вmetrics.warningsкакhierarchy=<имя>», TOTAL вrows, лимиты парсера, словари по именам файлов), §1.5 — пометкаASSUMPTION(OQ-02).06-test-data.md: синтетикаosv/synthetic/(перечень файлов и что проверяет каждый), goldenexpected_osv_parse/(формат снимка, процесс обновления), xlsb вручную.09-delivery-plan.md: Срез 2 разбит на 2a (парсер ОСВ), 2b (ББ/ОФР из Excel), 2c (загрузка и маппинг в ядре), 2d (UI «Первичные документы»);08-source-docs-index.md/README без изменений.07-open-questions.md: новые OQ (коды валют для строк CURRENCY; поведение при нескольких ОСВ одного счёта в одной книге), статус OQ-81 (частично закрыт: в tabular-parserARM_KA_FIXTURESподдержан хелпером, scan-gateway — follow-up), OQ-45/OQ-01/OQ-02 — пометка «допущение парсера, решение в 2c».
Capabilities
Modified Capabilities
recognition-contract: «Файл результата» — v1.1 сrows[].extra; «Версионирование контракта» — без изменений (MINOR по правилу).
Impact
- Контракт: MINOR, обратно совместимо; копии обновляются в
tabular-parser(в дочернем change) иarm-core(отдельный bounded-PR: только файл схемы иOsvRow.extra, логики нет). Порядок merge: docs → tabular-parser → arm-core. - Таблицы DBML: нет. Правила: §1 (уточнения без смены смысла), §1.5 (допущение).
Non-goals
- §12 (ББ/ОФР из Excel) и
statementDocument— не трогаются. - Изменение семантики
is_cumulative,TOTAL,NUв ядре — подсрез 2c (OQ-02, OQ-01, OQ-45). audit_actionдля статусов задания (OQ-55), дедуп по attempt (OQ-73).