关于 prove-it-diagnostics
prove-it-diagnostics 是面向编码 Agent 的调试与性能排查技能,要求通过复现、测量和验证定位根因,避免仅凭代码推测修复效果。
主要功能
- 01性能改动前建立基准
- 02构建最小问题复现
- 03基于证据验证原因
- 04修复前后性能对比
- 05清理验证产生的文件
适用场景
- 01排查仅靠阅读代码无法解释的错误
- 02以稳定基准衡量性能优化
- 03确认修复是否解决原始问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ robot-inventor/ agent-skills --skill prove-it-diagnostics安装后在 Claude Code 中输入/prove-it-diagnostics确认已加载。
详细介绍
证明式诊断
使用此技能来找出 Bug 和性能瓶颈的原因,并加以修复。仅阅读代码可能无法揭示 Bug 或瓶颈的来源。不要声称某项推测性的代码更改修复了 Bug 或提升了性能。运行代码、收集证据、找出原因,并验证修复效果。
步骤
以下是此技能的核心内容;请遵循指定步骤。
1. 为优化任务建立性能基线
对于性能优化任务,请在更改代码之前创建并运行基准测试。尽可能多次运行基准测试。使用平均值、百分位数和其他相关统计数据建立稳定的基线,而不要依赖单次运行结果。
2. 阅读代码
阅读与 Bug 或性能问题相关的代码。对于调试任务,如果发现了明确的原因,例如运算符错误或逻辑中明显的矛盾,可以修复问题并跳过剩余步骤。
如果无法确信问题原因,或者发现了可疑代码但证据不足以确定其为原因,请继续执行剩余步骤。
3. 验证原因
不要只依赖代码检查。运行实验以找出 Bug 或瓶颈的来源。
对于调试任务:
- 在临时文件或 REPL 中创建复现并运行,以确认 Bug。如果复现未能触发故障,请逐步加入目标代码中的相关行为,直到复现 Bug。
- 移除或还原复现中的各个部分,找出仍会触发 Bug 的最小程序。最小复现可以缩小可能原因的范围。
- 调查最小复现,找出原因并修复。应解决根本原因,而不是采用表面上的变通方案,具体请参阅“规则”部分。
- 确认修复能在最小复现中阻止 Bug。
- 将修复应用到生产代码,并确认其解决了原始 Bug。如果 Bug 仍然存在,请返回复现步骤并重复整个过程。
对于性能优化任务:
- 使用基准测试、分析器、计时日志或类似工具找出耗时的操作。
- 修复瓶颈,然后使用相同的测量方式确认性能有所提升。
- 将修复应用到生产代码,并确认其性能有所改善。如果性能没有提升,请返回瓶颈分析步骤并重复整个过程。
4. 清理
移除验证过程中创建的临时日志、复现代码、生成文件和日志数据。
规则
如果用户报告你的修复未能解决 Bug 或提升性能,请将之前的诊断视为未经验证,并重新开始调查。
表面修复和权宜之计令人不齿;请找出并修复根本原因。例如,当错误触发 Bug 时,应找出并修复错误的来源,而不是为该故障添加回退方案。时刻自问:“这是根本原因吗?”
如果证据表明 Bug 出在依赖项中,请勿修改该依赖项。告诉用户该依赖项似乎存在 Bug,说明相关证据,并提出他们可以在自己的项目中进行的更改,而不修改依赖项。
遇到困难时,可以尝试以下方法:
- 在受影响的执行路径中添加临时日志。利用日志找出行为从正确变为错误或从快速变为缓慢的边界。
- 如果行为与代码逻辑相悖,或你无法继续推进,请搜索相关库的 GitHub issues 和 pull requests、Stack Overflow 以及社区文章,查找相同问题的报告和可能的解决方案。
评论
支持 Markdown