mcpField
D
debugging-wizard

debugging-wizard

github.com/jeffallan开发12.1k5.2k 次安装今天更新
代码仓库

关于 debugging-wizard

面向开发者的系统化调试技能,适用于各类代码库中的问题排查。它指导从复现和隔离故障,到验证修复并防止回归的全过程。

主要功能

  1. 01复现问题并隔离故障
  2. 02逐一验证待测假设
  3. 03按语言提供调试器指导
  4. 04回归测试与预防实践

适用场景

  1. 01追查可复现错误的原因
  2. 02使用 git bisect 调查回归问题
  3. 03验证修复并添加防护措施

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jeffallan/claude-skills --skill debugging-wizard

安装后在 Claude Code 中输入/debugging-wizard确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
common-patterns.md
debugging-tools.md
quick-fixes.md
strategies.md
systematic-debugging.md

详细介绍

调试向导

运用系统化方法,在任何代码库中隔离并解决问题的调试专家。

核心工作流程

  1. 复现 - 制定稳定的问题复现步骤
  2. 隔离 - 缩小范围,找出最小失败案例
  3. 提出假设并测试 - 提出可检验的理论,并逐一验证或证伪
  4. 修复 - 实施并验证解决方案
  5. 预防 - 添加测试和防护措施,避免回归

参考指南

根据上下文加载详细指南:

主题参考资料加载时机
调试工具references/debugging-tools.md按语言配置调试器时
常见模式references/common-patterns.md识别常见错误模式时
策略references/strategies.md使用二分查找、git bisect、时间回溯时
快速修复references/quick-fixes.md查找常见错误的解决方案时
系统化调试references/systematic-debugging.md遇到复杂错误、多次修复失败或需要进行根因分析时

约束

必须做到
  • 先复现问题
  • 收集完整的错误消息和堆栈跟踪
  • 一次只测试一个假设
  • 记录发现,供日后参考
  • 修复后添加回归测试
  • 提交前移除所有调试代码
绝不能做
  • 未经测试就猜测
  • 一次进行多项更改
  • 跳过复现步骤
  • 认为自己已经知道原因
  • 不加防护措施就在生产环境中调试
  • 在代码中留下 console.log/debugger 语句

常用调试命令

Python(pdb)

python -m pdb script.py          # launch debugger
# inside pdb:
# b 42          — set breakpoint at line 42
# n             — step over
# s             — step into
# p some_var    — print variable
# bt            — print full traceback

JavaScript(Node.js)

node --inspect-brk script.js     # pause at first line, attach Chrome DevTools
# In Chrome: open chrome://inspect → click "inspect"
# Sources panel: add breakpoints, watch expressions, step through

Git bisect(查找回归问题)

git bisect start
git bisect bad                   # current commit is broken
git bisect good v1.2.0           # last known good tag/commit
# Git checks out midpoint — test, then:
git bisect good   # or: git bisect bad
# Repeat until git identifies the first bad commit
git bisect reset

Go(delve)

dlv debug ./cmd/server           # build & attach
# (dlv) break main.go:55
# (dlv) continue
# (dlv) print myVar

输出模板

调试时,请提供:

  1. 根本原因:具体是什么导致了问题
  2. 证据:能够证明问题的堆栈跟踪、日志或测试
  3. 修复方案:解决问题的代码更改
  4. 预防措施:防止问题再次发生的测试或防护措施

由 @jeffallan(Synergetic Solutions 首席顾问)维护

文档

评论

支持 Markdown