diagnosing-bugs
Matt Pocock 对硬 bug 的调试纪律,6 个阶段: Phase 1 建反馈环(核心,占一半篇幅)——给出 10 种建环手段(失败测试→curl→CLI→Playwright→重放流量→一次性 harness→fuzz→二分→新旧对比→人类手动脚本),并要求"收紧"(更快/信号更尖锐/更确定),"2 秒的确定性循环是调试超能力,30 秒的 flaky 循环还不如没有"。Phase 2 复现+最小化——把复现缩到每个元素都承重。Phase 3 假设——必须先列 3-5 个可证伪的假设("如果 X 是原因,那么改 Y 会让 bug 消失"),说不出预测的假设就是 vibe。Phase 4 插桩——调试日志带唯一前缀([DEBUG-a4f2]),收尾一个 grep 全清;性能问题先测基线再二分。Phase 5 修复+回归测试——先写回归测试再修,且只在存在"正确 seam"时;没有正确 seam 本身就是发现(架构阻止锁死 bug)。Phase 6 收尾——清干净,把正确的假设写进 commit message。
🔍 实测报告
这是我见过打磨最细的调试技能:反馈环优先原则(没环不许提假设)直接治"瞎猜乱改";假设必须可证伪+先列 3-5 条+给用户看;回归测试先于修复且讲究 seam;连"没有正确 seam 本身是发现"都考虑到了。
本报告由自动化实测生成:读取技能完整内容,按描述验证可执行性与依赖。
有这个技能,差别在哪
| 遇到的情况 | 没有这个技能 | 有这个技能 |
|---|---|---|
| 遇到难 bug,AI 开始盯着代码猜 | 猜错了改,改错了再猜,越改越乱。 | 先逼它建一个"遇到这个 bug 就红"的测试/脚本,没建好不许猜。 |
| bug 偶尔才出现一次(1% 概率) | 根本没法查,只能碰运气。 | 先想办法把复现率提到能调试的水平(循环100次、加压力、缩时序窗口)。 |
| 修好了但怕改坏别处 | 凭感觉"应该修好了"。 | 先写回归测试(在正确的 seam 上)看着它失败,再修、再看它通过。 |
装好后,AI 会这样帮你干活
安装(超简单,一句话搞定)
不用敲任何命令。 复制下面这句话,发给你的 AI 助手(Claude Code、Reasonix、Cursor、Codex 等都行),它会自己帮你装好:
帮我安装 diagnosing-bugs 这个技能,它来自 https://github.com/mattpocock/skills ,装好告诉我是干什么的
你的 AI 助手可能还会问你放在哪、怎么用,照常回答它就行——就像平时让它干活一样,不用懂技术细节。
想自己动手?(不推荐,给懂命令行的人)
下面的命令按工具区分,均来自原仓库。普通用户请直接使用上面的一句话方式,让智能体代劳。
/plugin marketplace add mattpocock/skills /plugin install
/plugins → 搜索 skills → Install Plugin
在 Cursor Agent 聊天中输入 /add-plugin skills
gemini extensions install https://github.com/mattpocock/skills
git clone https://github.com/mattpocock/skills.git 对应技能目录(详见原仓库 README)
用 install_source 安装 https://github.com/mattpocock/skills(Reasonix 会引导你完成)
来源与版权
- 原作者:Matt Pocock
- 原仓库:https://github.com/mattpocock/skills
- 许可证:MIT(允许复制、修改、翻译、再分发,需保留版权声明)
- 仓库路径:skills/engineering/diagnosing-bugs/SKILL.md