denis@keisei — keiseikit-browse — 144×42
⌘1
KEISEIKIT v0.16.2DAEMON UPSLEEP 03:07
session 4f3amem 47/2002026-05-01 05:21

$ 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: blockenforcewarnremind.

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

$ filter --by=cat=allblock (4)enforce (3)warn (2)remind (1)
FILEEVENTSEVERITYRULE
agent-capability-check.shinfo
agent-capability-verify.shinfo
agent-fork-done.shinfo
agent-fork-logger.shinfo
agent-heartbeat-tick.shinfo
agent-stub-scan.shinfo
alignment-check.shinfo
assemble-agents.shinfo
assemble-validate.shinfo
block-dangerous.shinfo
check-error-patterns.shinfo
citation-verify.shinfo
destructive-guard.shinfo
disk-headroom-check.shinfo
disk-reclaim.shinfo
error-spike-detector.shinfo
extract-task-durations.shinfo
milestone-commit-hook.shinfo
no-downgrade.shinfo
no-hand-edit-agents.shinfo
no-python-without-approval.shinfo
numeric-claims-guard.shinfo
orchestrator-branch-check.shinfo
orchestrator-dirty-check.shinfo
phase-b-rem.shinfo
post-commit-audit.shinfo
post-write-check.shinfo
recurrence-suggest.shinfo
rust-first.shinfo
safety-guard.shinfo
session-end-dump.shinfo
site-wysiwyd-check.shinfo
stop-verify.shinfo
task-timer.shinfo
tomd-preread.shinfo

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.