38 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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