4.8 KiB
Proposal
Why
arm_statements поставляется как устанавливаемая библиотека, отсутствующая в PyPI. Копирование её исходников, словарей и тестов в сервис через sync-statements больше не соответствует способу поставки; сервис должен устанавливать локальный дистрибутив и сообщать его версию.
What Changes
- Зафиксировать
pylib_ai_arm_statements==0.1.1вapi/requirements.txt, сохранив Python-импортыarm_statements. - В
make venvпропускать строкиpylib_ai*при установке из индекса, как и внутренниеraisa_*; библиотеку устанавливать из../pylib_ai_arm_statementsчерезuv. - Добавить
make installдля установки или переустановки библиотеки; путь переопределяетсяSTATEMENTS_DIR. - Удалить
api/arm_statements/целиком, включая словари, VERSION, тесты и golden-файлы библиотеки. Удалитьstatements-checkи его вызов изcheck-full. - Проверять и тестировать только код сервиса: убрать библиотеку из путей pytest/mypy, считать её сторонней в Ruff, обновить порядок импортов и обработку отсутствующих типов.
- Получать
service.statements_versionчерез API библиотеки (VERSION либо метаданные установленного дистрибутива); при отсутствии версии останавливать старт с актуальной диагностикой. - BREAKING для сборки: передавать исходники библиотеки в Docker через именованный контекст BuildKit
arm_statements; обычныйdocker build .без него больше не поддерживается. - Обновить README, CLAUDE.md и комментарии о зависимости: библиотека, установка и обновление через
make installвместо синхронизации копии.
Capabilities
New Capabilities
Нет; установка и сборка относятся к существующей capability сервиса.
Modified Capabilities
tabular-recognition-service: локальная установка и Docker-сборка библиотеки, версия библиотеки в результате и при старте.statement-parsing: выполнение шагов 2–8 установленной библиотекой, обновление её словарей переустановкой вместо синхронизации копии.
Impact
Срез 2, сопровождение ББ/ОФР из Excel (срез 2b по ../docs/context/09-delivery-plan.md); алгоритмы остаются по §11–12 и §7 05-domain-rules.md. Новых алгоритмов и допущений по открытым вопросам нет.
Изменяется только репозиторий arm-tabular-parser: Makefile, Dockerfile, зависимости и конфигурация инструментов в api/, документация, адаптеры (порядок импортов), сообщение проверки версии. ../pylib_ai_arm_statements — существующий источник дистрибутива, ../arm-core — пример установки; их код не меняется. Таблицы и поля DBML v5.17 не затрагиваются, миграций нет.
Текущие основные спецификации требуют коммит копии и sync-statements; delta-спецификации описывают замену этих требований. Копии JSON-контрактов сохраняются байт в байт. Их описание версии как коммита остаётся вопросом согласования в отдельном change ../docs, не локальной правкой схемы.
Non-goals
Публикация в PyPI/Nexus; изменение API библиотеки, правил разбора, сумм, единиц измерения, транспорта NATS/S3 и версии JSON-контракта; изменение arm-core, Compose или внешнего CI. Основные спецификации и архивы OpenSpec в этом предложении не редактируются.