Andrey Epifancev 12ae96ba6e Библиотека arm_statements вместо копий: спеки, контекст, инструменты docs (AURORA-1677)
- спеки statement-normalization, quality-checks, arm-core, recognition-contract — дельты под библиотеку
- удалены sync-statements, statements-check, test-sync-statements; новая statements-orders-check в make check
- снимок для контура: без шага 0a, цель install вырезается (иначе проверка «нет uv» падает)
- 03-architecture, 05-domain-rules, 00-workspace-layout, dev/checks.md, contour-transfer-guide; баннеры убраны

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 16:45:19 +04:00

52 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Proposal
## Why
AURORA-1677: общий код нормализации ББ/ОФР `arm_statements` переведён из копий в сервисах (`api/arm_statements/`,
скрипт `sync-statements`) в Python-библиотеку `pylib-ai-arm-statements` (репозиторий `RSHB/pylib_ai_arm_statements`,
тег `v0.1.1`), которую сервисы ставят зависимостью. Сквозная документация, спеки docs и скрипты docs ещё описывают
копии: `sync-statements`, `statements-check`, шаг 0a снимка для контура, маркер версии «коммит копии».
## What Changes
- Контракт `recognition-result.schema.json`: два `description` — нормализация библиотекой и источник
`service.statements_version`; структура, обязательность и ограничения не меняются, `schema_version` остаётся 2.0.
Копии схемы в arm-core, tabular-parser и scan-gateway обновляются в их PR той же задачи.
- **BREAKING (инструменты docs):** удалены `scripts/sync-statements.sh`, `scripts/test_sync_statements.sh`,
`scripts/statements_check.py` и цели `sync-statements`, `statements-check`, `test-sync-statements`. Вместо сверки
перечня кодов в копиях — цель `statements-orders-check` (в `make check`): `contracts/statement-code-orders.yaml`
против байтовой копии в библиотеке, расхождение — предупреждение.
- `scripts/prepare-contour-snapshot.sh`: убран шаг 0a (свежесть копии); в снимке вырезается цель `install` (ставит
библиотеку из соседнего checkout через `uv`) — без этого снимок сервисов на библиотеке не проходит проверку «нет uv».
- Спеки docs: `statement-normalization` — библиотека и её поставка вместо копий; `quality-checks` — `make check` и
`make check-full` сервисов без копии и `statements-check`; `arm-core` и `recognition-contract` — формулировки
«копия» → «библиотека».
- Контекст: `03-architecture`, `05-domain-rules` (§7 «Ядро», §9.5, §11), `00-workspace-layout`, `dev/checks.md`,
`dev/contour-transfer-guide.md`.
## Capabilities
### New Capabilities
Нет.
### Modified Capabilities
- `statement-normalization`: библиотека вместо пакета с копиями; поставка, версия, порядок правки перечня кодов.
- `quality-checks`: проверки сервисов без копии `arm_statements` и `statements-check`.
- `arm-core`: перечень кодов и версия — библиотеки, сверка словаря имён — тестом ядра.
- `recognition-contract`: `service.statements_version` — версия установленной библиотеки.
## Impact
Связанные PR задачи AURORA-1677: arm-core #178, tabular-parser #70, scan-gateway #52, библиотека
`RSHB/pylib_ai_arm_statements` (PR #1, тег `v0.1.1`). Дочерние change: arm-core `use-installed-statements-library`,
tabular-parser `use-arm-statements-library`, scan-gateway `use-statements-library`. Выкладка — одной поставкой ядра и
обоих сервисов. Миграций БД нет.
## Non-goals
Изменение алгоритмов §7/§11, контракта (кроме описаний), DBML; перенос репозитория библиотеки в контур (скрипт снимка
его не обрабатывает); правка комментария в `contracts/statement-code-orders.yaml` (байтовая копия в библиотеке —
меняется со следующим выпуском библиотеки).