npx claudepluginhub thomasedwardyorke/claude-code-harness --plugin harnessDefined in hooks/hooks.json
node "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" stop10msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" pre-compact15msWritenode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" pre-tool30msEditnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" pre-tool30msMultiEditnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" pre-tool30msBashnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" pre-tool30msReadnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" pre-tool30msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" session-end10msWritenode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" post-tool30msEditnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" post-tool30msMultiEditnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" post-tool30msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" task-created10msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" session-start15msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" subagent-stop120msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" task-completed10msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" worktree-create120msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" worktree-remove10msnode "${CLAUDE_PLUGIN_ROOT}/scripts/hook-dispatcher.mjs" permission10ms{"riskFlags": {"touchesBash": true, "matchAllTools": true, "touchesFileWrites": true}, "typeStats": {"command": 18}, "eventStats": {"Stop": 1, "PreCompact": 1, "PreToolUse": 5, "SessionEnd": 1, "PostToolUse": 3, "TaskCreated": 1, "SessionStart": 1, "SubagentStop": 1, "TaskCompleted": 1, "WorktreeCreate": 1, "WorktreeRemove": 1, "PermissionRequest": 1}, "originCounts": {"absolutePaths": 0, "pluginScripts": 18, "projectScripts": 0}, "timeoutStats": {"commandsWithoutTimeout": 0}}