开发与工程 debuggingdebug-adapter-protocolbreakpointsdap-clipythongolangnodejsrust

debug-skill 交互式调试技能

让 AI 编码代理告别 print 语句,像人类开发者一样用真正的调试器排查代码问题。

FollowSkills 评估 · FSRS-2.0
谨慎使用
56/ 100 五分制 2.8 / 5
1 2 3 4 5 6
1信任安全16 / 25 · 3.2/5

工具权限限定为 Bash(dap *),最小权限合理;安装 dap 前要求先征询用户,明确披露工具来源(GitHub、Homebrew tap);eval 有副作用警告。扣分项:README 推荐的 curl|bash 一键安装与安装脚本从网络下载未校验签名的二进制,macOS Go attach 提示甚至建议可考虑关闭 SIP(文中仅提及风险但未强烈劝阻),缺乏完整性校验与回滚说明,发布者身份未经验证。

2可靠稳定9 / 20 · 2.3/5

指令自洽:命令表、断点语法、示例输出、失败场景(程序提前退出、断点被调整、后端缺失)均有说明并给出诊断路径,installing-debuggers.md 覆盖各语言后端的检查/安装/已知坑。扣分项:静态审阅无法执行验证;依赖 dap 二进制与各语言调试适配器(debugpy/dlv/js-debug/lldb-dap)的外部可用性,存在多级外部依赖失败点;'Two strikes'等方法论无失败反馈保证。

3适用触发10 / 15 · 3.3/5

description 触发条件写得具体(崩溃、异常、错误输出、print 不够用),场景清晰,非适用范围(库内部打断点反模式、大型项目 stop-on-entry 噪音、macOS Go PID attach 限制)有披露。扣分项:无中文支持说明;核心安装完全依赖 GitHub Releases/Homebrew/go install,中国大陆网络可达性存疑且未提供镜像方案。

4规范维护11 / 15 · 3.7/5

文档分层好:SKILL.md 主文档 + references(高级技巧、调试器安装)+ scripts,渐进披露合理;MIT 许可明确;有 CI 自动版本管理(bump-skill-version.yml)和发布流程。扣分项:无 CHANGELOG 正文与人工维护责任声明;skill 自身无版本说明;安装脚本假设存在 GitHub releases 结构但未声明最低 dap 版本兼容性。

5有效结果6 / 15 · 2.0/5

核心任务(用 DAP 驱动真实调试器替代 print 调试)逻辑完整,示例输出可直接理解,walkthrough 与验证修复闭环设计有真实边际价值。扣分项:静态审阅无法确认输出真实可用;实际效果依赖 dap CLI 正确实现(未在本次范围内验证),JSON 输出等机器可读模式未在 skill 内示范。

6证据核验4 / 10 · 2.0/5

存在真实 CI(golangci-lint + go test 双平台矩阵,含 debugpy 安装的 E2E 测试)覆盖 dap CLI 关键路径,安装脚本可审计。扣分项:测试针对 Go CLI 而非 skill 指令的关键路径;无第三方独立复现证据;README 的 star/演示属营销性材料,无法静态核实效果声明。

证据充分度: 评估于 2026年9月10日 审查版本 26ef325fe218
使用前请注意
  • 推荐的一键安装(curl|bash)及安装脚本下载的二进制无签名/哈希校验,企业环境建议改为 Homebrew tap 或源码构建并自行校验。
  • macOS 上按 PID attach Go 程序需关闭 SIP,文中虽有提示,用户切勿因此禁用系统完整性保护。
  • 安装与运行依赖 GitHub Releases、Homebrew、go install 及 debugpy/dlv/js-debug/lldb-dap 等外部资源,中国大陆网络可能不可达,建议预备代理或镜像。
  • skill 效果完全取决于外部 dap CLI,本评估未执行任何代码,实际可用性需用户自行验证。
  • 发布者未经 FollowSkills 企业注册表验证,身份按未知处理。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

debug-skill 是一个 Claude Code 技能与 dap 命令行工具的组合。技能部分教会代理如何系统性地调试:何时设断点、如何单步执行、如何检查变量与调用栈;dap CLI 则封装了微软调试适配协议(DAP),让代理通过 Bash 驱动真实调试器。原生支持 Python、Go、Node.js/TypeScript、Rust、C/C++,以及任何支持 DAP 的语言。整个调试过程无需重启程序,也无需交互式终端。MIT 协议开源,可通过插件市场或 skills.sh 安装到 20 多种编码代理。

技能通过允许的 Bash 工具调用 dap 命令完成调试:dap debug <文件> 启动被调试程序并自动识别后端;支持在指定行、带条件的行或异常抛出处设断点;支持附加到远程调试器(--attach host:port)或运行中的进程(--pid)。每次执行命令自动返回完整上下文:当前位置、源码、局部变量、调用栈和程序输出。可用 dap eval 对运行中的进程求值表达式、dap inspect 展开嵌套对象、dap step/step in/step out 单步执行、dap continue --to 临时断点、dap restart 保留断点重启、dap break 系列命令在会话中动态增删断点。多代理可用 --session 命名会话互不干扰。

  1. 调试 Python 后端服务的开发者:程序抛出 TypeError 但不知何处,可用 --break-on-exception 让代理在异常抛出处停下并向上回溯调用栈。
  2. 维护多模块 Go 或 Node.js 应用的团队:代理可在跨文件的多个模块同时设断点,追踪状态何时变脏。
  3. 排查线上问题的工程师:通过 --pid 附加到卡住的运行中进程(如挂起的服务器),不重启即可检查实时状态。
  4. 处理循环或热路径 bug 的开发者:用条件断点如 "app.py:42:i == 100" 跳过无关迭代,只在关键输入上停下。
  5. 使用 Cursor、GitHub Copilot、Cline 等其他编码代理的用户:通过 skills.sh 安装同一技能复用调试能力。
  6. 多个 AI 代理并行工作的环境:用 --session 隔离各代理的调试会话,互不干扰。

这个 Skill 有哪些优点和局限?

优点
  • 提供真实调试器能力(断点、单步、变量检查、表达式求值),远超 print 调试。
  • 原生支持 Python、Go、Node.js/TypeScript、Rust、C/C++,任何 DAP 兼容语言均可扩展。
  • 每次命令返回完整上下文(位置、源码、局部变量、调用栈、输出),无需多次往返调用。
  • 后台守护进程 + 无状态 CLI 设计,无需交互式终端即可驱动调试器。
  • 多命名会话隔离,支持多代理并行调试;MIT 开源,有 Homebrew、脚本、Go 安装等多种方式。
  • 内嵌调试方法论指导,避免代理盲目单步或乱设断点。
局限
  • 必须安装 dap CLI 及对应语言的调试后端(如 debugpy、Delve、lldb-dap),后端缺失或启动失败需查阅额外参考文档。
  • macOS 上对 Go 进程按 PID 附加需要禁用 SIP(csrutil disable),实际场景受限。
  • README 未提供测试套件、性能数据或生产环境采用案例的证据。
  • eval 带副作用表达式可能污染程序状态,技能自身也提醒需谨慎。
  • 源仓库未提供描述和主题标签,社区活跃度与维护承诺仅能从 README 推断。

如何安装这个 Skill?

Claude Code:在会话中执行 /plugin marketplace add AlmogBaku/debug-skill,再执行 /plugin install debugging-code@debug-skill-marketplace。其他代理(Cursor、Copilot、Windsurf、Cline 等):执行 npx skills add AlmogBaku/debug-skill(或 bunx skills add AlmogBaku/debug-skill),或手动把 skills/debugging-code/ 目录复制到代理的技能目录。技能依赖 dap CLI;若未安装,可用 brew install AlmogBaku/tap/dap、运行仓库中的 scripts/install-dap.sh,或 go install github.com/AlmogBaku/debug-skill/cmd/dap@latest。技能要求安装前先征得用户同意。

如何使用这个 Skill?

安装后代理会按 SKILL.md 中的指引自动调用 dap。典型对话触发:"这个 Python 脚本在处理空列表时返回了 None,帮我用调试器找到根因"。代理会用类似 dap debug script.py --break script.py:41 启动会话,通过 dap eval "items" --frame 1 检查调用方传入的值,用 dap step out 回到调用者,逐步定位后用 dap restart 验证修复。技能内嵌方法论:先形成可证伪假设、两次假设失败就重构心智模型、在数据边界而非症状处设断点、修复后在原断点处观察正确行为才算验证。所有命令细节见 dap --help

这个 Skill 与同类方案有什么区别?

源材料明确将本技能与传统 print 语句调试对比,定位是给 AI 代理补上人类开发者已有的真实调试器工作流;未提及具体竞品名称。

常见问题

支持哪些语言?
原生自动识别 Python(debugpy)、Go(Delve)、Node.js/TypeScript(js-debug)、Rust/C/C++(lldb-dap);任何支持 DAP 协议的语言理论上都可用 --backend 手动指定。
需要什么权限和环境?
代理需要有 Bash 执行权限(frontmatter 限定为 Bash(dap *)),需安装 dap CLI 及对应语言调试器;按 PID 附加在 macOS+Go 场景需禁用 SIP。
多个代理同时调试会冲突吗?
不会。dap 支持命名会话(--session),每个会话有独立守护进程和 socket,可分别启动和停止;还建议使用 Claude 的会话 ID 命名。
调试会话会残留吗?
程序正常退出或守护进程空闲约 10 分钟后会自动终止;若异常中断可用 `dap stop` 手动清理。

相关 Skills