- Зачем: - коммит-гейт не запускал корневые контрактные тесты, а часть подтверждённых обходов могла снова смешать разные миры генератора. - Что: - добавлены цели 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.
3.8 KiB
3.8 KiB
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
make testсуществует и запускает полный быстрый набор проверок, нужный перед коммитом: тесты генератора, контрактные тесты верхнего уровня и ключевые проверки конфигурации.make lintсуществует и запускает статические проверки, которые сейчас выполняются вручную: синтаксис Python,bash -n,docker compose config --quiet,git diff --checkили обоснованно выбранный эквивалент.- Цели используют
uvтам, где нужен Python вне Docker, и не зависят от локальногоpytest, случайно установленного на хосте. - Шумные команды не вываливают полный список тестов при успешном прогоне; подробный вывод доступен через явный режим или отдельную команду.
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.