← 返回藏书阁

Disciplined Diagnosis

wiki/ai/concepts/Disciplined-Diagnosis.md
分类:ai / concepts · 更新:2026-06-14 00:33

Disciplined Diagnosis(纪律化诊断)

Matt Pocock 的 /diagnose skill 的六阶段诊断循环。

六阶段

Phase 1 — 构建反馈循环(核心)

This is the skill. Everything else is mechanical.

构建一个快速、确定性、agent 可运行的 pass/fail 信号。10 种方法按优先级尝试:

  1. 失败测试
  2. curl/HTTP 脚本
  3. CLI 调用 + snapshot diff
  4. Headless 浏览器脚本
  5. 回放捕获的 trace
  6. 一次性 harness
  7. 属性/模糊测试
  8. 二分 harness(git bisect run)
  9. 差分循环(老版本 vs 新版本)
  10. HITL bash 脚本(最后手段)

迭代循环本身:让它更快、信号更锐利、更确定性。30 秒抖动循环 ≈ 没有循环。2 秒确定性循环 = 调试超能力。

Phase 2 — 复现

确认循环产出用户描述的失败模式(不是另一个附近的 bug)。

Phase 3 — 假设

生成 3-5 个可证伪假设,排序后展示给用户。每个假设必须有预测。

Phase 4 — 探测

每个探测对应一个假设预测。一次只改一个变量。标记 [DEBUG-xxxx] 方便清理。

Phase 5 — 修复 + 回归测试

先写回归测试(在正确的 seam 上),再看它失败,再修复。如果找不到正确的 seam,这个发现本身就要记录

Phase 6 — 清理 + 复盘

删除所有调试标记和临时原型。问:什么本可以防止这个 bug?如果答案是架构问题,交给 /improve-codebase-architecture

核心洞见

Build the right feedback loop, and the bug is 90% fixed.

反馈循环不是调试的辅助工具 — 它就是调试本身。没有循环就不要继续。