{
  "hooks": {
    "UserPromptSubmit": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/bullshit-radar.cjs",
            "timeout": 5,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-drilldown-hook.js",
            "timeout": 30,
            "statusMessage": "Searching SpecMem...",
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_SEARCH_LIMIT": "5",
              "SPECMEM_THRESHOLD": "0.25",
              "SPECMEM_MAX_CONTENT": "300"
            }
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/input-aware-improver.js",
            "timeout": 15,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_SEARCH_LIMIT": "5",
              "SPECMEM_THRESHOLD": "0.25",
              "SPECMEM_MAX_CONTENT": "300"
            }
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Read",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/drilldown-enforcer.js",
            "timeout": 3,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/smart-context-hook.js",
            "timeout": 8,
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_SEARCH_LIMIT": "3",
              "SPECMEM_THRESHOLD": "0.25",
              "SPECMEM_MAX_CONTENT": "150"
            }
          }
        ]
      },
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/file-claim-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          }
        ]
      },
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-enforcer.cjs",
            "timeout": 2
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/file-claim-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          }
        ]
      },
      {
        "matcher": "Grep",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/drilldown-enforcer.js",
            "timeout": 3,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-enforcer.cjs",
            "timeout": 2
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/use-code-pointers.cjs",
            "timeout": 3,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/smart-context-hook.js",
            "timeout": 8,
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_SEARCH_LIMIT": "3",
              "SPECMEM_THRESHOLD": "0.25",
              "SPECMEM_MAX_CONTENT": "150"
            }
          }
        ]
      },
      {
        "matcher": "Glob",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/drilldown-enforcer.js",
            "timeout": 3,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-enforcer.cjs",
            "timeout": 2
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/use-code-pointers.cjs",
            "timeout": 3,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/smart-context-hook.js",
            "timeout": 8,
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_SEARCH_LIMIT": "3",
              "SPECMEM_THRESHOLD": "0.25",
              "SPECMEM_MAX_CONTENT": "150"
            }
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/bash-call-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/agent-output-interceptor.js",
            "timeout": 3
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/file-claim-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          }
        ]
      },
      {
        "matcher": "Agent",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/agent-loading-hook.js",
            "timeout": 20,
            "statusMessage": "Deploying team member...",
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_SEARCH_LIMIT": "5",
              "SPECMEM_THRESHOLD": "0.30",
              "SPECMEM_MAX_CONTENT": "200",
              "SPECMEM_FORCE_CHOOSER": "1"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          }
        ]
      },
      {
        "matcher": "TaskOutput",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/agent-output-interceptor.js",
            "timeout": 3
          }
        ]
      },
      {
        "matcher": "mcp__specmem__find_memory",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          }
        ]
      },
      {
        "matcher": "mcp__specmem__find_code_pointers",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/team-comms-enforcer.cjs",
            "timeout": 2,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}"
            }
          },
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/bash-call-enforcer.cjs",
            "timeout": 2
          }
        ]
      },
      {
        "matcher": "mcp__specmem__send_team_message",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/bash-call-enforcer.cjs",
            "timeout": 2
          }
        ]
      },
      {
        "matcher": "mcp__specmem__drill_down",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/bash-call-enforcer.cjs",
            "timeout": 2
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-session-start.cjs",
            "timeout": 30,
            "statusMessage": "Loading SpecMem context...",
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_DB_HOST": "${cwd}/specmem/run",
              "SPECMEM_SEARCH_LIMIT": "5",
              "SPECMEM_THRESHOLD": "0.25",
              "SPECMEM_MAX_CONTENT": "300"
            }
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-stop-hook.js",
            "timeout": 15,
            "env": {
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock"
            }
          }
        ]
      },
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-drilldown-hook.js",
            "timeout": 15
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Grep",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-tracker.cjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "Glob",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-tracker.cjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "Read",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-tracker.cjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "mcp__specmem__find_memory",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-tracker.cjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "mcp__specmem__find_code_pointers",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-tracker.cjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "mcp__specmem__drill_down",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-search-tracker.cjs",
            "timeout": 5
          }
        ]
      },
      {
        "matcher": "Agent",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/task-progress-hook.js",
            "timeout": 20,
            "statusMessage": "Team member finished",
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true"
            }
          }
        ]
      },
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/post-write-memory-hook.cjs",
            "timeout": 10,
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true"
            }
          }
        ]
      },
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/post-write-memory-hook.cjs",
            "timeout": 10,
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true"
            }
          }
        ]
      }
    ],
    "PreCompact": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/specmem-precompact.js",
            "timeout": 60,
            "statusMessage": "Saving context before compaction...",
            "env": {
              "SPECMEM_HOME": "${HOME}/.specmem",
              "SPECMEM_PKG": "${SPECMEM_PKG:-${HOME}/.npm-global/lib/node_modules/specmem-hardwicksoftware}",
              "SPECMEM_RUN_DIR": "${cwd}/specmem/run",
              "SPECMEM_EMBEDDING_SOCKET": "${cwd}/specmem/run/embed.sock",
              "SPECMEM_PROJECT_PATH": "${cwd}",
              "SPECMEM_CONTAINER_MODE": "true"
            }
          }
        ]
      }
    ],
    "SubagentStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/subagent-loading-hook.js",
            "timeout": 5,
            "statusMessage": "Starting subagent..."
          }
        ]
      }
    ],
    "SubagentStop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "node ${HOME}/.claude/hooks/subagent-loading-hook.js",
            "timeout": 5,
            "statusMessage": "Subagent completed"
          }
        ]
      }
    ]
  },
  "permissions": {
    "allow": [
      "mcp__specmem__*",
      "Skill(specmem)",
      "Skill(specmem-*)",
      "Read",
      "Read(*)",
      "Grep",
      "Grep(*)",
      "Glob",
      "Glob(*)",
      "Bash",
      "Write",
      "Edit"
    ],
    "deny": []
  }
}
