chore(contract): копия схемы v1.2 (потребитель, без логики) #27

Merged
aep merged 1 commits from chore/contract-v1-2 into main 2026-10-06 21:37:09 +03:00
Owner

Что сделано

Копия контракта распознавания v1.2 из RSHB/arm-ka-docs (PR #27, ветка feat/26-slice-2b-statement-parser): api/contracts/** скопирован cp (байт в байт) и модели api/src/contract/result.py дополнены: FailedRelation, StatementChecks, StatementDocument.checks, document_type + DISCLOSURE, OsvHeader.period_start/period_end/is_from_year_start. Таблица примеров в api/tests/test_contract.py дополнена result-statement-excel.json. Поведение не меняется; CONTRACT_VERSION ядра остаётся 1.0, services/result_mapping.py не тронут (ядро — потребитель; все новые поля необязательные).

Часть среза 2b: RSHB/arm-tabular-parser#14 (PR парсера #16). Bounded-задача, без OpenSpec change.

Как проверить

  • diff -r docs/contracts arm-core/api/contracts пуст (docs на ветке feat/26-slice-2b-statement-parser).
  • make check — 1108 passed; pytest tests/test_contract.py — 169 passed.

Порядок слияния

После RSHB/arm-ka-docs#27 и до RSHB/arm-tabular-parser#16.

Rulings I made

  • R-1: временный check-скрипт Task 1 лежит в scratchpad контроллера (как в плане). Цена ошибки: нулевая.

Находки (ревью)

  • T3.2: CONTRACT_VERSION остаётся 1.0 намеренно (потребитель) — зафиксировано в описании, fixed.
  • T2.1/T1.1 ($comment схемы упоминает «1.1»), T2.2 (пример excel: needs_check при одном мягком нарушении), T2.3 (в OCR-примере minimal появился пустой checks) — относятся к источнику docs/contracts, deferred, правятся там и пересинхронизируются.

Refs RSHB/arm-tabular-parser#14

🤖 Generated with Claude Code

## Что сделано Копия контракта распознавания v1.2 из `RSHB/arm-ka-docs` (PR #27, ветка `feat/26-slice-2b-statement-parser`): `api/contracts/**` скопирован `cp` (байт в байт) и модели `api/src/contract/result.py` дополнены: `FailedRelation`, `StatementChecks`, `StatementDocument.checks`, `document_type` + `DISCLOSURE`, `OsvHeader.period_start/period_end/is_from_year_start`. Таблица примеров в `api/tests/test_contract.py` дополнена `result-statement-excel.json`. Поведение не меняется; `CONTRACT_VERSION` ядра остаётся `1.0`, `services/result_mapping.py` не тронут (ядро — потребитель; все новые поля необязательные). Часть среза 2b: `RSHB/arm-tabular-parser#14` (PR парсера `#16`). Bounded-задача, без OpenSpec change. ## Как проверить - `diff -r docs/contracts arm-core/api/contracts` пуст (docs на ветке `feat/26-slice-2b-statement-parser`). - `make check` — 1108 passed; `pytest tests/test_contract.py` — 169 passed. ## Порядок слияния После `RSHB/arm-ka-docs#27` и до `RSHB/arm-tabular-parser#16`. ## Rulings I made - R-1: временный check-скрипт Task 1 лежит в scratchpad контроллера (как в плане). Цена ошибки: нулевая. ## Находки (ревью) - T3.2: `CONTRACT_VERSION` остаётся `1.0` намеренно (потребитель) — зафиксировано в описании, fixed. - T2.1/T1.1 (`$comment` схемы упоминает «1.1»), T2.2 (пример excel: `needs_check` при одном мягком нарушении), T2.3 (в OCR-примере minimal появился пустой `checks`) — относятся к источнику `docs/contracts`, deferred, правятся там и пересинхронизируются. Refs RSHB/arm-tabular-parser#14 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 1 commit 2026-10-06 13:33:41 +03:00
aep merged commit 049a45a402 into main 2026-10-06 21:37:09 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-core#27
No description provided.