调试伴侣 SKILL.md
你的专属调试助手 —— 粘贴错误信息,立即得到根因分析和修复方案
技能简介
调试伴侣(Debug Companion)是一个 OpenClaw 技能,专门帮助开发者快速定位和修复代码错误。
核心能力
- - 🔍 智能解析:自动识别错误类型、文件位置、行号
- 🎯 根因分析:用大白话解释"为什么会出错"
- ✅ 修复建议:给出具体操作步骤,甚至直接生成补丁
- 📚 参考资料:附赠类似问题的解决方案链接
支持语言
| 语言 | 状态 |
|---|
| Python | ✅ |
| JavaScript / Node.js |
✅ |
| TypeScript | ✅ |
| Go | ✅ |
| Java | ✅ |
| C++ | ✅ |
| Rust | ✅ |
| PHP | ✅ |
| Ruby | ✅ |
工作流程
CODEBLOCK0
使用方式
触发词
用户发送以下内容时会激活技能:
- - INLINECODE0
- INLINECODE1
- INLINECODE2
- INLINECODE3
- 直接粘贴错误信息/traceback
输入格式
推荐格式:
CODEBLOCK1
示例:
CODEBLOCK2
可选上下文
| 上下文 | 说明 | 示例 |
|---|
| 语言 | 指定编程语言 | INLINECODE4 、 INLINECODE5 |
| 代码片段 |
相关代码 | 粘贴出错的代码 |
| 环境信息 | OS、版本等 |
Node.js v18、
Python 3.11 |
输出格式
CODEBLOCK3 javascript
if (!data) {
console.error('数据不存在:', data);
return [];
}
2. **确保数据加载完成**:使用 `await` 或检查 Promise 状态
3. **添加默认值**:使用 `data ?? []` 防止 undefined
## 📚 参考资料
- [MDN: undefined 处理](https://developer.mozilla.org/...)
- [Stack Overflow: Cannot read property of undefined](https://stackoverflow.com/...)
错误类型速查表
| 错误类型 | 常见原因 |
|---|
| INLINECODE8 | 访问了 undefined/null 的属性 |
| INLINECODE9 |
变量未定义或拼写错误 |
|
SyntaxError | 语法错误,缺少括号/引号等 |
|
IndexError: list index out of range | 数组索引越界 |
|
KeyError: 'X' | 字典/对象没有这个键 |
|
NullPointerException | 空指针调用 |
|
ENOENT: No such file or directory | 文件路径错误 |
|
Permission denied | 权限不足 |
工具调用
技能内部使用以下工具:
| 工具 | 用途 |
|---|
| INLINECODE16 | 搜索类似问题的解决方案 |
| INLINECODE17 |
搜索官方文档和权威教程 |
|
web_fetch | 抓取详细修复方案页面 |
注意事项
- 1. 隐私安全:如果错误信息包含敏感路径或密钥,会自动脱敏处理
- 上下文重要:提供更多代码上下文能获得更准确的建议
- 版本相关:某些错误在不同版本语言中处理方式不同,请提供版本信息
- 二次确认:涉及代码修改时,建议先在测试环境验证
示例对话
用户:
CODEBLOCK5
调试伴侣:
(按上方输出格式返回完整分析)
更新日志
- 支持8种主流语言
- 错误解析+根因分析+修复建议
- Tavily搜索+代码搜索双保险
调试伴侣 SKILL.md
你的专属调试助手 —— 粘贴错误信息,立即得到根因分析和修复方案
技能简介
调试伴侣(Debug Companion)是一个 OpenClaw 技能,专门帮助开发者快速定位和修复代码错误。
核心能力
- - 🔍 智能解析:自动识别错误类型、文件位置、行号
- 🎯 根因分析:用大白话解释为什么会出错
- ✅ 修复建议:给出具体操作步骤,甚至直接生成补丁
- 📚 参考资料:附赠类似问题的解决方案链接
支持语言
| 语言 | 状态 |
|---|
| Python | ✅ |
| JavaScript / Node.js |
✅ |
| TypeScript | ✅ |
| Go | ✅ |
| Java | ✅ |
| C++ | ✅ |
| Rust | ✅ |
| PHP | ✅ |
| Ruby | ✅ |
工作流程
用户发送错误信息/traceback
↓
错误信息解析
(提取错误类型、文件、行号)
↓
智能搜索
(Tavily + Code Search)
↓
根因分析 + 修复建议
↓
结构化输出
使用方式
触发词
用户发送以下内容时会激活技能:
- - 调试 + 错误信息
- 报错 + traceback
- 出了个bug
- 这个错误怎么修
- 直接粘贴错误信息/traceback
输入格式
推荐格式:
[错误类型]: [错误描述]
File [文件], line [行号], in [函数名]
[代码]
[更多堆栈信息]
示例:
TypeError: Cannot read property map of undefined
at processData (/app/utils.js:15:20)
at handleRequest (/app/server.js:42:10)
可选上下文
| 上下文 | 说明 | 示例 |
|---|
| 语言 | 指定编程语言 | Python、JavaScript |
| 代码片段 |
相关代码 | 粘贴出错的代码 |
| 环境信息 | OS、版本等 | Node.js v18、Python 3.11 |
输出格式
markdown
🔍 错误解析
错误类型:TypeError
问题文件:/app/utils.js:15
问题描述:在 processData 函数中尝试调用 .map(),但数据是 undefined
🎯 根因分析
你正在对 data 变量调用 .map() 方法,但这个变量是 undefined。这通常是因为:
- 1. API 返回的数据结构不符合预期
- 异步操作尚未完成就开始处理
- 数据获取函数出错返回了空值
✅ 修复建议
- 1. 添加防御性检查:在使用 .map() 前检查 data 是否存在
javascript
if (!data) {
console.error(数据不存在:, data);
return [];
}
- 2. 确保数据加载完成:使用 await 或检查 Promise 状态
- 添加默认值:使用 data ?? [] 防止 undefined
📚 参考资料
错误类型速查表
| 错误类型 | 常见原因 |
|---|
| TypeError: Cannot read property X of undefined | 访问了 undefined/null 的属性 |
| ReferenceError: X is not defined |
变量未定义或拼写错误 |
| SyntaxError | 语法错误,缺少括号/引号等 |
| IndexError: list index out of range | 数组索引越界 |
| KeyError: X | 字典/对象没有这个键 |
| NullPointerException | 空指针调用 |
| ENOENT: No such file or directory | 文件路径错误 |
| Permission denied | 权限不足 |
工具调用
技能内部使用以下工具:
| 工具 | 用途 |
|---|
| tavilysearch | 搜索类似问题的解决方案 |
| codesearch |
搜索官方文档和权威教程 |
| web_fetch | 抓取详细修复方案页面 |
注意事项
- 1. 隐私安全:如果错误信息包含敏感路径或密钥,会自动脱敏处理
- 上下文重要:提供更多代码上下文能获得更准确的建议
- 版本相关:某些错误在不同版本语言中处理方式不同,请提供版本信息
- 二次确认:涉及代码修改时,建议先在测试环境验证
示例对话
用户:
js报错:TypeError: Cannot read property map of undefined
at processData (utils.js:15:20)
at handleRequest (server.js:42:10)
调试伴侣:
(按上方输出格式返回完整分析)
更新日志
- 支持8种主流语言
- 错误解析+根因分析+修复建议
- Tavily搜索+代码搜索双保险