akiramei

vsa-pattern-selector

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

akiramei 1 Updated 9mo ago

Resources

1
GitHub

Install

npx skillscat add akiramei/blazor-enterprise-architecture-poc/vsa-pattern-selector

Install via the SkillsCat registry.

About this skill

A selection aid for choosing appropriate Blazor Vertical Slice Architecture patterns from a catalog based on context such as new features, CRUD operations, queries, state transitions, and boundary design. It analyzes the user's request against an AI decision matrix to recommend specific patterns from categories like Feature Slices, Query Patterns, and Domain Patterns. Developers should use it when designing or implementing Blazor features to identify the most suitable architectural pattern from the catalog.

SKILL.md

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-csv CSV インポート 「CSV を取り込む」「一括登録」
feature-export-csv CSV エクスポート 「CSV に出力」「ダウンロード」
feature-approval-workflow 承認ワークフロー 「承認」「稟議」「ワークフロー」

Query Patterns(データ取得)

パターン ID 用途 トリガーフレーズ
query-get-list 全件/一覧取得 「一覧を取得」「リスト」
query-get-by-id ID 指定取得 「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 用途 トリガーフレーズ
100 validation-behavior 入力検証 「バリデーション」
200 authorization-behavior 認可チェック 「権限」「ロール」
350 caching-behavior キャッシュ 「キャッシュ」「高速化」
400 transaction-behavior トランザクション 「トランザクション」
550 audit-log-behavior 監査ログ 「監査」「履歴」「証跡」

Infrastructure Patterns

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

条件付き必読パターン

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

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