# Proposal ## Why Копирование `arm_statements` в сервис требует синхронизации исходников и привязывает версию нормализатора к локальному `VERSION`. Общий код теперь поставляется библиотекой `pylib_ai_arm_statements==0.1.1`; шлюз должен устанавливать её из локального источника, поскольку публикации в PyPI нет. ## What Changes - Установить библиотеку из `../pylib_ai_arm_statements` при `make venv`; добавить `make install` для переустановки и переменную `STATEMENTS_DIR` для пути. - Закрепить `pylib_ai_arm_statements==0.1.1` в `api/requirements.txt`; при установке по requirements исключать `pylib_ai*` наряду с внутренними `raisa_*`. - Удалить `api/arm_statements/`, его тесты из pytest и проверку `statements-check`; проверять собственный код шлюза. - Сохранить импорт `arm_statements`, получать версию через API библиотеки `statements_version()` и записывать её в результат. - Передавать библиотеку в Docker отдельным build context и устанавливать внутри образа. - Обновить документацию, сообщения об ошибках, импорты и проверки версии установленного пакета. ## Capabilities ### New Capabilities Нет. ### Modified Capabilities - `image-recognition-gateway`: библиотека вместо копии нормализатора, источник `service.statements_version`, локальная установка и сборка образа. ## Impact Срез 3a из `../docs/context/09-delivery-plan.md`, сопровождение OCR-нормализатора. Изменяется только `arm-scan-gateway`; `../arm-core` служит примером, `../pylib_ai_arm_statements` — готовым источником зависимости. Таблицы DBML v5.17 не затрагиваются. Алгоритмы из `05-domain-rules.md` §11, §11.1 и §11.9 остаются в библиотеке; новых бизнес-правил нет. Контракт `statementDocument` v2.0 сохраняется; значение версии отражает установленную библиотеку вместо коммита копии. Архивные change'и и основные спеки в рамках предложения не редактируются. Сквозных изменений в других сервисах этот change не вводит. ## Non-goals - Публикация в PyPI, создание реестра пакетов или изменение библиотеки. - Переработка нормализации, транспорта SMB/NATS/S3, эмулятора и модели данных. - Редактирование общих JSON Schema из `../docs/contracts` или пересборка golden под изменённые результаты. Это описание уже подготовленных изменений рабочего дерева; задачи оформлены для отдельной сверки на этапе apply.