故障排除技能Skill troubleshoot

这是一个用于软件开发过程中自动诊断和解决技术问题的技能。当用户报告程序无法运行、出现错误或功能异常时,该技能会自动启动,通过检查环境、依赖、日志和代码来定位问题根源,并提供修复方案或执行自动修复。关键词:故障排除、错误诊断、自动修复、软件开发调试、问题解决、代码错误分析、依赖管理、构建失败修复。

DevOps 0 次安装 6 次浏览 更新于 3/3/2026

name: troubleshoot description: “指导问题发生时的诊断和解决。当用户提到 动かない, エラーが出た, 壊れた, うまくいかない, broken, doesn’t work, error 时使用。不要加载用于:正常构建,新功能实现,代码审查。” allowed-tools: [“Read”, “Grep”, “Bash”] context: fork metadata: skillport: category: worker tags: [troubleshoot, debug, error, diagnosis] alwaysApply: false

故障排除技能

问题发生时的诊断与解决指南。 帮助 VibeCoder 无需技术知识即可解决问题。


触发短语

此技能会在以下短语时自动启动:

  • 「动かない」「エラーが出た」「壊れた」
  • 「うまくいかない」「失敗した」
  • 「なぜ?」「原因は?」
  • “it’s broken”, “doesn’t work”, “error”, “why?”

概述

当问题发生时,VibeCoder 无需理解技术细节。 此技能会自动诊断并提供解决方案。


诊断流程

步骤 1:确认症状

🔍 发生了什么?

请简单告诉我:

  • 「屏幕一片空白」
  • 「按钮不工作」
  • 「数据无法保存」

步骤 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

步骤 3:确定问题类别

类别 症状 自动响应
依赖关系 Cannot find module npm install
类型错误 Type error error-recovery agent
构建错误 Build failed error-recovery agent
运行时 屏幕不显示 日志分析
环境设置 连接错误 环境变量确认

按问题分类的应对

「按钮不工作 / 表单无法提交 / UI 崩溃」

UI 故障,在屏幕上重现并观察→修复→重新验证是最快的方法。

  1. 如果已安装 dev-browser,则优先使用
    • 在目标 URL 重现 → 根据 DOM/控制台/网络信息缩小原因范围
    • 检查源代码(UI/状态管理/API/验证)并进行修复
    • 确认相同步骤不再重现
    • 参考:docs/OPTIONAL_PLUGINS.md
  2. 无法使用 dev-browser 时的备用方案
    • 重现步骤(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 确认最近的更改
「同样的错误反复出现」 分析模式并提出根本性对策

诊断命令

快速诊断

「诊断」
→ 全面的健康检查
→ 有问题则报告
→ 没有则「无问题」

详细诊断

「详细诊断」
→ 依赖关系检查
→ 构建测试
→ 测试执行
→ 环境变量确认
→ 输出详细报告

预防性建议

为防止问题发生,建议以下事项:

  1. 定期执行 npm run build:及早发现问题
  2. 频繁提交:发生问题时易于回退
  3. 更新 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 确认变更影响

详情:docs/LSP_INTEGRATION.md