| name | architecture-design |
| description | PRD・機能設計からアーキテクチャ設計書(docs/architecture.md)を作成する。 「アーキテクチャ設計して」「技術選定して」「インフラ設計」「システム構成を決めて」 「技術スタックを決めて」「非機能要件の設計」などの依頼時に発火。 技術選定(理由付き)・レイヤー設計・データ戦略・セキュリティ・スケーラビリティを出力。 |
Architecture Design Skill
機能設計の「どう実現するか」を「どの技術で・どう構成するか」に落とし込む。
入出力
| 種別 | パス |
|---|---|
| 入力 | docs/product-requirements.md(PRD) |
| 入力 | docs/functional-design.md(機能設計) |
| 入力 | docs/architecture.md(既存あれば優先) |
| 出力 | docs/architecture.md |
参照ファイル
| ファイル | 読むタイミング |
|---|---|
./template.md |
新規作成時のベース |
./reference.md |
技術選定基準・レビュー観点 |
手順
1. 要件抽出
PRD・機能設計から以下を抽出:
- 非機能要件(性能・信頼性・セキュリティ)
- データモデル・データ量見込み
- 外部連携要件
- 制約条件(予算・期間・チームスキル)
2. 既存設計の確認
docs/architecture.mdが存在する?- Yes → 構造を維持して差分更新
- No →
./template.mdをコピーして新規作成
3. アーキテクチャ設計
./template.md の構造に従い、以下を埋める:
| セクション | 内容 | 必須 |
|---|---|---|
| 技術スタック | 言語・FW・DB・ツール + 選定理由 | ✅ |
| システム構成図 | Mermaid + コンポーネント説明 | ✅ |
| レイヤー設計 | 各層の責務・依存ルール | ✅ |
| データ戦略 | DB設計・バックアップ・キャッシュ | ✅ |
| セキュリティ | 認証・認可・暗号化・監査 | ✅ |
| パフォーマンス | 目標値・測定方法・最適化方針 | ✅ |
| スケーラビリティ | 想定負荷・スケール戦略 | ✅ |
| 依存関係管理 | バージョン固定方針 | ✅ |
| テスト戦略 | Unit/Integration/E2E方針 | ✅ |
4. 技術選定の根拠確認
すべての技術選定に以下が書かれているか確認:
- 用途: 何に使うか
- 選定理由: なぜこれを選んだか
- 代替案: 検討した他の選択肢(あれば)
5. 非機能要件との整合性チェック
PRDの非機能要件が設計でカバーされているか確認:
- パフォーマンス要件 → 設計で対応策が書かれている
- 信頼性要件 → バックアップ・復旧戦略がある
- セキュリティ要件 → 認証・認可・暗号化が定義されている
6. 出力
docs/architecture.md を作成/更新し、変更点をサマリ提示
発火例
- 「アーキテクチャ設計して」
- 「技術選定を整理して」
- 「インフラ構成を決めて」
- 「非機能要件の設計をお願い」
- 「セキュリティ設計をして」
境界(やらないこと)
- 要件定義 →
prd-writingスキル - 機能設計(コンポーネント・フロー) →
functional-designスキル - ディレクトリ構造 →
repository-structureスキル - コーディング規約 →
development-guidelinesスキル