mcpField
S
solid-rust

solid-rust

github.com/fusengine開発3441 回インストール2 週間前に更新
リポジトリ

solid-rust について

solid-rust は、Rust 2024 プロジェクトでモジュール型の SOLID アーキテクチャを実践するコーディングスキルです。コード再利用や層の配置、エラー処理、ドキュメントの規則に加え、実装前にエージェントを並列で起動する手順を定めています。

主な機能

  1. 01機能ごとのモジュール構成
  2. 02追加前の重複・再利用チェック
  3. 03トレイト境界によるジェネリクスと配置規則
  4. 04thiserror による独自エラー
  5. 05公開項目への Rustdoc
  6. 06テンプレートと SOLID 参考資料

活用シーン

  1. 01Rust の新機能モジュールの設計
  2. 02再利用可能なサービスやトレイトの確認
  3. 03ハンドラー、テスト、エラーのひな形作成

インストール

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

$npx skills add https://github.com/fusengine/claude-plugins --skill solid-rust

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

詳細

SOLID Rust は、Rust 2024 エディション向けにモジュール型アーキテクチャを適用します。各機能は `src/modules/[feature]/`(handlers.rs、services.rs、repository.rs、traits.rs、models.rs)に配置し、共有コードは `src/core/` に配置します。トレイトは `traits.rs` または `src/core/traits/` のみに定義し、ジェネリクスでは具体型ではなくトレイト境界を使用します。カスタムエラーには `thiserror` を使用し、すべての公開項目に rustdoc の `///` コメントを付けます。

新しいコードを書く前に、src/core/services と src/core/traits を対象に DRY チェックを行う必要があります。概要は solid-principles.md を、SRP/OCP/LSP/ISP/DIP の詳細は各原則のリファレンスを参照してください。また、モジュール、サービス、トレイト、ハンドラー、エラー、テストのひな形にはテンプレートを参照してください。

SOLID Rust - モジュール型アーキテクチャ

エージェントのワークフロー(必須)

実装を行う前に、name を指定した Agent 呼び出しをそれぞれ1回行い、3つのエージェントを並行して起動してください。

  1. fuse-ai-pilot:explore-codebase - 既存のアーキテクチャを分析します
  2. fuse-ai-pilot:research-expert - Context7 を使用して Rust のドキュメントを確認します
  3. fuse-ai-pilot:sniper - 実装後の検証を行います

DRY - 作成する前に再利用する(必須)

新しいコードを書く前に、必ず次を行ってください。

  1. コードベースを grep して、類似するトレイト、サービス、ロジックを探します
  2. 共有場所を確認します:src/core/services/、src/core/traits/
  3. 類似コードが存在する場合 -> 重複させず、拡張または再利用します
  4. 2つ以上の機能で使用されるコードの場合 -> src/core/ に作成します

アーキテクチャ(モジュール必須)

レイヤー場所
ハンドラーsrc/modules/[feature]/handlers.rs
サービスsrc/modules/[feature]/services.rs
リポジトリsrc/modules/[feature]/repository.rs
トレイトsrc/modules/[feature]/traits.rs
モデルsrc/modules/[feature]/models.rs
共有src/core/{services,traits,models}/

フラットな src/ 構造は絶対に使用せず、常に src/modules/[feature]/ を使用してください。


重要なルール(必須)

ルール値
ファイルの行数制限FUSE_SOLID_MAX_LINES
ハンドラー薄く保ち、サービスに処理を委譲します
トレイトtraits.rs または src/core/traits/ のみ
Rustdocすべての公開項目に /// を付けます
エラー処理カスタムエラーには thiserror を使用します
ジェネリクス具体型ではなくトレイト境界を使用します

リファレンスガイド

概念
トピックリファレンス参照する場面
SOLID の概要solid-principles.mdクイックリファレンス
SRPsingle-responsibility.md肥大化した構造体
OCPopen-closed.md実装の追加
LSPliskov-substitution.mdトレイトの契約
ISPinterface-segregation.md肥大化したトレイト
DIPdependency-inversion.mdジェネリクス/DI
アーキテクチャarchitecture-patterns.mdモジュール型クレート
テンプレート
テンプレート使用する場面
module.md機能モジュールの構造
service.mdビジネスロジックのサービス
trait-def.mdトレイト定義
handler.mdHTTP ハンドラー(Axum)
error.mdカスタムエラー(thiserror)
test.md単体テストおよび統合テスト

禁止事項

アンチパターン対処方法
FUSE_SOLID_MAX_LINES を超えるファイル責務ごとに分割します
impl ファイル内のトレイトtraits.rs に移動します
Box<dyn Any>適切なトレイト境界を使用します
フラットな src/ 構造src/modules/[feature]/ を使用します
ライブラリコードでの UnwrapResult<T, E> を使用します

コメント