首页/数据 & AI/debug-hooks
D

debug-hooks

by @parcadeiv
4.4(121)

提供调试Claude Code钩子的系统化工作流程,解决钩子未触发、输出错误或会话结束等问题,确保代码正常运行。

AI DebuggingHook-Based MonitoringAgent ObservabilityExecution TracingLLM Interaction AnalysisGitHub
安装方式
npx skills add parcadei/continuous-claude-v3 --skill debug-hooks
compare_arrows

Before / After 效果对比

1
使用前

调试Claude Code钩子时,开发者常常面临钩子未按预期触发、输出结果异常或会话意外中断等问题,缺乏系统化的排查流程,导致调试过程耗时且效率低下,难以快速定位并解决问题,严重阻碍开发进度。

使用后

引入系统化调试工作流程后,针对Claude Code钩子未触发、输出错误或会话结束等常见问题,开发者能够遵循清晰的步骤进行排查。这显著提升了调试效率,确保了钩子代码的稳定运行,大大缩短了问题解决时间,提高了开发可靠性。

description SKILL.md

debug-hooks

Debug Hooks Systematic workflow for debugging Claude Code hooks. When to Use "Hook isn't firing" "Hook produces wrong output" "SessionEnd not working" "PostToolUse hook not triggering" "Why didn't my hook run?" Workflow 1. Check Outputs First (Observe Before Editing) # Check project cache ls -la $CLAUDE_PROJECT_DIR/.claude/cache/ # Check specific outputs ls -la $CLAUDE_PROJECT_DIR/.claude/cache/learnings/ # Check for debug logs tail $CLAUDE_PROJECT_DIR/.claude/cache/.log 2>/dev/null # Also check global (common mistake: wrong path) ls -la ~/.claude/cache/ 2>/dev/null 2. Verify Hook Registration # Project settings cat $CLAUDE_PROJECT_DIR/.claude/settings.json | grep -A 20 '"SessionEnd"|"PostToolUse"|"UserPromptSubmit"' # Global settings (hooks merge from both) cat ~/.claude/settings.json | grep -A 20 '"SessionEnd"|"PostToolUse"|"UserPromptSubmit"' 3. Check Hook Files Exist # Shell wrappers ls -la $CLAUDE_PROJECT_DIR/.claude/hooks/.sh # Compiled bundles (if using TypeScript) ls -la $CLAUDE_PROJECT_DIR/.claude/hooks/dist/.mjs 4. Test Hook Manually # SessionEnd hook echo '{"session_id": "test-123", "reason": "clear", "transcript_path": "/tmp/test"}' | \ $CLAUDE_PROJECT_DIR/.claude/hooks/session-end-cleanup.sh # PostToolUse hook (Write tool example) echo '{"tool_name": "Write", "tool_input": {"file_path": "test.md"}, "session_id": "test-123"}' | \ $CLAUDE_PROJECT_DIR/.claude/hooks/handoff-index.sh 5. Check for Silent Failures If using detached spawn with stdio: 'ignore': // This pattern hides errors! spawn(cmd, args, { detached: true, stdio: 'ignore' }) Fix: Add temporary logging: const logFile = fs.openSync('.claude/cache/debug.log', 'a'); spawn(cmd, args, { detached: true, stdio: ['ignore', logFile, logFile] // capture stdout/stderr }); 6. Rebuild After Edits If you edited TypeScript source, you MUST rebuild: cd $CLAUDE_PROJECT_DIR/.claude/hooks npx esbuild src/session-end-cleanup.ts \ --bundle --platform=node --format=esm \ --outfile=dist/session-end-cleanup.mjs Source edits alone don't take effect - the shell wrapper runs the bundled .mjs. Common Issues Symptom Likely Cause Fix Hook never runs Not registered in settings.json Add to correct event in settings Hook runs but no output Detached spawn hiding errors Add logging, check manually Wrong session ID Using "most recent" query Pass ID explicitly Works locally, not in CI Missing dependencies Check npx/node availability Runs twice Registered in both global + project Remove duplicate Debug Checklist Outputs exist? (ls -la .claude/cache/) Registered? (grep -A10 '"hooks"' .claude/settings.json) Files exist? (ls .claude/hooks/.sh) Bundle current? (ls -la .claude/hooks/dist/) Manual test works? (echo '{}' | ./hook.sh) No silent failures? (check for stdio: 'ignore') Source Sessions Derived from 10 sessions (83% of all learnings): a541f08a, 1c21e6c8, 6a9f2d7a, a8bd5cea, 2ca1a178, 657ce0b2, 3998f3a2, 2a829f12, 0b46cfd7, 862f6e2c Weekly Installs178Repositoryparcadei/contin…laude-v3GitHub Stars3.6KFirst SeenJan 22, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled onopencode169codex167cursor165gemini-cli163github-copilot161amp154

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量3.0K
评分4.4 / 5.0
版本
更新日期2026年4月27日
对比案例1 组

用户评分

4.4(121)
5
31%
4
51%
3
17%
2
1%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

时间线

创建2026年3月17日
最后更新2026年4月27日
🎁 Agent 知识卡片