diagnose — 诊断调试
- 触发方式:
/diagnose或关键词「diagnose this」「debug this」「诊断」「调试」 - 适用场景: Bug 调试、性能回归、异常排查
- 不适用场景: 纯探索性问题、功能新增、代码审查
功能概述
diagnose 是 Claude Code 的通用调试 Skill。它遵循严谨的诊断流程:「复现 → 缩小范围 → 假设 → 埋点验证 → 修复 → 回归测试」,确保每个 Bug 被系统性地定位和解决。
触发条件
以下情况会自动触发 diagnose:
- 描述一个 Bug 或异常行为
- 提到性能回归或变慢
- 说某个功能「坏了」「不工作了」
- 使用
/diagnose命令
使用示例
示例 1:API 异常排查
/diagnose 用户服务 /api/users 接口 P99 延迟从 50ms 涨到了 500msClaude 会:
- 确认是否最近有部署变更
- 检查数据库查询是否有 N+1 问题
- 排查是否有慢查询或索引缺失
- 检查是否有缓存失效
示例 2:前端渲染问题
/diagnose React 列表页滚动到底部后白屏,Chrome 最新版Claude 会:
- 确认是渲染崩溃还是数据问题
- 检查虚拟列表/无限滚动实现
- 排查内存泄漏或 key 值问题
示例 3:构建失败
/diagnose CI 构建突然失败,本地正常,错误信息是 'Module not found'示例 4:数据不一致
/diagnose 订单状态显示「已发货」但物流信息为空,偶发示例 5:测试不稳定
/diagnose 单元测试 UsersService.test.ts 偶发失败,大概 30% 概率工作流程
- Reproduce(复现) — 收集复现条件、频率、环境信息
- Narrow(缩小范围) — 通过二分法、git bisect 或日志定位可疑代码
- Hypothesize(假设) — 基于代码逻辑提出可验证的原因假设
- Instrument(埋点验证) — 添加日志/断点/监控验证假设
- Fix(修复) — 确认根因后实施修复
- Regression-test(回归测试) — 确保修复不会引入新问题
注意事项
- 尽量提供复现步骤和环境信息,这能大幅提高诊断效率
- 如果问题难以复现,描述触发概率和已知规律
- 涉及生产环境数据时,注意脱敏
diagnose不是代码审查工具 — 用/review代替- 复杂性能问题可能需要配合实际 profiling 数据