name: 故障诊断 description: “针对错误和故障的诊断和修复指南,包括CI。当用户提到某些东西坏了、错误、不工作、CI失败、CIが落ちた、构建错误、测试失败或管道问题时使用。不要用于:成功构建、新功能实现或审查。” description-en: “Diagnosis and repair guide for errors and failures including CI. Use when user mentions something broken, errors, it doesn’t work, CI failures, build errors, test failures, or pipeline issues. Do NOT load for: successful builds, new feature implementation, or reviews.” description-ja: “动かない?错误?CI是红色的?诊断和修复指南。困ったときの駆け込み寺。Use when user mentions something broken, errors, it doesn’t work, CI failures, CIが落ちた, build errors, test failures, or pipeline issues. Do NOT load for: successful builds, new feature implementation, or reviews.” allowed-tools: [“Read”, “Grep”, “Bash”] context: fork argument-hint: “[build|test|runtime]”
故障诊断技能
问题发生时的诊断和解决指南技能。 帮助VibeCoder无需技术知识即可解决问题。
触发短语
这个技能在以下短语时自动启动:
- 「动かない」「错误が出た」「壊れた」
- 「うまくいかない」「失敗した」
- 「なぜ?」「原因は?」
- “it’s broken”, “doesn’t work”, “error”, “why?”
概要
问题发生时,VibeCoder 不需要理解技术细节。 这个技能会自动诊断并提供解决方案。
诊断流程
Step 1: 症状确认
🔍 发生了什么?
请简单告诉我:
- 「画面全白」
- 「按钮不动」
- 「数据不保存」
Step 2: 自动诊断
# 环境检查
node -v
npm -v
git status -sb
# 错误日志确认
npm run build 2>&1 | tail -20
npm test 2>&1 | tail -20
# 依赖关系检查
npm ls --depth=0
Step 3: 问题类别特定
| 类别 | 症状 | 自动对应 |
|---|---|---|
| 依赖关系 | Cannot find module |
npm install |
| 类型错误 | Type error |
error-recovery agent |
| 构建错误 | Build failed |
error-recovery agent |
| 运行时 | 画面不显示 | 日志分析 |
| 环境设置 | 连接错误 | 环境变量确认 |
| CI/CD | CI 失败、管道失败 | ci 技能に dispatch |
CI/CD 问题: 检测到CI障碍、测试失败、管道问题时,将处理委托给
ci技能(skills/ci/)。ci技能使用ci-cd-fixer代理进行自动诊断和修正。
问题别对应
「按钮不动 / 表单不提交 / UI崩溃」
UI的不完善,在画面上再现观察→修正→再验证是最短的。
- 优先使用agent-browser(安装:
npm install -g agent-browser)# 打开页面获取快照 agent-browser open https://example.com/target-page agent-browser snapshot -i -c # 元素引用点击、输入 agent-browser click @e1 agent-browser fill @e2 "test"- 在目标URL再现 → 基于快照/控制台缩小原因
- 确认源代码(UI/状态管理/API/验证)并修正
- 确认相同步骤不再现
- 参考:
docs/OPTIONAL_PLUGINS.md
- agent-browser 不能使用时的后备
- MCP 浏览器工具(chrome-devtools, playwright)
- 再现步骤(URL/步骤/期望值/实际)
- 截图/视频
- 控制台日志/网络日志
「画面全白」
🔍 诊断中...
可能的原因:
1. 构建错误
2. JavaScript 错误
3. 路由问题
🔧 自动检查:
- 确认构建日志... ✅ 无错误
- 确认控制台错误... ❌ 发现错误
💡 解决方案:
请说「直して」。尝试自动修正。
「npm install 失败」
🔍 诊断中...
错误: `ERESOLVE unable to resolve dependency tree`
🔧 解决方案:
1. 清除缓存
2. 重新安装node_modules
可以执行吗?(是/否)
「Git 有问题」
🔍 诊断中...
检测: 发生合并冲突
🔧 解决方案:
1. 显示冲突部分
2. 提议解决方法
说「解決して」尝试自动合并。
VibeCoder向け应答模式
模式1: 自动修正可能
⚠️ 检测到问题
**问题**: 模块找不到
**原因**: 依赖关系未安装
🔧 **自动修正**
→ 执行`npm install`中...
✅ 修正完成!请再试一次。
模式2: 需要确认
⚠️ 检测到问题
**问题**: 需要更改配置文件
**影响**: 可能影响动作
🤔 **请确认**:
可以更改设置吗?
→ 「変更して」执行
→ 「説明して」确认详细
模式3: 升级
⚠️ 检测到复杂问题
**问题**: {{问题概要}}
**尝试的修正**: 3次失败
🆘 **推荐咨询 Cursor (PM)**
请向 Cursor 共享以下:
- 错误内容: {{摘要}}
- 尝试的对应: {{列表}}
- 推定原因: {{分析}}
说「报告书を作って」生成共享用报告。
常见问题自动应答
| 问题 | 自动应答 |
|---|---|
| 「为什么错误了?」 | 分析错误日志说明原因 |
| 「怎么才能修好?」 | 提示具体的解决步骤 |
| 「以前是动的」 | 用git log确认最近的更改 |
| 「同样的错误多次」 | 分析模式提议根本对策 |
诊断命令
快速诊断
「诊断して」
→ 全般的健全性检查
→ 如果有问题报告
→ 如果没有「问题なし」
详细诊断
「详细诊断して」
→ 依赖关系检查
→ 构建测试
→ 测试执行
→ 环境变量确认
→ 详细报告输出
Claude Code 固有诊断(CC 2.1.49+)
复杂会话问题使用 /debug 命令有效。
| 症状 | 推荐 |
|---|---|
| 「会话有问题」 | /debug で会话诊断 |
| 「MCP不动」 | /debug で MCP 状态确认 |
| 「多次尝试也不行」 | /debug で详细日志输出 |
| 「上下文变」 | /debug で上下文信息取得 |
| 「认证错误」 | claude auth status で认证状态确认 (CC 2.1.41+) |
认证诊断(CC 2.1.41+)
CC 2.1.41 添加了 claude auth 子命令:
claude auth status # 认证状态确认
claude auth login # 再登录
claude auth logout # 登出
对API密钥问题或认证过期的诊断有用。
VibeCoder 向け
🔍 需要更详细诊断的情况
被说「更详细诊断して」时:
→ 推荐使用 `/debug` 命令
/debug 命令诊断以下:
- 会话状态
- MCP 服务器连接
- 插件设置
- 内存使用状况
- 错误日志的详细
💡 使用方法:
在聊天栏输入 `/debug`
故障排除联动流程
troubleshoot 技能での诊断
↓
一般的な问题自动检查
↓
┌─────────────────────────────────────────┐
│ 解决できた? │
├─────────────────────────────────────────┤
│ YES → 修正完成 │
│ NO → 复杂问题的可能性 │
└─────────────────────────────────────────┘
↓
/debug 命令推荐
↓
会话・MCP・设置的详细诊断
↓
基于诊断结果提示解决方案
/debug が特に有効なケース
| ケース | 理由 |
|---|---|
| 3次修正也不解决 | 环境设置的问题可能性 |
| MCP 工具不响应 | MCP 服务器连接的诊断必要 |
| 会话再开后的动作不良 | 会话状态的确认必要 |
| 其他项目动 | 项目固有设置的问题 |
预防性建议
为防患于未然,推荐以下:
- 定期的
npm run build: 早期发现问题 - 频繁提交: 问题发生时容易回退
- Plans.md 更新: 可追踪更改历史
注意事项
- 自动修正最多尝试3次
- 3次失败后升级
- 破坏性操作必ず确认
- 修正历史记录在 session-log.md
🔧 LSP 功能活用
问题解决时活用 LSP(Language Server Protocol)准确特定原因。
LSP Diagnostics による问题検出
🔍 LSP 诊断执行中...
📊 诊断结果:
| 文件 | 行 | 消息 |
|---------|-----|-----------|
| src/api/user.ts | 23 | 'userId' 可能是 undefined |
| src/components/Form.tsx | 45 | 类型 'string' 不能分配给类型 'number' |
→ 检测到2件问题
→ 上述可能是「动かない」的原因
Go-to-definition による原因追跡
🔍 原因追踪
错误: Cannot read property 'name' of undefined
追踪:
1. src/pages/user.tsx:34 - 引用 user.name
2. src/hooks/useUser.ts:12 - 返回 user ← Go-to-definition
3. src/api/user.ts:8 - API 响应可能 null
→ API 错误时的处理不足是原因
VibeCoder 向け使い方
| 症状 | LSP 活用 |
|---|---|
| 「动かない」 | Diagnostics で错误箇所特定 |
| 「哪里有问题?」 | Go-to-definition で原因追踪 |
| 「什么时候坏的?」 | Find-references で更改影响确认 |