34
- Run `pytest tests/` for unit tests
35
- Hugo build: `hugo --minify` must succeed
36
- Handoff smoke: `.github/workflows/podcaster-handoff-smoke.yml`
37
+
38
+## DevSecOps Guardrails
39
+
40
+Part of the DevSecOps Guardrails epic (jmservera/SquadScope-Coordinator#33).
41
+Baselines and per-tool docs live in `docs/devsecops/`. Phase A tooling is
42
+**warning-only / non-blocking** today; do not weaken or skip a real gate to make
43
+CI pass — CI must be correct, not just green.
44
+
45
+### Before you push (always)
46
+
47
+- Run the local tests: `pytest tests/`.
48
+- If you changed a `Dockerfile`/`Containerfile`: run `docker build` locally.
49
+- Lint/format Python with **ruff**.
50
+- If you changed IaC or container files: run **checkov**.
51
+- If you changed anything under `.github/workflows/`: run **zizmor**.
52
+
53
+### Tooling (run manually)
54
+
55
+```bash
56
+# Python lint/format — ruff (config in pyproject.toml; see docs/devsecops/ruff-baseline.md)
57
+pip install ruff==0.15.7
58
+ruff check . # lint (report)
59
+ruff check . --fix # apply safe fixes
60
+ruff format . # format
61
+
62
+# IaC / container / Actions scan — checkov (see docs/devsecops/checkov-baseline.md)
63
+pip install checkov==3.2.533
64
+checkov --directory . --framework github_actions dockerfile secrets \
65
+ --skip-path node_modules --skip-path .venv --compact --soft-fail
66
+
67
+# GitHub Actions security — zizmor (see docs/devsecops/zizmor-baseline.md)
68
+pipx install zizmor
69
+zizmor .github/workflows/
70
+```
71
+
72
+### Git hooks
73
+
74
+When pre-push/pre-commit hooks are added (Phase C), install them with the
75
+documented setup command and keep tool versions in sync with CI. **Emergency
76
+skip:** `git commit --no-verify` / `git push --no-verify` bypasses local hooks —
77
+use only for genuine emergencies and follow up by fixing the skipped findings.
78
+Never disable the CI gates themselves to land a change.
79
+
80
+### Ownership
81
+
82
+- **URL** (DevSecOps Specialist) owns the guardrail pipeline, tooling, hooks,
83
+ dependency scanning, and secret detection.
84
+- **Hermes** (Security & Threat Analyst) owns security review, threat modeling,
85
+ and alert triage.
86
+- Infra, `Dockerfile`/`Containerfile`, and workflow changes should be reviewed by
87
+ URL (pipeline impact) and Hermes (security).