SuperAPI AI 工具集

systematic-debugging

编程与开发

查看项目

更新于 10-15 15:06

技能介绍

用途

Systematic Debugging 提供一种结构化的调试方法,用来避免“随机猜测式”修改,确保在动手解决前先真正理解问题。资料指出,该技能适用于调试复杂问题时使用,其目标是系统化地定位并消除缺陷,而不仅是让症状暂时消失。

来源信息显示,该技能源自 obra/superpowers,当前收录于 vudovn/ag-kit。

四阶段调试流程

第一阶段:复现(Reproduce)

在修复之前,先可靠地复现问题。资料给出的复现步骤模板为:记录精确的复现步骤、下一步操作,以及预期结果与实际结果。并要求评估复现率,可选档位包括:始终(100%)、经常(50-90%)、有时(10-50%)、罕见(低于 10%)。

第二阶段:隔离(Isolate)

缩小问题来源。资料列出的隔离提问包括:这个问题是什么时候开始出现的?最近有什么改动?是否在所有环境中都会发生?能否用最小代码复现?触发它的最小改动是什么?

第三阶段:理解(Understand)

找到根因,而不只是症状。资料给出的根因分析方法是“5 个为什么”(The 5 Whys),通过连续追问,从第一个观察逐层深入到根因:第一个为什么对应首次观察,随后逐层追问更深层原因,直到定位根因。

第四阶段:修复与验证(Fix & Verify)

修复并验证问题确实已被解决。资料给出的验证清单包括:缺陷不再复现、相关功能仍然正常、没有引入新问题、添加测试以防止回归。

调试清单

资料将清单分为三个阶段:

  • 开始前:能否稳定复现、是否已有最小复现用例、是否理解预期行为。
  • 调查中:检查近期改动(git log)、检查日志中的错误、必要时添加日志、使用调试器/断点。
  • 修复后:记录根因、验证修复、添加回归测试、检查相似代码。

常用调试命令

资料提供的命令示例包括:

# 近期改动
git log --oneline -20
git diff HEAD~5

# 按模式搜索
grep -r "errorPattern" --include="*.ts"

# 查看日志
pm2 logs app-name --err --lines 100

应避免的反模式

资料明确列出以下反模式:

  • 随机修改——“也许我改这里就行……”。
  • 忽视证据——“那不可能是原因”。
  • 假设——没有证据就断言“一定是 X”。
  • 未先复现——盲目修复。
  • 停留在症状——不找根因。

适用场景与限制

资料表明该技能适用于调试复杂问题,尤其是需要根因分析和基于证据验证的场合。关于该技能支持的具体平台、安装方式、收费情况或价格,资料中暂未提供,因此无法确认。