$ ls ~/.claude/hooks/*.sh | wc -l → 35
/hooks enforcement
Hooks fire on Claude Code lifecycle events (PreToolUse, PostToolUse, UserPromptSubmit, Stop). They run as shell scripts; exit code controls behaviour. Severity ladder: block → enforce → warn → remind.
severity ladder
BLOCK
exit 2 — hard deny, refuses tool call
ENFORCE
exit 1 — must fix before retry
WARN
exit 0 + stderr — proceeds with advisory
REMIND
exit 0 + stderr on UserPromptSubmit
| FILE | EVENT | SEVERITY | RULE |
register your own hook
{
"hooks": {
"PreToolUse": [
{
"match": "Bash",
"hooks": ["~/.claude/hooks/my-guard.sh"]
}
]
}
}Use /escalate-recurrence skill to auto-generate the hook + register it via update-config.