mcpField
S
scaffold

scaffold

github.com/codewithmukesh開発7912.9k 回インストール12 週間前に更新
リポジトリ

scaffold について

scaffoldは、プロジェクトのアーキテクチャに沿ってC#機能の一式を生成するスキルです。エンドポイント、ハンドラー、検証、永続化設定、統合テストを作成し、ビルドとテストで確認します。

主な機能

  1. 01アーキテクチャに応じたスキャフォールド
  2. 02VSA、Clean Architecture、DDD、Modular Monolithに対応
  3. 03各層のファイルと統合テストの生成
  4. 04完全性チェックリストとビルド・テスト検証

活用シーン

  1. 01承認済みプランに基づく機能一式の作成
  2. 02CRUD操作や新しいモジュールの追加
  3. 03既存プロジェクトの規約に合わせた生成物の調整

MCP 対応

ワークフローではMCPツールを使ってプロジェクトの規約を確認します。

インストール

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

$npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill scaffold

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

同梱ファイルreferences/architecture-patterns.md

詳細

/scaffold — アーキテクチャを考慮した機能のスキャフォールディング

概要

プロジェクトのアーキテクチャに基づいて、必要なファイルをすべて含む機能を生成します。不完全な機能は生成しません。すべてのスキャフォールドには、エンドポイント、ハンドラー、バリデーション、DTO、EF 設定、そして少なくとも 1 つの統合テストが一式として含まれます。モダンな C# 14(プライマリコンストラクター、コレクション式、レコード、シールドされたハンドラー、TypedResults)で記述されます。

対応するアーキテクチャ(ファイル配置マップとコード形状テンプレートは references/architecture-patterns.md にあります):

  • Vertical Slice Architecture(VSA) — Features/ 内に単一ファイルで機能を配置
  • Clean Architecture(CA) — Domain、Application、Infrastructure、Api にファイルを分割
  • DDD + Clean Architecture — 集約ルート、値オブジェクト、ドメインイベントに加え、CA の各レイヤーを使用
  • Modular Monolith — 独自の DbContext と統合イベントを持つ自己完結型モジュール

使用するタイミング

  • 「[機能名]をスキャフォールドして」「〜のエンドポイントを作成して」「機能を追加して」
  • 「〜の CRUD を生成して」「エンティティを追加して」「新しいモジュール」「モジュールをスキャフォールドして」
  • /plan によって承認済みの計画が作成された後、新しい機能を始めるとき
  • 生成テンプレートをカスタマイズするとき、または完全なスライスに含めるものを定義するとき
  • 完全で動作する機能の骨組みをユーザーが求めているとき

使い方

ステップ 1:アーキテクチャを検出する

architecture-advisor スキルを使って、プロジェクトのアーキテクチャを特定します。

  • フォルダー構成、プロジェクト参照、既存のパターンを調べます
  • アーキテクチャが曖昧な場合は、推測せずにユーザーに尋ねます
  • 該当するアーキテクチャスキル(vertical-slice、clean-architecture、ddd)を読み込みます
ステップ 2:スコープを確認する

生成前にユーザーに確認します(計画ですでに回答済みの項目は省略します)。

  1. 機能/エンティティ名と必要な操作 — CRUD 全体か、一部か?
  2. 新しいエンティティの主要フィールドと不変条件
  3. モジュールの配置(Modular Monolith のみ)— 既存のモジュールか、新しいモジュールか?
ステップ 3:規約を把握する

convention-learner スキルと MCP ツールを使って、以下を確認します。

  • 命名パターン(*Handler、*Service、*Endpoint、*Command、*Query)
  • フォルダー構成、ファイルの編成、アクセス修飾子、sealed の規約
  • 既存のバリデーション方法(FluentValidation、データアノテーション、手動)
  • テストプロジェクトの構成と命名(*Tests、*IntegrationTests)

既存の規約に合わせます。確立済みのコードベースに新しい規約を押し付けないでください。

ステップ 4:すべてのレイヤーを生成する

references/architecture-patterns.md のテンプレートに従って、アーキテクチャが必要とするファイルをすべて生成します。

  • VSA — VSA のセクションを読みます:単一ファイルの機能 + エンドポイントグループ + EF 設定 + テスト
  • Clean Architecture — CA のセクションを読みます:Application の Mediator コマンド/ハンドラー、Api のエンドポイント
  • DDD — DDD のセクションを読みます:不変条件とドメインイベントを備えた集約、薄いハンドラー
  • Modular Monolith — Modular Monolith のセクションを読みます:モジュールの DbContext、DI 登録、統合イベント

このリファレンスでは、すべてのアーキテクチャで再利用する共通の形状(エンドポイントグループ、バリデーター、エンティティと IEntityTypeConfiguration<T> のペア、テストフィクスチャ)と、避けるべきアンチパターンについても説明しています。

ステップ 5:完全性チェックリスト(必須)

スキャフォールドする機能には、必ず以下の 9 項目をすべて含めてください。省略しないでください。

  • エンドポイント — ルートグループを持つ IEndpointGroup ファイル。Program.cs では決して登録しないでください
  • ハンドラー — sealed とプライマリコンストラクターを使用し、操作ごとに 1 つ作成します
  • バリデーター — 意味のあるルール(範囲、必須項目、最大長)を含む FluentValidation。変更を行うエンドポイントでは .AddEndpointFilter<ValidationFilter<T>>() で登録します
  • DTO — 利用側に合わせたレコード。エンティティと 1 対 1 のミラーにはしません
  • EF 構成 — IEntityTypeConfiguration<T> を使用します。エンティティにデータ注釈を付けないでください
  • 統合テスト — WebApplicationFactory + Testcontainers を使用し、services.RemoveAll<DbContextOptions<T>>() で DI を置き換えます
  • OpenAPI メタデータ — .WithName()、.WithSummary()、.Produces<T>()、.ProducesValidationProblem()、.ProducesProblem(404)
  • CancellationToken — すべての非同期メソッドで使用し、すべての非同期呼び出しに渡します
  • Result パターン — ハンドラーは Result<T> を返します。エンドポイントは成功時に TypedResults に、失敗時に ToProblemDetails() にマッピングします

サポートするインフラストラクチャも確認し、不足していればスキャフォールドしてください。リストエンドポイントには上限付きページネーション(page/pageSize、最大 50)を設定し、Program.cs に app.UseExceptionHandler() があり、appsettings.json に接続文字列が設定されていることを確認します。

ステップ 6:検証

完了を報告する前に、スキャフォールドが機能することを証明してください。

dotnet build --no-restore
dotnet test --no-build --filter "FullyQualifiedName~{FeatureName}"

ビルドまたはテストが失敗した場合は、結果を提示する前に修正して再実行してください。

例

User: /scaffold a Product Catalog feature with CRUD operations

Claude: Detected architecture: Vertical Slice Architecture

Created files:
  src/Features/Products/CreateProduct.cs     -- Command + handler + validator
  src/Features/Products/GetProduct.cs        -- Query by ID + handler
  src/Features/Products/ListProducts.cs      -- Paginated list + handler
  src/Features/Products/UpdateProduct.cs     -- Command + handler + validator
  src/Features/Products/DeleteProduct.cs     -- Command + handler
  src/Features/Products/ProductEndpoints.cs  -- IEndpointGroup, OpenAPI metadata
  src/Features/Products/ProductConfig.cs     -- EF Core configuration
  tests/Features/Products/CreateProductTests.cs
  tests/Features/Products/GetProductTests.cs
  tests/Features/Products/ListProductsTests.cs

Checklist: 9/9 | Build: PASS | Tests: PASS

All files follow your existing conventions (sealed handlers,
primary constructors, TypedResults return types).

関連項目

  • dotnet-init — 機能をスキャフォールドする前に、プロジェクトと CLAUDE.md を初期化します
  • vertical-slice — VSA スキャフォールドが従う VSA パターン
  • clean-architecture — CA スキャフォールドの基盤となるレイヤリングルール
  • ddd — DDD スキャフォールドの基盤となる集約とドメインイベントのパターン
  • project-structure — 各アーキテクチャでファイルを配置する場所

コメント