mcpField
B
bugfix-crate

bugfix-crate

github.com/ulpi-io开发5117 次安装9 周前更新
代码仓库

关于 bugfix-crate

bugfix-crate 是面向开发者的 Rust crate 问题修复技能,按顺序逐项处理 issue。它要求行为修复先编写回归测试,并在标记完成前运行测试与 clippy。

主要功能

  1. 01逐项处理 issue
  2. 02行为修复前编写回归测试
  3. 03每次修复后运行测试和 clippy
  4. 04验证后更新 issue 状态
  5. 05改代码前遵循 Rust 规范

适用场景

  1. 01修复 Rust crate issue 文件中的问题
  2. 02用回归测试验证行为修复
  3. 03记录延期和无效问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ulpi-io/skills --skill bugfix-crate

安装后在 Claude Code 中输入/bugfix-crate确认已加载。

详细介绍

此技能采用严格的红-绿-重构修复循环。

不可妥协的规则:

  1. 一次只修复一个问题。
  2. 对于行为缺陷,先编写失败的回归测试,再进行修复。
  3. 每次修复后都运行 crate 测试和 clippy。
  4. 未完成必要验证,不得将问题标记为已修复。
  5. 修改 Rust 代码前,使用 rust 技能了解 crate 专属的编码规范。

bugfix-crate

输入

  • $issues_file:crate 问题清单文件的路径

目标

按顺序处理 crate 问题文件,并留下:

  • 每个已解决问题均有经过验证的修复
  • 每个行为修复均有回归测试覆盖
  • 通过测试的 crate 测试套件
  • 已更新的问题文件,标明已修复、已延期或判定为非问题

步骤 0:建立基线

编辑前:

  • 阅读整个问题文件
  • 确定目标 crate 名称和路径
  • 调用 rust 了解相关规范
  • 如存在,阅读 crate 本地的 CLAUDE.md 或测试指南
  • 运行基线命令 cargo test -p <crate>
  • 运行基线命令 cargo clippy -p <crate> -- -D warnings

成功标准:首次修复前,明确 crate、问题文件和基线状态。

步骤 1:逐个处理问题

对于每个尚未解决的问题:

  • 阅读引用文件及其上下文
  • 判断其属于行为问题、API 问题、死代码、仅文档问题、延期处理还是非问题
  • 如果是行为或 API 修复,先编写失败的测试
  • 在修改实现前,确认测试失败

不要批量处理问题。

成功标准:每个问题在实施修复前都有明确的处理方案。

步骤 2:实施最小且正确的修复

进行解决根本原因所需的最小代码改动。

规则:

  • 不要合并相邻的重构
  • 不要削弱现有测试
  • 不要使用 #[allow(...)] 隐藏警告
  • 如果在涉及的代码区域发现其他实际问题,在同一轮中修复并将其添加到问题文件

成功标准:修复解决了根本原因,且未造成大范围的连带改动。

步骤 3:验证并标记状态

每次修复后:

  • 运行 cargo test -p <crate>
  • 运行 cargo clippy -p <crate> -- -D warnings
  • 更新问题文件:
    • 对已验证的修复标记 **[FIXED]**
    • 对实际存在但超出范围的修复,标记 Deferred: <reason>
    • 对无效的问题,标记 Not a bug: <reason>

验证通过前,不得将问题标记为已修复。

成功标准:每处理一个问题后,问题文件与 crate 状态保持一致。

步骤 4:仅在问题文件处理完毕后结束

最后:

  • 确认每个问题都有最终状态
  • 确认 crate 的测试和 clippy 仍然通过
  • 总结已解决、已延期和已驳回的问题

成功标准:问题文件已完成全面分类,且 crate 状态良好。

护栏

  • 不要使用 worktree Agent 处理同一 crate 的修复。
  • 不要主动运行此技能;只有用户明确要求时才运行。
  • 没有回归测试覆盖,不得将行为缺陷标记为已修复。
  • 不要用注释、警告或文档代替实际修复。
  • 每轮验证不要批量处理多个问题。

输出约定

报告:

  1. 已处理的 crate 和问题文件
  2. 基线测试和 clippy 状态
  3. 每个问题的处理结果
  4. 最终测试和 clippy 状态
  5. 修复过程中发现并添加的任何新问题

评论

支持 Markdown