# Vsa Pattern Selector

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

- Skill: `majiayu000/vsa-pattern-selector` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/vsa-pattern-selector`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/vsa-pattern-selector/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/vsa-pattern-selector

---


# 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` - パターン選択アルゴリズム

