Files
clickstream-ch-kafka-supers…/.scratch/generator-model-time-startup-history/issues/19-test-and-lint-targets.md
T
ddadmin 9b0b063fed fix(generator): усилены проверки startup-history
- Зачем:
  - коммит-гейт не запускал корневые контрактные тесты, а часть подтверждённых обходов могла снова смешать разные миры генератора.
- Что:
  - добавлены цели 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.
2026-07-05 22:46:53 +03:00

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.