Stats
Actions
Tags
From agent-harness-kit
{"riskFlags": {"touchesBash": true, "matchAllTools": true, "touchesFileWrites": true}, "typeStats": {"command": 15}, "eventStats": {"Stop": 1, "PreCompact": 1, "PreToolUse": 3, "SessionEnd": 1, "PostToolUse": 5, "Notification": 1, "SessionStart": 1, "SubagentStop": 1, "UserPromptSubmit": 1}, "originCounts": {"absolutePaths": 0, "pluginScripts": 0, "projectScripts": 0}, "timeoutStats": {"commandsWithoutTimeout": 0}}
9 events · 15 hooks
Safety signals detected in this hook configuration
Where this hook configuration is defined
Defined in src/templates/.claude/hooks/hooks.json
Event handlers and matchers — expand Raw Configuration for the full JSON
bash -lc 'AHK_SCRIPT=".harness/scripts/precompletion-checklist.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'20msbash -lc 'AHK_SCRIPT=".harness/scripts/pre-compact.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msbash -lc 'AHK_SCRIPT=".harness/scripts/pretooluse-skill-permission-guard.mjs"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec node "$AHK_SCRIPT"'5msBashbash -lc 'AHK_SCRIPT=".harness/scripts/pretooluse-bash-guard.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msEdit|Write|MultiEditbash -lc 'AHK_SCRIPT=".harness/scripts/pretooluse-edit-guard.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msbash -lc 'AHK_SCRIPT=".harness/scripts/session-end.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msWrite|Edit|MultiEditbash -lc 'AHK_SCRIPT=".harness/scripts/session-owned-files.mjs"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec node "$AHK_SCRIPT"'5msbash -lc 'AHK_SCRIPT=".harness/scripts/structural-test-on-edit.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'30msEdit|Write|MultiEditbash -lc 'AHK_SCRIPT=".harness/scripts/loop-detection-on-edit.mjs"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec node "$AHK_SCRIPT"'5msbash -lc 'AHK_SCRIPT=".harness/scripts/symbol-index.mjs"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec node "$AHK_SCRIPT" --from-hook'5msSkillbash -lc 'AHK_SCRIPT=".harness/scripts/telemetry-on-skill.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msbash -lc 'AHK_SCRIPT=".harness/scripts/notify-on-block.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msstartup|resume|compactbash -lc 'AHK_SCRIPT=".harness/scripts/session-start.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'30msbash -lc 'AHK_SCRIPT=".harness/scripts/subagent-stop.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'30msbash -lc 'AHK_SCRIPT=".harness/scripts/userprompt-guard.sh"; AHK_ROOT="${CLAUDE_PROJECT_DIR:-}"; if [ -z "$AHK_ROOT" ]; then AHK_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd); fi; while [ ! -f "$AHK_ROOT/$AHK_SCRIPT" ] && [ "$AHK_ROOT" != "/" ]; do AHK_ROOT=$(dirname "$AHK_ROOT"); done; cd "$AHK_ROOT" || exit 1; exec bash "$AHK_SCRIPT"'5msnpx claudepluginhub tuanle96/agent-harness-kit --plugin agent-harness-kit