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

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.