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 コードを記述、レビュー、移植することを教えるツールセットです。2 つの部分で構成されています:3 つのスキル(エージェントが作業中に読む指示)とlints 設定(CI で違反を自動的にキャッチするルール)です。

3 つのスキル

  1. rust-best-practices — エージェントが Rust コードを記述または変更するときにアクティブになります。エージェントを慣用的で、堅牢で、保守可能なコードへ導きます。これはコアスキルであり、他の 2 つはこれに基づいています。

  2. rust-review — 既存の Rust コード(単一ファイル、crate 全体、または diff)をレビューし、優先順位付けされたレポートを生成します。各発見には file:line の場所、違反するルール(API ガイドラインコードや clippy lint などのソース付き)、およびそれを修正する最小のコード変更が含まれます。発見は階層化されています:修正必須、修正推奨、検討。レポートは、コードがすでにうまく行っていることで終わります。

  3. rust-port — C、C++、Python、Go、または JavaScript を、同じ動作を持つ慣用的な Rust に移植します。最初に元のテストを移植して、2 つのバージョンが一致することを証明できるようにします。元のコードを直訳するのではなく、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 に対して意図的な違反が 1 つ含まれており、スクリプトは lint が機能しなくなった場合に失敗します。

実際の変更点

README には具体的な before/after が示されています。小さな semver 解析ライブラリを構築するように求められたとき、スキルなしのエージェントは、公開フィールド、# Errors ドキュメントなし、ドキュメント例での unwrap() を持つ構造体を生成しました。スキルありでは、同じエージェントがフィールドを非公開に保ち、失敗モードを明示的に文書化し、ユーザーが安全にコピー&ペーストできるドキュメント例を記述しました。

ガイダンスの出典

スキルは 5 つの公開されたソースを凝縮しており、各ソースの要約がスキルにバンドルされているため、エージェントは元の推論を参照できます:

  • 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 合格。タスクあたり約 3 分の 1 多くのトークンを使用。
  • レビュースキル: 12 中 11 合格 vs 12 中 7。
  • 移植スキル: 22 中 22 合格 vs 22 中 19。

メンテナンスと貢献

更新は plugin.json を介してバージョン管理されます。Claude Code ユーザーは 1 つのコマンドで更新を取得できます。検証スクリプトは、プッシュ前にスキルの形式、リンク、評価ケースをチェックします。貢献は歓迎します。各ルールは公開されたソースを引用する必要があり、README は貢献ガイドにリンクしています。

ライセンス

スキルテキスト、ダイジェスト、バナー、ジェネレータスクリプトは MIT ライセンスです。5 つのソースダイジェストは、元のコンテンツにリンクする言い換えられた要約であり、それぞれ独自のライセンス(CC BY 3.0、MIT/Apache-2.0、CC BY-NC-ND 4.0、MPL-2.0、MIT)の下にあります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト