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.