1Machine / CI ~60-70%
Runs on every PR. Most issues stop here.
| Lint / format | Prettier, Ruff |
| Types | tsc, mypy |
| Secrets | Gitleaks |
| SAST | Semgrep, CodeQL |
| Deps | Dependency Review |
| Size | >600 lines = fail |
| Coverage Δ | >1% drop = fail |
| Runtime Δ | >2× = warn |
| New TODOs | block |
| .only / .skip | block |
2Hooks in-flight
Fires as Claude works. Logs, flags, blocks.
log-bash | audit trail |
block-dangerous | curl|sh, force push |
flag-sensitive | auth, payments, infra |
detect-antipatterns | TODOs, prints, secrets |
auto-format | prettier / ruff |
session-summary | read this daily |
Locations
# hooks live here .claude/hooks/*.sh # outputs .claude/logs/
3Subagents you invoke
Read-only reviewers. Periodic.
- pr-reviewer — before every non-trivial merge
- security-reviewer — any auth / crypto / payments PR
- architecture-auditor — weekly, audits drift vs ADRs
Invocation
# In Claude Code: > Use pr-reviewer on #42 > Use security-reviewer on src/auth/ > Use architecture-auditor for last 7 days on main
4Outcomes runtime
What slipped through tiers 1–3 shows up here.
| Sentry errors | ↑ post-deploy |
| p99 latency | ↑ on touched routes |
| Test runtime | ↑ >2× / week |
| Slow queries | new patterns |
| Bundle size | ↑ >10% / week |
| Dep count | +5 in a sprint |
| CPU / RAM | ↑ no feature launch |
| Alert rate | pages / week |
Signal fires → what did we deploy? → what did Claude write? → root cause.