morganlinton/BeautifulRust

Agent Skills that teach coding agents to write, review, and port idiomatic Rust, plus a tested clippy config. Works with Claude Code, Codex, Copilot, Cursor, and Gemini CLI.

Beautiful Rust 是一套工具,用于教导 AI 编码代理以惯用方式编写、审查和移植 Rust 代码。它由两部分组成:三个技能(代理工作时阅读的指令)和一个lints 配置(在 CI 中自动捕获违规的规则)。

三个技能

  1. rust-best-practices — 当代理编写或修改 Rust 代码时激活。它引导代理编写惯用、健壮、可维护的代码。这是核心技能;其他两个技能基于它构建。

  2. rust-review — 审查现有 Rust 代码(单个文件、整个 crate 或差异),并生成优先级报告。每个发现都包含 file:line 位置、违反的规则(及其来源,如 API 指南代码或 clippy lint),以及修复它的最小代码更改。发现分为等级:必须修复、应该修复、考虑修复。报告还以代码已经做得很好的部分结尾。

  3. rust-port — 将 C、C++、Python、Go 或 JavaScript 移植到具有相同行为的惯用 Rust。它首先移植原始测试,以便您可以证明两个版本匹配。它设计一个 Rust API,而不是直译原始代码,并将每种语言的习惯映射到 Rust 等价物——例如,NULL/None 变为 Option,错误代码变为错误枚举,输出参数变为返回值,标志整数变为类型化枚举。每个移植都包含一个 PORTING.md,记录每个有意的差异。

lints 配置

lints/ 是一个即插即用的 clippy 配置。您将 clippy.toml 复制到 Cargo.toml 旁边,粘贴 lints.toml 中的 [lints] 块,然后运行 cargo clippy。它会标记诸如测试之外的 unwrap()、没有 // SAFETY: 注释的 unsafe 块、没有原因的 #[allow]、bool 函数参数、静默有损的 as 转换、缺少 # Errors 和 # Panics 文档,以及遗留的 dbg!/todo!。每个 lint 都被证明会触发——一个小型测试 crate 包含每个 lint 的一个故意违规,并且一个脚本会在任何 lint 停止工作时失败。

它在实践中的改变

README 展示了一个具体的之前/之后对比。要求构建一个小型 semver 解析库时,没有该技能的代理生成了一个具有公共字段、没有 # Errors 文档以及文档示例中使用 unwrap() 的结构体。使用该技能后,同一代理保持字段私有,明确记录失败模式,并编写用户可以安全复制粘贴的文档示例。

指导来源

这些技能提炼了五份已发布的来源,每份的浓缩摘要都捆绑在技能中,以便代理可以查阅原始推理:

  • Google Rust 风格指南
  • Rust API 指南(官方 rust-lang 清单)
  • David Drysdale 的《Effective Rust》
  • Rust 设计模式(rust-unofficial)
  • Microsoft 务实 Rust 指南

当来源不一致时,技能会选择一方并说明原因。

兼容性和安装

适用于 Claude Code、OpenAI Codex、GitHub Copilot、Cursor、Gemini CLI,以及任何读取 Agent Skills 格式的代理。安装方式因代理而异——一键安装程序、插件安装,或简单地将技能文件夹复制到代理的技能目录。表格列出了每个代理的正确目录。

效果如何

这些技能通过真实模型运行进行了测试(运行需要花费金钱)。结果:

  • 编写技能: 使用技能时 30 项检查中通过 29 项,而未使用时 30 项中通过 24 项——每个任务大约多消耗三分之一的 token。
  • 审查技能: 12 项中通过 11 项,而未使用时 12 项中通过 7 项。
  • 移植技能: 22 项中通过 22 项,而未使用时 22 项中通过 19 项。

维护和贡献

更新通过 plugin.json 进行版本控制;Claude Code 用户可以通过一条命令获取更新。推送前,验证脚本检查技能格式、链接和评估案例。欢迎贡献——每条规则必须引用已发布的来源,README 链接到贡献指南。

许可证

技能文本、摘要、横幅和生成器脚本采用 MIT 许可证。五份来源摘要是对原始内容的转述,链接回原始内容,每份都有自己的许可证(CC BY 3.0、MIT/Apache-2.0、CC BY-NC-ND 4.0、MPL-2.0、MIT)。

相关

  • 项目
  • 项目
  • 项目
  • 项目