.PHONY: ci-local
# One-command pre-push gate — the same steps CI runs, hard-failing on first red.
ci-local:
	uv sync --extra dev
	uv run ruff check .
	uv run ruff format --check .
	uv run mypy
	uv run pytest -q
	uv run python -m examples.basic_compliance
