docs(#116): дизайн единой нормализации ББ/ОФР (scan-gateway + tabular-parser) #117

Merged
aep merged 63 commits from feat/116-unified-normalization into main 2026-10-18 18:43:08 +03:00
Showing only changes of commit 3d7b32ca87 - Show all commits

View File

@ -580,10 +580,14 @@ column_index?}`, а не строка.
### Решения, которые нужны от владельца
- **Р-1** (шаг 1, п. 2) — форма общего кода: общий Python-пакет с dataclass-ами (сериализуемыми в json — golden-файлы
выхода шага 1 в fixtures), шагами 2–8 и словарями (§7, периоды, заголовки форм, диапазоны кодов; без словаря
строк), который подключают оба сервиса и ядро (рекомендация); запасной
вариант, если платформа не даст ставить пакет из git или зеркала, — копия по скрипту, как `sync-web.sh`.
- **Р-1** (шаг 1, п. 2) — **решено 17.10.2026: копия по скрипту.** Платформа не собирает Python-пакеты и не кладёт их
в свой Nexus, поэтому общий код — dataclass-ы шага 1 (сериализуемые в json, golden-файлы в fixtures), шаги 2–8 и
словари §7, периодов, заголовков форм, диапазонов кодов (без словаря строк) — живёт в отдельном репозитории
`arm-statements` со своими тестами и оформлен как пакет `arm_statements/` с `pyproject`. В tabular-parser,
scan-gateway и arm-core он лежит копией в `api/src/arm_statements/` с маркером коммита источника; раскладывает
скрипт `sync-statements` в docs по образцу `sync-web.sh`, `make check` потребителя проверяет свежесть копии, прямые
правки копии запрещены. Когда платформа научится собирать пакеты, копия заменяется строкой зависимости без смены
импортов.
- **Р-2** (шаг 4, п. 5) — отсутствующая OCR-ячейка под колонкой: чистый `null` (предложение; потерю ловит §7) или
подсветка «не распознано», как сейчас (больше ложных подсветок, AURORA-1524).
- **Р-3** (шаг 5, п. 1) — **решено владельцем 17.10.2026:** сервисы отдают распознанный текст наименования;