用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ZhangXin8069/configure --skill debug命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | debug |
| description | 当用户报告 bug、报错、崩溃、异常输出、行为不符合预期,或测试/构建失败,询问为什么失败、 哪一行出错,或要求调试、debug、定位、排查、调查、修复问题时使用。 |
| metadata | {"openclaw":{"emoji":"🐞"}} |
遵循当前目录 AGENTS.md「技能执行公共契约」;仅按需读取技能正文与 reference。
bash -n)。NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
调试过程中一旦出现以下想法或话语,立即停下,回到「Step 3 缩小范围」:
| 红旗 | 含义 |
|---|---|
| "先快速修一下,以后再调查" | 快速修复=症状修复,第一次修复就决定后续方向 |
| "试试改 X 看行不行" | 猜测,不是假设;假设必须说明"因为 Y 所以 X" |
| "同时改多个地方,一起跑测试" | 无法隔离哪个改动生效,且会引入新 bug |
| "跳过测试,手动验证就行" | 未测的修复不成立;先写失败用例再修 |
| "大概是 X 的问题,改掉它" | 看到症状≠理解根因 |
| "不太懂但这样可能行" | 承认"我不懂 X",去查证,不装懂 |
| "再试一次就好"(已失败 2+ 次) | 3 次失败=架构问题,不是运气问题 |
| 每次修复都在不同位置暴露新问题 | 架构耦合的证据,停止修复,质疑设计 |
收集并确认以下信息,缺项时先向用户提问(所有问题在第一次交互一次性全部提出,用户一次回答,不逐次追问),不臆断:
| 信息项 | 说明 |
|---|---|
| 期望行为 | 用户期望发生什么 |
| 实际行为 | 实际发生了什么(含完整报错文本,不截断) |
| 触发条件 | 什么命令/输入/环境触发;是否稳定复现 |
| 变更范围 | 问题出现前后改了什么(git status / git diff / 最近 tag 区间) |
| 环境 | shell 类型、OS、相关环境变量 |
$?)。git status
git diff HEAD --stat
git log --oneline -10
bash -x 逐行跟踪;应用代码用结构化输出);git stash 或 checkout 到上一 tag 对比行为。git bisect start
git bisect bad HEAD # 当前坏
git bisect good <最近正常tag> # 上次好
git bisect run <复现命令> # 自动二分
bash -x <script> # 逐行跟踪执行
bash -n <script> # 语法检查(本库规范)
# set -euxo pipefail 脚本失败时,先定位是哪个命令退出非零
env -i bash 运行)。for i in $(seq 1 30); do [ -f done.flag ] && break; sleep 2; done
[ -f done.flag ] || { echo "TIMEOUT: done.flag 30s 内未出现"; ps -ef | grep <task>; }
bash -n <改动脚本>;有测试框架则运行相关测试;
lint/typecheck 若存在必须运行;git diff 审查:改动仅含预期内容,无引入新问题。✓ 修复完成
根因: <一句话根因>
证据: <支持的报错/诊断输出/复现>
改动: <文件:行号> <改动说明>
验证: <原复现路径回归通过; bash -n 通过; 相关测试 N 个通过>
遗留: <未处理项/风险,无则省略>
| 场景 | 处理 |
|---|---|
| 无法复现 | 收集更多证据(报错全文、诊断输出、最小示例),必要时向用户提问(一次问全) |
| 报错信息不明确 | 提升诊断级别(bash -x、verbose、--debug),加打印定位 |
| 修复后错误仍在 | 回到 Step 3 检查假设是否成立,不叠加盲改 |
| 首次修复失败 | 不放弃、不盲改:基于新证据重新定位、优化方案后再次执行(循环尝试直至成功),并在终端摘要补充调试过程 |
| 连续 3 次修复失败 | 停止逐症状修复:说明架构层问题信号(每修一处暴露新耦合),与用户讨论是否重构/换方案 |
| 多次迭代仍失败 | 检查证据是否不足或假设方向错误;向用户报告进展与下一步计划,不无限循环 |
| 多个根因并存 | 逐项验证,先修证据最强的;一次只改一处 |
| 怀疑环境问题 | 对比干净环境(env -i bash)运行;检查 PATH/rc 干扰 |
| 用户发出"方向不对"信号("这不是在发生吗/停下瞎猜/我们卡住了") | 停下回到 Step 3:假设未验证、证据未收集或方向错误,从新证据重新分析 |
| 编码/权限类错误 | 检查文件编码(UTF-8)、行尾(CRLF)、权限位 |
| 修复触及系统配置 | 先说明影响与回滚方式,经用户同意后执行 |
| 仓库无测试框架 | 纯 shell 至少 bash -n + 原复现路径手动回归 |