6 events · 17 hooks
npx claudepluginhub xu-xiang/everything-claude-code-zhDefined in hooks/hooks.json
*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/check-console-log.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-compact.js"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(process.platform!=='win32'&&/(npm run dev\b|pnpm( run)? dev\b|yarn dev\b|bun run dev\b)/.test(cmd)){console.error('[Hook] BLOCKED: Dev server must run in tmux for log access');console.error('[Hook] Use: tmux new-session -d -s dev \"npm run dev\"');console.error('[Hook] Then: tmux attach -t dev');process.exit(2)}}catch{}console.log(d)})"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(process.platform!=='win32'&&!process.env.TMUX&&/(npm (install|test)|pnpm (install|test)|yarn (install|test)?|bun (install|test)|cargo build|make\b|docker\b|pytest|vitest|playwright)/.test(cmd)){console.error('[Hook] Consider running in tmux for session persistence');console.error('[Hook] tmux new -s dev | tmux attach -t dev')}}catch{}console.log(d)})"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(/git push/.test(cmd)){console.error('[Hook] Review changes before push...');console.error('[Hook] Continuing with push (remove this hook to add interactive review)')}}catch{}console.log(d)})"Writenode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/doc-file-warning.js"Edit|Writenode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/suggest-compact.js"*${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh10ms*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/session-end.js"*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/evaluate-session.js"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(/gh pr create/.test(cmd)){const out=i.tool_output?.output||'';const m=out.match(/https:\/\/github.com\/[^/]+\/[^/]+\/pull\/\d+/);if(m){console.error('[Hook] PR created: '+m[0]);const repo=m[0].replace(/https:\/\/github.com\/([^/]+\/[^/]+)\/pull\/\d+/,'$1');const pr=m[0].replace(/.+\/pull\/(\d+)/,'$1');console.error('[Hook] To review: gh pr review '+pr+' --repo '+repo)}}}catch{}console.log(d)})"Bashnode -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=i.tool_input?.command||'';if(/(npm run build|pnpm build|yarn build)/.test(cmd)){console.error('[Hook] Build completed - async analysis running in background')}}catch{}console.log(d)})"30msEditnode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-format.js"Editnode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-typecheck.js"Editnode "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-console-warn.js"*${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh10ms*node "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/session-start.js"Node.js hooks on Stop/PreCompact/PreToolUse: check console.log in modified files, git push reminders before Bash, doc file warnings on Write/Edit, session persistence/evaluation/cost tracking. Touches bash/files.
Share bugs, ideas, or general feedback.