3.7 KiB
Why
Единая нормализация ББ/ОФР (RSHB/arm-ka-docs#116, change docs unified-statement-normalization, DBML v5.19): спека
arm-core разбита на две части поставки. Часть А (unified-normalization-core-a, RSHB/arm-core#126) уже в main и не
зависит от пакета arm_statements. Этот change — часть Б (RSHB/arm-core#131): переход ядра на пакет
arm_statements (копия api/arm_statements/, раскладывается sync-statements), мапперы результата 2.0, удаление
временного кода и копии словаря §7 ядра.
What Changes
Колонка «Б» таблицы покрытия спеки arm-core (план 3):
- B1 — адаптер пакета
StatementsEngine, вход пересчёта из БД (StoredForm). - B2 — пересчёт после правки точкой входа пакета; §7,
checksответа иCHECKS_NOT_PASSED— только изdocument_issue; относительные даты колонок; сценарий «после PATCH …RELATION_FAILED»:documents-api. - B3 — §7 и вариант формы при приёме
1.xкопией пакета (Р-30):osv-result-mapping. - B4 — маппер
2.0для форм: хранение как пришло,document_issue(serviceиcore), условиеRECOGNIZED(страховка —engine.contract_document_status):osv-result-mapping. - B5 — маппер
2.0для ОСВ (Р-28), выбор маппера по MAJOR, приём файла результата:osv-result-mapping,recognition-job-exchange. - B6 — удаление копии словаря §7 ядра (
api/rules/statement_checks.yaml,run_checks,load_check_rules), редакции — из перечня кодов пакета:statement-checks,documents-api.
Архивация (R-7 части А). Change unified-normalization-core-b архивируется только вместе с
unified-normalization-core-a и только после выкладки обеих частей: дельты части А содержат поведение части Б, дельты
этой части уточняют его (порядок архивации — сначала А, затем Б).
Capabilities
New Capabilities
Modified Capabilities
osv-result-mapping: маппер2.0для форм и ОСВ, §7 при приёме1.xкопией пакета.documents-api: пересчёт,CHECKS_NOT_PASSEDиchecksизdocument_issue, словари без копии §7.statement-checks: §7 только копией пакета; копии словаря в ядре нет.recognition-job-exchange: выбор маппера результата по MAJOR.
Impact
api/src/domain/{stored_form,statement_mapping_v2,statement_checks,statement_issues,statement_mapping,statement_aggregate,statement_layout,osv_mapping}.py,
api/src/services/{statements_engine,statement_recompute,statement_intake_v2,statement_line_edits,statements,result_mapping}.py,
api/src/api/dependencies/files.py, api/src/contract/result.py,
api/src/repositories/statements.py, api/src/schemas/statements.py, api/rules/statement_checks.yaml (удаляется),
CLAUDE.md, README.md. import arm_statements — только в statements_engine.py и stored_form.py.
Non-goals
Схема v5.19 и миграция (часть А), фронт (arm-web), копия api/arm_statements/ (раскладывается sync-statements),
docs-worktree.