{ "hooks": { "SessionStart": [ { "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/session-start-context.sh", "statusMessage": "Loading project context..." } ] } ], "PreToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/pre-edit-block.sh" } ] } ], "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/post-edit-format.sh", "statusMessage": "Formatting..." }, { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/async-bats.sh", "async": true, "statusMessage": "Running tests..." } ] } ], "PostToolUseFailure": [ { "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/log-failures.sh", "async": true } ] } ], "Notification": [ { "matcher": "idle_prompt", "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/notify-idle.sh", "async": true } ] } ], "Stop": [ { "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/stop-lint-gate.sh", "statusMessage": "Running lint gate..." } ] } ] } }