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.
Files changed (75) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +60 -22
  3. package/bin/cli.js +3 -7
  4. package/package.json +1 -1
  5. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  6. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
  7. package/skills/a-002-initialize-project/SKILL.md +124 -289
  8. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  9. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  10. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  11. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  12. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  13. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  14. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  15. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  16. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  17. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  18. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  19. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  20. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  21. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  22. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  23. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  24. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  25. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  26. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  27. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  28. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  29. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  30. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  31. package/skills/a-010-define-design-system/SKILL.md +134 -212
  32. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  33. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  34. package/skills/a-011-define-data-model/SKILL.md +121 -134
  35. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  36. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  37. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  38. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  39. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  40. package/skills/a-013-define-architecture/SKILL.md +101 -128
  41. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  42. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  43. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  44. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  45. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  46. package/skills/a-015-review-design/SKILL.md +88 -140
  47. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  48. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  49. package/skills/b-001-create-task-directory/SKILL.md +68 -78
  50. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  51. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  52. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  53. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  54. package/skills/b-003-create-task-research/SKILL.md +130 -454
  55. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  56. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  57. package/skills/b-004-create-task-implementation/SKILL.md +97 -100
  58. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  59. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  60. package/skills/b-005-review-task/SKILL.md +117 -324
  61. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  62. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  63. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  64. package/skills/c-001-implement-task/SKILL.md +186 -521
  65. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  66. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  67. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  68. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  69. package/skills/c-002-update-documentation/SKILL.md +159 -853
  70. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  71. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  72. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  73. package/templates/tasks/task-template/a-definition.md +1 -1
  74. package/templates/tasks/task-template/b-research.md +1 -1
  75. 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
- # DefineInfrastructure (a-014)
7
-
8
- ## 目的
9
-
10
- - 技術スタックとアーキテクチャ設計を基に、インフラ構成を定義する。
11
- - クラウドリソース、ネットワーク、セキュリティ、監視を含む全体構成を可視化する。
12
- - 環境ごとの構成(開発、ステージング、本番)を明確化する。
13
- - 高可用性、冗長化、スケーラビリティ、セキュリティの方針を定義する。
14
-
15
- ## 前提
16
-
17
- - `docs/project/design/01-tech-stack.md` が作成されていること(デプロイ環境、インフラ技術選定済み)。
18
- - `docs/project/design/07-architecture.md` が作成されていること(推奨)。
19
- - `docs/project/design/` ディレクトリが存在すること。
20
-
21
- ## 手順
22
-
23
- ### 1. ドキュメントと前提条件の確認
24
-
25
- - 必要なドキュメントを読み込む:
26
- - `docs/project/design/01-tech-stack.md`
27
- - `docs/project/design/07-architecture.md`
28
-
29
- - ドキュメントが不足している場合、対応するワークフローの実行を促す。
30
-
31
- ### 2. テンプレートの準備
32
-
33
- - テンプレートをコピーして作業用ファイルを作成する:
34
-
35
- ```bash
36
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
37
- cp "$SCRIPT_DIR/templates/project/04-design/08-infrastructure.md" "docs/project/design/08-infrastructure.md"
38
- ```
39
-
40
- ### 3. インフラ構成の提案
41
-
42
- - 技術スタックとアーキテクチャ図から、必要なインフラリソース(VPC, ALB, EC2/ECS, RDS等)を抽出する。
43
- - **インフラ構成案の提示**:
44
- - 「以下の構成を提案します:」
45
- - 「[Cloud Provider] 上に [Pattern] (例: VPC + Public/Private Subnet) を構築」
46
- - 「DBは [Managed Service] (例: RDS) を使用」
47
-
48
- ### 4. 詳細定義(インタビュー)
49
-
50
- ユーザーからのフィードバックを受け、詳細を定義する。
51
-
52
- #### 4.1 ネットワークとセキュリティ
53
-
54
- - VPC構成、サブネット分割(Public/Private/Data
55
- - セキュリティグループ方針、WAF、HTTPS化
56
-
57
- #### 4.2 コンピューティングとスケーリング
58
-
59
- - インスタンスタイプ/サイズ
60
- - Auto Scalingポリシー(CPU負荷等)
61
-
62
- #### 4.3 データベースとストレージ
63
-
64
- - Multi-AZ構成、リードレプリカの有無
65
- - バックアップ方針(頻度、保持期間)
66
-
67
- #### 4.4 環境構成
68
-
69
- - 開発/ステージング/本番環境の差異(リソースサイズ、冗長化)
70
-
71
- ### 5. ドキュメント作成
72
-
73
- - `docs/project/design/08-infrastructure.md` に決定事項を記入する。
74
- - **必須項目**:
75
- - インフラ構成図 (Mermaid)
76
- - 環境構成表
77
- - 運用方針(バックアップ、監視、セキュリティ)
78
-
79
- ### 6. 完了条件と構造の確認
80
-
81
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
82
- 1. **構造確認**:
83
-
84
- ```bash
85
- # インフラ構成図の確認
86
- grep "\`\`\`mermaid" docs/project/design/08-infrastructure.md && echo "OK" || echo "MISSING: Infra Diagram"
87
- # 環境構成の確認
88
- grep "## 環境構成" docs/project/design/08-infrastructure.md && echo "OK" || echo "MISSING: Environments"
89
- # 運用方針の確認
90
- grep "## 主要な運用方針" docs/project/design/08-infrastructure.md && echo "OK" || echo "MISSING: Operations"
91
- ```
92
-
93
- 2. **チェックリスト**:
94
- - [ ] `docs/project/design/08-infrastructure.md` が作成されている
95
- - [ ] 本番環境の構成(冗長化など)が明確になっている
96
- - [ ] バックアップや監視の方針が記録されている
97
-
98
- ### 7. Git への追加(オプション)
99
-
100
- - ユーザーに確認:「作成したインフラ設計ドキュメントを Git に追加しますか?」
101
- - 「はい」の場合、以下を実行:
102
-
103
- ```bash
104
- git add docs/project/design/08-infrastructure.md
105
- git status
106
- ```
107
-
108
- - 推奨コミットメッセージ:
109
-
110
- ```
111
- docs: インフラ設計の定義
112
-
113
- - インフラ構成図(Mermaid)の作成
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 ServiceRDS 等)」
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
+ ```