name: functional-design description: > プロダクト要求定義書(docs/product-requirements.md)から機能設計書(docs/functional-design.md)を作成する。 「機能設計して」「設計書を作って」「PRDを設計に落として」「コンポーネント設計」「データモデル設計」 「シーケンス図を書いて」「ER図を作って」などの依頼時に発火。 システム構成図・データモデル・コンポーネント責務・ユースケースフロー・エラー設計を出力。
Functional Design Skill
PRD(何を作るか)を設計(どう実現するか)に落とし込む。
入出力
| 種別 | パス |
|---|---|
| 入力 | docs/product-requirements.md(必須) |
| 入力 | docs/functional-design.md(既存あれば優先) |
| 出力 | docs/functional-design.md |
参照ファイル
| ファイル | 読むタイミング |
|---|---|
./template.md | 新規作成時のベース |
./reference.md | 必須項目・レビュー観点の確認時 |
手順
1. PRD読解
docs/product-requirements.md を読み、以下を抽出:
- P0(MVP)機能の要件・受け入れ条件
- ターゲットユーザーのワークフロー
- 成功指標(KPI)
- 非機能要件(あれば)
2. 既存設計の確認
docs/functional-design.mdが存在する?- Yes → 構造を維持して差分更新
- No →
./template.mdをコピーして新規作成
3. 設計項目の作成
P0機能ごとに以下を埋める(詳細は ./reference.md 参照):
| 項目 | 形式 | 必須 |
|---|---|---|
| システム構成図 | Mermaid graph TB | ✅ |
| データモデル | TypeScript interface | ✅ |
| ER図 | Mermaid erDiagram | 複数エンティティ時 |
| コンポーネント設計 | 責務・インターフェース | ✅ |
| ユースケースフロー | Mermaid sequenceDiagram | ✅ |
| エラーハンドリング | 表形式 | ✅ |
| アルゴリズム設計 | 計算式・実装例 | 複雑ロジック時 |
| API設計 | エンドポイント定義 | Web API時 |
| 画面遷移 | Mermaid stateDiagram | UI有時 |
4. PRDとのトレーサビリティ確保
- 各設計セクションに「対応するPRD機能」を明記
- 例:
## 診断機能の設計(PRD: 1. 診断)
5. セルフレビュー
./reference.md のレビュー観点でチェック:
- PRD P0要件をすべてカバーしているか
- データモデルに型・制約・nullable が明記されているか
- Mermaidに実コンポーネント名が入っているか
- エラーハンドリングが網羅されているか
6. 出力
docs/functional-design.md を作成/更新し、変更点をサマリ提示
発火例
- 「機能設計書を作って」
- 「PRDを設計に落として」
- 「データモデルを定義して」
- 「コンポーネント設計をお願い」
- 「診断機能のシーケンス図を書いて」
境界(やらないこと)
- 要件定義 →
prd-writingスキル - 技術選定の深い根拠 →
architecture-designスキル - 実装 → 開発タスクとして別途実施