Refs #26 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
6.3 KiB
Proposal: Срез 2b (сквозное) — контракт результата v1.2, §12 ББ/ОФР из Excel, OQ
Срез: 2, подсрез 2b «парсер ББ/ОФР из Excel» (решение владельца 06.10.2026: только парсер и контракт; маппинг в ядро —
Срез 3). Репозиторий: arm-ka-docs. Issue: RSHB/arm-ka-docs#26. Дочерний change:
tabular-parser/openspec/changes/slice-2b-statement-parser (RSHB/arm-tabular-parser#14). Golden и синтетика —
arm-ka-fixtures (отдельный PR). Копии схемы v1.2 — bounded-PR в arm-core и arm-scan-gateway.
Why
§12 написан до появления реальных файлов. Пакет ДКБ 06.10.2026 принёс 15 форм в трёх раскладках (постраничные xls 1С,
многолистовая книга ФСБУ 4/2023, TDSheet) и показал пять решений, которых в §12 нет: страницы одной формы в разных
файлах, единицы «тыс. руб.» против значений с копейками, пятизначные подстроки «в том числе», соотношения §7 как данные,
формы без колонки кодов. Контракту v1.1 не хватает структурного места для результатов проверок §7 и типа «расшифровка»
(DBML document_type.DISCLOSURE), а ОСВ со скользящим периодом (OQ-131) — границ периода. Всё это MINOR.
What Changes
- Контракт v1.2 (
docs/contracts/recognition-result.schema.json):statementDocument.document_type+DISCLOSURE; необязательныйstatementDocument.checks{relations_failed[],soft_relations_failed[]— объекты{column_index, relation, expected, actual};duplicate_line_codes[]}; необязательныеosvDocument.header.period_start,period_end(date|null),is_from_year_start(boolean|null).title/descriptionschema_version— «1.2». Примеры:result-statement-minimal.jsonдополняетсяchecks; новыйresult-statement-excel.json(книга сBALANCEиз нескольких листов,INCOME,DISCLOSURE);result-osv-minimal.json— новые поля шапки. Сообщение и запрос не меняются. Спекаrecognition-contract: «Файл результата» — v1.2. 05-domain-rules.md§12: решения владельца 06.10.2026 (вопросы 2–6 brainstorming) и уточнения по факту файлов: классификация листов и продолжений, титул «Бухгалтерская отчетность», склейка листов внутри книги и запрет склейки между файлами (страница без шапки →needs_check), единицы как есть + предупреждение, пятизначные подстроки как строки, §7 по четырёхзначным с допуском ±1 и двойным расчётом знаков, соотношения — данныеstatement_checks.yaml, отказ от запасного пути по именам в первой очереди, критерийokдокумента, порядок документов книги. §7 — пометка, какие соотношения парсер считает жёсткими, какие мягкими (ASSUMPTION(OQ-12)).06-test-data.md: раздел поstatements-xlsx/**(раскладки, манифест ожиданий, goldenexpected_statement_parse/, синтетикаst01…st05).03-architecture.md: версия контракта 1.2,BookParserкак реализация по умолчанию tabular-parser, порядок раскатки MINOR (потребители раньше производителя).09-delivery-plan.md: Срез 2b — статус и объём по решению владельца; маппинг форм — Срез 3 (без изменений).07-open-questions.md: новые OQ — единицы «тыс. руб.» против значений с копейками в 1С-выгрузках (кто и где приводит); форма без колонки кодов (словарь имён из шаблонов); страница-продолжение в отдельном файле (склейка в ядре, признакis_continuationв контракте); строка без кода с суммами в ОФР ФСБУ 4/2023; образец ФСБУ с «АКТИВ» и 1110 в одной строке. Статус OQ-131: границы периода в контракте v1.2, заполнение — парсер (#11 / 2b).docs/dev/qa-guide.md§6.7: абзац про прогон парсера на формах.
Capabilities
Modified Capabilities
recognition-contract: «Файл результата» — v1.2 сDISCLOSURE,statementDocument.checks, границами периода ОСВ; «Версионирование контракта» — без изменений (MINOR по правилу).
Impact
- Контракт: MINOR, обратно совместимо; копии обновляются в
tabular-parser(дочерний change),arm-coreиscan-gateway(bounded-PR: схема, примеры, pydantic-модели; логика не меняется — ядро по-прежнему маппит толькоosvDocument). Порядок merge: docs → arm-core, scan-gateway → tabular-parser → fixtures. - Таблицы DBML: нет (
DISCLOSUREуже есть вdocument_type). Правила: §12 (решения владельца), §7 (пометки).
Non-goals
- Маппинг
statementDocumentв ядре и экран проверки форм — Срез 3. - Признак продолжения страницы в контракте, нормализация единиц, словарь имён строк — после появления потребителя/файла.