yodogawa 2.1.3 → 2.3.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 (89) hide show
  1. package/CHANGELOG.md +140 -94
  2. package/LICENSE +1 -1
  3. package/README.md +362 -263
  4. package/bin/checks/id-trace.js +137 -0
  5. package/bin/checks/links.js +59 -0
  6. package/bin/checks/placeholder.js +132 -0
  7. package/bin/checks/structure.js +127 -0
  8. package/bin/cli.js +51 -67
  9. package/bin/commands/doctor.js +128 -0
  10. package/bin/commands/install.js +58 -0
  11. package/bin/commands/new-task.js +117 -0
  12. package/bin/lib/check-cli.js +19 -0
  13. package/bin/lib/findings.js +31 -0
  14. package/bin/lib/markdown.js +103 -0
  15. package/bin/lib/project-spec.js +138 -0
  16. package/bin/lib/walk-md.js +23 -0
  17. package/package.json +68 -55
  18. package/skills/a-001-setup-doc-structure/SKILL.md +68 -68
  19. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -75
  20. package/skills/a-002-initialize-project/SKILL.md +145 -118
  21. package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
  22. package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
  23. package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
  24. package/skills/a-002b-define-user-stories/SKILL.md +80 -0
  25. package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
  26. package/skills/a-003-create-scenarios/SKILL.md +97 -96
  27. package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
  28. package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
  29. package/skills/a-004-define-domain-model/SKILL.md +107 -98
  30. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
  31. package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
  32. package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
  33. package/skills/a-006-review-requirements-domain/SKILL.md +79 -29
  34. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +40 -25
  35. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +67 -24
  36. package/skills/a-007-define-tech-stack/SKILL.md +99 -99
  37. package/skills/a-008-define-repository-structure/SKILL.md +96 -96
  38. package/skills/a-009-define-screen-design/SKILL.md +103 -103
  39. package/skills/a-010-define-design-system/SKILL.md +130 -130
  40. package/skills/a-011-define-data-model/SKILL.md +118 -118
  41. package/skills/a-012-define-api-spec/SKILL.md +105 -105
  42. package/skills/a-013-define-architecture/SKILL.md +98 -98
  43. package/skills/a-014-define-infrastructure/SKILL.md +118 -110
  44. package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
  45. package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
  46. package/skills/a-015-review-design/SKILL.md +15 -11
  47. package/skills/a-015-review-design/examples/review-report-template.md +17 -29
  48. package/skills/a-015-review-design/reference/consistency-checks.md +5 -3
  49. package/skills/b-001-create-task-directory/SKILL.md +68 -68
  50. package/skills/b-002-create-task-definition/SKILL.md +114 -114
  51. package/skills/b-003-create-task-research/SKILL.md +130 -128
  52. package/skills/b-004-create-task-implementation/SKILL.md +98 -98
  53. package/skills/b-005-review-task/SKILL.md +40 -24
  54. package/skills/b-005-review-task/examples/review-report-template.md +25 -35
  55. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
  56. package/skills/b-005-review-task/reference/consistency-checks.md +70 -11
  57. package/skills/c-001-implement-task/SKILL.md +186 -186
  58. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
  59. package/skills/c-002-update-documentation/SKILL.md +159 -159
  60. package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
  61. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +99 -97
  62. package/skills/d-001-review-retrospective/SKILL.md +93 -0
  63. package/skills/d-001-review-retrospective/examples/retrospective-report-template.md +50 -0
  64. package/skills/d-001-review-retrospective/reference/friction-point-mapping.md +30 -0
  65. package/templates/LESSONS.md +15 -0
  66. package/templates/project/01-requirements/01-product-brief.md +186 -0
  67. package/templates/project/01-requirements/02-mvp-scope.md +64 -0
  68. package/templates/project/01-requirements/03-parking-lot.md +29 -0
  69. package/templates/project/01-requirements/05-user-stories.md +28 -124
  70. package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
  71. package/templates/project/02-behavior/01-core-scenarios.md +80 -0
  72. package/templates/project/03-domain/01-domain-model.md +120 -339
  73. package/templates/project/03-domain/01-domain-sketch.md +90 -0
  74. package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
  75. package/templates/project/04-design/01-tech-stack.md +367 -367
  76. package/templates/project/04-design/02-repository-structure.md +391 -391
  77. package/templates/project/04-design/03-screen-design.md +596 -596
  78. package/templates/project/04-design/04-design-system.md +261 -261
  79. package/templates/project/04-design/05-data-model.md +211 -211
  80. package/templates/project/04-design/06-api-spec.md +226 -226
  81. package/templates/project/04-design/07-architecture.md +183 -183
  82. package/templates/project/04-design/08-infrastructure.md +180 -180
  83. package/templates/project/AI_CONTEXT.md +55 -0
  84. package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
  85. package/templates/tasks/task-template/a-definition.md +143 -143
  86. package/templates/tasks/task-template/b-research.md +185 -185
  87. package/templates/tasks/task-template/c-implementation.md +200 -200
  88. package/templates/project/01-requirements/01-system-overview.md +0 -49
  89. package/templates/project/01-requirements/03-features-planned.md +0 -75
@@ -1,105 +1,105 @@
1
- ---
2
- name: a-012-define-api-spec
3
- description: データモデルと画面設計から API 仕様(認証方式・エンドポイント一覧・共通レスポンス形式)を定義する。データモデル確定後、フロント/バック間のインターフェースを固める際に使用。
4
- disable-model-invocation: true
5
- allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
- ---
7
-
8
- # DefineAPISpec (a-012)
9
-
10
- ## 目的
11
-
12
- - データモデルと画面設計を基に、API 仕様の基本設計を定義する。
13
- - API 設計スタイル(REST、GraphQL、gRPC、tRPC)を決定する。
14
- - 認証・認可方式を明確化する。
15
- - エンドポイント一覧(メソッド、パス、説明、認証要否)を定義する。
16
- - 共通レスポンス形式(成功/エラー)を定義する。
17
-
18
- ## 前提
19
-
20
- - `docs/project/04-design/01-tech-stack.md` が作成されていること(API スタイル選定済み)。
21
- - `docs/project/04-design/05-data-model.md` が作成されていること。
22
- - `docs/project/04-design/03-screen-design.md` が作成されていること。
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/05-data-model.md`
33
- - `docs/project/04-design/03-screen-design.md`
34
-
35
- 不足があれば対応スキルの実行を促す。
36
-
37
- ### 2. テンプレートの準備
38
-
39
- このスキルの配置ディレクトリ(`skills/a-012-define-api-spec/`)を起点に、相対パス `../../templates/project/04-design/06-api-spec.md` を Read で読み込み、その内容を `docs/project/04-design/06-api-spec.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
40
-
41
- ### 3. API スタイルの確認と提案
42
-
43
- 技術スタックで選定された API スタイル(REST, GraphQL 等)を確認し、データモデルと画面設計から必要なリソースと操作を抽出する。スタイル別の特徴は [examples/api-templates.md](examples/api-templates.md#api-スタイル別の特徴) を参照。
44
-
45
- - 「Users: 一覧, 詳細, 作成, 更新, 削除」
46
- - 「Auth: ログイン, 登録, リフレッシュ」
47
-
48
- ### 4. 詳細定義(インタビュー)
49
-
50
- #### 4.1 認証・認可
51
-
52
- 認証方式(JWT / OAuth 等)、トークンの保存先(Cookie vs Header)、ロール・スコープ定義。テンプレートは [examples/api-templates.md](examples/api-templates.md#認証認可仕様のテンプレート) を参照。
53
-
54
- #### 4.2 エンドポイント詳細
55
-
56
- 各リソースのパス設計(RESTful 原則)、認証の要否、特殊アクション(`/cancel`, `/publish` 等)。一覧テーブルとパス設計原則は [examples/api-templates.md](examples/api-templates.md#エンドポイント一覧テーブル) を参照。
57
-
58
- #### 4.3 共通レスポンス形式
59
-
60
- 成功・エラー構造、ページネーション、エラーコード体系。JSON サンプルは [examples/api-templates.md](examples/api-templates.md#共通レスポンス形式) を参照。
61
-
62
- ### 5. ドキュメント作成
63
-
64
- `docs/project/04-design/06-api-spec.md` に以下を記入する:
65
-
66
- - 認証・認可仕様
67
- - エンドポイント一覧(リソース別)
68
- - 共通レスポンス形式
69
- - エラーコード体系
70
-
71
- ### 6. 構造チェック
72
-
73
- ```bash
74
- grep "## 認証・認可" docs/project/04-design/06-api-spec.md \
75
- && grep "## エンドポイント一覧" docs/project/04-design/06-api-spec.md \
76
- && grep "## 共通レスポンス形式" docs/project/04-design/06-api-spec.md \
77
- && echo "OK" || echo "MISSING SECTION"
78
- ```
79
-
80
- 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
81
-
82
- ### 7. Git への追加(任意)
83
-
84
- ```bash
85
- git add docs/project/04-design/06-api-spec.md
86
- git commit -m "docs: API 仕様(基本設計)の作成"
87
- ```
88
-
89
- ## 完了条件
90
-
91
- - `docs/project/04-design/06-api-spec.md` が作成されている。
92
- - 認証・認可の仕組みが定義されている。
93
- - エンドポイント一覧(メソッド、パス、認証要否)が定義されている。
94
- - 共通レスポンス形式(成功/エラー)が定義されている。
95
- - ユーザーが内容を承認している。
96
-
97
- ## エスカレーション
98
-
99
- - **API スタイルが未定**: 「`/a-007-define-tech-stack` に戻って選定してください。」
100
- - **データモデルとの不整合**: 「データモデルに存在しないリソースのエンドポイントが要求されています。データモデルを見直すか、API だけの概念として定義するか確認してください。」
101
-
102
- ## 参考
103
-
104
- - [examples/api-templates.md](examples/api-templates.md) — API スタイル比較、認証・認可テンプレート、エンドポイント一覧、共通レスポンス、エラーコード体系
105
- - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
1
+ ---
2
+ name: a-012-define-api-spec
3
+ description: データモデルと画面設計から API 仕様(認証方式・エンドポイント一覧・共通レスポンス形式)を定義する。データモデル確定後、フロント/バック間のインターフェースを固める際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineAPISpec (a-012)
9
+
10
+ ## 目的
11
+
12
+ - データモデルと画面設計を基に、API 仕様の基本設計を定義する。
13
+ - API 設計スタイル(REST、GraphQL、gRPC、tRPC)を決定する。
14
+ - 認証・認可方式を明確化する。
15
+ - エンドポイント一覧(メソッド、パス、説明、認証要否)を定義する。
16
+ - 共通レスポンス形式(成功/エラー)を定義する。
17
+
18
+ ## 前提
19
+
20
+ - `docs/project/04-design/01-tech-stack.md` が作成されていること(API スタイル選定済み)。
21
+ - `docs/project/04-design/05-data-model.md` が作成されていること。
22
+ - `docs/project/04-design/03-screen-design.md` が作成されていること。
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/05-data-model.md`
33
+ - `docs/project/04-design/03-screen-design.md`
34
+
35
+ 不足があれば対応スキルの実行を促す。
36
+
37
+ ### 2. テンプレートの準備
38
+
39
+ このスキルの配置ディレクトリ(`skills/a-012-define-api-spec/`)を起点に、相対パス `../../templates/project/04-design/06-api-spec.md` を Read で読み込み、その内容を `docs/project/04-design/06-api-spec.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/04-design/`)が無ければ作成する。
40
+
41
+ ### 3. API スタイルの確認と提案
42
+
43
+ 技術スタックで選定された API スタイル(REST, GraphQL 等)を確認し、データモデルと画面設計から必要なリソースと操作を抽出する。スタイル別の特徴は [examples/api-templates.md](examples/api-templates.md#api-スタイル別の特徴) を参照。
44
+
45
+ - 「Users: 一覧, 詳細, 作成, 更新, 削除」
46
+ - 「Auth: ログイン, 登録, リフレッシュ」
47
+
48
+ ### 4. 詳細定義(インタビュー)
49
+
50
+ #### 4.1 認証・認可
51
+
52
+ 認証方式(JWT / OAuth 等)、トークンの保存先(Cookie vs Header)、ロール・スコープ定義。テンプレートは [examples/api-templates.md](examples/api-templates.md#認証認可仕様のテンプレート) を参照。
53
+
54
+ #### 4.2 エンドポイント詳細
55
+
56
+ 各リソースのパス設計(RESTful 原則)、認証の要否、特殊アクション(`/cancel`, `/publish` 等)。一覧テーブルとパス設計原則は [examples/api-templates.md](examples/api-templates.md#エンドポイント一覧テーブル) を参照。
57
+
58
+ #### 4.3 共通レスポンス形式
59
+
60
+ 成功・エラー構造、ページネーション、エラーコード体系。JSON サンプルは [examples/api-templates.md](examples/api-templates.md#共通レスポンス形式) を参照。
61
+
62
+ ### 5. ドキュメント作成
63
+
64
+ `docs/project/04-design/06-api-spec.md` に以下を記入する:
65
+
66
+ - 認証・認可仕様
67
+ - エンドポイント一覧(リソース別)
68
+ - 共通レスポンス形式
69
+ - エラーコード体系
70
+
71
+ ### 6. 構造チェック
72
+
73
+ ```bash
74
+ grep "## 認証・認可" docs/project/04-design/06-api-spec.md \
75
+ && grep "## エンドポイント一覧" docs/project/04-design/06-api-spec.md \
76
+ && grep "## 共通レスポンス形式" docs/project/04-design/06-api-spec.md \
77
+ && echo "OK" || echo "MISSING SECTION"
78
+ ```
79
+
80
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
81
+
82
+ ### 7. Git への追加(任意)
83
+
84
+ ```bash
85
+ git add docs/project/04-design/06-api-spec.md
86
+ git commit -m "docs: API 仕様(基本設計)の作成"
87
+ ```
88
+
89
+ ## 完了条件
90
+
91
+ - `docs/project/04-design/06-api-spec.md` が作成されている。
92
+ - 認証・認可の仕組みが定義されている。
93
+ - エンドポイント一覧(メソッド、パス、認証要否)が定義されている。
94
+ - 共通レスポンス形式(成功/エラー)が定義されている。
95
+ - ユーザーが内容を承認している。
96
+
97
+ ## エスカレーション
98
+
99
+ - **API スタイルが未定**: 「`/a-007-define-tech-stack` に戻って選定してください。」
100
+ - **データモデルとの不整合**: 「データモデルに存在しないリソースのエンドポイントが要求されています。データモデルを見直すか、API だけの概念として定義するか確認してください。」
101
+
102
+ ## 参考
103
+
104
+ - [examples/api-templates.md](examples/api-templates.md) — API スタイル比較、認証・認可テンプレート、エンドポイント一覧、共通レスポンス、エラーコード体系
105
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
@@ -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 記録基準