4.7 KiB
Raw Permalink Blame History

Проверка реализации — 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 ожидает <uuid>.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 выполняются отдельным действием.