yodogawa 2.1.3 → 2.2.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 +134 -94
- package/LICENSE +1 -1
- package/README.md +351 -263
- package/bin/checks/id-trace.js +137 -0
- package/bin/checks/links.js +59 -0
- package/bin/checks/placeholder.js +132 -0
- package/bin/checks/structure.js +127 -0
- package/bin/cli.js +51 -67
- package/bin/commands/doctor.js +128 -0
- package/bin/commands/install.js +58 -0
- package/bin/commands/new-task.js +117 -0
- package/bin/lib/check-cli.js +19 -0
- package/bin/lib/findings.js +31 -0
- package/bin/lib/markdown.js +103 -0
- package/bin/lib/project-spec.js +138 -0
- package/bin/lib/walk-md.js +23 -0
- package/package.json +68 -55
- package/skills/a-001-setup-doc-structure/SKILL.md +68 -68
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -75
- package/skills/a-002-initialize-project/SKILL.md +145 -118
- package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
- package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
- package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
- package/skills/a-002b-define-user-stories/SKILL.md +80 -0
- package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
- package/skills/a-003-create-scenarios/SKILL.md +97 -96
- package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
- package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
- package/skills/a-004-define-domain-model/SKILL.md +107 -98
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
- package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
- package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
- package/skills/a-007-define-tech-stack/SKILL.md +99 -99
- package/skills/a-008-define-repository-structure/SKILL.md +96 -96
- package/skills/a-009-define-screen-design/SKILL.md +103 -103
- package/skills/a-010-define-design-system/SKILL.md +130 -130
- package/skills/a-011-define-data-model/SKILL.md +118 -118
- package/skills/a-012-define-api-spec/SKILL.md +105 -105
- package/skills/a-013-define-architecture/SKILL.md +98 -98
- package/skills/a-014-define-infrastructure/SKILL.md +118 -110
- package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
- package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
- package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
- package/skills/b-001-create-task-directory/SKILL.md +68 -68
- package/skills/b-002-create-task-definition/SKILL.md +114 -114
- package/skills/b-003-create-task-research/SKILL.md +128 -128
- package/skills/b-004-create-task-implementation/SKILL.md +98 -98
- package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
- package/skills/c-001-implement-task/SKILL.md +186 -186
- package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
- package/skills/c-002-update-documentation/SKILL.md +159 -159
- package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +99 -97
- package/templates/project/01-requirements/01-product-brief.md +186 -0
- package/templates/project/01-requirements/02-mvp-scope.md +64 -0
- package/templates/project/01-requirements/03-parking-lot.md +29 -0
- package/templates/project/01-requirements/05-user-stories.md +28 -124
- package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
- package/templates/project/02-behavior/01-core-scenarios.md +80 -0
- package/templates/project/03-domain/01-domain-model.md +120 -339
- package/templates/project/03-domain/01-domain-sketch.md +90 -0
- package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
- package/templates/project/04-design/01-tech-stack.md +367 -367
- package/templates/project/04-design/02-repository-structure.md +391 -391
- package/templates/project/04-design/03-screen-design.md +596 -596
- package/templates/project/04-design/04-design-system.md +261 -261
- package/templates/project/04-design/05-data-model.md +211 -211
- package/templates/project/04-design/06-api-spec.md +226 -226
- package/templates/project/04-design/07-architecture.md +183 -183
- package/templates/project/04-design/08-infrastructure.md +180 -180
- package/templates/project/AI_CONTEXT.md +55 -0
- package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
- package/templates/tasks/task-template/a-definition.md +143 -143
- package/templates/tasks/task-template/b-research.md +185 -185
- package/templates/tasks/task-template/c-implementation.md +200 -200
- package/templates/project/01-requirements/01-system-overview.md +0 -49
- package/templates/project/01-requirements/03-features-planned.md +0 -75
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: a-013-define-architecture
|
|
3
|
-
description: 技術スタック・リポジトリ構造・データモデル・API 仕様を統合し、システムアーキテクチャと ADR を定義する。各設計ドキュメント確定後、全体像と意思決定を文書化する際に使用。
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# DefineArchitecture (a-013)
|
|
9
|
-
|
|
10
|
-
## 目的
|
|
11
|
-
|
|
12
|
-
- これまでに定義された設計(技術スタック、リポジトリ構造、データモデル、API 仕様)を統合する。
|
|
13
|
-
- システム全体の構造を Mermaid 図で視覚化する。
|
|
14
|
-
- 採用したアーキテクチャパターン(レイヤード、クリーンアーキテクチャなど)を明確化する。
|
|
15
|
-
- 重要なアーキテクチャ決定(ADR: Architecture Decision Record)を記録する。
|
|
16
|
-
|
|
17
|
-
## 前提
|
|
18
|
-
|
|
19
|
-
- 以下が作成されていること:
|
|
20
|
-
- `docs/project/04-design/01-tech-stack.md`
|
|
21
|
-
- `docs/project/04-design/02-repository-structure.md`
|
|
22
|
-
- `docs/project/04-design/05-data-model.md`
|
|
23
|
-
- `docs/project/04-design/06-api-spec.md`
|
|
24
|
-
- `docs/project/04-design/` ディレクトリが存在すること。
|
|
25
|
-
|
|
26
|
-
## 手順
|
|
27
|
-
|
|
28
|
-
### 1. ドキュメントと前提条件の確認
|
|
29
|
-
|
|
30
|
-
上記 4 ドキュメントを読み込む。不足があれば対応スキル(`/a-007`, `/a-008`, `/a-011`, `/a-012`)の実行を促す。
|
|
31
|
-
|
|
32
|
-
### 2. テンプレートの準備
|
|
33
|
-
|
|
34
|
-
このスキルの配置ディレクトリ(`skills/a-013-define-architecture/`)を起点に、相対パス `../../templates/project/04-design/07-architecture.md` を Read で読み込み、その内容を `docs/project/04-design/07-architecture.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
|
|
35
|
-
|
|
36
|
-
### 3. アーキテクチャの提案
|
|
37
|
-
|
|
38
|
-
技術スタックとリポジトリ構造からシステムの主要コンポーネント(クライアント、API、DB、外部サービス)を抽出し、全体図の構成案を提示する。
|
|
39
|
-
|
|
40
|
-
- 「[Web] -> [API Server] -> [DB]」
|
|
41
|
-
- 「[API Server] -> [External Service]」
|
|
42
|
-
|
|
43
|
-
### 4. 詳細定義(インタビュー)
|
|
44
|
-
|
|
45
|
-
#### 4.1 システムアーキテクチャ図
|
|
46
|
-
|
|
47
|
-
コンポーネント間の接続、プロトコル(HTTP/gRPC)、データフロー、スケーラビリティ構成(LB、Replica)を Mermaid 図で表現する。記述例は [examples/architecture-templates.md](examples/architecture-templates.md#システムアーキテクチャ図mermaid) を参照。
|
|
48
|
-
|
|
49
|
-
#### 4.2 アーキテクチャパターン
|
|
50
|
-
|
|
51
|
-
採用パターン(レイヤード、クリーン、マイクロサービス等)と選定理由を明確にする。選定ガイドは [examples/architecture-templates.md](examples/architecture-templates.md#アーキテクチャパターン選定ガイド) を参照。
|
|
52
|
-
|
|
53
|
-
#### 4.3 ADR (Architecture Decision Records)
|
|
54
|
-
|
|
55
|
-
重要な技術的決定(DB 選定、認証方式、フレームワーク選定など)を背景・代替案・決定理由・影響の形で記録する。テンプレートは [examples/architecture-templates.md](examples/architecture-templates.md#adrarchitecture-decision-recordテンプレート) を参照。ADR 記録の基準は [reference/structure-check.md](reference/structure-check.md#adr-記録の基準) を参照。
|
|
56
|
-
|
|
57
|
-
### 5. ドキュメント作成
|
|
58
|
-
|
|
59
|
-
`docs/project/04-design/07-architecture.md` に以下を記入する:
|
|
60
|
-
|
|
61
|
-
- システムアーキテクチャ図(Mermaid)
|
|
62
|
-
- 採用アーキテクチャパターンの説明
|
|
63
|
-
- ADR 一覧
|
|
64
|
-
|
|
65
|
-
### 6. 構造チェック
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
grep "\`\`\`mermaid" docs/project/04-design/07-architecture.md \
|
|
69
|
-
&& grep "## 採用アーキテクチャパターン" docs/project/04-design/07-architecture.md \
|
|
70
|
-
&& grep "## ADR" docs/project/04-design/07-architecture.md \
|
|
71
|
-
&& echo "OK" || echo "MISSING SECTION"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
75
|
-
|
|
76
|
-
### 7. Git への追加(任意)
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
git add docs/project/04-design/07-architecture.md
|
|
80
|
-
git commit -m "docs: アーキテクチャ設計の定義"
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## 完了条件
|
|
84
|
-
|
|
85
|
-
- `docs/project/04-design/07-architecture.md` が作成されている。
|
|
86
|
-
- システム全体の構成要素と関係性が可視化されている。
|
|
87
|
-
- 技術選定の背景(ADR)が文書化され、将来の参照用に残されている。
|
|
88
|
-
- ユーザーが内容を承認している。
|
|
89
|
-
|
|
90
|
-
## エスカレーション
|
|
91
|
-
|
|
92
|
-
- **アーキテクチャが複雑すぎる**: 「コンポーネント数が多すぎます。概要図と詳細図に分割するか、主要フローに絞って図示することを検討しましょう。」
|
|
93
|
-
- **決定理由が不明確**: 「[技術名] の選定理由が曖昧です。後で振り返れるよう、比較検討した代替案も含めて ADR に記録しましょう。」
|
|
94
|
-
|
|
95
|
-
## 参考
|
|
96
|
-
|
|
97
|
-
- [examples/architecture-templates.md](examples/architecture-templates.md) — システム全体図、冗長化構成、パターン選定ガイド、ADR テンプレート、ADR の典型例
|
|
98
|
-
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、ADR 記録基準
|
|
1
|
+
---
|
|
2
|
+
name: a-013-define-architecture
|
|
3
|
+
description: 技術スタック・リポジトリ構造・データモデル・API 仕様を統合し、システムアーキテクチャと ADR を定義する。各設計ドキュメント確定後、全体像と意思決定を文書化する際に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# DefineArchitecture (a-013)
|
|
9
|
+
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
12
|
+
- これまでに定義された設計(技術スタック、リポジトリ構造、データモデル、API 仕様)を統合する。
|
|
13
|
+
- システム全体の構造を Mermaid 図で視覚化する。
|
|
14
|
+
- 採用したアーキテクチャパターン(レイヤード、クリーンアーキテクチャなど)を明確化する。
|
|
15
|
+
- 重要なアーキテクチャ決定(ADR: Architecture Decision Record)を記録する。
|
|
16
|
+
|
|
17
|
+
## 前提
|
|
18
|
+
|
|
19
|
+
- 以下が作成されていること:
|
|
20
|
+
- `docs/project/04-design/01-tech-stack.md`
|
|
21
|
+
- `docs/project/04-design/02-repository-structure.md`
|
|
22
|
+
- `docs/project/04-design/05-data-model.md`
|
|
23
|
+
- `docs/project/04-design/06-api-spec.md`
|
|
24
|
+
- `docs/project/04-design/` ディレクトリが存在すること。
|
|
25
|
+
|
|
26
|
+
## 手順
|
|
27
|
+
|
|
28
|
+
### 1. ドキュメントと前提条件の確認
|
|
29
|
+
|
|
30
|
+
上記 4 ドキュメントを読み込む。不足があれば対応スキル(`/a-007`, `/a-008`, `/a-011`, `/a-012`)の実行を促す。
|
|
31
|
+
|
|
32
|
+
### 2. テンプレートの準備
|
|
33
|
+
|
|
34
|
+
このスキルの配置ディレクトリ(`skills/a-013-define-architecture/`)を起点に、相対パス `../../templates/project/04-design/07-architecture.md` を Read で読み込み、その内容を `docs/project/04-design/07-architecture.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
|
|
35
|
+
|
|
36
|
+
### 3. アーキテクチャの提案
|
|
37
|
+
|
|
38
|
+
技術スタックとリポジトリ構造からシステムの主要コンポーネント(クライアント、API、DB、外部サービス)を抽出し、全体図の構成案を提示する。
|
|
39
|
+
|
|
40
|
+
- 「[Web] -> [API Server] -> [DB]」
|
|
41
|
+
- 「[API Server] -> [External Service]」
|
|
42
|
+
|
|
43
|
+
### 4. 詳細定義(インタビュー)
|
|
44
|
+
|
|
45
|
+
#### 4.1 システムアーキテクチャ図
|
|
46
|
+
|
|
47
|
+
コンポーネント間の接続、プロトコル(HTTP/gRPC)、データフロー、スケーラビリティ構成(LB、Replica)を Mermaid 図で表現する。記述例は [examples/architecture-templates.md](examples/architecture-templates.md#システムアーキテクチャ図mermaid) を参照。
|
|
48
|
+
|
|
49
|
+
#### 4.2 アーキテクチャパターン
|
|
50
|
+
|
|
51
|
+
採用パターン(レイヤード、クリーン、マイクロサービス等)と選定理由を明確にする。選定ガイドは [examples/architecture-templates.md](examples/architecture-templates.md#アーキテクチャパターン選定ガイド) を参照。
|
|
52
|
+
|
|
53
|
+
#### 4.3 ADR (Architecture Decision Records)
|
|
54
|
+
|
|
55
|
+
重要な技術的決定(DB 選定、認証方式、フレームワーク選定など)を背景・代替案・決定理由・影響の形で記録する。テンプレートは [examples/architecture-templates.md](examples/architecture-templates.md#adrarchitecture-decision-recordテンプレート) を参照。ADR 記録の基準は [reference/structure-check.md](reference/structure-check.md#adr-記録の基準) を参照。
|
|
56
|
+
|
|
57
|
+
### 5. ドキュメント作成
|
|
58
|
+
|
|
59
|
+
`docs/project/04-design/07-architecture.md` に以下を記入する:
|
|
60
|
+
|
|
61
|
+
- システムアーキテクチャ図(Mermaid)
|
|
62
|
+
- 採用アーキテクチャパターンの説明
|
|
63
|
+
- ADR 一覧
|
|
64
|
+
|
|
65
|
+
### 6. 構造チェック
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
grep "\`\`\`mermaid" docs/project/04-design/07-architecture.md \
|
|
69
|
+
&& grep "## 採用アーキテクチャパターン" docs/project/04-design/07-architecture.md \
|
|
70
|
+
&& grep "## ADR" docs/project/04-design/07-architecture.md \
|
|
71
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
75
|
+
|
|
76
|
+
### 7. Git への追加(任意)
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
git add docs/project/04-design/07-architecture.md
|
|
80
|
+
git commit -m "docs: アーキテクチャ設計の定義"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 完了条件
|
|
84
|
+
|
|
85
|
+
- `docs/project/04-design/07-architecture.md` が作成されている。
|
|
86
|
+
- システム全体の構成要素と関係性が可視化されている。
|
|
87
|
+
- 技術選定の背景(ADR)が文書化され、将来の参照用に残されている。
|
|
88
|
+
- ユーザーが内容を承認している。
|
|
89
|
+
|
|
90
|
+
## エスカレーション
|
|
91
|
+
|
|
92
|
+
- **アーキテクチャが複雑すぎる**: 「コンポーネント数が多すぎます。概要図と詳細図に分割するか、主要フローに絞って図示することを検討しましょう。」
|
|
93
|
+
- **決定理由が不明確**: 「[技術名] の選定理由が曖昧です。後で振り返れるよう、比較検討した代替案も含めて ADR に記録しましょう。」
|
|
94
|
+
|
|
95
|
+
## 参考
|
|
96
|
+
|
|
97
|
+
- [examples/architecture-templates.md](examples/architecture-templates.md) — システム全体図、冗長化構成、パターン選定ガイド、ADR テンプレート、ADR の典型例
|
|
98
|
+
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、ADR 記録基準
|
|
@@ -1,110 +1,118 @@
|
|
|
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
|
-
|
|
20
|
-
- `docs/project/04-design/
|
|
21
|
-
- `docs/project/04-design
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|
+
- Product Brief の「クリティカル制約」を起点に、初期フェーズで保留した**詳細な非機能要件(応答時間・稼働率・スケーラビリティ・RPO/RTO 等の定量値)を本フェーズで定量化・所有する**。
|
|
17
|
+
|
|
18
|
+
## 前提
|
|
19
|
+
|
|
20
|
+
- `docs/project/04-design/01-tech-stack.md` が作成されていること(デプロイ環境、インフラ技術選定済み)。
|
|
21
|
+
- `docs/project/04-design/07-architecture.md` が作成されていること(推奨)。
|
|
22
|
+
- `docs/project/01-requirements/01-product-brief.md` の「クリティカル制約」(詳細 NFR 定量化の起点)。
|
|
23
|
+
- `docs/project/04-design/` ディレクトリが存在すること。
|
|
24
|
+
|
|
25
|
+
## 手順
|
|
26
|
+
|
|
27
|
+
### 1. ドキュメントと前提条件の確認
|
|
28
|
+
|
|
29
|
+
以下を読み込む:
|
|
30
|
+
|
|
31
|
+
- `docs/project/04-design/01-tech-stack.md`
|
|
32
|
+
- `docs/project/04-design/07-architecture.md`
|
|
33
|
+
|
|
34
|
+
不足があれば対応スキルの実行を促す。
|
|
35
|
+
|
|
36
|
+
### 2. テンプレートの準備
|
|
37
|
+
|
|
38
|
+
このスキルの配置ディレクトリ(`skills/a-014-define-infrastructure/`)を起点に、相対パス `../../templates/project/04-design/08-infrastructure.md` を Read で読み込み、その内容を `docs/project/04-design/08-infrastructure.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
|
|
39
|
+
|
|
40
|
+
### 3. インフラ構成の提案
|
|
41
|
+
|
|
42
|
+
技術スタックとアーキテクチャ図から必要なリソース(VPC, ALB, ECS/EC2, RDS 等)を抽出し、構成案を提示する。
|
|
43
|
+
|
|
44
|
+
- 「[Cloud Provider] 上に VPC + Public/Private Subnet 構成」
|
|
45
|
+
- 「DB は Managed Service(RDS 等)」
|
|
46
|
+
|
|
47
|
+
構成図のサンプルは [examples/infrastructure-templates.md](examples/infrastructure-templates.md#インフラ構成図mermaid) を参照。
|
|
48
|
+
|
|
49
|
+
### 4. 詳細定義(インタビュー)
|
|
50
|
+
|
|
51
|
+
#### 4.1 ネットワークとセキュリティ
|
|
52
|
+
|
|
53
|
+
VPC 構成、サブネット分割(Public/Private/Data)、セキュリティグループ、WAF、HTTPS 化。詳細は [examples/infrastructure-templates.md](examples/infrastructure-templates.md#ネットワークセキュリティ) を参照。
|
|
54
|
+
|
|
55
|
+
#### 4.2 コンピューティングとスケーリング
|
|
56
|
+
|
|
57
|
+
インスタンス種別・サイズ、Auto Scaling ポリシー(CPU 負荷等)、デプロイ戦略。
|
|
58
|
+
|
|
59
|
+
#### 4.3 データベースとストレージ
|
|
60
|
+
|
|
61
|
+
Multi-AZ 構成、リードレプリカ、バックアップ(頻度、保持期間)、PITR の有無。
|
|
62
|
+
|
|
63
|
+
#### 4.4 環境構成
|
|
64
|
+
|
|
65
|
+
開発/ステージング/本番環境の差異(リソースサイズ、冗長化、WAF など)。表形式のテンプレートは [examples/infrastructure-templates.md](examples/infrastructure-templates.md#環境構成表) を参照。
|
|
66
|
+
|
|
67
|
+
#### 4.5 詳細な非機能要件(定量化)
|
|
68
|
+
|
|
69
|
+
Product Brief の「クリティカル制約」を起点に、性能(応答時間・スループット)・可用性(稼働率・RPO/RTO)・スケーラビリティ・セキュリティ等を定量化する。初期フェーズでは保留していた定量値をここで確定する。テンプレートは [examples/non-functional-requirements.md](examples/non-functional-requirements.md)、特に指定が無い場合の標準提案値は [examples/nfr-baseline.md](examples/nfr-baseline.md) を参照。
|
|
70
|
+
|
|
71
|
+
### 5. ドキュメント作成
|
|
72
|
+
|
|
73
|
+
`docs/project/04-design/08-infrastructure.md` に以下を記入する:
|
|
74
|
+
|
|
75
|
+
- インフラ構成図(Mermaid)
|
|
76
|
+
- 環境構成表
|
|
77
|
+
- 運用方針(バックアップ、監視、セキュリティ)
|
|
78
|
+
|
|
79
|
+
運用方針の項目一覧は [examples/infrastructure-templates.md](examples/infrastructure-templates.md#運用方針の定義項目) を、非機能要件との対応表は [reference/structure-check.md](reference/structure-check.md#非機能要件との対応確認) を参照。
|
|
80
|
+
|
|
81
|
+
### 6. 構造チェック
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
grep "\`\`\`mermaid" docs/project/04-design/08-infrastructure.md \
|
|
85
|
+
&& grep "## 環境構成" docs/project/04-design/08-infrastructure.md \
|
|
86
|
+
&& grep "## 主要な運用方針" docs/project/04-design/08-infrastructure.md \
|
|
87
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
91
|
+
|
|
92
|
+
### 7. Git への追加(任意)
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
git add docs/project/04-design/08-infrastructure.md
|
|
96
|
+
git commit -m "docs: インフラ設計の定義"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 完了条件
|
|
100
|
+
|
|
101
|
+
- `docs/project/04-design/08-infrastructure.md` が作成されている。
|
|
102
|
+
- インフラの物理構成とネットワーク構成が可視化されている。
|
|
103
|
+
- 環境ごとの差異が明確になっている。
|
|
104
|
+
- 運用上の重要事項(バックアップ、セキュリティ)が定義されている。
|
|
105
|
+
- ユーザーが内容を承認している。
|
|
106
|
+
|
|
107
|
+
## エスカレーション
|
|
108
|
+
|
|
109
|
+
- **コストが高すぎる**: 「冗長化構成によりコストが増加します。ステージング環境は Single-AZ にするなど、コスト最適化を検討しましょう。」
|
|
110
|
+
- **セキュリティリスク**: 「DB がパブリックサブネットに配置されています。プライベートサブネットへの移動を強く推奨します。」
|
|
111
|
+
- 詳細応答例は [reference/structure-check.md](reference/structure-check.md#エスカレーション時の推奨応答) を参照。
|
|
112
|
+
|
|
113
|
+
## 参考
|
|
114
|
+
|
|
115
|
+
- [examples/infrastructure-templates.md](examples/infrastructure-templates.md) — インフラ構成図、環境構成表、運用方針の定義項目
|
|
116
|
+
- [examples/non-functional-requirements.md](examples/non-functional-requirements.md) — 詳細な非機能要件テンプレート(設計フェーズで定量化)
|
|
117
|
+
- [examples/nfr-baseline.md](examples/nfr-baseline.md) — 非機能要件の標準ベースライン提案値
|
|
118
|
+
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、非機能要件対応、レビュー質問
|