Skip to content

diagnose — 诊断调试

  • 触发方式: /diagnose 或关键词「diagnose this」「debug this」「诊断」「调试」
  • 适用场景: Bug 调试、性能回归、异常排查
  • 不适用场景: 纯探索性问题、功能新增、代码审查

功能概述

diagnose 是 Claude Code 的通用调试 Skill。它遵循严谨的诊断流程:「复现 → 缩小范围 → 假设 → 埋点验证 → 修复 → 回归测试」,确保每个 Bug 被系统性地定位和解决。

触发条件

以下情况会自动触发 diagnose

  • 描述一个 Bug 或异常行为
  • 提到性能回归或变慢
  • 说某个功能「坏了」「不工作了」
  • 使用 /diagnose 命令

使用示例

示例 1:API 异常排查

/diagnose 用户服务 /api/users 接口 P99 延迟从 50ms 涨到了 500ms

Claude 会:

  1. 确认是否最近有部署变更
  2. 检查数据库查询是否有 N+1 问题
  3. 排查是否有慢查询或索引缺失
  4. 检查是否有缓存失效

示例 2:前端渲染问题

/diagnose React 列表页滚动到底部后白屏,Chrome 最新版

Claude 会:

  1. 确认是渲染崩溃还是数据问题
  2. 检查虚拟列表/无限滚动实现
  3. 排查内存泄漏或 key 值问题

示例 3:构建失败

/diagnose CI 构建突然失败,本地正常,错误信息是 'Module not found'

示例 4:数据不一致

/diagnose 订单状态显示「已发货」但物流信息为空,偶发

示例 5:测试不稳定

/diagnose 单元测试 UsersService.test.ts 偶发失败,大概 30% 概率

工作流程

  1. Reproduce(复现) — 收集复现条件、频率、环境信息
  2. Narrow(缩小范围) — 通过二分法、git bisect 或日志定位可疑代码
  3. Hypothesize(假设) — 基于代码逻辑提出可验证的原因假设
  4. Instrument(埋点验证) — 添加日志/断点/监控验证假设
  5. Fix(修复) — 确认根因后实施修复
  6. Regression-test(回归测试) — 确保修复不会引入新问题

注意事项

  • 尽量提供复现步骤环境信息,这能大幅提高诊断效率
  • 如果问题难以复现,描述触发概率已知规律
  • 涉及生产环境数据时,注意脱敏
  • diagnose 不是代码审查工具 — 用 /review 代替
  • 复杂性能问题可能需要配合实际 profiling 数据

相关 Skills

  • tdd — 修复后写测试防止回归
  • review — 修复完成后审查变更
  • simplify — 修复后清理遗留复杂代码