调试Skill debugging

这个技能专注于系统性调试方法,用于识别软件问题的根本原因而非表面症状,采用顺序思考、结构化调查和网络研究来避免循环推理和重复修复。涉及关键词:调试、根本原因分析、错误排查、代码修复、软件测试、系统性思考、故障排除,适用于编程、软件开发和工程领域。

测试 0 次安装 0 次浏览 更新于 3/9/2026

name: 调试 description: 系统性调试,旨在识别根本原因而非治标。使用顺序思考进行复杂分析,网络搜索进行研究,结构化调查以避免循环推理和治标不治本的修复。

调试

快速入门

  1. 捕获准确的复现步骤、范围和近期更改
  2. 隔离组件/文件;追踪失败路径
  3. 研究具体错误;检查官方文档
  4. 比较失败与正常工作模式;形成可测试的假设
  5. 用最小化测试验证;在所有实例中应用最小化修复;验证效果

使用此技能的时机

在以下情况下使用调试技能:

  • 漏洞无明确原因或已被“修复”但再次出现
  • 错误消息模糊或误导
  • 多次尝试修复失败
  • 问题可能影响代码库中的多个位置
  • 理解根本原因对正确解决至关重要

在以下情况下跳过此技能:

  • 具有明显修复的简单语法错误
  • 轻微拼写错误或缺失导入
  • 理解清晰、隔离的漏洞,具有明确解决方案

核心应避免的反模式

基于AI调试中记录的失败案例,明确避免:

  1. 循环推理:永远不要提出两次相同的修复,而不了解它为何失败
  2. 过早胜利:始终验证修复已实际实施并有效
  3. 模式遗忘:在整个会话中保持对现有代码模式的认知
  4. 上下文过载:使用50%规则——当上下文使用达到50%时重新开始对话
  5. 症状追逐:拒绝仅根据错误消息进行修复,而不理解根本原因
  6. 理解前实施:在检查现有模式之前,绝不跳到代码更改

理解(10步检查清单)

  • 理解:捕获准确的复现步骤、范围和近期更改
  • 缩小:隔离组件/文件;追踪失败路径
  • 发现:研究具体错误(WebSearch → Parallel Search,Context7:get-library-docs)
  • 检查:与代码库中已知良好模式进行比较
  • 推理:使用SequentialThinking:process_thought和5个为什么方法达到根本原因
  • 合成:编写可证伪的假设并进行预测
  • 测试:添加日志/测试以确认机制
  • 应用:针对根本原因应用最小化修复,在所有出现处遵循模式
  • 记录:记录见解、警告、决策
  • 文档:根据需要更新注释/文档/测试

使用TodoWrite进行进度跟踪

使用TodoWrite通过理解检查清单跟踪调试进度:

  1. 开始时:为每个适用步骤创建待办事项:

    ☐ U - 捕获准确的复现步骤和范围
    ☐ N - 隔离故障组件
    ☐ D - 研究错误消息
    ☐ E - 与工作模式进行比较
    ☐ R - 根本原因分析(5个为什么)
    ☐ S - 编写可证伪的假设
    ☐ T - 用最小化测试验证
    ☐ A - 在所有出现处应用修复
    ☐ N - 记录见解
    ☐ D - 更新文档/测试
    
  2. 调试期间:标记步骤为进行中 → 完成,按工作进展

  3. 遇到阻碍时:TodoWrite可视化显示哪个步骤被阻塞——有助于识别是否跳过步骤或陷入循环

  4. 仅跳过步骤如果:漏洞足够简单,检查清单是多余的(参见“跳过此技能的时机”以上)

工具决策树

  • 知道确切的文本/符号? → grep
  • 需要概念/语义位置? → codebase_search
  • 需要完整文件上下文? → read_file
  • 不熟悉的错误/行为? → Context7:get-library-docs,然后WebSearch → Parallel Search
  • 复杂的多假设分析? → SequentialThinking:process_thought

上下文管理

  • 当上下文使用达到约50%时重启,以避免推理退化
  • 重启前:总结事实、假设、已排除项、下一步
  • 以仅包含摘要的方式开始新对话;继续

决策框架

如果 同一修复被提出两次 → 停止;使用SequentialThinking:process_thought 如果 错误不明确 → 通过WebSearch → Parallel Search研究;使用文档验证 如果 领域不熟悉 → 使用codebase_search探索;不猜测 如果 修复看似太简单 → 确认其解决根本原因(非症状) 如果 上下文混乱 → 在50%时重启,带摘要 如果 存在多个假设 → 明确评估(支持/反对证据) 如果 类似代码有效 → 通过codebase_search/read_file查找并比较差异 如果 宣布成功 → 显示更改行;测试修复前失败/修复后通过 如果 修复跨越多个文件 → 搜索并修补所有出现处 如果 假设库行为 → 检查Context7:get-library-docs

完成前的质量检查

在宣布漏洞修复前,验证:

  • [ ] 根本原因已识别并记录
  • [ ] 修复解决原因,而非症状
  • [ ] 所有出现处已修复(项目范围搜索)
  • [ ] 遵循现有代码模式
  • [ ] 原始症状已消除
  • [ ] 未引入回归
  • [ ] 测试/日志在相关条件下验证
  • [ ] 文档/测试已更新(注释、文档、回归测试)

参考

  • reference/root-cause-framework.md
  • reference/antipatterns.md