--- name: design-document-types description: 詳細設計書の種類と判定基準を定義し、基本設計書の内容から必要な設計書タイプを動的に決定するためのカタログ --- # 詳細設計書タイプカタログ このドキュメントは、詳細設計書の種類と、それぞれの判定基準を定義します。 基本設計書の内容を分析し、必要な設計書タイプを動的に決定するために使用します。 --- ## 設計書タイプ一覧 ### 必須ドキュメント | タイプ | ファイル名 | 説明 | 必須条件 | |--------|-----------|------|---------| | インデックス | `詳細設計書.md` | 機能全体の概要とインデックス | **常に必須** | ### コア設計書(条件付き) | タイプ | ファイル名 | 説明 | 作成条件 | |--------|-----------|------|---------| | バックエンド | `バックエンド設計書.md` | API仕様、処理詳細 | APIエンドポイントがある | | フロントエンド | `フロントエンド設計書.md` | コンポーネント設計、状態管理 | **画面設計書がある場合は必ず作成** | | 画面 | `画面設計書.md` | 画面レイアウト、遷移、バリデーション | ユーザー向け画面がある | | データベース | `データベース設計書.md` | テーブル定義、ER図、インデックス | DB操作がある | > **Note**: 画面設計書とフロントエンド設計書はセットで作成する。 > - 画面設計書: UIレイアウト、遷移、バリデーション(デザイナー視点) > - フロントエンド設計書: コンポーネント設計、状態管理、データフェッチ(エンジニア視点) ### アーキテクチャ関連設計書 | タイプ | ファイル名 | 説明 | 作成条件 | |--------|-----------|------|---------| | BFF | `BFF設計書.md` | Backend for Frontend設計 | BFFレイヤーがある | | API Gateway | `APIゲートウェイ設計書.md` | ルーティング、認証、レート制限 | API Gatewayを使用 | | マイクロサービス連携 | `サービス間連携設計書.md` | サービス間通信、イベント駆動 | マイクロサービス構成 | ### 外部連携設計書 | タイプ | ファイル名 | 説明 | 作成条件 | |--------|-----------|------|---------| | 外部API連携 | `外部API連携設計書.md` | サードパーティAPI連携詳細 | 外部APIを使用 | | Webhook | `Webhook設計書.md` | Webhook受信/送信設計 | Webhookがある | | ファイル連携 | `ファイル連携設計書.md` | ファイル入出力、バッチ連携 | ファイル連携がある | ### 横断的関心事 | タイプ | ファイル名 | 説明 | 作成条件 | |--------|-----------|------|---------| | セキュリティ | `セキュリティ設計書.md` | 認証認可、暗号化、監査ログ | セキュリティ要件が複雑 | | パフォーマンス | `パフォーマンス設計書.md` | キャッシュ、最適化戦略 | パフォーマンス要件が厳しい | | 非同期処理 | `非同期処理設計書.md` | キュー、ジョブ、バッチ処理 | 非同期処理がある | | 通知 | `通知設計書.md` | メール、プッシュ、SMS通知 | 通知機能がある | ### インフラストラクチャ(AWS基準) | タイプ | ファイル名 | 説明 | 作成条件 | |--------|-----------|------|---------| | インフラ | `インフラ設計書.md` | AWS構成、ネットワーク、セキュリティグループ | **常に作成** | | コンテナ | `コンテナ設計書.md` | Docker、ECS/EKS構成 | コンテナ化する場合 | | CI/CD | `CI/CD設計書.md` | パイプライン、デプロイ戦略 | CI/CDパイプラインがある | --- ## 判定ロジック ### フェーズ0で基本設計書から以下を抽出して判定 ``` 基本設計書の分析 ↓ ┌─────────────────────────────────────────────────────────────┐ │ 1. システムアーキテクチャを確認 │ │ - BFFの有無 → BFF設計書 │ │ - API Gatewayの有無 → APIゲートウェイ設計書 │ │ - マイクロサービス構成 → サービス間連携設計書 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 2. 機能一覧を確認 │ │ - API有無 → バックエンド設計書 │ │ - 画面有無 → 画面設計書 + フロントエンド設計書(セット) │ │ - DB操作有無 → データベース設計書 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 3. 外部インターフェースを確認 │ │ - 外部API連携 → 外部API連携設計書 │ │ - Webhook → Webhook設計書 │ │ - ファイル連携 → ファイル連携設計書 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 4. 非機能要件を確認 │ │ - セキュリティ要件が複雑 → セキュリティ設計書 │ │ - パフォーマンス要件が厳しい → パフォーマンス設計書 │ │ - 非同期処理がある → 非同期処理設計書 │ │ - 通知機能がある → 通知設計書 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 5. インフラ要件を確認(AWS基準) │ │ - 常に → インフラ設計書(必須) │ │ - コンテナ化する場合 → コンテナ設計書 │ │ - CI/CDパイプラインがある → CI/CD設計書 │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 各設計書の判定キーワード ### BFF設計書 **作成条件**: 以下のいずれかに該当 - アーキテクチャ図に「BFF」「Backend for Frontend」が含まれる - 技術スタックにBFFフレームワーク(Next.js API Routes, Nuxt server routes等)がある - フロントエンドとバックエンドの間に中間レイヤーがある **含めるべき内容**: - BFFの責務定義 - エンドポイント設計(クライアント向け) - バックエンドAPI呼び出しパターン - データ集約・変換ロジック - キャッシュ戦略 - エラーハンドリング ### 外部API連携設計書 **作成条件**: 以下のいずれかに該当 - 外部システム連携に具体的なサードパーティサービスが記載 - 「外部API」「〇〇API」(Stripe, SendGrid, AWS等)への言及がある - 技術スタックに外部サービスSDKがある **含めるべき内容**: - 連携先API仕様(参照先URL含む) - 認証方式(API Key, OAuth等) - リクエスト/レスポンス形式 - エラーハンドリング・リトライ戦略 - レート制限対策 - テスト戦略(モック、サンドボックス) ### フロントエンド設計書 **作成条件**: **画面設計書がある場合は必ず作成** 画面設計書とフロントエンド設計書は相互補完の関係にある: - 画面設計書: UIレイアウト、遷移、バリデーション(What to show) - フロントエンド設計書: コンポーネント設計、状態管理(How to build) **含めるべき内容**: - コンポーネント階層図 - 状態管理設計(グローバル/ローカル/サーバー状態) - データフェッチング戦略(SSR/CSR/ISR) - ルーティング設計 - エラー境界設計 - アクセシビリティ対応 ### 非同期処理設計書 **作成条件**: 以下のいずれかに該当 - 「非同期」「バッチ」「キュー」「ジョブ」への言及 - メッセージキュー(Redis, RabbitMQ, SQS等)の使用 - 長時間実行処理がある **含めるべき内容**: - ジョブ種別一覧 - キュー設計 - 実行タイミング・スケジュール - リトライ・デッドレター戦略 - 監視・アラート ### 通知設計書 **作成条件**: 以下のいずれかに該当 - 「メール送信」「プッシュ通知」「SMS」への言及 - 通知サービス(SendGrid, FCM, Twilio等)の使用 **含めるべき内容**: - 通知種別一覧 - トリガー条件 - テンプレート設計 - 配信チャネル選択ロジック - 配信ステータス管理 ### インフラ設計書(AWS基準) **作成条件**: **常に作成**(Webアプリケーションには必ずインフラが必要) **含めるべき内容**: - システム構成図(AWS構成) - ネットワーク設計(VPC, サブネット, セキュリティグループ) - コンピューティング(EC2, ECS, Lambda等) - データベース(RDS, DynamoDB, ElastiCache等) - ストレージ(S3, EFS等) - CDN/ロードバランサー(CloudFront, ALB) - 監視・ログ(CloudWatch, X-Ray) - セキュリティ(IAM, Secrets Manager, WAF) - コスト見積もり - 障害対策・DR設計 **AWSサービス判定キーワード**: | カテゴリ | キーワード | 対応AWSサービス | |---------|-----------|----------------| | コンピュート | API, サーバー, コンテナ | ECS, Lambda, EC2 | | データベース | PostgreSQL, MySQL, NoSQL | RDS, Aurora, DynamoDB | | キャッシュ | Redis, キャッシュ | ElastiCache | | ストレージ | ファイル, 画像, S3 | S3, EFS | | メッセージング | キュー, 非同期, イベント | SQS, SNS, EventBridge | | メール | メール送信 | SES | | 認証 | 認証, OAuth | Cognito | | CDN | 静的ファイル, 高速化 | CloudFront | | 監視 | ログ, 監視, アラート | CloudWatch | ### コンテナ設計書 **作成条件**: 以下のいずれかに該当 - 「Docker」「コンテナ」「ECS」「EKS」「Kubernetes」への言及 - マイクロサービスアーキテクチャ **含めるべき内容**: - Dockerfile設計 - コンテナ構成(サービス単位) - オーケストレーション(ECS/EKS) - リソース制限(CPU, メモリ) - ヘルスチェック - ログ収集 - シークレット管理 ### CI/CD設計書 **作成条件**: 以下のいずれかに該当 - 「CI/CD」「パイプライン」「デプロイ」への言及 - GitHub Actions, CodePipeline等の使用 **含めるべき内容**: - パイプライン構成 - ビルド・テスト戦略 - デプロイ戦略(Blue/Green, Canary等) - 環境管理(dev/stg/prod) - ロールバック手順 - 承認フロー --- ## 出力形式 設計書タイプ判定結果は以下の形式で出力: ```markdown ## 設計書タイプ判定結果 ### サブ機能分割 | サブ機能名 | 含まれる機能ID | 理由 | |-----------|---------------|------| | ログイン | F-001, F-007 | ログイン画面で実行、密接に関連 | | ログアウト | F-002, F-003 | ログアウト関連の機能群 | | パスワードリセット | F-005, F-006 | リセットフロー全体 | | 共通 | - | DB設計、インフラ設計等 | ### 判定根拠 | 分析対象 | 検出内容 | 判定された設計書 | 配置場所 | |---------|---------|-----------------|---------| | システムアーキテクチャ | BFFレイヤーあり | BFF設計書 | 各サブ機能 | | 機能一覧 | REST API 5エンドポイント | バックエンド設計書 | 各サブ機能 | | 機能一覧 | 画面3種類 | 画面設計書 | 各サブ機能 | | 外部インターフェース | SendGrid連携 | 外部API連携設計書 | パスワードリセット | | 非機能要件 | メール通知機能 | 通知設計書 | パスワードリセット | | データベース | PostgreSQL | データベース設計書 | 共通 | | インフラ | AWS構成 | インフラ設計書 | 共通 | ### 作成する設計書一覧 #### ログイン/ | # | 設計書名 | 理由 | |---|---------|------| | 1 | 詳細設計書.md | 必須 | | 2 | バックエンド設計書.md | POST /login | | 3 | 画面設計書.md | ログイン画面 | #### パスワードリセット/ | # | 設計書名 | 理由 | |---|---------|------| | 1 | 詳細設計書.md | 必須 | | 2 | バックエンド設計書.md | reset-request, reset | | 3 | 画面設計書.md | リセット画面 | | 4 | 外部API連携設計書.md | SendGrid | #### 共通/ | # | 設計書名 | 理由 | |---|---------|------| | 1 | データベース設計書.md | 全サブ機能で共有 | | 2 | インフラ設計書.md | AWS構成(必須) | | 3 | セキュリティ設計書.md | 認証全体 | ### フォルダ構成 ``` docs/designs/detailed/{親機能名}/ ├── README.md # 親機能の概要 ├── ログイン/ │ ├── 詳細設計書.md │ ├── バックエンド設計書.md │ └── 画面設計書.md ├── パスワードリセット/ │ ├── 詳細設計書.md │ ├── バックエンド設計書.md │ ├── 画面設計書.md │ └── 外部API連携設計書.md └── 共通/ ├── データベース設計書.md ├── インフラ設計書.md └── セキュリティ設計書.md ``` ``` --- ## 参照 - 各設計書のテンプレートは ``detailed-design-writer` skill` を参照 - 共通設計書は `docs/designs/detailed/{親機能名}/共通/` に配置 - プロジェクト全体の共通設計は `docs/designs/detailed/共通設計/` に配置