From pro-workflow
{"riskFlags": {"touchesBash": true, "matchAllTools": true, "touchesFileWrites": true}, "typeStats": {"command": 20}, "eventStats": {"Stop": 2, "PreCompact": 1, "PreToolUse": 3, "SessionEnd": 1, "PostToolUse": 2, "ConfigChange": 1, "Notification": 1, "SessionStart": 1, "SubagentStop": 1, "TeammateIdle": 1, "SubagentStart": 1, "TaskCompleted": 1, "UserPromptSubmit": 2, "PermissionRequest": 1, "PostToolUseFailure": 1}, "originCounts": {"absolutePaths": 0, "pluginScripts": 10, "projectScripts": 0}, "timeoutStats": {"commandsWithoutTimeout": 20}}
15 events · 20 hooks
Safety signals detected in this hook configuration
Where this hook configuration is defined
Defined in hooks/hooks.json
Event handlers and matchers — expand Raw Configuration for the full JSON
*node "${CLAUDE_PLUGIN_ROOT}/scripts/session-check.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/learn-capture.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/pre-compact.js"tool == "Edit" || tool == "Write"node "${CLAUDE_PLUGIN_ROOT}/scripts/quality-gate.js"tool == "Bash" && tool_input.command matches "git commit"node -e "console.error('[ProWorkflow] Before commit: lint, typecheck, test?');console.error('[ProWorkflow] Run quality gates first: npm run lint && npm run typecheck')"tool == "Bash" && tool_input.command matches "git push"node -e "console.error('[ProWorkflow] Pushing to remote...');console.error('[ProWorkflow] Consider /wrap-up to capture learnings from this session')"*node "${CLAUDE_PLUGIN_ROOT}/scripts/session-end.js"tool == "Edit" && tool_input.file_path matches "\\.(ts|tsx|js|jsx|py|go|rs)$"node "${CLAUDE_PLUGIN_ROOT}/scripts/post-edit-check.js"tool == "Bash" && tool_input.command matches "(npm test|pnpm test|yarn test|pytest|go test)"node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const out=i.tool_output?.output||'';if(/fail|error|FAIL/i.test(out)){console.error('[ProWorkflow] Tests failed - fix before proceeding');console.error('[ProWorkflow] Consider: [LEARN] Testing: '+out.split('\n').find(l=>/fail|error/i.test(l))?.slice(0,80))}console.log(d)})"*node "${CLAUDE_PLUGIN_ROOT}/scripts/config-watcher.js"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);if(i.type==='PermissionRequest'){console.error('[ProWorkflow] Permission requested: '+i.tool)}console.log(d)})"*node "${CLAUDE_PLUGIN_ROOT}/scripts/session-start.js"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);console.error('[ProWorkflow] Subagent finished: '+(i.agent_name||'unnamed'));console.log(d)})"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);console.error('[ProWorkflow] Teammate idle: '+(i.teammate_name||'unnamed'));console.error('[ProWorkflow] Consider reassigning or checking for blockers');console.log(d)})"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);console.error('[ProWorkflow] Subagent started: '+(i.agent_name||'unnamed'));console.log(d)})"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);console.error('[ProWorkflow] Task completed: '+(i.task_id||'unknown'));console.error('[ProWorkflow] Run quality gates before marking done');console.log(d)})"*node "${CLAUDE_PLUGIN_ROOT}/scripts/prompt-submit.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/drift-detector.js"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const tool=i.tool||'unknown';const cmd=(i.tool_input&&i.tool_input.command)||'';const dangerous=['rm -rf','docker','deploy','npm publish','push --force','reset --hard'];const isDangerous=dangerous.some(p=>tool.includes(p)||cmd.includes(p));if(isDangerous){console.error('[ProWorkflow] CAUTION: Dangerous operation requested: '+tool+(cmd?' cmd: '+cmd:''))}console.log(d)})"*node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);console.error('[ProWorkflow] Tool failed: '+(i.tool||'unknown'));console.error('[ProWorkflow] Consider: [LEARN] Debugging: Tool failure in '+(i.tool||'unknown'));console.log(d)})"npx claudepluginhub matrixy/pro-workflow