{
  "_comment": "Reference document only. Claude Code does not support a separate hooks.json. Actual hook settings must be in settings.json.",
  "_v3_events": "v3.0 expands hook events from 5 to 21. New opt-in events: SessionEnd, StopFailure, PostToolUseFailure, SubagentStart, SubagentStop, PreCompact, PostCompact, ConfigChange, CwdChanged, FileChanged, InstructionsLoaded, Notification, PermissionRequest, TaskCreated, WorktreeCreate, WorktreeRemove. See hooks/README.md for the full catalog and hooks/examples/ for installable templates. NOTE: Some optional subagent frontmatter fields (e.g. memory, effort, background, skills) are scheduled per the Anthropic 2026 roadmap — verify availability against your Claude Code version before relying on them.",
  "PreToolUse": [
    {
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/remote-command-guard.sh",
          "timeout": 5000
        }
      ]
    },
    {
      "matcher": "mcp__*",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/rate-limiter.sh",
          "timeout": 5000
        },
        {
          "type": "command",
          "command": "~/.claude/hooks/mcp-usage-tracker.sh"
        }
      ]
    }
  ],
  "SessionStart": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/context-sync-suggest.sh"
        }
      ]
    },
    {
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/forge-update-check.sh",
          "timeout": 5000
        }
      ]
    }
  ],
  "UserPromptSubmit": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/work-tracker-prompt.sh"
        }
      ]
    }
  ],
  "PostToolUse": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/work-tracker-tool.sh"
        },
        {
          "type": "command",
          "command": "~/.claude/hooks/output-secret-filter.sh",
          "timeout": 5000
        },
        {
          "type": "command",
          "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
        }
      ]
    },
    {
      "matcher": "Edit",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/code-quality-reminder.sh"
        }
      ]
    },
    {
      "matcher": "Write",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/code-quality-reminder.sh"
        }
      ]
    },
    {
      "matcher": "Edit|Write",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/security-auto-trigger.sh"
        }
      ]
    }
  ],
  "Stop": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/work-tracker-stop.sh"
        }
      ]
    },
    {
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/session-wrap-suggest.sh"
        }
      ]
    }
  ],
  "TaskCompleted": [
    {
      "matcher": "",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/task-completed.sh",
          "timeout": 10000
        }
      ]
    }
  ]
}
