系统性调试与错误恢复
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/systematic-debugging-and-error-recovery
技能介绍
这个技能解决什么问题
当系统出现故障时,最常见的反应是「猜」:改一改配置、重启服务、换一种调用方式,然后祈祷问题消失。这种方式的代价往往不是修不好,而是修好之后没人知道为什么好。团队失去对故障的理解,同类问题会在另一个模块再次出现。
系统性调试与错误恢复 把排错变成一条可重复的流程,让 Agent 在面对失败时先收集事实,再形成假设,最后验证结论。
它如何工作
核心思路可以拆成四个阶段:
- 保留现场:在动手之前,先把错误输出、日志、相关配置和复现路径完整记录下来,避免修复过程中关键证据被覆盖或遗忘。
- 稳定复现:如果无法稳定触发失败,就无法确认根因。技能要求先把失败条件收敛到可重复的最小场景,例如固定输入、固定环境变量、锁定依赖版本。
- 隔离根因:在复现的基础上,用二分法、注释边界或对照实验逐步缩小可疑范围,把问题定位到具体模块、函数或配置项,而不是在整张调用链上来回试错。
- 验证修复:修复必须通过可观察的证据确认——
test、build或特定复现脚本重新跑通,而不是「看起来好了」。
适用边界与注意点
这个技能适合有明确失败信号的场景:测试挂了、构建报错、接口返回异常、日志出现 error 堆栈。它依赖项目本身具备可用的测试与构建命令,因此不适合没有任何自动化验证手段的裸项目。
需要留意两点:其一,技能替代不了对系统架构的理解,它能帮你缩小范围,但最终判断仍需开发者参与;其二,复现失败有时需要先补齐日志或监控,这一步本身就可能暴露出之前缺失的可观测性建设。
使用场景
- CI流水线中`build`命令突然失败,需要在合并代码前定位是哪个模块引入的编译错误
- 回归测试挂掉但日志只有模糊报错,需要收集完整错误堆栈并复现失败条件
- 线上接口返回异常状态码,需要在不重启服务的情况下收集请求参数和响应日志定位根因
- 跨服务调用链出现间歇性超时,需要用二分法逐个注释可疑服务调用以隔离故障点
适合人员
- 后端开发者需要在API出现500错误时快速定位是哪个控制器或数据层代码导致崩溃
- 测试工程师需要将不稳定的集成测试用例收敛到可重复的最小复现场景
- 全栈开发者需要在前后端联调时用系统化方法排查接口超时或数据不一致问题
- DevOps工程师需要在CI/CD流水线构建失败时用日志和复现路径定位环境配置问题