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