vsa-pattern-selector

Blazor VSA パターンカタログからの適切なパターン選択支援。新機能追加、 CRUD 操作、クエリ実装、状態遷移、バウンダリー設計などの文脈で、 catalog/index.json の ai_decision_matrix に基づいて最適なパターンを 提案する。Feature Slice、Pipeline Behavior、Domain Pattern、 Query Pattern などから文脈に応じたパターンを選択。

allowed_tools: Read, Glob, Grep

$ インストール

git clone https://github.com/akiramei/blazor-enterprise-architecture-poc /tmp/blazor-enterprise-architecture-poc && cp -r /tmp/blazor-enterprise-architecture-poc/catalog/skills/vsa-pattern-selector ~/.claude/skills/blazor-enterprise-architecture-poc

// tip: Run this command in your terminal to install the skill


name: vsa-pattern-selector description: > Blazor VSA パターンカタログからの適切なパターン選択支援。新機能追加、 CRUD 操作、クエリ実装、状態遷移、バウンダリー設計などの文脈で、 catalog/index.json の ai_decision_matrix に基づいて最適なパターンを 提案する。Feature Slice、Pipeline Behavior、Domain Pattern、 Query Pattern などから文脈に応じたパターンを選択。 allowed-tools:

  • Read
  • Glob
  • Grep

VSA Pattern Selector

このスキルは、Blazor VSA パターンカタログからの適切なパターン選択を支援する。

機能の設計・実装時に、適切なパターンを自動的に提案する。


パターン選択フローチャート

ユーザーの要求を分析
    ↓
【STEP 1】カテゴリを特定

├─「〇〇機能を作って」「〇〇画面を追加」
│   → Feature Slices(垂直スライス)
│
├─「すべての Command に〇〇」「システム全体で〇〇」
│   → Pipeline Behaviors(横断的関心事)
│
├─「一覧を取得」「検索」「レポート」
│   → Query Patterns
│
├─「状態遷移」「操作可否」「型安全 ID」
│   → Domain Patterns
│
├─「同時実行制御」「トランザクション保証」
│   → Infrastructure Patterns
│
└─「UI 状態管理」「リアルタイム更新」
    → UI Patterns

【STEP 2】具体的なパターンを選択(下記テーブル参照)

【STEP 3】パターン YAML を読む
    → catalog/features/*.yaml または catalog/patterns/*.yaml

迷った場合: feature-slice をデフォルトで選択


Feature Slices(垂直スライス)

完全な機能を縦に実装するパターン。最も頻繁に使用

パターン ID用途トリガーフレーズ
feature-create-entityエンティティ作成「〇〇を作成」「新規登録」「追加」
feature-search-entity検索・一覧表示「〇〇を検索」「一覧画面」「フィルタ」
feature-update-entityエンティティ更新「〇〇を編集」「更新」「変更」
feature-delete-entityエンティティ削除「〇〇を削除」「消す」「除去」
feature-import-csvCSV インポート「CSV を取り込む」「一括登録」
feature-export-csvCSV エクスポート「CSV に出力」「ダウンロード」
feature-approval-workflow承認ワークフロー「承認」「稟議」「ワークフロー」

Query Patterns(データ取得)

パターン ID用途トリガーフレーズ
query-get-list全件/一覧取得「一覧を取得」「リスト」
query-get-by-idID 指定取得「ID で取得」「詳細表示」
query-get-by-period期間指定取得「今日/今週/期間」「日付範囲」
complex-query-service複合条件クエリ「空き検索」「NOT EXISTS」「未割当」

Domain Patterns(ドメインモデル)

パターン ID用途トリガーフレーズ
boundary-pattern操作可否判定「〇〇できるか」「権限チェック」「優先権」
domain-state-machine状態遷移「ステータス」「状態遷移」
domain-validation-service業務ルール検証「重複チェック」「〜のみ可能」「前提条件」
domain-typed-id型安全 ID「強い型付け」「ProductId」
domain-timeslot時間枠管理「予約時間」「タイムスロット」
domain-ordered-queue順序付きキュー「順番」「キュー」「Position」「Ready 状態」

Pipeline Behaviors(横断的関心事)

順序パターン ID用途トリガーフレーズ
100validation-behavior入力検証「バリデーション」
200authorization-behavior認可チェック「権限」「ロール」
350caching-behaviorキャッシュ「キャッシュ」「高速化」
400transaction-behaviorトランザクション「トランザクション」
550audit-log-behavior監査ログ「監査」「履歴」「証跡」

Infrastructure Patterns

パターン ID用途トリガーフレーズ
concurrency-control同時実行制御「楽観ロック」「悲観ロック」「ダブルブッキング」

条件付き必読パターン

特定の条件下で 必ず読むべき パターン。

条件必読パターン理由
UI があるboundary-patternAI バイアスで忘却されやすい
状態遷移があるdomain-state-machine遷移制約の明確化
重複チェックがあるdomain-validation-service複数エンティティの検証
予約/ダブルブッキングconcurrency-control同時実行制御が必須
順番管理があるdomain-ordered-queuePosition 管理(FR-018 対策)
「〜のみ可能」domain-validation-service複合前提条件(FR-017 対策)
優先権のある操作boundary-patternReady 状態の優先権(FR-021 対策)

ドメイン別推奨パターン

図書館・貸出管理

  • audit-log-behavior(貸出・返却履歴)
  • concurrency-control(同時貸出防止)
  • domain-ordered-queue(予約順番管理)★FR-018
  • domain-validation-service(全コピー貸出中のみ予約可能)★FR-017
  • boundary-pattern(Ready 予約者の優先権)★FR-021

金融・決済

  • audit-log-behavior(決済履歴)
  • idempotency-behavior(重複決済防止)
  • concurrency-control(残高更新)

予約システム

  • domain-timeslot(予約時間枠)
  • complex-query-service(空き検索)
  • concurrency-control(ダブルブッキング防止)

承認ワークフロー

  • feature-approval-workflow(承認機能)
  • domain-state-machine(承認状態遷移)
  • domain-approval-history(承認履歴)

パターン YAML の読み方

各パターン YAML には以下のセクションがある:

セクション内容
ai_selection_hintsトリガーフレーズ、決定ロジック
implementation.templateコードテンプレート
ai_guidance.common_mistakes頻出ミス
evidence.implementation_file実装例ファイルパス

参照

詳細は以下を参照:

  • catalog/LLM_PATTERN_INDEX.md - パターン選択早見表
  • catalog/index.json - ai_decision_matrix
  • catalog/DECISION_FLOWCHART.md - パターン選択アルゴリズム

Repository

akiramei
akiramei
Author
akiramei/blazor-enterprise-architecture-poc/catalog/skills/vsa-pattern-selector
1
Stars
0
Forks
Updated9h ago
Added6d ago