chore(contract): копия схемы v1.2 (без логики) #5

Merged
aep merged 1 commits from chore/contract-v1-2 into main 2026-10-06 21:43:50 +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/unit/test_contract.py дополнена result-statement-excel.json. Поведение не меняется (адаптер scan-gateway новых полей не пишет); CONTRACT_VERSION scan-gateway остаётся 1.0, все новые поля необязательные.

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

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

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

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

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

Rulings I made

  • R-1: временный check-скрипт Task 1 лежит в scratchpad контроллера (как в плане). Цена ошибки: нулевая.
  • R-2: копия схемы в scan-gateway отставала на v1.1 (не было OsvRow.extra и примера result-osv-needs-check.json); вместе с v1.2 принят догон v1.1, потому что копия обязана совпадать с docs побайтно. Цена ошибки: лишнее необязательное поле OsvRow.extra, откатывается отдельным коммитом (T3.1, fixed в описании).

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

  • 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/unit/test_contract.py` дополнена `result-statement-excel.json`. Поведение не меняется (адаптер scan-gateway новых полей не пишет); `CONTRACT_VERSION` scan-gateway остаётся `1.0`, все новые поля необязательные. Часть среза 2b: `RSHB/arm-tabular-parser#14` (PR парсера `#16`). Bounded-задача, без OpenSpec change. ## Как проверить - `diff -r docs/contracts scan-gateway/api/contracts` пуст (docs на ветке `feat/26-slice-2b-statement-parser`). - `make check` — 749 passed; `pytest tests/unit/test_contract.py` — 220 passed. ## Порядок слияния После `RSHB/arm-ka-docs#27` и до `RSHB/arm-tabular-parser#16`. ## Rulings I made - R-1: временный check-скрипт Task 1 лежит в scratchpad контроллера (как в плане). Цена ошибки: нулевая. - R-2: копия схемы в scan-gateway отставала на v1.1 (не было `OsvRow.extra` и примера `result-osv-needs-check.json`); вместе с v1.2 принят догон v1.1, потому что копия обязана совпадать с docs побайтно. Цена ошибки: лишнее необязательное поле `OsvRow.extra`, откатывается отдельным коммитом (T3.1, fixed в описании). ## Находки (ревью) - 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:45 +03:00
aep merged commit d13c65d172 into main 2026-10-06 21:43:50 +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-scan-gateway#5
No description provided.