rust-systems について
rust-systems は、システムプログラミング、コマンドラインツール、性能重視のアプリケーション向けの Rust 実践スキルです。プロジェクトとモジュールの構成、命名、型とトレイト、エラー処理を扱う 52 のルールを収録しています。
主な機能
- 015 分野にわたる 52 のルール
- 02Cargo ワークスペースとモジュール構成
- 03Rust コードの命名規則
- 04型とトレイトの設計パターン
- 05エラー処理のガイダンス
活用シーン
- 01複数クレートの Rust プロジェクト構成
- 02Rust のモジュールと命名のレビュー
- 03型、トレイト、エラー処理の設計
- 04システムツールやデーモンの開発
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rust-systemsインストール後、Claude Code で/rust-systemsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdREADME.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mderr-anyhow-context.mderr-bail-validation.mderr-expect-message.mderr-graceful-degradation.mderr-ok-or-else.mderr-panic-unrecoverable.mderr-path-context.mderr-result-alias.mderr-source-attribute.mderr-thiserror-enum.mderr-two-tier-strategy.mdmod-colocated-tests.mdmod-conditional-compilation.mdmod-explicit-declarations.mdmod-reexport-pattern.mdmod-submodule-organization.mdmod-types-errors-files.mdname-boolean-predicates.mdname-constant-screaming.mdname-constructor-new.mdname-conversion-to-from.mdname-field-unit-suffixes.mdname-function-snake-case.mdname-generic-parameters.mdname-getter-prefix.md詳細
Rust システムプログラミングのベストプラクティス
システムプログラミング向けの包括的な Rust のパターンとスタイル規約です。5 つのカテゴリにわたる 52 のルールを含みます。システムプログラミング、CLI ツール、パフォーマンスが重要なアプリケーション向けに設計されています。
適用する場面
次のような場合に、これらのガイドラインを参照してください。
- 新しい Rust コードやモジュールを作成するとき
- Rust プロジェクトの構成を整理するとき
- 独自の型、トレイト、エラー処理を定義するとき
- スタイルの一貫性を保つために Rust コードをレビューするとき
- システムツール、CLI、デーモンプロセスを構築するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | プロジェクト構成 | 高 | org- |
| 2 | モジュール構造 | 高 | mod- |
| 3 | 命名規則 | 高 | name- |
| 4 | 型とトレイトのパターン | 高 | type- |
| 5 | エラー処理 | 高 | err- |
クイックリファレンス
1. プロジェクト構成(高)
org-cargo-workspace- 複数クレートのプロジェクトでは Cargo ワークスペースを使用するorg-directory-naming- すべてのディレクトリ名に snake_case を使用するorg-binary-library-separation- バイナリクレートとライブラリクレートを分けるorg-feature-domain-grouping- クレートを機能ドメインごとにグループ化するorg-common-crate- 共有ユーティリティ用に専用の共通クレートを使用するorg-flat-crate-structure- クレート構造をフラットに保つ
2. モジュール構造(高)
mod-explicit-declarations- lib.rs で明示的にモジュールを宣言するmod-colocated-tests- テストを test.rs ファイルとして同じ場所に配置するmod-submodule-organization- 複数ファイルのモジュールには mod.rs を使用するmod-types-errors-files- 型とエラーを専用ファイルに分けるmod-reexport-pattern- pub use を使用して API をすっきりと再エクスポートするmod-conditional-compilation- 条件付きモジュールには cfg 属性を使用する
3. 命名規則(高)
name-function-snake-case- 関数とメソッドには snake_case を使用するname-type-pascal-case- 型には PascalCase を使用するname-constant-screaming- 定数には SCREAMING_SNAKE_CASE を使用するname-getter-prefix- ゲッター関数には get_ を接頭辞として付けるname-boolean-predicates- 真偽値の判定には is_、has_、should_ を使用するname-constructor-new- コンストラクターには new を使用するname-conversion-to-from- 変換には to_ と from_ を使用するname-type-suffixes- 型の特殊化には説明的な接尾辞を使用するname-field-unit-suffixes- フィールド名に単位の接尾辞を含めるname-module-snake-case- モジュール名には snake_case を使用するname-generic-parameters- ジェネリックパラメーターには説明的な名前、または単一文字の名前を使用するname-lifetime-parameters- ライフタイムには小文字の単一文字を使用するname-test-files- テストファイルには test.rs という名前を付ける
4. 型とトレイトのパターン(高)
type-option-nullable-fields- null 許容フィールドには Option を使用するtype-standard-derives- データ構造体では derive の順序を統一するtype-builder-pattern- メソッドチェーンを使ったビルダーパターンを使用するtype-associated-types- 関連する型同士の関係には関連型を使用するtype-phantom-data- 未使用のジェネリックパラメーターには PhantomData を使用するtype-newtype-pattern- 型安全性のために Newtype パターンを使用するtype-enum-copy-simple- 単純な列挙型には Copy を derive するtype-enum-variants- 型安全なバリアントには列挙型を使用するtype-trait-impl-grouping- 関連するトレイト実装をまとめるtype-bitflags- 型安全なビットフラグには bitflags! を使用するtype-operator-overload- ドメイン型には演算子トレイトを実装するtype-public-fields- データ構造体にはパブリックフィールドを使用するtype-async-trait- 非同期トレイトメソッドには async_trait を使用するtype-boxed-trait-objects- 実行時ポリモーフィズムには Box を使用するtype-type-aliases- 複雑なジェネリクスには型エイリアスを使用する
5. エラー処理(高)
err-thiserror-enum- thiserror を使用してカスタムエラー型を定義するerr-result-alias- モジュール内でローカルな Result 型エイリアスを定義するerr-path-context- IO エラーにパスのコンテキストを含めるerr-anyhow-context- エラーメッセージには context() と with_context() を使用するerr-bail-validation- 検証に失敗した場合は bail! を使用するerr-graceful-degradation- 重要でない処理にはグレースフルデグラデーションを使用するerr-panic-unrecoverable- 回復不能な状況に限って panic! を使用するerr-expect-message- 説明的なメッセージを添えて expect() を使用するerr-source-attribute- エラーのチェーンには #[source] を使用するerr-ok-or-else- エラーの生成コストが高い場合は ok_or_else を使用するerr-two-tier-strategy- 2段階のエラー戦略を使用する
使用方法
詳しい説明とコード例については、個別のリファレンスファイルをお読みください。
- セクションの定義 - カテゴリー構成と影響度
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
コンパイル済みドキュメント全文
すべてのルールを展開したガイド全文については、AGENTS.md をご覧ください。
コメント
Markdown 対応