npx claudepluginhub raisedadead/dotplugins --plugin dp-ctoDefined in hooks/hooks.json
{
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/skill-gate.sh",
"timeout": 5
}
],
"matcher": "Skill"
},
{
"if": "Bash(* bd *) || Bash(bd *) || Bash(*/bd *)",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/bd-gate.sh",
"timeout": 5
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/loop-guard.sh",
"timeout": 5
},
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/cto-delegation-gate.sh",
"timeout": 5
}
],
"matcher": "Edit|Write|MultiEdit"
},
{
"if": "Write(*.sh) || Write(*.ts) || Write(*.json) || Write(*.md) || Edit(*.sh) || Edit(*.ts) || Edit(*.json) || Edit(*.md)",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/comment-check.sh",
"timeout": 5
}
],
"matcher": "Edit|Write"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/stage-transition.sh",
"timeout": 10
}
],
"matcher": "Skill"
},
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/receipt-gate.sh",
"timeout": 10
},
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/scope-check.sh",
"timeout": 10
},
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/completion-gate.sh",
"timeout": 10
},
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/context-warning.sh",
"timeout": 5
}
],
"matcher": "Agent"
},
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/cto-edit-log.sh",
"timeout": 5
}
],
"matcher": "Edit|Write"
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh",
"timeout": 10
}
],
"matcher": ".*"
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/agent-trace.sh",
"timeout": 15
}
],
"matcher": ".*"
}
],
"TeammateIdle": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/teammate-idle.sh",
"timeout": 5
}
],
"matcher": ".*"
}
],
"TaskCompleted": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/task-completed.sh",
"timeout": 5
}
],
"matcher": ".*"
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/skill-suggest.sh",
"timeout": 5
},
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/state-recovery.sh",
"timeout": 5
}
],
"matcher": ".*"
}
],
"PostToolUseFailure": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/agent-failure.sh",
"timeout": 5
}
],
"matcher": "Agent"
}
]
}"{\"riskFlags\": {\"touchesBash\": true, \"matchAllTools\": false, \"touchesFileWrites\": true}, \"typeStats\": {\"command\": 18}, \"eventStats\": {\"PreToolUse\": 5, \"PostToolUse\": 6, \"SessionStart\": 1, \"SubagentStop\": 1, \"TeammateIdle\": 1, \"TaskCompleted\": 1, \"UserPromptSubmit\": 2, \"PostToolUseFailure\": 1}, \"originCounts\": {\"absolutePaths\": 0, \"pluginScripts\": 18, \"projectScripts\": 0}, \"timeoutStats\": {\"commandsWithoutTimeout\": 0}}"