关于 bugfix-crate
bugfix-crate 是面向开发者的 Rust crate 问题修复技能,按顺序逐项处理 issue。它要求行为修复先编写回归测试,并在标记完成前运行测试与 clippy。
主要功能
- 01逐项处理 issue
- 02行为修复前编写回归测试
- 03每次修复后运行测试和 clippy
- 04验证后更新 issue 状态
- 05改代码前遵循 Rust 规范
适用场景
- 01修复 Rust crate issue 文件中的问题
- 02用回归测试验证行为修复
- 03记录延期和无效问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ulpi-io/ skills --skill bugfix-crate安装后在 Claude Code 中输入/bugfix-crate确认已加载。
详细介绍
此技能采用严格的红-绿-重构修复循环。
不可妥协的规则:
- 一次只修复一个问题。
- 对于行为缺陷,先编写失败的回归测试,再进行修复。
- 每次修复后都运行 crate 测试和 clippy。
- 未完成必要验证,不得将问题标记为已修复。
- 修改 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 的修复。
- 不要主动运行此技能;只有用户明确要求时才运行。
- 没有回归测试覆盖,不得将行为缺陷标记为已修复。
- 不要用注释、警告或文档代替实际修复。
- 每轮验证不要批量处理多个问题。
输出约定
报告:
- 已处理的 crate 和问题文件
- 基线测试和 clippy 状态
- 每个问题的处理结果
- 最终测试和 clippy 状态
- 修复过程中发现并添加的任何新问题
评论
支持 Markdown