AgentSkillsCN

systematic-debug

系统化调试技能 - 按证据驱动流程定位和修复bug

中文原作
SKILL.md
--- frontmatter
name: systematic-debug
description: 系统化调试技能 - 按证据驱动流程定位和修复bug

系统化调试技能

当用户描述一个 bug 或异常行为时,按以下流程执行:

第一步:收集证据

  1. 让用户描述:预期行为 vs 实际行为
  2. 收集错误日志、堆栈跟踪、截图
  3. 确认复现条件(设备/操作步骤/频率)
  4. grep_search 在代码中搜索相关错误信息和关键字

第二步:缩小范围

  1. 根据错误信息定位到具体文件和函数
  2. view_code_item 阅读相关代码,理解调用链
  3. 画出调用链路:入口 → 中间层 → 出错点
  4. 识别可能的竞态条件、空值、类型错误

第三步:提出假设

  1. 列出 2-3 个最可能的根因假设
  2. 为每个假设说明:
    • 为什么认为这是原因
    • 如何验证/排除
  3. 按可能性排序

第四步:验证假设

  1. 添加日志语句验证假设(标记为 // DEBUG-TEMP
  2. 阅读相关测试文件,检查是否有覆盖
  3. 对比类似功能的正常实现(如果有)
  4. 如果项目有其他参考实现(如 nekobox),对比关键差异

第五步:实施修复

  1. 编写最小化修复(不要过度重构)
  2. 所有修改标注 // fix: [issue描述] 注释
  3. 确保修复不引入新问题(检查调用方)
  4. 清理第四步添加的 // DEBUG-TEMP 日志

第六步:验证修复

  1. 运行编译确认无语法错误
  2. 运行现有测试(如果有)
  3. 列出手动测试步骤让用户验证
  4. 检查边界情况和并发场景

注意事项

  • 不要猜测:每一步都要基于代码证据
  • 不要过度修复:只修改导致 bug 的代码,不要顺便重构
  • 保留上下文:在 walkthrough 中记录发现和修复过程
  • Android 特别注意:多进程通信、生命周期、主线程阻塞