{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-ensure-canonical-path.js\"", "timeout": 5 },
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-check-update.js\"" }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-prompt-guard.js\"", "timeout": 5 },
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-read-guard.js\"", "timeout": 5 }
        ]
      },
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-worktree-path-guard.js\"", "timeout": 5 }
        ]
      },
      {
        "matcher": "Bash|mcp__com-github-github-mcp-server__merge_pull_request|mcp__com-github-github-mcp-server__push_files|mcp__com-github-github-mcp-server__create_or_update_file",
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-merge-gate-guard.js\"", "timeout": 15 }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash|Edit|Write|MultiEdit|Agent|Task",
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-context-monitor.js\"", "timeout": 10 }
        ]
      },
      {
        "matcher": "Read|WebFetch|WebSearch",
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-read-injection-scanner.js\"", "timeout": 5 }
        ]
      }
    ],
    "SubagentStop": [
      {
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-context-monitor.js\"", "timeout": 10 }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-context-monitor.js\"", "timeout": 10 }
        ]
      }
    ],
    "PreCompact": [
      {
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-context-monitor.js\"", "timeout": 10 }
        ]
      }
    ],
    "FileChanged": [
      {
        "matcher": "config.json",
        "hooks": [
          { "type": "command", "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/ferrox-config-reload.js\"", "timeout": 8 }
        ]
      }
    ]
  }
}
