yodogawa 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.md +60 -22
- package/bin/cli.js +3 -7
- package/package.json +1 -1
- package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
- package/skills/a-002-initialize-project/SKILL.md +124 -289
- package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
- package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
- package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
- package/skills/a-003-create-scenarios/SKILL.md +99 -142
- package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
- package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
- package/skills/a-004-define-domain-model/SKILL.md +99 -144
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
- package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
- package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
- package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
- package/skills/a-007-define-tech-stack/SKILL.md +102 -130
- package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
- package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
- package/skills/a-008-define-repository-structure/SKILL.md +99 -129
- package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
- package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
- package/skills/a-009-define-screen-design/SKILL.md +106 -130
- package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
- package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
- package/skills/a-010-define-design-system/SKILL.md +134 -212
- package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
- package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
- package/skills/a-011-define-data-model/SKILL.md +121 -134
- package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
- package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
- package/skills/a-012-define-api-spec/SKILL.md +108 -132
- package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
- package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
- package/skills/a-013-define-architecture/SKILL.md +101 -128
- package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
- package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
- package/skills/a-014-define-infrastructure/SKILL.md +113 -130
- package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
- package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
- package/skills/a-015-review-design/SKILL.md +88 -140
- package/skills/a-015-review-design/examples/review-report-template.md +59 -0
- package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
- package/skills/b-001-create-task-directory/SKILL.md +68 -78
- package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
- package/skills/b-002-create-task-definition/SKILL.md +115 -172
- package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
- package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
- package/skills/b-003-create-task-research/SKILL.md +130 -454
- package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
- package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
- package/skills/b-004-create-task-implementation/SKILL.md +97 -100
- package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
- package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
- package/skills/b-005-review-task/SKILL.md +117 -324
- package/skills/b-005-review-task/examples/review-report-template.md +62 -0
- package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
- package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
- package/skills/c-001-implement-task/SKILL.md +186 -521
- package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
- package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
- package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
- package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
- package/skills/c-002-update-documentation/SKILL.md +159 -853
- package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
- package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
- package/templates/tasks/task-template/a-definition.md +1 -1
- package/templates/tasks/task-template/b-research.md +1 -1
- package/templates/tasks/task-template/c-implementation.md +2 -2
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# アーキテクチャ図と ADR のテンプレート
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順3〜5 で使用するシステム全体図と ADR のサンプル。
|
|
4
|
+
|
|
5
|
+
## システムアーキテクチャ図(Mermaid)
|
|
6
|
+
|
|
7
|
+
### シンプルな 3 層構成
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart LR
|
|
11
|
+
Web[Web Client<br/>Next.js] -->|HTTPS| API[API Server<br/>NestJS]
|
|
12
|
+
Mobile[Mobile App] -->|HTTPS| API
|
|
13
|
+
API -->|TCP| DB[(PostgreSQL)]
|
|
14
|
+
API -->|HTTPS| Stripe[Stripe API]
|
|
15
|
+
API -->|SMTP| Mail[SendGrid]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 冗長化・スケーリング構成
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart TB
|
|
22
|
+
subgraph Edge
|
|
23
|
+
CDN[CloudFront] --> LB[ALB]
|
|
24
|
+
end
|
|
25
|
+
subgraph App
|
|
26
|
+
LB --> API1[API #1]
|
|
27
|
+
LB --> API2[API #2]
|
|
28
|
+
end
|
|
29
|
+
subgraph Data
|
|
30
|
+
API1 --> Primary[(Primary DB)]
|
|
31
|
+
API2 --> Primary
|
|
32
|
+
Primary -.replicate.-> Replica[(Read Replica)]
|
|
33
|
+
API1 --> Cache[(Redis)]
|
|
34
|
+
API2 --> Cache
|
|
35
|
+
end
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 記述のポイント
|
|
39
|
+
|
|
40
|
+
- コンポーネント間のプロトコル(HTTPS / gRPC / TCP / SMTP)を矢印ラベルに記載
|
|
41
|
+
- スケールアウト対象(ALB 配下)を `subgraph` でグルーピング
|
|
42
|
+
- 外部サービス(Stripe 等)は独立ノードで明示
|
|
43
|
+
|
|
44
|
+
## アーキテクチャパターン選定ガイド
|
|
45
|
+
|
|
46
|
+
| パターン | 適合シーン |
|
|
47
|
+
|:--|:--|
|
|
48
|
+
| レイヤード | 標準的 Web アプリ、チーム規模小〜中 |
|
|
49
|
+
| クリーンアーキテクチャ | ドメインロジックが複雑、長期運用 |
|
|
50
|
+
| マイクロサービス | 組織/スケール境界が明確、独立デプロイ必須 |
|
|
51
|
+
| モジュラーモノリス | 将来分割したいが初期はモノリスで進めたい |
|
|
52
|
+
| Event-Driven | 非同期処理、拡張性重視 |
|
|
53
|
+
|
|
54
|
+
## ADR(Architecture Decision Record)テンプレート
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
### ADR-001: データベースに PostgreSQL を採用
|
|
58
|
+
|
|
59
|
+
- **ステータス**: Accepted
|
|
60
|
+
- **日付**: YYYY-MM-DD
|
|
61
|
+
|
|
62
|
+
#### 背景(Context)
|
|
63
|
+
|
|
64
|
+
- トランザクション整合性と JSON 柔軟性の両立が必要
|
|
65
|
+
- チームの RDBMS 習熟度が高い
|
|
66
|
+
|
|
67
|
+
#### 決定(Decision)
|
|
68
|
+
|
|
69
|
+
- PostgreSQL 16 を採用
|
|
70
|
+
|
|
71
|
+
#### 代替案(Alternatives)
|
|
72
|
+
|
|
73
|
+
- MySQL 8: エコシステムは強いが JSON 機能が PG より弱い
|
|
74
|
+
- MongoDB: スキーマレスだが結合クエリでコード複雑化
|
|
75
|
+
|
|
76
|
+
#### 影響(Consequences)
|
|
77
|
+
|
|
78
|
+
- プラス: JSONB + リレーション、強い一貫性
|
|
79
|
+
- マイナス: 水平スケーリングに追加設計が必要(将来 Citus 等)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## よく記録する ADR の例
|
|
83
|
+
|
|
84
|
+
- DB 選定(RDBMS vs NoSQL)
|
|
85
|
+
- 認証方式(JWT vs Session vs OAuth)
|
|
86
|
+
- フロントエンドレンダリング(SPA vs SSR vs SSG)
|
|
87
|
+
- 非同期処理(Queue vs Event Bus vs 直接実行)
|
|
88
|
+
- フレームワーク選定
|
|
89
|
+
- キャッシュ戦略
|
|
90
|
+
|
|
91
|
+
## コミットメッセージ例
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
docs: アーキテクチャ設計の定義
|
|
95
|
+
|
|
96
|
+
- システム全体図(Mermaid)の作成
|
|
97
|
+
- アーキテクチャパターンと ADR の記録
|
|
98
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# 構造チェックとレビュー観点
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順6〜7 で使う確認コマンドとレビュー観点。
|
|
4
|
+
|
|
5
|
+
## セクション存在確認
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# アーキテクチャ図の確認
|
|
9
|
+
grep "\`\`\`mermaid" docs/project/design/07-architecture.md && echo "OK" || echo "MISSING: Architecture Diagram"
|
|
10
|
+
# パターン定義の確認
|
|
11
|
+
grep "## 採用アーキテクチャパターン" docs/project/design/07-architecture.md && echo "OK" || echo "MISSING: Pattern definition"
|
|
12
|
+
# ADR セクションの確認
|
|
13
|
+
grep "## ADR" docs/project/design/07-architecture.md && echo "OK" || echo "MISSING: ADR section"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## チェックリスト
|
|
17
|
+
|
|
18
|
+
- [ ] `docs/project/design/07-architecture.md` が作成されている
|
|
19
|
+
- [ ] システム全体像(クライアント / API / DB / 外部サービス)が可視化されている
|
|
20
|
+
- [ ] コンポーネント間のプロトコルがラベルで明示されている
|
|
21
|
+
- [ ] スケーラビリティ・冗長化構成が反映されている
|
|
22
|
+
- [ ] 採用アーキテクチャパターンと理由が明記されている
|
|
23
|
+
- [ ] 重要な技術選定の ADR(背景・決定・代替案・影響)が記録されている
|
|
24
|
+
|
|
25
|
+
## レビュー確認質問
|
|
26
|
+
|
|
27
|
+
- 「技術スタック・リポジトリ構造・データモデル・API 仕様すべてと整合していますか?」
|
|
28
|
+
- 「非機能要件(性能、可用性、セキュリティ)を満たせる構成ですか?」
|
|
29
|
+
- 「将来チームが ADR を読んで意思決定の背景を理解できますか?」
|
|
30
|
+
- 「外部依存(SaaS、API)が明示されていますか?」
|
|
31
|
+
|
|
32
|
+
## ADR 記録の基準
|
|
33
|
+
|
|
34
|
+
- DB / 言語 / フレームワーク選定など後戻りコストが大きいもの
|
|
35
|
+
- 代替案と比較検討した決定
|
|
36
|
+
- セキュリティや性能に影響する設計選択
|
|
37
|
+
- チームのコーディング規約に関わる大枠の方針
|
|
38
|
+
|
|
39
|
+
## Git への追加(任意)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git add docs/project/design/07-architecture.md
|
|
43
|
+
git status
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
推奨コミットメッセージ:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
docs: アーキテクチャ設計の定義
|
|
50
|
+
|
|
51
|
+
- システム全体図(Mermaid)の作成
|
|
52
|
+
- アーキテクチャパターンと ADR の記録
|
|
53
|
+
```
|
|
@@ -1,130 +1,113 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: a-014-define-infrastructure
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- `docs/project/design
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
#### 4.1 ネットワークとセキュリティ
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
- 環境構成と運用方針の記録
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## 完了条件
|
|
118
|
-
|
|
119
|
-
- `docs/project/design/08-infrastructure.md` が作成されている。
|
|
120
|
-
- インフラの物理構成とネットワーク構成が可視化されている。
|
|
121
|
-
- 環境ごとの差異が明確になっている。
|
|
122
|
-
- 運用上の重要事項(バックアップ、セキュリティ)が定義されている。
|
|
123
|
-
- ユーザーが内容を承認している。
|
|
124
|
-
|
|
125
|
-
## エスカレーション
|
|
126
|
-
|
|
127
|
-
- コストが高すぎる場合:
|
|
128
|
-
- 「冗長化構成によりコストが増加します。ステージング環境はSingle-AZにするなど、コスト最適化を検討しましょう。」と提案する。
|
|
129
|
-
- セキュリティリスクがある場合:
|
|
130
|
-
- 「DBがパブリックサブネットに配置されています。プライベートサブネットへの移動を強く推奨します。」と警告する。
|
|
1
|
+
---
|
|
2
|
+
name: a-014-define-infrastructure
|
|
3
|
+
description: アーキテクチャ設計を基にインフラ構成図・環境構成・運用方針を定義する。アーキテクチャ確定後、デプロイ/運用環境を設計する際に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# DefineInfrastructure (a-014)
|
|
9
|
+
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
12
|
+
- 技術スタックとアーキテクチャ設計を基に、インフラ構成を定義する。
|
|
13
|
+
- クラウドリソース、ネットワーク、セキュリティ、監視を含む全体構成を可視化する。
|
|
14
|
+
- 環境ごとの構成(開発、ステージング、本番)を明確化する。
|
|
15
|
+
- 高可用性、冗長化、スケーラビリティ、セキュリティの方針を定義する。
|
|
16
|
+
|
|
17
|
+
## 前提
|
|
18
|
+
|
|
19
|
+
- `docs/project/design/01-tech-stack.md` が作成されていること(デプロイ環境、インフラ技術選定済み)。
|
|
20
|
+
- `docs/project/design/07-architecture.md` が作成されていること(推奨)。
|
|
21
|
+
- `docs/project/design/` ディレクトリが存在すること。
|
|
22
|
+
|
|
23
|
+
## 手順
|
|
24
|
+
|
|
25
|
+
### 1. ドキュメントと前提条件の確認
|
|
26
|
+
|
|
27
|
+
以下を読み込む:
|
|
28
|
+
|
|
29
|
+
- `docs/project/design/01-tech-stack.md`
|
|
30
|
+
- `docs/project/design/07-architecture.md`
|
|
31
|
+
|
|
32
|
+
不足があれば対応スキルの実行を促す。
|
|
33
|
+
|
|
34
|
+
### 2. テンプレートの準備
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
|
|
38
|
+
cp "$SCRIPT_DIR/templates/project/04-design/08-infrastructure.md" "docs/project/design/08-infrastructure.md"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. インフラ構成の提案
|
|
42
|
+
|
|
43
|
+
技術スタックとアーキテクチャ図から必要なリソース(VPC, ALB, ECS/EC2, RDS 等)を抽出し、構成案を提示する。
|
|
44
|
+
|
|
45
|
+
- 「[Cloud Provider] 上に VPC + Public/Private Subnet 構成」
|
|
46
|
+
- 「DB は Managed Service(RDS 等)」
|
|
47
|
+
|
|
48
|
+
構成図のサンプルは [examples/infrastructure-templates.md](examples/infrastructure-templates.md#インフラ構成図mermaid) を参照。
|
|
49
|
+
|
|
50
|
+
### 4. 詳細定義(インタビュー)
|
|
51
|
+
|
|
52
|
+
#### 4.1 ネットワークとセキュリティ
|
|
53
|
+
|
|
54
|
+
VPC 構成、サブネット分割(Public/Private/Data)、セキュリティグループ、WAF、HTTPS 化。詳細は [examples/infrastructure-templates.md](examples/infrastructure-templates.md#ネットワークセキュリティ) を参照。
|
|
55
|
+
|
|
56
|
+
#### 4.2 コンピューティングとスケーリング
|
|
57
|
+
|
|
58
|
+
インスタンス種別・サイズ、Auto Scaling ポリシー(CPU 負荷等)、デプロイ戦略。
|
|
59
|
+
|
|
60
|
+
#### 4.3 データベースとストレージ
|
|
61
|
+
|
|
62
|
+
Multi-AZ 構成、リードレプリカ、バックアップ(頻度、保持期間)、PITR の有無。
|
|
63
|
+
|
|
64
|
+
#### 4.4 環境構成
|
|
65
|
+
|
|
66
|
+
開発/ステージング/本番環境の差異(リソースサイズ、冗長化、WAF など)。表形式のテンプレートは [examples/infrastructure-templates.md](examples/infrastructure-templates.md#環境構成表) を参照。
|
|
67
|
+
|
|
68
|
+
### 5. ドキュメント作成
|
|
69
|
+
|
|
70
|
+
`docs/project/design/08-infrastructure.md` に以下を記入する:
|
|
71
|
+
|
|
72
|
+
- インフラ構成図(Mermaid)
|
|
73
|
+
- 環境構成表
|
|
74
|
+
- 運用方針(バックアップ、監視、セキュリティ)
|
|
75
|
+
|
|
76
|
+
運用方針の項目一覧は [examples/infrastructure-templates.md](examples/infrastructure-templates.md#運用方針の定義項目) を、非機能要件との対応表は [reference/structure-check.md](reference/structure-check.md#非機能要件との対応確認) を参照。
|
|
77
|
+
|
|
78
|
+
### 6. 構造チェック
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
grep "\`\`\`mermaid" docs/project/design/08-infrastructure.md \
|
|
82
|
+
&& grep "## 環境構成" docs/project/design/08-infrastructure.md \
|
|
83
|
+
&& grep "## 主要な運用方針" docs/project/design/08-infrastructure.md \
|
|
84
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
88
|
+
|
|
89
|
+
### 7. Git への追加(任意)
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
git add docs/project/design/08-infrastructure.md
|
|
93
|
+
git commit -m "docs: インフラ設計の定義"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 完了条件
|
|
97
|
+
|
|
98
|
+
- `docs/project/design/08-infrastructure.md` が作成されている。
|
|
99
|
+
- インフラの物理構成とネットワーク構成が可視化されている。
|
|
100
|
+
- 環境ごとの差異が明確になっている。
|
|
101
|
+
- 運用上の重要事項(バックアップ、セキュリティ)が定義されている。
|
|
102
|
+
- ユーザーが内容を承認している。
|
|
103
|
+
|
|
104
|
+
## エスカレーション
|
|
105
|
+
|
|
106
|
+
- **コストが高すぎる**: 「冗長化構成によりコストが増加します。ステージング環境は Single-AZ にするなど、コスト最適化を検討しましょう。」
|
|
107
|
+
- **セキュリティリスク**: 「DB がパブリックサブネットに配置されています。プライベートサブネットへの移動を強く推奨します。」
|
|
108
|
+
- 詳細応答例は [reference/structure-check.md](reference/structure-check.md#エスカレーション時の推奨応答) を参照。
|
|
109
|
+
|
|
110
|
+
## 参考
|
|
111
|
+
|
|
112
|
+
- [examples/infrastructure-templates.md](examples/infrastructure-templates.md) — インフラ構成図、環境構成表、運用方針の定義項目
|
|
113
|
+
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、非機能要件対応、レビュー質問
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# インフラ構成図と環境構成のテンプレート
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順3〜5 で使用するインフラ構成図・環境表・運用方針のサンプル。
|
|
4
|
+
|
|
5
|
+
## インフラ構成図(Mermaid)
|
|
6
|
+
|
|
7
|
+
### AWS 標準構成例
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
flowchart TB
|
|
11
|
+
Users((Users)) --> CF[CloudFront]
|
|
12
|
+
CF --> S3[S3<br/>静的アセット]
|
|
13
|
+
CF --> ALB[ALB<br/>Public Subnet]
|
|
14
|
+
|
|
15
|
+
subgraph VPC[VPC 10.0.0.0/16]
|
|
16
|
+
subgraph PublicSubnet[Public Subnet]
|
|
17
|
+
ALB
|
|
18
|
+
NAT[NAT Gateway]
|
|
19
|
+
end
|
|
20
|
+
subgraph PrivateSubnet[Private Subnet]
|
|
21
|
+
ECS[ECS Fargate<br/>API]
|
|
22
|
+
end
|
|
23
|
+
subgraph DataSubnet[Data Subnet]
|
|
24
|
+
RDS[(RDS Multi-AZ<br/>PostgreSQL)]
|
|
25
|
+
Redis[(ElastiCache<br/>Redis)]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
ALB --> ECS
|
|
30
|
+
ECS --> RDS
|
|
31
|
+
ECS --> Redis
|
|
32
|
+
ECS --> NAT --> Internet[Internet<br/>外部 API]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 記述のポイント
|
|
36
|
+
|
|
37
|
+
- VPC / Subnet 階層を `subgraph` でグルーピング
|
|
38
|
+
- Public / Private / Data の分離を明示
|
|
39
|
+
- マネージドサービス(RDS, ElastiCache)はカッコ型ノード `[(...)]`
|
|
40
|
+
|
|
41
|
+
## 環境構成表
|
|
42
|
+
|
|
43
|
+
| 項目 | 開発 | ステージング | 本番 |
|
|
44
|
+
|:--|:--|:--|:--|
|
|
45
|
+
| API インスタンス | Fargate 0.25vCPU × 1 | Fargate 0.5vCPU × 1 | Fargate 1vCPU × 2 |
|
|
46
|
+
| DB | RDS t4g.micro Single-AZ | RDS t4g.small Single-AZ | RDS m7g.large Multi-AZ |
|
|
47
|
+
| リードレプリカ | なし | なし | 1 台 |
|
|
48
|
+
| キャッシュ | なし | ElastiCache t4g.micro | ElastiCache t4g.small × 2 |
|
|
49
|
+
| WAF | 無効 | 有効 | 有効 |
|
|
50
|
+
| バックアップ | 1 日保持 | 3 日 | 30 日 + 週次スナップショット |
|
|
51
|
+
| 監視アラート | Slack 低頻度 | Slack | Slack + PagerDuty |
|
|
52
|
+
|
|
53
|
+
## 運用方針の定義項目
|
|
54
|
+
|
|
55
|
+
### ネットワーク・セキュリティ
|
|
56
|
+
|
|
57
|
+
- VPC 構成、サブネット CIDR、AZ 配置
|
|
58
|
+
- セキュリティグループ方針(最小権限)
|
|
59
|
+
- WAF ルール、Rate Limit
|
|
60
|
+
- HTTPS 化(ACM / Let's Encrypt)
|
|
61
|
+
- Bastion / SSM Session Manager 経由のアクセス
|
|
62
|
+
|
|
63
|
+
### コンピューティングとスケーリング
|
|
64
|
+
|
|
65
|
+
- インスタンス種別(Fargate / EC2 / Cloud Run)
|
|
66
|
+
- Auto Scaling ポリシー(CPU 70%、ALB RequestCount)
|
|
67
|
+
- デプロイ戦略(Blue/Green、Rolling)
|
|
68
|
+
|
|
69
|
+
### データベースとストレージ
|
|
70
|
+
|
|
71
|
+
- Multi-AZ の有無
|
|
72
|
+
- リードレプリカ構成
|
|
73
|
+
- バックアップ: 自動(日次、保持期間)、手動スナップショット
|
|
74
|
+
- ポイントインタイムリカバリ(PITR)
|
|
75
|
+
|
|
76
|
+
### 監視とログ
|
|
77
|
+
|
|
78
|
+
- メトリクス: CloudWatch / Datadog
|
|
79
|
+
- ログ集約: CloudWatch Logs / OpenSearch
|
|
80
|
+
- アラート閾値(CPU 80%、エラーレート 1%、p95 レイテンシ)
|
|
81
|
+
- オンコール体制
|
|
82
|
+
|
|
83
|
+
### セキュリティ
|
|
84
|
+
|
|
85
|
+
- シークレット管理(Secrets Manager / Parameter Store)
|
|
86
|
+
- 暗号化(KMS による保管時暗号化、TLS 1.2+)
|
|
87
|
+
- IAM 最小権限、MFA 必須
|
|
88
|
+
- 監査ログ(CloudTrail)
|
|
89
|
+
|
|
90
|
+
## コミットメッセージ例
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
docs: インフラ設計の定義
|
|
94
|
+
|
|
95
|
+
- インフラ構成図(Mermaid)の作成
|
|
96
|
+
- 環境構成と運用方針の記録
|
|
97
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 構造チェックとレビュー観点
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順6〜7 で使う確認コマンドとレビュー観点。
|
|
4
|
+
|
|
5
|
+
## セクション存在確認
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# インフラ構成図の確認
|
|
9
|
+
grep "\`\`\`mermaid" docs/project/design/08-infrastructure.md && echo "OK" || echo "MISSING: Infra Diagram"
|
|
10
|
+
# 環境構成の確認
|
|
11
|
+
grep "## 環境構成" docs/project/design/08-infrastructure.md && echo "OK" || echo "MISSING: Environments"
|
|
12
|
+
# 運用方針の確認
|
|
13
|
+
grep "## 主要な運用方針" docs/project/design/08-infrastructure.md && echo "OK" || echo "MISSING: Operations"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## チェックリスト
|
|
17
|
+
|
|
18
|
+
- [ ] `docs/project/design/08-infrastructure.md` が作成されている
|
|
19
|
+
- [ ] 本番環境の構成(冗長化、Multi-AZ など)が明確
|
|
20
|
+
- [ ] ネットワーク分離(Public / Private / Data)が図示されている
|
|
21
|
+
- [ ] セキュリティグループ方針と WAF 設定が記録されている
|
|
22
|
+
- [ ] バックアップ頻度・保持期間が定義されている
|
|
23
|
+
- [ ] Auto Scaling ポリシーが定義されている
|
|
24
|
+
- [ ] 監視・アラート閾値が定義されている
|
|
25
|
+
- [ ] 環境ごとの差異(開発 / ステージング / 本番)が表形式で記録されている
|
|
26
|
+
|
|
27
|
+
## 非機能要件との対応確認
|
|
28
|
+
|
|
29
|
+
| 非機能要件 | インフラ設計での対応 |
|
|
30
|
+
|:--|:--|
|
|
31
|
+
| 可用性 99.9% | Multi-AZ、Auto Scaling、Health Check |
|
|
32
|
+
| p95 < 500ms | CDN、Read Replica、Redis キャッシュ |
|
|
33
|
+
| RPO 1 時間以内 | 自動バックアップ + PITR |
|
|
34
|
+
| RTO 30 分以内 | Multi-AZ フェイルオーバ |
|
|
35
|
+
| 監査ログ | CloudTrail、アクセスログ保持 |
|
|
36
|
+
|
|
37
|
+
## レビュー確認質問
|
|
38
|
+
|
|
39
|
+
- 「アーキテクチャ図のコンポーネントがすべてインフラに反映されていますか?」
|
|
40
|
+
- 「コスト試算は許容範囲ですか?」
|
|
41
|
+
- 「災害復旧(DR)の RPO / RTO を満たせますか?」
|
|
42
|
+
- 「セキュリティベストプラクティス(最小権限、暗号化)は守られていますか?」
|
|
43
|
+
|
|
44
|
+
## エスカレーション時の推奨応答
|
|
45
|
+
|
|
46
|
+
- **コスト過大**: 「冗長化によりコスト増。ステージング環境は Single-AZ にするなど最適化を検討しましょう。」
|
|
47
|
+
- **セキュリティリスク**: 「DB がパブリックサブネットに配置されています。プライベートサブネットへの移動を強く推奨します。」
|
|
48
|
+
|
|
49
|
+
## Git への追加(任意)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
git add docs/project/design/08-infrastructure.md
|
|
53
|
+
git status
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
推奨コミットメッセージ:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
docs: インフラ設計の定義
|
|
60
|
+
|
|
61
|
+
- インフラ構成図(Mermaid)の作成
|
|
62
|
+
- 環境構成と運用方針の記録
|
|
63
|
+
```
|