- Зачем: - коммит-гейт не запускал корневые контрактные тесты, а часть подтверждённых обходов могла снова смешать разные миры генератора. - Что: - добавлены цели make test, make lint и contract-test с тихим pytest-выводом через Docker. - закрыты обходы через generator-reset, неизвестную версию state и fail-open проверку DM-витрин. - усилены поведенческие контракты CHECK_LIVE_SEAM, профиля manifest и pause-check etl_pipeline; обновлены документы и issue 19. - Проверка: - make test; make lint; git diff --check.
64 lines
3.8 KiB
Markdown
64 lines
3.8 KiB
Markdown
Status: done
|
|
|
|
# Единые make test и make lint для коммит-гейта
|
|
|
|
## Parent
|
|
|
|
`.scratch/generator-model-time-startup-history/PRD.md`
|
|
|
|
## Why
|
|
|
|
Во время coordinator-loop по задачам 15-18 координатор несколько раз упёрся в
|
|
отсутствие общих целей `make test` и `make lint`. Из-за этого коммит-гейт
|
|
собирался вручную из частных команд: `make generator-test`, `docker compose
|
|
config --quiet`, `py_compile`, `bash -n`, `git diff --check` и отдельных
|
|
стендовых проверок.
|
|
|
|
Для учебного проекта это плохой пример: у менти и агента должен быть один
|
|
понятный путь проверки, а не набор догадок.
|
|
|
|
## What to build
|
|
|
|
Добавить поддержанные цели `make test` и `make lint`, которые покрывают текущие
|
|
реальные проверки репозитория и не печатают лишний подробный вывод по умолчанию.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [x] `make test` существует и запускает полный быстрый набор проверок, нужный
|
|
перед коммитом: тесты генератора, контрактные тесты верхнего уровня и
|
|
ключевые проверки конфигурации.
|
|
- [x] `make lint` существует и запускает статические проверки, которые сейчас
|
|
выполняются вручную: синтаксис Python, `bash -n`, `docker compose config
|
|
--quiet`, `git diff --check` или обоснованно выбранный эквивалент.
|
|
- [x] Цели используют `uv` там, где нужен Python вне Docker, и не зависят от
|
|
локального `pytest`, случайно установленного на хосте.
|
|
- [x] Шумные команды не вываливают полный список тестов при успешном прогоне;
|
|
подробный вывод доступен через явный режим или отдельную команду.
|
|
- [x] `docs/OPERATIONS.md` или `README.md` кратко объясняет, когда запускать
|
|
`make test`, `make lint` и какие более дорогие стендовые проверки остаются
|
|
отдельными.
|
|
|
|
## Blocked by
|
|
|
|
Нет — можно начинать сразу.
|
|
|
|
## Notes
|
|
|
|
- Не включать в `make test` долгие или разрушительные проверки вроде
|
|
`make generated-history-runtime-check` без явного решения: они чистят volumes
|
|
и управляют стендом.
|
|
- Отдельно учесть проблему окружения coordinator-loop 2026-07-05: локальный
|
|
`uv run ... pytest` падал до запуска тестов из-за `snap-confine`, поэтому
|
|
цель должна либо идти через устойчивый Docker-путь, либо явно диагностировать
|
|
такую ошибку.
|
|
- По ревью Claude дополнительно подключены корневые контрактные тесты, усилены
|
|
ключевые проверки поведения `CHECK_LIVE_SEAM`/профиля/DM-витрин, а также
|
|
закрыты подтверждённые обходы через `generator-reset` и безверсионный state.
|
|
|
|
## Проверка
|
|
|
|
- `make contract-test` — 16 passed.
|
|
- `make generator-test` — 190 passed.
|
|
- `make lint` — passed.
|
|
- `make test` — 190 generator tests, 16 contract tests, compose config passed.
|