2026-10-18 22:25:11 +04:00

3.7 KiB
Raw Blame History

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.