sdd-design — C4 Model Design Document Generator
0. 目的
- C4モデル(Context, Container, Component, Code)に基づく設計ドキュメントを生成
- Mermaid図で視覚的なアーキテクチャを表現
- API契約、データモデル、セキュリティ設計を含む包括的な設計書
1. 入力と出力
入力
- /sdd-design $ARGUMENTS
- $0 = spec-slug(例: google-ad-report)
- $1 = target-dir(任意。未指定なら
.kiro/specs/<spec-slug>/を使う)
- 前提: requirements.md が既に存在すること
出力(必須)
- /design.md
参照
- templates/design.template.md : 設計書テンプレート
- /requirements.md : 要件定義(入力として読む)
2. 重要ルール
- C4モデル厳守: Context → Container → Component の順で抽象度を下げる
- Mermaid形式: 全図はMermaid記法で記述(プレビュー可能)
- 要件トレーサビリティ: 各コンポーネントがどのREQを実現するか明記
- セキュリティバイデザイン: セキュリティ考慮を設計段階で組み込む
3. 手順
Step A: 要件の読み込み
- /requirements.md を読み込む
- 機能要件・非機能要件・セキュリティ要件を抽出
- ステークホルダーと外部システムを特定
Step B: C4レベル1 - Context図
- システムの境界を定義
- 外部アクター(ユーザー、外部システム)を配置
- 主要なデータフローを示す
Step C: C4レベル2 - Container図
- システム内の主要コンテナ(アプリ、DB、キャッシュ等)を配置
- 技術スタックを明記
- コンテナ間の通信プロトコルを示す
Step D: C4レベル3 - Component図
- 各コンテナ内の主要コンポーネントを配置
- 責務と依存関係を明確化
- 要件とのマッピング(REQ-xxx)
Step E: API契約
- 主要エンドポイントの定義
- リクエスト/レスポンス形式
- エラーコード体系
Step F: データモデル
- エンティティ関係図(ER図)
- 主要テーブル/コレクションの定義
- インデックス戦略
Step G: セキュリティ設計
- 認証・認可の仕組み
- データ暗号化方針
- 監査ログ設計
Step H: 非機能設計
- スケーラビリティ戦略
- 可観測性(Observability)設計
- 障害復旧設計
4. 出力形式
design.template.md に従って出力する。
5. 実行例
/sdd-design google-ad-report
前提:
- .kiro/specs/google-ad-report/requirements.md が存在
出力:
- .kiro/specs/google-ad-report/design.md