开发与工程 debuggingbug-reproductionperformance-regressiontest-driven-developmentredactiongit-bisect

疑难 Bug 诊断法

针对硬 Bug 和性能回退的结构化调试循环:复现 → 最小化 → 假设 → 插桩 → 修复 → 回归测试。

FollowSkills 评估 · FSRS-2.0
不推荐
47/ 100 五分制 2.4 / 5
1 2 3 4 5 6
1信任安全13 / 25 · 2.6/5

技能明确要求在执行命令、展示输出前对机密进行脱敏(<REDACTED>),并建议将凭据保存在环境中而非输出中,体现了数据流透明性和最小权限原则。然而,技能允许在必要时添加生产环境临时仪表(阶段1),但未明确要求用户确认或提供回滚计划,存在潜在风险。发布者身份未经验证,但来源归属在README和许可证中明确标识为Matt Pocock。扣分点:生产仪表添加前未明确要求用户确认,且缺乏明确的回滚机制。

2可靠稳定7 / 20 · 1.8/5

技能提供了结构化的分阶段调试流程,包括反馈循环构建、最小化、假设、仪器化、修复和清理,逻辑自洽。然而,静态审查无法验证实际运行效果,且技能依赖用户提供环境和人工介入(如HITL脚本),错误处理和失败反馈机制仅在无法构建循环时提及,缺乏详细指导。扣分点:无测试证明关键路径可行性,失败反馈描述不够详细。

3适用触发9 / 15 · 3.0/5

技能明确定义了适用场景(硬bug和性能回归)和触发条件(用户说'diagnose'/'debug'时),并提供了详细的操作流程。但技能未明确声明非适用场景(如简单bug、无代码环境),且对环境适配(如中国大陆网络可达性)没有提及。扣分点:非适用场景边界模糊,缺乏对中国大陆环境适配的说明。

4规范维护9 / 15 · 3.0/5

技能文件结构清晰,包含描述、元数据、阶段划分和检查清单,信息架构合理。有许可(MIT)、版本管理(package.json和changesets)和发布工作流(release.yml),维护责任明确(Matt Pocock)。但缺少安装/依赖说明(如运行技能所需的环境变量),以及常见问题和已知限制部分不完整。扣分点:依赖说明和故障排除部分不足。

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

技能提供了详细的调试方法论,有望高效解决硬bug。但静态审查无法验证实际输出是否直接可用,且技能输出高度依赖用户环境和代码库情况,边际价值难以量化。扣分点:缺少代表性输出示例,无法验证实际效果。

6证据核验3 / 10 · 1.5/5

仓库包含CI工作流(release.yml),但该工作流仅处理版本发布,不包含针对技能内容的测试。缺少独立第三方验证证据,技能核心内容无法通过静态审查独立复现。扣分点:无测试套件或第三方执行证据。

证据充分度: 评估于 2026年8月7日 审查版本 84fdeffd12f2
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 技能允许在生产环境添加临时仪表,但未明确要求用户确认和提供回滚计划,实施时需谨慎并先征得同意。
  • 技能高度依赖本地环境和代码库,可能不适用于无代码或远程环境,且未提及对中国大陆网络环境的适配。
  • 静态审查无法验证技能的实际效果,建议在实际项目中试用并验证其调试循环的有效性。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

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

该技能把调试难题提炼为一个六阶段纪律流程,核心是构建一个紧致、可复现的反馈循环:先让 bug 稳定红,再最小化复现,列出可证伪的假设,用定向插桩验证,写出回归测试,最后清理并复盘。它强调在提出假设之前必须有一个能变红的命令,并要求在展示输出前对所有秘密进行编辑。它适用于任意编程语言,且与仓库中的其他技能配合使用(如 /tdd、/improve-codebase-architecture)。该技能来自 mattpocock/skills 合集,该合集中包含 35 个技能,采用 MIT 许可。

该技能提供逐步调试协议:第一阶段优先构建反馈循环(失败测试、curl 脚本、Playwright、捕获的轨迹、临时 harness、模糊测试、git bisect harness、对比循环或 human-in-the-loop 脚本),并要求循环具备 'red-capable'、确定性、快速且可由 agent 自动运行。它指引阅读 CONTEXT.md 和 ADR,在展示前对命令输出、捕获的工件和认证头进行编辑,生成 3-5 个可证伪的假设并在测试前向用户展示,使用带唯一前缀的日志(如 [DEBUG-a4f2]),在性能回退时测量基线,在修复前编写回归测试,并在完成后清理所有调试痕迹并记录正确的假设。

  1. 当用户报告一个随机崩溃或数据损坏 bug,没有任何明显的复现步骤时,开发人员使用该技能构建系统化的反馈循环。
  2. 当 CI 测试偶尔失败(flaky)时,工程师应用该技能提高复现率,直到可调试。
  3. 当生产环境中的某个端点出现性能回退时,开发者使用性能分支:先测量基线,再进行二分。
  4. 当 agent 在修复 bug 前倾向于猜测时,该技能通过在允许假设之前要求一个可复现的命令来阻止这种行为。
  5. 当需要在代码库中安全调试且不泄露敏感信息时,该技能内置了编辑规则。
  6. 当修复 bug 后需要确保不会再次出现时,该技能指导在正确的 seam 处编写回归测试。

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

优点
  • 强制先构建反馈循环,避免过早猜测。
  • 可操作且指标驱动:明确定义了 'tight' 和 'red-capable' 的标准。
  • 内置编辑规则,安全处理敏感信息。
  • 引导生成多个可证伪的假设,并通过用户检查来重新排序。
  • 包括系统性的回归测试和清理协议,降低重复 bug 的风险。
  • 专为 agent 自动执行而设计,支持有限的人类介入。
局限
  • 对快速修复或简单 bug 而言过于繁琐,会跳过阶段。
  • 严重依赖用户提供环境和访问权限来构建反馈循环;如果缺少这些,技能会停滞。
  • 未包含任何测试套件或 CI 来验证技能本身的效果。
  • 一些建议(如 HITL 脚本)尚未在仓库中实作,需要用户自行创建。
  • 并未覆盖非代码调试场景(如基础设施问题)。

如何安装这个 Skill?

通过 skills.sh 安装整个合集:运行 npx skills@latest add mattpocock/skills 并选择要安装的技能以及目标 agent(确保选择 /setup-matt-pocock-skills)。或者,作为 Claude Code 插件安装:在 Claude Code 中运行 /plugin marketplace add mattpocock/skills/plugin install mattpocock-skills@mattpocock。然后每个仓库运行一次 /setup-matt-pocock-skills 进行配置。

如何使用这个 Skill?

当用户说 'diagnose' 或 'debug this',或报告代码抛出异常、失败或运行缓慢时,该技能会自动触发。或者手动调用它。然后在仓库中执行 SKILL.md 中的阶段:阅读现有的 CONTEXT.md 和 ADR,在 Phase 1 中构建一个紧致的反馈循环(如果无法构建,请明确说明并请求用户提供资源),再进行 repro-minimise-hypothesise-instrument-fix-regression-test 循环,最后遵循清理清单。

常见问题

这个技能是替代调试器或测试框架吗?
不是。它描述的是组织调试工作的流程,并依赖现有工具(测试框架、调试器、curl、Playwright)作为反馈循环的组成部分。
如果无法复现 bug 怎么办?
技能明确要求停止猜测并请求用户提供访问权限、编辑过的工件(如 HAR、日志)或临时生产的插桩权限。在建立循环之前禁止假设。
需要额外安装什么吗?
不需要强制要求。它要求的唯一工具是常用的 shell 命令以及任何测试/调试工具,具体取决于 bug。它理想地利用了 git bisect、Playwright 或类似工具,但未指定版本。
它能用于非工程领域吗?
不能,它是专门针对软件工程和调试设计的。

同仓库的其他 Skills

均来自 mattpocock/skills

相关 Skills