# Проверка реализации — 23.10.2026 Работа выполнена в ветке `statements-lib`. Основные спеки и архивные change'и не изменялись. ## Установка и инструменты - `make venv` и `make install` завершились успешно. - Импорт `arm_statements` разрешается из `api/.venv/lib/python3.11/site-packages/arm_statements/`; метаданные дистрибутива и `statements_version()` возвращают `0.1.1`, `default_rules()` загружает словари. - `api/arm_statements/` отсутствует; в pytest нет пути к тестам библиотеки; `make -n check-full` не вызывает `statements-check`, mypy проверяет только `src`. - `make lint` проходит: Ruff, форматирование, mypy. - `make help` и `make -n venv install` соответствуют README и CLAUDE. Переменная `STATEMENTS_DIR`, фильтрация `pylib_ai*` и локальная переустановка присутствуют. ## Тесты - Проверки приложения, версии, нормализатора и границы контракта: 18 passed. - Golden и реальные ответы: 7 skipped, поскольку `../fixtures/ocr` отсутствует. Эталоны не изменялись; эквивалентность на реальных данных этим прогоном не подтверждена. - Сообщение о недоступной версии проверяется на рекомендацию `make install` в двух существующих тестах. - `DEBUG=false make check`: 896 passed, 25 skipped, 11 deselected, 1 failed за 7.11 с. - Единственное падение: `tests/unit/test_emulator.py::TestHashIndex::test_uppercase_extension_accepted` ожидает `.pdf.done` после обработки `.PDF`. Это известное падение из design и задачи 4.1; эмулятор в этом change не исправлялся. Общий набор тестов не зелёный. ## Docker - `make docker-build` завершился успешно; дополнительный контекст `statements` передаёт исходники и файлы сборки пакета. - Образ проверен через `docker run --rm --network none --entrypoint python scan-gateway:dev ...`, без volume. - В образе импорт разрешается из `/usr/local/lib/python3.11/site-packages/arm_statements/`, версия `0.1.1`, словари и создание `OcrNormalizer()` доступны. ## Сверка общих документов (задача 4.2) README описывает фактическую локальную установку и сборку. Новых бизнес-правил, полей DBML и допущений OQ нет. `07-open-questions.md` не требует нового вопроса о бизнес-логике. Для отдельного согласованного change в `../docs` требуется обновить описание поставки общего кода: - `context/03-architecture.md`, раздел «Общий код нормализации ББ/ОФР»: убрать утверждение, что все потребители используют `api/arm_statements/`, `VERSION` и `sync-statements`; описать библиотеку и локальную установку для переведённых потребителей, сохранив фактический статус остальных. - `context/05-domain-rules.md` §11, абзац «Где код»: согласовать техническое описание поставки с библиотекой без изменения алгоритмов §11.1–§11.9. - При обновлении общего контракта отдельно согласовать историческое описание `service.statements_version` как коммита копии в `contracts/recognition-result.schema.json`, затем синхронно обновить потребителей по правилу идентичности схем. В этом change схема не редактируется. Эти пункты оформлены как результат сверки, предусмотренный задачей 4.2, и не означают внесение изменений в соседний репозиторий. Sync и archive данного change выполняются отдельным действием.