Automates bash commands and file operations triggered by coding events and subagent lifecycle changes.
/plugin marketplace add yidakee/vibe-better-with-claude-code-vbw/plugin install vbw@vbw-marketplaceDefined in hooks/hooks.json
{
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" session-stop.sh; exit 0'",
"timeout": 5
},
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" agent-health.sh cleanup; exit 0'",
"timeout": 3
}
]
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" compaction-instructions.sh; exit 0'",
"timeout": 10
}
]
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" bash-guard.sh; exit 0'",
"timeout": 5
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" security-filter.sh; exit 0'",
"timeout": 5
}
],
"matcher": "Read|Glob|Grep|Write|Edit"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" skill-hook-dispatch.sh PreToolUse; exit 0'",
"timeout": 10
}
],
"matcher": "Write|Edit"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" file-guard.sh; exit 0'",
"timeout": 5
}
],
"matcher": "Write|Edit"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" validate-summary.sh; exit 0'",
"timeout": 15
}
],
"matcher": "Write|Edit"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" validate-frontmatter.sh; exit 0'",
"timeout": 5
}
],
"matcher": "Write|Edit"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" validate-commit.sh; exit 0'",
"timeout": 10
}
],
"matcher": "Bash"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" skill-hook-dispatch.sh PostToolUse; exit 0'",
"timeout": 10
}
],
"matcher": "Write|Edit|Bash"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" state-updater.sh; exit 0'",
"timeout": 5
}
],
"matcher": "Write|Edit"
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" notification-log.sh; exit 0'",
"timeout": 3
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" session-start.sh; exit 0'",
"timeout": 10
}
]
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" map-staleness.sh; exit 0'",
"timeout": 5
}
]
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" post-compact.sh; exit 0'",
"timeout": 5
}
],
"matcher": "compact"
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" validate-summary.sh; exit 0'",
"timeout": 15
}
],
"matcher": "vbw-lead|vbw-dev|vbw-qa|vbw-scout|vbw-debugger|vbw-architect|vbw-docs|vbw:vbw-lead|vbw:vbw-dev|vbw:vbw-qa|vbw:vbw-scout|vbw:vbw-debugger|vbw:vbw-architect|vbw:vbw-docs|lead|dev|qa|scout|debugger|architect|docs|team-lead|team-dev|team-qa|team-scout|team-debugger|team-architect|team-docs"
},
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" agent-stop.sh; exit 0'",
"timeout": 3
},
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" agent-health.sh stop; exit 0'",
"timeout": 3
}
],
"matcher": "vbw-lead|vbw-dev|vbw-qa|vbw-scout|vbw-debugger|vbw-architect|vbw-docs|vbw:vbw-lead|vbw:vbw-dev|vbw:vbw-qa|vbw:vbw-scout|vbw:vbw-debugger|vbw:vbw-architect|vbw:vbw-docs|lead|dev|qa|scout|debugger|architect|docs|team-lead|team-dev|team-qa|team-scout|team-debugger|team-architect|team-docs"
}
],
"SubagentStart": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" agent-start.sh; exit 0'",
"timeout": 3
},
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" agent-health.sh start; exit 0'",
"timeout": 3
}
],
"matcher": "vbw-lead|vbw-dev|vbw-qa|vbw-scout|vbw-debugger|vbw-architect|vbw-docs|vbw:vbw-lead|vbw:vbw-dev|vbw:vbw-qa|vbw:vbw-scout|vbw:vbw-debugger|vbw:vbw-architect|vbw:vbw-docs|lead|dev|qa|scout|debugger|architect|docs|team-lead|team-dev|team-qa|team-scout|team-debugger|team-architect|team-docs"
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'w=$(ls -1 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/vbw-marketplace/vbw/*/scripts/hook-wrapper.sh 2>/dev/null | (sort -V 2>/dev/null || sort -t. -k1,1n -k2,2n -k3,3n) | tail -1); [ ! -f \"$w\" ] && w=\"${CLAUDE_PLUGIN_ROOT:+$CLAUDE_PLUGIN_ROOT/scripts/hook-wrapper.sh}\"; [ ! -f \"$w\" ] && for f in /tmp/.vbw-plugin-root-link-*/scripts/hook-wrapper.sh; do [ -f \"$f\" ] && w=\"$f\" && break; done; [ ! -f \"$w\" ] && { D=$(ps axww -o args= 2>/dev/null | grep -v grep | grep -oE -- \"--plugin-dir [^ ]+\" | head -1); D=\"${D#--plugin-dir }\"; [ -n \"$D\" ] && w=\"$D/scripts/hook-wrapper.sh\"; }; [ -f \"$w\" ] && exec bash \"$w\" prompt-preflight.sh; exit 0'",
"timeout": 3
}
]
}
]
}{
"riskFlags": {
"touchesBash": true,
"matchAllTools": false,
"touchesFileWrites": true
},
"typeStats": {
"command": 22
},
"eventStats": {
"Stop": 2,
"PreCompact": 1,
"PreToolUse": 4,
"PostToolUse": 5,
"Notification": 1,
"SessionStart": 3,
"SubagentStop": 3,
"SubagentStart": 2,
"UserPromptSubmit": 1
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 0,
"projectScripts": 0
},
"timeoutStats": {
"commandsWithoutTimeout": 0
}
}