43 lines
8.9 KiB
Markdown
43 lines
8.9 KiB
Markdown
# Tasks
|
||
|
||
Ретроспективный перечень: `[x]` означает выполненное и подтверждённое в этой сессии либо наблюдаемое в текущем дереве. `[ ]` — оставшаяся проверка/доработка, которую этот propose не выполняет. Каждый пункт рассчитан не более чем на половину дня. Исправления соседнего репозитория перечислены как зависимость отдельной поставки.
|
||
|
||
## 1. Регрессионные проверки поставки и версии
|
||
|
||
- [x] 1.1 arm-core, `api/tests/test_statements_engine.py`: проверить установленную библиотеку после исправления ресурсов и версии; подтверждено 11 проходящими тестами.
|
||
- [x] 1.2 pylib_ai_arm_statements, `tests/test_version.py` и `arm_statements/version.py`: закрепить тестами приоритет непустого VERSION, fallback для отсутствующего/пустого стандартного файла, отсутствие метаданных и явный отсутствующий/пустой путь; критерий — все сценарии версии из `specs/statement-library/spec.md` проходят.
|
||
- [x] 1.3 pylib_ai_arm_statements, `MANIFEST.in`, `setup.cfg`, сборочный артефакт: проверить wheel/sdist и установить wheel в чистое временное окружение; критерий — импорт `arm_statements` и загрузка стандартных правил работают без доступа к исходному репозиторию, все YAML присутствуют.
|
||
|
||
## 2. Локальная установка и подключение в arm-core
|
||
|
||
- [x] 2.1 arm-core, `Makefile`: добавить `STATEMENTS_DIR`, цель `install` и переустановку в `api/.venv`; подтверждено успешным `make install` с установленным дистрибутивом `0.1.1`.
|
||
- [x] 2.2 arm-core, `Makefile`: фильтровать `raisa_*` и `pylib_ai*` только в основных requirements, сохранить прежнюю обработку dev requirements; критерий — команды в Makefile и `make -n venv` соответствуют указанным фильтрам. Текущее дерево также включает установку локальной библиотеки в конце `venv`.
|
||
- [x] 2.3 arm-core, `api/requirements.txt`, `api/arm_statements/`, `Makefile`: зафиксировать наблюдаемое состояние перехода — pin `0.1.1`, удаление встроенной копии, исключение `statements-check` из `check-full`; критерий — diff текущего дерева содержит эти изменения.
|
||
- [x] 2.4 arm-core, `api/src`, `api/tests`, `api/pyproject.toml`: сохранить импорты `arm_statements` после отмены переименования; критерий — нет новых импортов `pylib_ai_arm_statements` и отменён временный override mypy для этого имени.
|
||
- [x] 2.5 arm-core, `api/pytest.ini`, `api/pyproject.toml`, `Makefile`: согласовать testpaths и first-party-настройки с внешней библиотекой, вернуть проверку типов исходников ядра вместо удалённого вызова mypy; критерий — pytest не собирает удалённые `arm_statements/tests`, Ruff и mypy по исходникам ядра проходят, чужие исходники не проверяются как встроенные.
|
||
- [x] 2.6 arm-core, `README.md`, `CLAUDE.md`: согласовать инструкции с текущим `venv`, который уже устанавливает локальную библиотеку; критерий — документация объясняет отдельный `make install` как переустановку и путь `STATEMENTS_DIR`, а dry run соответствует инструкции.
|
||
|
||
## 3. Исправления внешней библиотеки
|
||
|
||
- [x] 3.1 pylib_ai_arm_statements, `MANIFEST.in`: заменить старые пути на `arm_statements` и `arm_statements/rules`; подтверждено переустановкой и успешной загрузкой правил в 11 тестах движка.
|
||
- [x] 3.2 pylib_ai_arm_statements, `arm_statements/version.py`: добавить fallback на метаданные дистрибутива, сохранив явный путь; подтверждено результатом `0.1.1` и `None` для явно переданного отсутствующего файла.
|
||
- [x] 3.3 pylib_ai_arm_statements, `MANIFEST.in`, `arm_statements/version.py`, результаты пунктов 1.2–1.3: подготовить отдельную проверяемую поставку/коммит библиотеки; критерий — изменения ресурсов и версии доступны независимо от рабочего дерева arm-core, номер опубликованного артефакта уникален. Публикация в реестр не входит в этот пункт.
|
||
|
||
## 4. Документирование выполненного
|
||
|
||
- [x] 4.1 arm-core, `README.md`, `CLAUDE.md`, комментарии конфигурации и `api/src`, `api/contracts/recognition-result.schema.json`: описать библиотеку и источник версии; подтверждено просмотром diff, Ruff, форматированием и проверкой JSON в этой сессии.
|
||
- [x] 4.2 arm-core, исторический план `docs/superpowers/plans/2026-10-18-normalization-core-b.md` и затронутые архивные OpenSpec-документы: пометить ссылки на копию и sync-statements как прежнюю схему; критерий — заметки об актуализации присутствуют, исторические требования не переписаны.
|
||
- [x] 4.3 arm-core, `openspec/changes/use-installed-statements-library/`: оформить proposal, design, дельты и этот перечень с границами задачи; критерий — все обязательные артефакты существуют и `openspec validate use-installed-statements-library` проходит.
|
||
|
||
## 5. Завершение проверки перехода
|
||
|
||
- [x] 5.1 arm-core, `api/tests/test_statements_v2_edit.py::test_intake_statements_version_mismatch`: повторить тест с доступной PostgreSQL/инфраструктурой; критерий — проходят случаи разных и совпадающих версий без ValidationError. Предыдущий запуск остановлен после зависания.
|
||
- [x] 5.2 arm-core, существующие тесты адаптера, домена и реальные фикстуры нормализации: выполнить подходящие lint/type/unit/integration-проверки после пунктов 1–3; критерий — подтверждены импорт из установленного пакета, отсутствие регрессии §7 и совместимость результата 2.0. Промежуточный прогон на отменённых импортах не засчитывается.
|
||
- [x] 5.3 arm-core, `README.md`, `CLAUDE.md`, дельты этого change: итогово сверить инструкции с проверенным поведением и перечислить необходимые уточнения для `../docs/context/03-architecture.md` и `07-open-questions.md`; критерий — README соответствует проверенным командам, а межрепозиторные уточнения перечислены для отдельного change в docs без новых неподтверждённых доменных правил.
|
||
|
||
## Workflow follow-up
|
||
|
||
- После отдельного запроса apply завершить только непомеченные пункты; код в рамках propose не менять.
|
||
- Обновления общих docs и координацию версий сервисов оформить отдельным change в `../docs`.
|
||
- После review и необходимых проверок отдельно запросить sync/archive; этот change не синхронизируется и не архивируется автоматически.
|