npx claudepluginhub faisalalqarni/sp-ecc --plugin sp-eccDefined in hooks/hooks.json
*"${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/check-console-log.js"tool == "Edit" && tool_input.file_path matches "\.(ts|tsx)$""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/typescript-check.js"*"${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-compact.js"tool == "Bash" && tool_input.command matches "git (push.*(-(-force|f)|--force-with-lease)|reset.*--hard|clean.*-f|branch.*-D|checkout.*-- \\.|rebase(?!.*--abort))""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/block-destructive-git.js"tool == "Bash" && tool_input.command matches "git commit""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/strip-coauthor.js"tool == "Bash" && tool_input.command matches "(npm run dev|pnpm( run)? dev|yarn dev|bun run dev)""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/block-dev-server.js"tool == "Bash" && tool_input.command matches "(npm (install|test)|pnpm (install|test)|yarn (install|test)?|bun (install|test)|cargo build|make|docker|pytest|vitest|playwright)""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/tmux-reminder.js"tool == "Write" && tool_input.file_path matches "\.(md|txt)$" && !(tool_input.file_path matches "README\.md|CLAUDE\.md|AGENTS\.md|CONTRIBUTING\.md|CHANGELOG\.md|LICENSE")"${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/block-md-creation.js"tool == "Edit" || tool == "Write""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/suggest-compact.js"*"${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/session-end.js"*"${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/evaluate-session.js"tool == "Bash""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/log-pr-url.js"tool == "Edit" && tool_input.file_path matches "\.(ts|tsx|js|jsx)$""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/prettier-format.js"tool == "Edit" && tool_input.file_path matches "\.(ts|tsx|js|jsx)$""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/warn-console-log.js"tool == "Edit" && tool_input.file_path matches "\.(rb|cs|ts|tsx|js|jsx|py)$""${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/warn-scattered-logs.js"startup|resume|clear|compact"${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh"*"${CLAUDE_PLUGIN_ROOT}/scripts/hooks/run-node.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/hooks/session-start.js"Blocks dev servers outside tmux, warns on long-running commands, prevents random .md file creation, and reminds to review before git push. Runs bash and writes files.
Share bugs, ideas, or general feedback.