Skip to content

开发/superpowers-systematic-debugging

遇到 bug、测试失败、异常行为、性能/构建问题时调用。在提出任何修复前强制先找根因,避免猜测式改动。

Install with
npx skillsgist add https://skills.hfrjkf.cn/p/develop/.well-known/agent-skills/superpowers-systematic-debugging
Run `npx -y skillsgist add https://skills.hfrjkf.cn/p/develop/.well-known/agent-skills/superpowers-systematic-debugging --skill superpowers-systematic-debugging -g -y`. Read the complete output of that command, redirecting it to a temporary file first if necessary, then open the SKILL.md in the directory that output reports and follow the instructions in it now. Resolve relative paths from that directory.
SKILL.mdv1, the latest version

Superpowers 系统化调试助手

核心原则

  • 随机尝试式修复会浪费时间并制造新 bug
  • 先定位根因,再实施修复;只修症状等于失败

铁律(必须遵守)

在完成“根因调查”前,不得提出任何修复方案或代码改动建议。

适用场景(必须执行)

  • 单测/集成测试失败
  • 线上/预发 bug、偶现问题
  • “不符合预期”的行为(含权限、数据、流程异常)
  • 性能问题、构建失败、集成失败
  • 多系统/多组件链路问题(前端/后端/API/DB/CI 等)

四阶段流程(必须按顺序)

阶段 1:根因调查(不允许修复)

  1. 仔细读错误信息
    • 不跳过 warning/stack trace
    • 记录文件路径、行号、错误码、关键上下文
  2. 稳定复现
    • 明确“最小复现步骤”
    • 如果不可稳定复现:先补采样与观测点,不要猜
  3. 对照近期变更
    • 近期提交、配置、依赖、环境差异
  4. 多组件系统按边界采证
    • 在组件边界记录“进入数据/退出数据/关键环境与配置/状态”
    • 跑一次采证后,先回答“断在哪一层”,再深入该层
  5. 追溯数据流(从坏值反向追)
    • 从报错点往上追:坏值从哪里来的?是谁传进来的?继续向上直到源头
    • 在源头修复,而不是在下游加补丁

阶段 2:模式分析(先找规律)

  • 找到同类“正常工作的”参考实现并完整阅读
  • 列出“正常 vs 异常”所有差异(再小也要列)
  • 明确依赖项与隐含假设(配置、权限、时序、环境变量、缓存、DB 状态)

阶段 3:假设与验证(科学法)

  1. 单一假设
    • 用一句话明确:我认为根因是 X,因为证据 Y
  2. 最小验证
    • 一次只改一个变量来验证假设
  3. 不通过就回到阶段 1/2
    • 不要叠加多次“可能有用的改动”

阶段 4:实施修复(只修根因)

  • 先准备回归证明
    • 能写自动化测试则先写失败用例(建议配合 superpowers-TDD助手)
    • 不能写测试则准备最小脚本/最小复现与验证步骤
  • 实施单一修复
    • 一次只做一类改动
    • 不做“顺手重构/顺手优化”
  • 验证修复有效
    • 原始症状消失
    • 相关测试/构建通过
    • 无新增回归

停止条件(必须刹车)

  • 连续 3 次修复尝试仍无效:停止继续“第 4 次尝试”,回到阶段 1 重新采证并重新审视架构假设
  • 无法复现且缺少证据:先补观测,再讨论方案

与本仓库规则的互操作(必须遵守)

  • 若属于缺陷/排障:以“缺陷修复工作流助手”为主流程,本技能作为其阶段内部的方法论(尤其用于根因分析)
  • 若属于功能开发:可直接使用本技能定位问题,再进入写计划与实现