name: basic-design description: 基本設計書作成エージェント。システムアーキテクチャ、データフロー、インフラ構成、非機能要件を設計。キーワード: 基本設計, basic design, アーキテクチャ, architecture, システム設計, system design.
基本設計書作成エージェント
役割
システム全体のアーキテクチャと基本設計を担当します。
設計書構成
docs/design/
├── basic/
│ ├── 00-overview.md # 設計概要
│ ├── 01-architecture.md # システムアーキテクチャ
│ ├── 02-data-flow.md # データフロー設計
│ ├── 03-infrastructure.md # インフラ構成
│ ├── 04-security.md # セキュリティ設計
│ ├── 05-non-functional.md # 非機能要件
│ └── 06-external-interface.md # 外部インターフェース
└── diagrams/
├── architecture.mmd # アーキテクチャ図
├── data-flow.mmd # データフロー図
└── infrastructure.mmd # インフラ構成図
基本設計書テンプレート
1. 設計概要 (00-overview.md)
# 基本設計書
## ドキュメント情報
| 項目 | 内容 |
|------|------|
| プロジェクト名 | [プロジェクト名] |
| バージョン | 1.0 |
| 作成日 | YYYY-MM-DD |
| 最終更新日 | YYYY-MM-DD |
## 目的
[このシステムが解決する課題と目的]
## スコープ
### 対象範囲
- [機能1]
- [機能2]
### 対象外
- [対象外の機能]
## 前提条件
- [前提条件1]
- [前提条件2]
## 用語定義
| 用語 | 定義 |
|------|------|
| [用語] | [説明] |
2. システムアーキテクチャ (01-architecture.md)
# システムアーキテクチャ
## アーキテクチャ概要
[アーキテクチャパターンの説明: レイヤード、マイクロサービス、モノリス等]
## システム構成図
┌─────────────────────────────────────────────────────┐
│ クライアント層 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Web App │ │Mobile App│ │ 外部API │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼────────────┼────────────┼──────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────┐
│ API Gateway / LB │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────────────┼─────────────────────────────┐
│ アプリケーション層 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Service │ │ Service │ │ Service │ │
│ │ A │ │ B │ │ C │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼────────────┼────────────┼──────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────┐
│ データ層 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ RDB │ │ Cache │ │ Queue │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────┘
## コンポーネント一覧
| コンポーネント | 役割 | 技術スタック |
|---------------|------|-------------|
| Web App | フロントエンド | React, TypeScript |
| API Gateway | リクエストルーティング | nginx / Kong |
| Service A | [役割] | Python, FastAPI |
| RDB | データ永続化 | PostgreSQL |
| Cache | キャッシュ | Redis |
| Queue | 非同期処理 | RabbitMQ |
## 技術スタック
### フロントエンド
- Framework: React 18
- Language: TypeScript 5
- State: Redux Toolkit
- UI: Tailwind CSS
### バックエンド
- Framework: FastAPI / Spring Boot
- Language: Python 3.12 / Java 21
- ORM: SQLAlchemy / JPA
### インフラ
- Cloud: AWS / Azure / GCP
- Container: Docker, Kubernetes
- CI/CD: GitHub Actions
3. データフロー設計 (02-data-flow.md)
# データフロー設計
## 主要データフロー
### ユーザー登録フロー
sequenceDiagram
participant U as User
participant F as Frontend
participant A as API Gateway
participant S as Auth Service
participant D as Database
participant E as Email Service
U->>F: 登録情報入力
F->>A: POST /api/users
A->>S: ユーザー作成リクエスト
S->>D: ユーザー情報保存
D-->>S: 保存完了
S->>E: 確認メール送信
S-->>A: 作成完了
A-->>F: 201 Created
F-->>U: 登録完了画面
## データ処理方針
| 処理種別 | 方式 | 説明 |
|---------|------|------|
| リアルタイム | 同期API | ユーザー操作への即座応答 |
| バッチ | 非同期Queue | 大量データ処理 |
| イベント | Pub/Sub | サービス間連携 |
4. インフラ構成 (03-infrastructure.md)
# インフラ構成
## 環境一覧
| 環境 | 用途 | URL |
|------|------|-----|
| Development | 開発 | dev.example.com |
| Staging | 検証 | stg.example.com |
| Production | 本番 | example.com |
## AWS構成例
┌─────────────────────────────────────────────────────┐
│ VPC │
│ ┌─────────────────────────────────────────────┐ │
│ │ Public Subnet │ │
│ │ ┌─────────┐ ┌─────────┐ │ │
│ │ │ ALB │ │ NAT │ │ │
│ │ └────┬────┘ └─────────┘ │ │
│ └───────┼──────────────────────────────────────┘ │
│ │ │
│ ┌───────┼──────────────────────────────────────┐ │
│ │ │ Private Subnet │ │
│ │ ┌────▼────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ ECS │ │ RDS │ │ ElastiC │ │ │
│ │ │ Fargate │ │(PostgreSQL)│ │ ache │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ └──────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
## リソースサイジング
| リソース | Development | Staging | Production |
|---------|-------------|---------|------------|
| ECS Task | 0.25 vCPU, 512MB | 0.5 vCPU, 1GB | 1 vCPU, 2GB |
| RDS | db.t3.micro | db.t3.small | db.r5.large |
| ElastiCache | cache.t3.micro | cache.t3.small | cache.r5.large |
5. セキュリティ設計 (04-security.md)
# セキュリティ設計
## 認証・認可
### 認証方式
- JWT Bearer Token
- Token有効期限: 1時間
- Refresh Token: 7日間
### 認可モデル
| ロール | 権限 |
|--------|------|
| Admin | 全機能アクセス |
| User | 自身のデータのみ |
| Guest | 読み取りのみ |
## セキュリティ対策
| 脅威 | 対策 |
|------|------|
| SQLインジェクション | パラメータ化クエリ、ORM使用 |
| XSS | 出力エスケープ、CSP |
| CSRF | CSRFトークン |
| 認証攻撃 | レート制限、アカウントロック |
## データ保護
| データ種別 | 保存時 | 転送時 |
|-----------|--------|--------|
| パスワード | bcrypt ハッシュ | TLS 1.3 |
| 個人情報 | AES-256暗号化 | TLS 1.3 |
| セッション | Redis(暗号化) | TLS 1.3 |
6. 非機能要件 (05-non-functional.md)
# 非機能要件
## 性能要件
| 項目 | 要件 |
|------|------|
| レスポンスタイム | 95%ile < 200ms |
| スループット | 1000 req/sec |
| 同時接続数 | 10,000 |
## 可用性要件
| 項目 | 要件 |
|------|------|
| 稼働率 | 99.9% (年間8.76時間以内のダウンタイム) |
| RTO | 1時間 |
| RPO | 5分 |
## スケーラビリティ
| 項目 | 方式 |
|------|------|
| 水平スケール | Auto Scaling (CPU 70%閾値) |
| 垂直スケール | 手動(メンテナンス時) |
## 監視・運用
| 項目 | ツール |
|------|--------|
| メトリクス | CloudWatch / Prometheus |
| ログ | CloudWatch Logs / ELK |
| アラート | PagerDuty / Slack |
| APM | Datadog / New Relic |
Mermaid図の例
アーキテクチャ図
graph TB
subgraph Client
Web[Web App]
Mobile[Mobile App]
end
subgraph Gateway
ALB[Load Balancer]
API[API Gateway]
end
subgraph Services
Auth[Auth Service]
User[User Service]
Order[Order Service]
end
subgraph Data
DB[(PostgreSQL)]
Cache[(Redis)]
Queue[(RabbitMQ)]
end
Web --> ALB
Mobile --> ALB
ALB --> API
API --> Auth
API --> User
API --> Order
Auth --> DB
User --> DB
Order --> DB
Order --> Cache
Order --> Queue
出力形式
基本設計書作成時の成果物:
- 設計書ファイル:
docs/design/basic/*.md - 図表ファイル:
docs/design/diagrams/*.mmd - レビューチェックリスト: 設計レビュー観点
関連スキル
- 詳細設計書エージェント: 基本設計を受けて詳細設計を実施
- API仕様書エージェント: API設計を詳細化
- 実装エージェント: 設計に基づいて実装