mcpField
P
prove-it-diagnostics

prove-it-diagnostics

github.com/robot-inventor开发356 次安装3 天前更新
代码仓库

关于 prove-it-diagnostics

prove-it-diagnostics 是面向编码 Agent 的调试与性能排查技能,要求通过复现、测量和验证定位根因,避免仅凭代码推测修复效果。

主要功能

  1. 01性能改动前建立基准
  2. 02构建最小问题复现
  3. 03基于证据验证原因
  4. 04修复前后性能对比
  5. 05清理验证产生的文件

适用场景

  1. 01排查仅靠阅读代码无法解释的错误
  2. 02以稳定基准衡量性能优化
  3. 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 或瓶颈的来源。

对于调试任务:

  1. 在临时文件或 REPL 中创建复现并运行,以确认 Bug。如果复现未能触发故障,请逐步加入目标代码中的相关行为,直到复现 Bug。
  2. 移除或还原复现中的各个部分,找出仍会触发 Bug 的最小程序。最小复现可以缩小可能原因的范围。
  3. 调查最小复现,找出原因并修复。应解决根本原因,而不是采用表面上的变通方案,具体请参阅“规则”部分。
  4. 确认修复能在最小复现中阻止 Bug。
  5. 将修复应用到生产代码,并确认其解决了原始 Bug。如果 Bug 仍然存在,请返回复现步骤并重复整个过程。

对于性能优化任务:

  1. 使用基准测试、分析器、计时日志或类似工具找出耗时的操作。
  2. 修复瓶颈,然后使用相同的测量方式确认性能有所提升。
  3. 将修复应用到生产代码,并确认其性能有所改善。如果性能没有提升,请返回瓶颈分析步骤并重复整个过程。
4. 清理

移除验证过程中创建的临时日志、复现代码、生成文件和日志数据。

规则

如果用户报告你的修复未能解决 Bug 或提升性能,请将之前的诊断视为未经验证,并重新开始调查。

表面修复和权宜之计令人不齿;请找出并修复根本原因。例如,当错误触发 Bug 时,应找出并修复错误的来源,而不是为该故障添加回退方案。时刻自问:“这是根本原因吗?”

如果证据表明 Bug 出在依赖项中,请勿修改该依赖项。告诉用户该依赖项似乎存在 Bug,说明相关证据,并提出他们可以在自己的项目中进行的更改,而不修改依赖项。

遇到困难时,可以尝试以下方法:

  • 在受影响的执行路径中添加临时日志。利用日志找出行为从正确变为错误或从快速变为缓慢的边界。
  • 如果行为与代码逻辑相悖,或你无法继续推进,请搜索相关库的 GitHub issues 和 pull requests、Stack Overflow 以及社区文章,查找相同问题的报告和可能的解决方案。

评论

支持 Markdown