.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 \ frontend-sync frontend-format frontend-lint frontend-type frontend-test \ frontend-build frontend-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 test -f docs/06-frontend-demo-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 frontend-sync: cd frontend && npm ci frontend-format: cd frontend && npm run format:check frontend-lint: cd frontend && npm run lint frontend-type: cd frontend && npm run typecheck frontend-test: cd frontend && npm run test frontend-build: cd frontend && npm run build frontend-check: frontend-sync frontend-format frontend-lint frontend-type frontend-test frontend-build 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 frontend-check verify: verify-ci compose-check