mcpField
R
rust-stable

rust-stable

github.com/full-stack-skills開発12110 回インストール5 週間前に更新
リポジトリ

rust-stable について

所有権やライフタイム、トレイト、エラー伝播など、Rust の安定版言語仕様を扱う開発者向けスキルです。プロジェクトのツールチェーンと MSRV を確認してから、バージョン依存の構文や API を選ぶ点を重視します。

主な機能

  1. 01所有権、借用、ライフタイム
  2. 02トレイト、ジェネリクス、関連型
  3. 03パターンマッチとエラー伝播
  4. 04Edition と MSRV の互換性確認
  5. 05専門的な Rust スキルへの引き継ぎ

活用シーン

  1. 01借用チェッカーエラーの調査
  2. 02プロジェクトの MSRV へのコード適合
  3. 03安定版言語機能の選択検討

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/full-stack-skills/rust-skills --skill rust-stable

インストール後、Claude Code で/rust-stableを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
examples/
collections-patterns.md
error-handling-patterns.md
ownership-patterns.md
quickstart-workflows.md
trait-design-patterns.md
examples/golden-basic/
Cargo.toml
examples/golden-basic/src/
lib.rs
references/
conversions.md
errors.md
fmt.md
fs.md
hashmap.md
interior-mutability.md
io.md
iterators.md
ownership-lifetimes.md
path.md
patterns.md
release-current.md
smart-pointers.md
std-index.md
string.md
style-guide.md
traits-generics.md
vec.md

詳細

Rust Stable Language Semantics

所有権、借用、ライフタイム、トレイト、ジェネリクス、パターンマッチ、エラー伝播、Edition の違いなど、言語のセマンティクスについてはこのスキルを使用してください。まず、プロジェクトで実際に使用しているツールチェーンと最小サポート Rust バージョン(MSRV)を確認してください。

標準ライブラリ API の選択(コレクション、スマートポインター、文字列型、I/O トレイトの選択)には、rust-stdlib を使用してください。具体的なパターンの例(「X はどう書けばよいですか」)には、rust-by-example を使用してください。

開始前の前提条件

  1. rustc --version --verbose と cargo --version を実行します。
  2. rust-toolchain.toml、rust-toolchain、Cargo.toml の rust-version フィールドを確認します。
  3. 次の 3 つのバージョンを区別します。ローカルのツールチェーン、プロジェクトの MSRV、現在の公式安定版リリース。
  4. バージョンに依存する API を扱う場合は、現在の安定版の基準を参照し、最終的な根拠として公式のリリースノートと API ドキュメントを使用します。
  5. プロジェクトが古いバージョンに固定されている場合は、そのバージョンですでに安定化されている構文と API のみを厳守します。

現在のオフライン基準: Rust 1.97.1(2026 年 7 月 16 日リリース)。これは日付が固定されたリポジトリの基準であり、自動更新されません。

対応範囲

対応に適している内容
  • 所有権、借用、ライフタイム、ムーブセマンティクス。
  • struct、enum、パターンマッチ、トレイト、ジェネリクス、関連型。
  • Option、Result によるエラー伝播、カスタムエラー(言語機能)。
  • クロージャ(Fn/FnMut/FnOnce)、属性構文、フォーマット文字列(言語機能)。
  • モジュール、可視性修飾子、pub/pub(crate)/pub(super)。
  • Edition の違い(言語レベル — unsafe extern、RPIT のキャプチャ、match ergonomics)。
  • よくあるコンパイルエラー、借用チェッカーの失敗、安定化に関する判断。
専門スキルへの引き継ぎ
ユーザーの意図推奨スキル
「どの標準ライブラリのコレクション/スマートポインター/文字列型を使えばよいですか?」rust-stdlib
「Rust で X はどう書けばよいですか?」(具体的なパターン)rust-by-example
API 設計(命名、トレイト、将来への備え、およそ 100 件の C-* ルール)rust-api-design
プロジェクトのレイアウト、モジュールツリー、ワークスペース構造rust-workspace、rust-module-layout
Cargo.toml の依存関係、機能、プロファイル、公開rust-cargo-build
依存関係のガバナンス、サプライチェーン、cargo-denyrust-dependencies
Semver、破壊的変更の分類、公開ワークフローrust-semver
Java Maven/Gradle プロジェクトの移行とコンポーネントの置き換えrust-java-migration
Java から Rust へのソースとテストの同等性、Rust での要件、移行テストの監査rust-java-migration-testing
スレッド、ロック、アトミック、チャネル、Tokiorust-concurrency
単体テスト、統合テスト、ドキュメントテスト、カバレッジrust-testing
生ポインター、メモリレイアウト、FFI、Mirirust-unsafe-ffi
UniFFI で生成する Kotlin、Swift、Python、Ruby、WASM バインディングrust-uniffi-building
macro_rules、derive、手続き型マクロrust-macros
コマンドの契約、標準ストリーム、終了コード、CLIrust-cli
サーバーサイドの HTTP API、ハンドラー、ミドルウェアrust-web
SQL/ORM、スキーマ、マイグレーション、トランザクション、接続プールrust-database
Web 認証、認可、セッション、トークンrust-web-security
ベアメタルファームウェア、no_std ドライバー、ハードウェア検証rust-embedded
リスク、正確性、API、安全性のレビューrust-code-review
rustfmt、Clippy、Edition の移行、Lint ポリシーrust-style-clippy

このスキルで、ドメイン固有スキルの完全なワークフローを置き換えないでください。

ワークフロー

  1. バージョンの境界を特定する — ツールチェーンのバージョン、エディション、MSRV、対象プラットフォームを記録します。
  2. 問題の範囲を絞り込む — 問題が所有権/型システム/標準ライブラリ/コンパイラーエラーに関するものか、専門分野に関するものかを特定します。
  3. 必要最小限のリソースを読む — 問題に直接関係する参照資料だけを開き、ドキュメント一式を一度に読み込まないようにします。
  4. 正しく動作する最小限の解決策を実装する — 安定版の標準ライブラリの利用、明確な所有権の意味、明示的なエラー伝播を優先します。
  5. 品質ゲートのチェックを実行する — cargo fmt --check、すべてのターゲット/機能を対象とした cargo check、関連するテストを実行します。
  6. バージョンの違いに対処する — API が MSRV でサポートされていない場合は、互換性のある古い API を選ぶか、互換性シムを実装します。それ以外の場合は、MSRV を明示的に引き上げます。
  7. 専門スキルに引き継ぐ — 非同期、unsafe マクロ、Web、組み込みの各分野に入ったら、対応するスキルを読み込みます。

設計ルール

  • &T/&mut T を優先します。所有権の移動が必要な場合、または独立したライフタイムが必要な場合に限り、クローンを作成します。
  • 不変条件を型で表現します。ブール値のパラメーターや制約のない文字列より、列挙型や新しい型を優先します。
  • ライブラリコードでは構造化されたエラーを返します。アプリケーションとの境界では、表示方法を決める前にコンテキストを付加してもかまいません。
  • イテレーターと標準コレクションを優先しますが、メソッドチェーンの記法のために可読性を犠牲にしないでください。
  • 借用チェックを回避するために unsafe を使わないでください。まず、安全な抽象化では要件を表現できないことを確認します。
  • サードパーティークレートのインポートを最初から選ばないでください。安定版の std、MSRV、メンテナンスコスト、サプライチェーンのリスクと比較します。
  • 公式リリースノート、または since が記載された API ページで確認できない限り、特定のバージョンで API が安定化されたと断言しないでください。

検証ゲート

リスクの低いものから高いものの順に、検証ゲートを実行します。

cargo fmt --all --check
cargo check --all-targets --all-features
cargo test --all-targets --all-features
cargo clippy --all-targets --all-features -- -D warnings

プロジェクトが --all-features をサポートしていない場合や、プラットフォーム固有のターゲットが含まれている場合は、その理由を記録し、定義済みの機能/ターゲットのマトリックスを使用します。unsafe コードには cargo miri test を追加します。MSRV に関する問題については、宣言された最小ツールチェーンで cargo check とテストを再度実行します。

必要に応じて読むドキュメント

バージョンと言語のセマンティクス
相互参照(該当するスキルを読み込む)
  • 「どの std コレクション/スマートポインター/文字列型を使うべきか?」 → rust-stdlib(その references/ では collections、smart-pointers、string-types、iterators、I/O、interior-mutability、combinators、std-concurrency、process-and-fs、std-module-index を扱います)
  • 「X をどのように書けばよいか?」 → rust-by-example(その references/ では conversions、flow-control、closures、modules、generics-traits、error-handling、attributes、unsafe、procedural-macros-overview、inline-asm、migrating-from-other-languages を扱います)
  • API 設計 → rust-api-design;Cargo マニフェスト → rust-cargo-build;依存関係のガバナンス → rust-dependencies
再現可能な例
  • クイックスタートのワークフロー
  • 所有権パターン(examples/ownership-patterns.md)
  • コレクションパターン(examples/collections-patterns.md)
  • トレイト設計パターン(examples/trait-design-patterns.md)
  • エラー処理パターン(examples/error-handling-patterns.md)
  • examples/golden-basic/:リポジトリの CI でコンパイルされる、最小限の模範例。

よくある落とし穴

  1. 「現行の安定版」とプロジェクトの MSRV を混同すること。
  2. cargo check だけを実行し、テスト、サンプル、ベンチマーク、または機能の組み合わせを省略すること。
  3. 借用エラーを回避することだけを目的に、安易に clone を使ったり、Arc<Mutex<_>> でラップしたり、unsafe を呼び出したりすること。
  4. 非同期コードで、同期ロックを .await の呼び出しをまたいで保持すること。
  5. バージョン管理された過去のドキュメントを、継続的に更新されるリソースとして説明すること。
  6. 依存関係、機能、エラー型、プラットフォームの制約を含めずに、コードスニペットをコピーすること。

公式ソース

データプライバシーポリシー

このスキルは、ローカルの知識、サンプル、検証ワークフローのみを提供します。ユーザーデータを収集、保存、送信することはありません。公式ドキュメントへのアクセスにあたっては、公開リソースにアクセスする前に、ユーザーのネットワークアクセス要件に従う必要があります。

コメント