.PHONY: setup-hooks check-secrets docs-check links-check verify-design backend-sync \ backend-format backend-lint backend-type backend-test backend-check compose-check \ verify-ci verify setup-hooks: git config core.hooksPath .githooks chmod +x .githooks/pre-commit scripts/check-secrets.sh check-secrets: ./scripts/check-secrets.sh --all docs-check: test -f docs/00-overall-design.md test -f docs/01-data-and-evaluation.md test -f docs/02-deployment-and-security.md test -f docs/03-implementation-plan.md test -f docs/04-project-todo.md test -f docs/05-stage1-runbook.md links-check: python3 scripts/check_markdown_links.py verify-design: check-secrets docs-check links-check git diff --check git diff --cached --check backend-sync: cd backend && UV_CACHE_DIR=.uv-cache uv sync --all-groups --frozen backend-format: backend/.venv/bin/ruff format --check backend/app backend/tests backend/migrations backend-lint: backend/.venv/bin/ruff check backend/app backend/tests backend/migrations backend-type: cd backend && .venv/bin/mypy app tests backend-test: cd backend && .venv/bin/pytest backend-check: backend-sync backend-format backend-lint backend-type backend-test compose-check: docker compose --env-file .env.example config --quiet # CI does not assume its runner exposes a Docker daemon. Schema and Compose # security contracts still run in backend-test; local verification also asks the # Docker CLI to render the real Compose model. verify-ci: verify-design backend-check verify: verify-ci compose-check