spec-runner 1.8.0 → 1.9.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 (32) hide show
  1. package/package.json +1 -1
  2. package/spec-runner/templates/.claude/rules/design-docs.md +2 -1
  3. package/spec-runner/templates/.claude/skills/ddd-seed/SKILL.md +35 -8
  4. package/spec-runner/templates/.claude/skills/ddd-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/03_DB/343/203/273/345/244/226/351/203/250/343/202/265/343/203/274/343/203/223/343/202/271/{/343/203/227/343/203/255/343/203/220/343/202/244/343/203/200/343/203/274/345/220/215}/{/343/202/265/343/203/274/343/203/223/343/202/271/345/220/215}.md +24 -0
  5. package/spec-runner/templates/.claude/skills/ddd-seed/templates/04_/350/252/277/346/237/273/350/263/207/346/226/231/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/343/203/210/343/203/224/343/203/203/343/202/257/345/220/215}.md +20 -0
  6. package/spec-runner/templates/.claude/skills/ddd-seed/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +48 -0
  7. package/spec-runner/templates/.claude/skills/design-change/SKILL.md +22 -4
  8. package/spec-runner/templates/.claude/skills/design-change/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -1
  9. package/spec-runner/templates/.claude/skills/frontend-seed/SKILL.md +29 -6
  10. package/spec-runner/templates/.claude/skills/frontend-seed/templates/04_/350/252/277/346/237/273/350/263/207/346/226/231/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/343/203/210/343/203/224/343/203/203/343/202/257/345/220/215}.md +20 -0
  11. package/spec-runner/templates/.claude/skills/frontend-seed/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +48 -0
  12. package/spec-runner/templates/.claude/skills/simple-seed/SKILL.md +34 -7
  13. package/spec-runner/templates/.claude/skills/simple-seed/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//350/246/201/344/273/266/345/256/232/347/276/251.md +34 -0
  14. package/spec-runner/templates/.claude/skills/simple-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/02_DB/343/203/273/345/244/226/351/203/250/343/202/265/343/203/274/343/203/223/343/202/271/{/343/203/227/343/203/255/343/203/220/343/202/244/343/203/200/343/203/274/345/220/215}/{/343/202/265/343/203/274/343/203/223/343/202/271/345/220/215}.md +24 -0
  15. package/spec-runner/templates/.claude/skills/simple-seed/templates/04_/350/252/277/346/237/273/350/263/207/346/226/231/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/343/203/210/343/203/224/343/203/203/343/202/257/345/220/215}.md +20 -0
  16. package/spec-runner/templates/.claude/skills/simple-seed/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +48 -0
  17. package/spec-runner/templates/.github/instructions/design-docs.instructions.md +2 -1
  18. package/spec-runner/templates/.github/skills/ddd-seed/SKILL.md +35 -8
  19. package/spec-runner/templates/.github/skills/ddd-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/03_DB/343/203/273/345/244/226/351/203/250/343/202/265/343/203/274/343/203/223/343/202/271/{/343/203/227/343/203/255/343/203/220/343/202/244/343/203/200/343/203/274/345/220/215}/{/343/202/265/343/203/274/343/203/223/343/202/271/345/220/215}.md +24 -0
  20. package/spec-runner/templates/.github/skills/ddd-seed/templates/04_/350/252/277/346/237/273/350/263/207/346/226/231/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/343/203/210/343/203/224/343/203/203/343/202/257/345/220/215}.md +20 -0
  21. package/spec-runner/templates/.github/skills/ddd-seed/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +48 -0
  22. package/spec-runner/templates/.github/skills/design-change/SKILL.md +22 -4
  23. package/spec-runner/templates/.github/skills/design-change/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -1
  24. package/spec-runner/templates/.github/skills/frontend-seed/SKILL.md +29 -6
  25. package/spec-runner/templates/.github/skills/frontend-seed/templates/04_/350/252/277/346/237/273/350/263/207/346/226/231/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/343/203/210/343/203/224/343/203/203/343/202/257/345/220/215}.md +20 -0
  26. package/spec-runner/templates/.github/skills/frontend-seed/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +48 -0
  27. package/spec-runner/templates/.github/skills/simple-seed/SKILL.md +34 -7
  28. package/spec-runner/templates/.github/skills/simple-seed/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//350/246/201/344/273/266/345/256/232/347/276/251.md +34 -0
  29. package/spec-runner/templates/.github/skills/simple-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/02_DB/343/203/273/345/244/226/351/203/250/343/202/265/343/203/274/343/203/223/343/202/271/{/343/203/227/343/203/255/343/203/220/343/202/244/343/203/200/343/203/274/345/220/215}/{/343/202/265/343/203/274/343/203/223/343/202/271/345/220/215}.md +24 -0
  30. package/spec-runner/templates/.github/skills/simple-seed/templates/04_/350/252/277/346/237/273/350/263/207/346/226/231/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/343/203/210/343/203/224/343/203/203/343/202/257/345/220/215}.md +20 -0
  31. package/spec-runner/templates/.github/skills/simple-seed/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +48 -0
  32. package/spec-runner/templates/.spec-runner/references/resources.md +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-runner",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "docs を正本にした開発運用ハーネスを Claude / Copilot に導入する",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -69,7 +69,8 @@ spec_runner:
69
69
  | `{対象}` の選択肢 | `全体` / `ドメイン` / `UC` / `DB` | — |
70
70
  | `docs/バックエンド/03_詳細設計/01_ドメイン`(style: ddd のみ) | 日本語 | `注文.md`, `在庫.md` |
71
71
  | `docs/バックエンド/03_詳細設計/02_ユースケース`(style: ddd) / `01_ユースケース`(style: layered) | `UC-{日本語名}.md` | `UC-注文確定.md` |
72
- | `docs/バックエンド/03_詳細設計/03_DB・外部サービス`(style: ddd) / `02_DB・外部サービス`(style: layered) | 日本語 | `スキーマ定義.dbml`, `外部サービス.md` |
72
+ | `docs/バックエンド/03_詳細設計/03_DB・外部サービス`(style: ddd) / `02_DB・外部サービス`(style: layered) | 日本語 | `スキーマ定義.dbml`, `AWS/S3.md`, `GCP/BigQuery.md` |
73
+ | `docs/バックエンド/04_調査資料/{カテゴリ名}/` | 日本語 | `AWS/DynamoDB-キー設計.md`, `設計パターン/CQRS.md` |
73
74
 
74
75
  ### フロントエンド(has_frontend: true のみ)
75
76
 
@@ -23,8 +23,9 @@ description: UC/DDD 駆動の docs 正本開発フローの種(バックエン
23
23
  Phase 1: 要件定義
24
24
  Phase 2: 概要設計(ユースケース + ドメインモデル)
25
25
  Phase 3: ADR(必要時のみ)
26
- Phase 4: 詳細設計(ドメイン → UC → DB・外部サービス)
27
- Phase 5: TDD実装
26
+ Phase 4: ベストプラクティス調査(必要時のみ)
27
+ Phase 5: 詳細設計(ドメインUC → DB・外部サービス)
28
+ Phase 6: TDD → 実装
28
29
  ```
29
30
 
30
31
  ## 前提ルール
@@ -73,6 +74,8 @@ docs/バックエンド/02_概要設計/
73
74
 
74
75
  ## Phase 3: ADR(必要時のみ)
75
76
 
77
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
78
+
76
79
  1. 設計判断が必要な場合だけ ADR を作る
77
80
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
78
81
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
@@ -86,11 +89,31 @@ docs/バックエンド/02_概要設計/
86
89
 
87
90
  4. 採用案を概要設計へ反映してから次へ進む
88
91
 
89
- ## Phase 4: 詳細設計
92
+ ## Phase 4: ベストプラクティス調査(必要時のみ)
93
+
94
+ ADR で使用サービス・技術が確定した後、詳細設計に入る前に実施する。
95
+
96
+ 1. 「詳細設計に先立ち、ベストプラクティスを調査すべき技術・サービスはありますか?」とユーザーに確認する
97
+ 2. 調査する技術・サービスの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
98
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
99
+ 4. 調査不要の場合はスキップして次へ進む
100
+
101
+ テンプレート: `templates/04_調査資料/{カテゴリ名}/{トピック名}.md`
102
+
103
+ ```
104
+ docs/バックエンド/04_調査資料/
105
+ {カテゴリ名}/ # 例: AWS/, GCP/, 設計パターン/
106
+ {トピック名}.md # 例: DynamoDB-キー設計.md, S3-アクセス制御.md
107
+ ```
108
+
109
+ - 1 調査テーマ = 1 ファイル(複数テーマは別ファイルに分ける)
110
+ - ユーザーに確認・承認を得てから次へ進む
111
+
112
+ ## Phase 5: 詳細設計
90
113
 
91
114
  ドメイン → UC → DB・外部サービス の順に設計する。
92
115
 
93
- ### 4-1. ドメイン
116
+ ### 5-1. ドメイン
94
117
 
95
118
  テンプレート: `templates/03_詳細設計/01_ドメイン/{ドメイン名}.md`
96
119
 
@@ -99,7 +122,7 @@ docs/バックエンド/03_詳細設計/01_ドメイン/
99
122
  {ドメイン名}.md
100
123
  ```
101
124
 
102
- ### 4-2. ユースケース
125
+ ### 5-2. ユースケース
103
126
 
104
127
  シーケンス図は UC ファイルに Mermaid で埋め込む。
105
128
 
@@ -110,16 +133,20 @@ docs/バックエンド/03_詳細設計/02_ユースケース/
110
133
  UC-{日本語名}.md
111
134
  ```
112
135
 
113
- ### 4-3. DB・外部サービス(必要時のみ)
136
+ ### 5-3. DB・外部サービス(必要時のみ)
114
137
 
115
138
  ```
116
139
  docs/バックエンド/03_詳細設計/03_DB・外部サービス/
117
140
  スキーマ定義.dbml
118
- 外部サービス.md
141
+ {プロバイダー名}/ # 例: AWS/, GCP/, Azure/
142
+ {サービス名}.md # 例: S3.md, DynamoDB.md, Athena.md
119
143
  ```
120
144
 
145
+ - 外部サービスはクラウドプロバイダー(AWS / GCP / Azure など)をカテゴリフォルダとし、中にサービス名の md を置く
146
+ - `外部サービス.md` のような汎用名は使わない
147
+
121
148
  4. ユーザーに確認・承認を得る
122
149
 
123
- ## Phase 5: TDD → 実装
150
+ ## Phase 6: TDD → 実装
124
151
 
125
152
  `test-driven-development` スキルへ移行する。
@@ -0,0 +1,24 @@
1
+ ---
2
+ spec_runner:
3
+ type: external-service
4
+ provider: {プロバイダー名}
5
+ service: {サービス名}
6
+ maps_to: ""
7
+ depends_on: []
8
+ ---
9
+
10
+ # {サービス名}
11
+
12
+ ## 用途・役割
13
+
14
+ ## 設定・接続情報
15
+
16
+ | 項目 | 値 |
17
+ |------|-----|
18
+ | | |
19
+
20
+ ## データ構造・スキーマ
21
+
22
+ ## アクセス制御・権限
23
+
24
+ ## 注意事項
@@ -0,0 +1,20 @@
1
+ ---
2
+ spec_runner:
3
+ type: research
4
+ topic: {トピック名}
5
+ category: {カテゴリ名}
6
+ searched_at: YYYY-MM-DD
7
+ sources:
8
+ - title: ""
9
+ url: ""
10
+ ---
11
+
12
+ # {トピック名}
13
+
14
+ ## 調査目的
15
+
16
+ ## ベストプラクティス
17
+
18
+ ## 注意点・落とし穴
19
+
20
+ ## 本プロジェクトへの適用方針
@@ -0,0 +1,48 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: adr.{decision_slug}
4
+ kind: adr
5
+ ---
6
+
7
+ # {決定内容のタイトル}
8
+
9
+ **ステータス**: 提案 / 採用 / 廃止 / 置換
10
+ **日付**: YYYY-MM-DD
11
+
12
+ ## コンテキスト
13
+
14
+ | 項目 | 内容 |
15
+ |------|------|
16
+ | 現在の状況 | {問題・課題} |
17
+ | 要件 | {実現する必要があること} |
18
+ | 制約 | {技術的・ビジネス的制約} |
19
+
20
+ ## 決定
21
+
22
+ **採用案**: {案名}
23
+
24
+ ### 採用理由
25
+
26
+ - {理由1}
27
+ - {理由2}
28
+
29
+ ### 実装方針
30
+
31
+ 1. {方針1}
32
+ 2. {方針2}
33
+ 3. {方針3}
34
+
35
+ ## 影響
36
+
37
+ | カテゴリ | 項目 | 内容 |
38
+ |----------|------|------|
39
+ | システム | 新規追加 | {コンポーネント} |
40
+ | システム | 変更 | {コンポーネント} |
41
+ | パフォーマンス | 処理速度 | {変化} |
42
+ | コスト | 追加コスト | {影響} |
43
+ | 制約 | 将来課題 | {課題} |
44
+
45
+ ### 反映が必要な文書
46
+
47
+ - `docs/02_概要設計/{対象文書}.md`
48
+ - `docs/03_詳細設計/src/{対象パス}.md`
@@ -28,8 +28,9 @@ Phase 1: 変更要求の整理と軽い影響調査
28
28
  Phase 2: ADR 作成(必要時)
29
29
  Phase 3: 影響ドキュメントの確定
30
30
  Phase 4: 概要設計の修正
31
- Phase 5: 詳細設計の修正
32
- Phase 6: TDD → 実装 → 検証
31
+ Phase 5: ベストプラクティス調査(必要時)
32
+ Phase 6: 詳細設計の修正
33
+ Phase 7: TDD → 実装 → 検証
33
34
  ```
34
35
 
35
36
  ## Phase 1: 変更要求の整理と軽い影響調査
@@ -90,7 +91,24 @@ Phase 6: TDD → 実装 → 検証
90
91
 
91
92
  修正完了ごとにチェックリストを更新する。全概要設計の修正完了後、ユーザーに確認・承認を得る。
92
93
 
93
- ## Phase 5: 詳細設計の修正
94
+ ## Phase 5: ベストプラクティス調査(必要時)
95
+
96
+ 概要設計の修正が承認された後、詳細設計の修正に入る前に実施する。
97
+
98
+ 1. 「詳細設計の修正に先立ち、ベストプラクティスを調査すべき技術・サービスはありますか?」とユーザーに確認する
99
+ 2. 調査する技術・サービスの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
100
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
101
+ 4. 調査不要の場合はスキップして次へ進む
102
+
103
+ ```
104
+ docs/バックエンド/04_調査資料/
105
+ {カテゴリ名}/ # 例: AWS/, GCP/, 設計パターン/
106
+ {トピック名}.md
107
+ ```
108
+
109
+ - ユーザーに確認・承認を得てから次へ進む
110
+
111
+ ## Phase 6: 詳細設計の修正
94
112
 
95
113
  ### バックエンド
96
114
 
@@ -112,6 +130,6 @@ Phase 6: TDD → 実装 → 検証
112
130
 
113
131
  ヘッダーの `depends_on` / `maps_to` を更新する。ユーザーに最終確認を得る。
114
132
 
115
- ## Phase 6: TDD → 実装 → 検証
133
+ ## Phase 7: TDD → 実装 → 検証
116
134
 
117
135
  設計書修正が承認されたら `test-driven-development` スキルへ移行する。
@@ -8,7 +8,6 @@ spec_runner:
8
8
 
9
9
  **ステータス**: 提案 / 採用 / 廃止 / 置換
10
10
  **日付**: YYYY-MM-DD
11
- **決定者**: {名前}
12
11
 
13
12
  ## コンテキスト
14
13
 
@@ -22,8 +22,9 @@ description: フロントエンド向け docs 正本開発フローの種。画
22
22
  Phase 1: 要件定義
23
23
  Phase 2: 概要設計(画面一覧 + 画面遷移図 + コンポーネント一覧)
24
24
  Phase 3: ADR(必要時のみ)
25
- Phase 4: 詳細設計(画面 → コンポーネント)
26
- Phase 5: TDD実装
25
+ Phase 4: ベストプラクティス調査(必要時のみ)
26
+ Phase 5: 詳細設計(画面コンポーネント)
27
+ Phase 6: TDD → 実装
27
28
  ```
28
29
 
29
30
  ## 前提ルール
@@ -81,17 +82,39 @@ docs/フロントエンド/02_概要設計/
81
82
 
82
83
  ## Phase 3: ADR(必要時のみ)
83
84
 
85
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
86
+
84
87
  1. 設計判断が必要な場合だけ ADR を作る
85
88
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
86
89
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は `90_ADR/`
87
90
 
88
91
  4. 採用案を概要設計へ反映してから次へ進む
89
92
 
90
- ## Phase 4: 詳細設計
93
+ ## Phase 4: ベストプラクティス調査(必要時のみ)
94
+
95
+ ADR で使用フレームワーク・ライブラリが確定した後、詳細設計に入る前に実施する。
96
+
97
+ 1. 「詳細設計に先立ち、ベストプラクティスを調査すべき技術・ライブラリはありますか?」とユーザーに確認する
98
+ 2. 調査する技術・ライブラリの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
99
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
100
+ 4. 調査不要の場合はスキップして次へ進む
101
+
102
+ テンプレート: `templates/04_調査資料/{カテゴリ名}/{トピック名}.md`
103
+
104
+ ```
105
+ docs/フロントエンド/04_調査資料/
106
+ {カテゴリ名}/ # 例: React/, アクセシビリティ/, 設計パターン/
107
+ {トピック名}.md
108
+ ```
109
+
110
+ - 1 調査テーマ = 1 ファイル(複数テーマは別ファイルに分ける)
111
+ - ユーザーに確認・承認を得てから次へ進む
112
+
113
+ ## Phase 5: 詳細設計
91
114
 
92
115
  画面 → コンポーネント の順に設計する。
93
116
 
94
- ### 4-1. 画面
117
+ ### 5-1. 画面
95
118
 
96
119
  カテゴリ(機能ドメイン)でディレクトリを切り、画面ごとに 1 ファイル作成する。
97
120
 
@@ -103,7 +126,7 @@ docs/フロントエンド/03_詳細設計/01_画面/
103
126
  {画面名}.md
104
127
  ```
105
128
 
106
- ### 4-2. コンポーネント
129
+ ### 5-2. コンポーネント
107
130
 
108
131
  概要設計のコンポーネント一覧をもとに、共通コンポーネントごとに 1 ファイル作成する。
109
132
 
@@ -116,6 +139,6 @@ docs/フロントエンド/03_詳細設計/02_コンポーネント/
116
139
 
117
140
  ユーザーに確認・承認を得る。
118
141
 
119
- ## Phase 5: TDD → 実装
142
+ ## Phase 6: TDD → 実装
120
143
 
121
144
  `test-driven-development` スキルへ移行する。
@@ -0,0 +1,20 @@
1
+ ---
2
+ spec_runner:
3
+ type: research
4
+ topic: {トピック名}
5
+ category: {カテゴリ名}
6
+ searched_at: YYYY-MM-DD
7
+ sources:
8
+ - title: ""
9
+ url: ""
10
+ ---
11
+
12
+ # {トピック名}
13
+
14
+ ## 調査目的
15
+
16
+ ## ベストプラクティス
17
+
18
+ ## 注意点・落とし穴
19
+
20
+ ## 本プロジェクトへの適用方針
@@ -0,0 +1,48 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: adr.{decision_slug}
4
+ kind: adr
5
+ ---
6
+
7
+ # {決定内容のタイトル}
8
+
9
+ **ステータス**: 提案 / 採用 / 廃止 / 置換
10
+ **日付**: YYYY-MM-DD
11
+
12
+ ## コンテキスト
13
+
14
+ | 項目 | 内容 |
15
+ |------|------|
16
+ | 現在の状況 | {問題・課題} |
17
+ | 要件 | {実現する必要があること} |
18
+ | 制約 | {技術的・ビジネス的制約} |
19
+
20
+ ## 決定
21
+
22
+ **採用案**: {案名}
23
+
24
+ ### 採用理由
25
+
26
+ - {理由1}
27
+ - {理由2}
28
+
29
+ ### 実装方針
30
+
31
+ 1. {方針1}
32
+ 2. {方針2}
33
+ 3. {方針3}
34
+
35
+ ## 影響
36
+
37
+ | カテゴリ | 項目 | 内容 |
38
+ |----------|------|------|
39
+ | システム | 新規追加 | {コンポーネント} |
40
+ | システム | 変更 | {コンポーネント} |
41
+ | パフォーマンス | 処理速度 | {変化} |
42
+ | コスト | 追加コスト | {影響} |
43
+ | 制約 | 将来課題 | {課題} |
44
+
45
+ ### 反映が必要な文書
46
+
47
+ - `docs/フロントエンド/02_概要設計/{対象文書}.md`
48
+ - `docs/フロントエンド/03_詳細設計/{対象パス}.md`
@@ -23,8 +23,9 @@ description: レイヤードアーキテクチャ / CRUD 中心のプロジェ
23
23
  Phase 1: 要件定義
24
24
  Phase 2: 概要設計(ユースケース + システム全体俯瞰)
25
25
  Phase 3: ADR(必要時のみ)
26
- Phase 4: 詳細設計(UC → DB・外部サービス)
27
- Phase 5: TDD実装
26
+ Phase 4: ベストプラクティス調査(必要時のみ)
27
+ Phase 5: 詳細設計(UCDB・外部サービス)
28
+ Phase 6: TDD → 実装
28
29
  ```
29
30
 
30
31
  ## 前提ルール
@@ -63,6 +64,8 @@ docs/バックエンド/02_概要設計/
63
64
 
64
65
  ## Phase 3: ADR(必要時のみ)
65
66
 
67
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
68
+
66
69
  1. 設計判断が必要な場合だけ ADR を作る
67
70
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
68
71
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
@@ -75,11 +78,31 @@ docs/バックエンド/02_概要設計/
75
78
 
76
79
  4. 採用案を概要設計へ反映してから次へ進む
77
80
 
78
- ## Phase 4: 詳細設計
81
+ ## Phase 4: ベストプラクティス調査(必要時のみ)
82
+
83
+ ADR で使用サービス・技術が確定した後、詳細設計に入る前に実施する。
84
+
85
+ 1. 「詳細設計に先立ち、ベストプラクティスを調査すべき技術・サービスはありますか?」とユーザーに確認する
86
+ 2. 調査する技術・サービスの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
87
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
88
+ 4. 調査不要の場合はスキップして次へ進む
89
+
90
+ テンプレート: `templates/04_調査資料/{カテゴリ名}/{トピック名}.md`
91
+
92
+ ```
93
+ docs/バックエンド/04_調査資料/
94
+ {カテゴリ名}/ # 例: AWS/, GCP/, 設計パターン/
95
+ {トピック名}.md # 例: DynamoDB-キー設計.md, S3-アクセス制御.md
96
+ ```
97
+
98
+ - 1 調査テーマ = 1 ファイル(複数テーマは別ファイルに分ける)
99
+ - ユーザーに確認・承認を得てから次へ進む
100
+
101
+ ## Phase 5: 詳細設計
79
102
 
80
103
  UC → DB・外部サービス の順に設計する。
81
104
 
82
- ### 4-1. ユースケース
105
+ ### 5-1. ユースケース
83
106
 
84
107
  テンプレート: `templates/03_詳細設計/01_ユースケース/UC-{日本語名}.md`
85
108
 
@@ -88,17 +111,21 @@ docs/バックエンド/03_詳細設計/01_ユースケース/
88
111
  UC-{日本語名}.md
89
112
  ```
90
113
 
91
- ### 4-2. DB・外部サービス(必要時のみ)
114
+ ### 5-2. DB・外部サービス(必要時のみ)
92
115
 
93
116
  ```
94
117
  docs/バックエンド/03_詳細設計/02_DB・外部サービス/
95
118
  スキーマ定義.dbml
96
- 外部サービス.md
119
+ {プロバイダー名}/ # 例: AWS/, GCP/, Azure/
120
+ {サービス名}.md # 例: S3.md, DynamoDB.md, Athena.md
97
121
  ```
98
122
 
123
+ - 外部サービスはクラウドプロバイダー(AWS / GCP / Azure など)をカテゴリフォルダとし、中にサービス名の md を置く
124
+ - `外部サービス.md` のような汎用名は使わない
125
+
99
126
  3. ユーザーに確認・承認を得る
100
127
 
101
- ## Phase 5: TDD → 実装
128
+ ## Phase 6: TDD → 実装
102
129
 
103
130
  `test-driven-development` スキルへ移行する。
104
131
 
@@ -0,0 +1,34 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: requirement.要件定義
4
+ kind: requirement
5
+ depends_on: []
6
+ maps_to:
7
+ - docs/バックエンド/02_概要設計/
8
+ ---
9
+
10
+ # 要件定義
11
+
12
+ ## 解決すべき課題・提供価値
13
+
14
+ - {課題}
15
+ - {提供価値}
16
+
17
+ ## 対象ユーザー
18
+
19
+ - {ユーザー種別}: {説明}
20
+
21
+ ## 非機能要件
22
+
23
+ | 項目 | 内容 |
24
+ |------|------|
25
+ | {パフォーマンス} | {要件} |
26
+ | {セキュリティ} | {要件} |
27
+
28
+ ## スコープ外
29
+
30
+ - {スコープ外の機能・要件}
31
+
32
+ ## 技術・ビジネス制約
33
+
34
+ - {制約}
@@ -0,0 +1,24 @@
1
+ ---
2
+ spec_runner:
3
+ type: external-service
4
+ provider: {プロバイダー名}
5
+ service: {サービス名}
6
+ maps_to: ""
7
+ depends_on: []
8
+ ---
9
+
10
+ # {サービス名}
11
+
12
+ ## 用途・役割
13
+
14
+ ## 設定・接続情報
15
+
16
+ | 項目 | 値 |
17
+ |------|-----|
18
+ | | |
19
+
20
+ ## データ構造・スキーマ
21
+
22
+ ## アクセス制御・権限
23
+
24
+ ## 注意事項
@@ -0,0 +1,20 @@
1
+ ---
2
+ spec_runner:
3
+ type: research
4
+ topic: {トピック名}
5
+ category: {カテゴリ名}
6
+ searched_at: YYYY-MM-DD
7
+ sources:
8
+ - title: ""
9
+ url: ""
10
+ ---
11
+
12
+ # {トピック名}
13
+
14
+ ## 調査目的
15
+
16
+ ## ベストプラクティス
17
+
18
+ ## 注意点・落とし穴
19
+
20
+ ## 本プロジェクトへの適用方針
@@ -0,0 +1,48 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: adr.{decision_slug}
4
+ kind: adr
5
+ ---
6
+
7
+ # {決定内容のタイトル}
8
+
9
+ **ステータス**: 提案 / 採用 / 廃止 / 置換
10
+ **日付**: YYYY-MM-DD
11
+
12
+ ## コンテキスト
13
+
14
+ | 項目 | 内容 |
15
+ |------|------|
16
+ | 現在の状況 | {問題・課題} |
17
+ | 要件 | {実現する必要があること} |
18
+ | 制約 | {技術的・ビジネス的制約} |
19
+
20
+ ## 決定
21
+
22
+ **採用案**: {案名}
23
+
24
+ ### 採用理由
25
+
26
+ - {理由1}
27
+ - {理由2}
28
+
29
+ ### 実装方針
30
+
31
+ 1. {方針1}
32
+ 2. {方針2}
33
+ 3. {方針3}
34
+
35
+ ## 影響
36
+
37
+ | カテゴリ | 項目 | 内容 |
38
+ |----------|------|------|
39
+ | システム | 新規追加 | {コンポーネント} |
40
+ | システム | 変更 | {コンポーネント} |
41
+ | パフォーマンス | 処理速度 | {変化} |
42
+ | コスト | 追加コスト | {影響} |
43
+ | 制約 | 将来課題 | {課題} |
44
+
45
+ ### 反映が必要な文書
46
+
47
+ - `docs/02_概要設計/{対象文書}.md`
48
+ - `docs/03_詳細設計/src/{対象パス}.md`
@@ -68,7 +68,8 @@ spec_runner:
68
68
  | `{対象}` の選択肢 | `全体` / `ドメイン` / `UC` / `DB` | — |
69
69
  | `docs/バックエンド/03_詳細設計/01_ドメイン`(style: ddd のみ) | 日本語 | `注文.md`, `在庫.md` |
70
70
  | `docs/バックエンド/03_詳細設計/02_ユースケース`(style: ddd) / `01_ユースケース`(style: layered) | `UC-{日本語名}.md` | `UC-注文確定.md` |
71
- | `docs/バックエンド/03_詳細設計/03_DB・外部サービス`(style: ddd) / `02_DB・外部サービス`(style: layered) | 日本語 | `スキーマ定義.dbml`, `外部サービス.md` |
71
+ | `docs/バックエンド/03_詳細設計/03_DB・外部サービス`(style: ddd) / `02_DB・外部サービス`(style: layered) | 日本語 | `スキーマ定義.dbml`, `AWS/S3.md`, `GCP/BigQuery.md` |
72
+ | `docs/バックエンド/04_調査資料/{カテゴリ名}/` | 日本語 | `AWS/DynamoDB-キー設計.md`, `設計パターン/CQRS.md` |
72
73
 
73
74
  ### フロントエンド(has_frontend: true のみ)
74
75
 
@@ -23,8 +23,9 @@ description: UC/DDD 駆動の docs 正本開発フローの種(バックエン
23
23
  Phase 1: 要件定義
24
24
  Phase 2: 概要設計(ユースケース + ドメインモデル)
25
25
  Phase 3: ADR(必要時のみ)
26
- Phase 4: 詳細設計(ドメイン → UC → DB・外部サービス)
27
- Phase 5: TDD実装
26
+ Phase 4: ベストプラクティス調査(必要時のみ)
27
+ Phase 5: 詳細設計(ドメインUC → DB・外部サービス)
28
+ Phase 6: TDD → 実装
28
29
  ```
29
30
 
30
31
  ## 前提ルール
@@ -73,6 +74,8 @@ docs/バックエンド/02_概要設計/
73
74
 
74
75
  ## Phase 3: ADR(必要時のみ)
75
76
 
77
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
78
+
76
79
  1. 設計判断が必要な場合だけ ADR を作る
77
80
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
78
81
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
@@ -86,11 +89,31 @@ docs/バックエンド/02_概要設計/
86
89
 
87
90
  4. 採用案を概要設計へ反映してから次へ進む
88
91
 
89
- ## Phase 4: 詳細設計
92
+ ## Phase 4: ベストプラクティス調査(必要時のみ)
93
+
94
+ ADR で使用サービス・技術が確定した後、詳細設計に入る前に実施する。
95
+
96
+ 1. 「詳細設計に先立ち、ベストプラクティスを調査すべき技術・サービスはありますか?」とユーザーに確認する
97
+ 2. 調査する技術・サービスの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
98
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
99
+ 4. 調査不要の場合はスキップして次へ進む
100
+
101
+ テンプレート: `templates/04_調査資料/{カテゴリ名}/{トピック名}.md`
102
+
103
+ ```
104
+ docs/バックエンド/04_調査資料/
105
+ {カテゴリ名}/ # 例: AWS/, GCP/, 設計パターン/
106
+ {トピック名}.md # 例: DynamoDB-キー設計.md, S3-アクセス制御.md
107
+ ```
108
+
109
+ - 1 調査テーマ = 1 ファイル(複数テーマは別ファイルに分ける)
110
+ - ユーザーに確認・承認を得てから次へ進む
111
+
112
+ ## Phase 5: 詳細設計
90
113
 
91
114
  ドメイン → UC → DB・外部サービス の順に設計する。
92
115
 
93
- ### 4-1. ドメイン
116
+ ### 5-1. ドメイン
94
117
 
95
118
  テンプレート: `templates/03_詳細設計/01_ドメイン/{ドメイン名}.md`
96
119
 
@@ -99,7 +122,7 @@ docs/バックエンド/03_詳細設計/01_ドメイン/
99
122
  {ドメイン名}.md
100
123
  ```
101
124
 
102
- ### 4-2. ユースケース
125
+ ### 5-2. ユースケース
103
126
 
104
127
  シーケンス図は UC ファイルに Mermaid で埋め込む。
105
128
 
@@ -110,16 +133,20 @@ docs/バックエンド/03_詳細設計/02_ユースケース/
110
133
  UC-{日本語名}.md
111
134
  ```
112
135
 
113
- ### 4-3. DB・外部サービス(必要時のみ)
136
+ ### 5-3. DB・外部サービス(必要時のみ)
114
137
 
115
138
  ```
116
139
  docs/バックエンド/03_詳細設計/03_DB・外部サービス/
117
140
  スキーマ定義.dbml
118
- 外部サービス.md
141
+ {プロバイダー名}/ # 例: AWS/, GCP/, Azure/
142
+ {サービス名}.md # 例: S3.md, DynamoDB.md, Athena.md
119
143
  ```
120
144
 
145
+ - 外部サービスはクラウドプロバイダー(AWS / GCP / Azure など)をカテゴリフォルダとし、中にサービス名の md を置く
146
+ - `外部サービス.md` のような汎用名は使わない
147
+
121
148
  4. ユーザーに確認・承認を得る
122
149
 
123
- ## Phase 5: TDD → 実装
150
+ ## Phase 6: TDD → 実装
124
151
 
125
152
  `test-driven-development` スキルへ移行する。
@@ -0,0 +1,24 @@
1
+ ---
2
+ spec_runner:
3
+ type: external-service
4
+ provider: {プロバイダー名}
5
+ service: {サービス名}
6
+ maps_to: ""
7
+ depends_on: []
8
+ ---
9
+
10
+ # {サービス名}
11
+
12
+ ## 用途・役割
13
+
14
+ ## 設定・接続情報
15
+
16
+ | 項目 | 値 |
17
+ |------|-----|
18
+ | | |
19
+
20
+ ## データ構造・スキーマ
21
+
22
+ ## アクセス制御・権限
23
+
24
+ ## 注意事項
@@ -0,0 +1,20 @@
1
+ ---
2
+ spec_runner:
3
+ type: research
4
+ topic: {トピック名}
5
+ category: {カテゴリ名}
6
+ searched_at: YYYY-MM-DD
7
+ sources:
8
+ - title: ""
9
+ url: ""
10
+ ---
11
+
12
+ # {トピック名}
13
+
14
+ ## 調査目的
15
+
16
+ ## ベストプラクティス
17
+
18
+ ## 注意点・落とし穴
19
+
20
+ ## 本プロジェクトへの適用方針
@@ -0,0 +1,48 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: adr.{decision_slug}
4
+ kind: adr
5
+ ---
6
+
7
+ # {決定内容のタイトル}
8
+
9
+ **ステータス**: 提案 / 採用 / 廃止 / 置換
10
+ **日付**: YYYY-MM-DD
11
+
12
+ ## コンテキスト
13
+
14
+ | 項目 | 内容 |
15
+ |------|------|
16
+ | 現在の状況 | {問題・課題} |
17
+ | 要件 | {実現する必要があること} |
18
+ | 制約 | {技術的・ビジネス的制約} |
19
+
20
+ ## 決定
21
+
22
+ **採用案**: {案名}
23
+
24
+ ### 採用理由
25
+
26
+ - {理由1}
27
+ - {理由2}
28
+
29
+ ### 実装方針
30
+
31
+ 1. {方針1}
32
+ 2. {方針2}
33
+ 3. {方針3}
34
+
35
+ ## 影響
36
+
37
+ | カテゴリ | 項目 | 内容 |
38
+ |----------|------|------|
39
+ | システム | 新規追加 | {コンポーネント} |
40
+ | システム | 変更 | {コンポーネント} |
41
+ | パフォーマンス | 処理速度 | {変化} |
42
+ | コスト | 追加コスト | {影響} |
43
+ | 制約 | 将来課題 | {課題} |
44
+
45
+ ### 反映が必要な文書
46
+
47
+ - `docs/02_概要設計/{対象文書}.md`
48
+ - `docs/03_詳細設計/src/{対象パス}.md`
@@ -28,8 +28,9 @@ Phase 1: 変更要求の整理と軽い影響調査
28
28
  Phase 2: ADR 作成(必要時)
29
29
  Phase 3: 影響ドキュメントの確定
30
30
  Phase 4: 概要設計の修正
31
- Phase 5: 詳細設計の修正
32
- Phase 6: TDD → 実装 → 検証
31
+ Phase 5: ベストプラクティス調査(必要時)
32
+ Phase 6: 詳細設計の修正
33
+ Phase 7: TDD → 実装 → 検証
33
34
  ```
34
35
 
35
36
  ## Phase 1: 変更要求の整理と軽い影響調査
@@ -90,7 +91,24 @@ Phase 6: TDD → 実装 → 検証
90
91
 
91
92
  修正完了ごとにチェックリストを更新する。全概要設計の修正完了後、ユーザーに確認・承認を得る。
92
93
 
93
- ## Phase 5: 詳細設計の修正
94
+ ## Phase 5: ベストプラクティス調査(必要時)
95
+
96
+ 概要設計の修正が承認された後、詳細設計の修正に入る前に実施する。
97
+
98
+ 1. 「詳細設計の修正に先立ち、ベストプラクティスを調査すべき技術・サービスはありますか?」とユーザーに確認する
99
+ 2. 調査する技術・サービスの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
100
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
101
+ 4. 調査不要の場合はスキップして次へ進む
102
+
103
+ ```
104
+ docs/バックエンド/04_調査資料/
105
+ {カテゴリ名}/ # 例: AWS/, GCP/, 設計パターン/
106
+ {トピック名}.md
107
+ ```
108
+
109
+ - ユーザーに確認・承認を得てから次へ進む
110
+
111
+ ## Phase 6: 詳細設計の修正
94
112
 
95
113
  ### バックエンド
96
114
 
@@ -112,6 +130,6 @@ Phase 6: TDD → 実装 → 検証
112
130
 
113
131
  ヘッダーの `depends_on` / `maps_to` を更新する。ユーザーに最終確認を得る。
114
132
 
115
- ## Phase 6: TDD → 実装 → 検証
133
+ ## Phase 7: TDD → 実装 → 検証
116
134
 
117
135
  設計書修正が承認されたら `test-driven-development` スキルへ移行する。
@@ -8,7 +8,6 @@ spec_runner:
8
8
 
9
9
  **ステータス**: 提案 / 採用 / 廃止 / 置換
10
10
  **日付**: YYYY-MM-DD
11
- **決定者**: {名前}
12
11
 
13
12
  ## コンテキスト
14
13
 
@@ -22,8 +22,9 @@ description: フロントエンド向け docs 正本開発フローの種。画
22
22
  Phase 1: 要件定義
23
23
  Phase 2: 概要設計(画面一覧 + 画面遷移図 + コンポーネント一覧)
24
24
  Phase 3: ADR(必要時のみ)
25
- Phase 4: 詳細設計(画面 → コンポーネント)
26
- Phase 5: TDD実装
25
+ Phase 4: ベストプラクティス調査(必要時のみ)
26
+ Phase 5: 詳細設計(画面コンポーネント)
27
+ Phase 6: TDD → 実装
27
28
  ```
28
29
 
29
30
  ## 前提ルール
@@ -81,17 +82,39 @@ docs/フロントエンド/02_概要設計/
81
82
 
82
83
  ## Phase 3: ADR(必要時のみ)
83
84
 
85
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
86
+
84
87
  1. 設計判断が必要な場合だけ ADR を作る
85
88
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
86
89
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は `90_ADR/`
87
90
 
88
91
  4. 採用案を概要設計へ反映してから次へ進む
89
92
 
90
- ## Phase 4: 詳細設計
93
+ ## Phase 4: ベストプラクティス調査(必要時のみ)
94
+
95
+ ADR で使用フレームワーク・ライブラリが確定した後、詳細設計に入る前に実施する。
96
+
97
+ 1. 「詳細設計に先立ち、ベストプラクティスを調査すべき技術・ライブラリはありますか?」とユーザーに確認する
98
+ 2. 調査する技術・ライブラリの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
99
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
100
+ 4. 調査不要の場合はスキップして次へ進む
101
+
102
+ テンプレート: `templates/04_調査資料/{カテゴリ名}/{トピック名}.md`
103
+
104
+ ```
105
+ docs/フロントエンド/04_調査資料/
106
+ {カテゴリ名}/ # 例: React/, アクセシビリティ/, 設計パターン/
107
+ {トピック名}.md
108
+ ```
109
+
110
+ - 1 調査テーマ = 1 ファイル(複数テーマは別ファイルに分ける)
111
+ - ユーザーに確認・承認を得てから次へ進む
112
+
113
+ ## Phase 5: 詳細設計
91
114
 
92
115
  画面 → コンポーネント の順に設計する。
93
116
 
94
- ### 4-1. 画面
117
+ ### 5-1. 画面
95
118
 
96
119
  カテゴリ(機能ドメイン)でディレクトリを切り、画面ごとに 1 ファイル作成する。
97
120
 
@@ -103,7 +126,7 @@ docs/フロントエンド/03_詳細設計/01_画面/
103
126
  {画面名}.md
104
127
  ```
105
128
 
106
- ### 4-2. コンポーネント
129
+ ### 5-2. コンポーネント
107
130
 
108
131
  概要設計のコンポーネント一覧をもとに、共通コンポーネントごとに 1 ファイル作成する。
109
132
 
@@ -116,6 +139,6 @@ docs/フロントエンド/03_詳細設計/02_コンポーネント/
116
139
 
117
140
  ユーザーに確認・承認を得る。
118
141
 
119
- ## Phase 5: TDD → 実装
142
+ ## Phase 6: TDD → 実装
120
143
 
121
144
  `test-driven-development` スキルへ移行する。
@@ -0,0 +1,20 @@
1
+ ---
2
+ spec_runner:
3
+ type: research
4
+ topic: {トピック名}
5
+ category: {カテゴリ名}
6
+ searched_at: YYYY-MM-DD
7
+ sources:
8
+ - title: ""
9
+ url: ""
10
+ ---
11
+
12
+ # {トピック名}
13
+
14
+ ## 調査目的
15
+
16
+ ## ベストプラクティス
17
+
18
+ ## 注意点・落とし穴
19
+
20
+ ## 本プロジェクトへの適用方針
@@ -0,0 +1,48 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: adr.{decision_slug}
4
+ kind: adr
5
+ ---
6
+
7
+ # {決定内容のタイトル}
8
+
9
+ **ステータス**: 提案 / 採用 / 廃止 / 置換
10
+ **日付**: YYYY-MM-DD
11
+
12
+ ## コンテキスト
13
+
14
+ | 項目 | 内容 |
15
+ |------|------|
16
+ | 現在の状況 | {問題・課題} |
17
+ | 要件 | {実現する必要があること} |
18
+ | 制約 | {技術的・ビジネス的制約} |
19
+
20
+ ## 決定
21
+
22
+ **採用案**: {案名}
23
+
24
+ ### 採用理由
25
+
26
+ - {理由1}
27
+ - {理由2}
28
+
29
+ ### 実装方針
30
+
31
+ 1. {方針1}
32
+ 2. {方針2}
33
+ 3. {方針3}
34
+
35
+ ## 影響
36
+
37
+ | カテゴリ | 項目 | 内容 |
38
+ |----------|------|------|
39
+ | システム | 新規追加 | {コンポーネント} |
40
+ | システム | 変更 | {コンポーネント} |
41
+ | パフォーマンス | 処理速度 | {変化} |
42
+ | コスト | 追加コスト | {影響} |
43
+ | 制約 | 将来課題 | {課題} |
44
+
45
+ ### 反映が必要な文書
46
+
47
+ - `docs/フロントエンド/02_概要設計/{対象文書}.md`
48
+ - `docs/フロントエンド/03_詳細設計/{対象パス}.md`
@@ -23,8 +23,9 @@ description: レイヤードアーキテクチャ / CRUD 中心のプロジェ
23
23
  Phase 1: 要件定義
24
24
  Phase 2: 概要設計(ユースケース + システム全体俯瞰)
25
25
  Phase 3: ADR(必要時のみ)
26
- Phase 4: 詳細設計(UC → DB・外部サービス)
27
- Phase 5: TDD実装
26
+ Phase 4: ベストプラクティス調査(必要時のみ)
27
+ Phase 5: 詳細設計(UCDB・外部サービス)
28
+ Phase 6: TDD → 実装
28
29
  ```
29
30
 
30
31
  ## 前提ルール
@@ -63,6 +64,8 @@ docs/バックエンド/02_概要設計/
63
64
 
64
65
  ## Phase 3: ADR(必要時のみ)
65
66
 
67
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
68
+
66
69
  1. 設計判断が必要な場合だけ ADR を作る
67
70
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
68
71
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
@@ -75,11 +78,31 @@ docs/バックエンド/02_概要設計/
75
78
 
76
79
  4. 採用案を概要設計へ反映してから次へ進む
77
80
 
78
- ## Phase 4: 詳細設計
81
+ ## Phase 4: ベストプラクティス調査(必要時のみ)
82
+
83
+ ADR で使用サービス・技術が確定した後、詳細設計に入る前に実施する。
84
+
85
+ 1. 「詳細設計に先立ち、ベストプラクティスを調査すべき技術・サービスはありますか?」とユーザーに確認する
86
+ 2. 調査する技術・サービスの公式ドキュメント URL を `.spec-runner/references/resources.md` に追記する(ユーザーが知っている URL + AI が有用と判断した URL も積極的に追加する)
87
+ 3. WebSearch(resources.md の URL を起点に)でベストプラクティスを調査し、結果を保存する
88
+ 4. 調査不要の場合はスキップして次へ進む
89
+
90
+ テンプレート: `templates/04_調査資料/{カテゴリ名}/{トピック名}.md`
91
+
92
+ ```
93
+ docs/バックエンド/04_調査資料/
94
+ {カテゴリ名}/ # 例: AWS/, GCP/, 設計パターン/
95
+ {トピック名}.md # 例: DynamoDB-キー設計.md, S3-アクセス制御.md
96
+ ```
97
+
98
+ - 1 調査テーマ = 1 ファイル(複数テーマは別ファイルに分ける)
99
+ - ユーザーに確認・承認を得てから次へ進む
100
+
101
+ ## Phase 5: 詳細設計
79
102
 
80
103
  UC → DB・外部サービス の順に設計する。
81
104
 
82
- ### 4-1. ユースケース
105
+ ### 5-1. ユースケース
83
106
 
84
107
  テンプレート: `templates/03_詳細設計/01_ユースケース/UC-{日本語名}.md`
85
108
 
@@ -88,17 +111,21 @@ docs/バックエンド/03_詳細設計/01_ユースケース/
88
111
  UC-{日本語名}.md
89
112
  ```
90
113
 
91
- ### 4-2. DB・外部サービス(必要時のみ)
114
+ ### 5-2. DB・外部サービス(必要時のみ)
92
115
 
93
116
  ```
94
117
  docs/バックエンド/03_詳細設計/02_DB・外部サービス/
95
118
  スキーマ定義.dbml
96
- 外部サービス.md
119
+ {プロバイダー名}/ # 例: AWS/, GCP/, Azure/
120
+ {サービス名}.md # 例: S3.md, DynamoDB.md, Athena.md
97
121
  ```
98
122
 
123
+ - 外部サービスはクラウドプロバイダー(AWS / GCP / Azure など)をカテゴリフォルダとし、中にサービス名の md を置く
124
+ - `外部サービス.md` のような汎用名は使わない
125
+
99
126
  3. ユーザーに確認・承認を得る
100
127
 
101
- ## Phase 5: TDD → 実装
128
+ ## Phase 6: TDD → 実装
102
129
 
103
130
  `test-driven-development` スキルへ移行する。
104
131
 
@@ -0,0 +1,34 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: requirement.要件定義
4
+ kind: requirement
5
+ depends_on: []
6
+ maps_to:
7
+ - docs/バックエンド/02_概要設計/
8
+ ---
9
+
10
+ # 要件定義
11
+
12
+ ## 解決すべき課題・提供価値
13
+
14
+ - {課題}
15
+ - {提供価値}
16
+
17
+ ## 対象ユーザー
18
+
19
+ - {ユーザー種別}: {説明}
20
+
21
+ ## 非機能要件
22
+
23
+ | 項目 | 内容 |
24
+ |------|------|
25
+ | {パフォーマンス} | {要件} |
26
+ | {セキュリティ} | {要件} |
27
+
28
+ ## スコープ外
29
+
30
+ - {スコープ外の機能・要件}
31
+
32
+ ## 技術・ビジネス制約
33
+
34
+ - {制約}
@@ -0,0 +1,24 @@
1
+ ---
2
+ spec_runner:
3
+ type: external-service
4
+ provider: {プロバイダー名}
5
+ service: {サービス名}
6
+ maps_to: ""
7
+ depends_on: []
8
+ ---
9
+
10
+ # {サービス名}
11
+
12
+ ## 用途・役割
13
+
14
+ ## 設定・接続情報
15
+
16
+ | 項目 | 値 |
17
+ |------|-----|
18
+ | | |
19
+
20
+ ## データ構造・スキーマ
21
+
22
+ ## アクセス制御・権限
23
+
24
+ ## 注意事項
@@ -0,0 +1,20 @@
1
+ ---
2
+ spec_runner:
3
+ type: research
4
+ topic: {トピック名}
5
+ category: {カテゴリ名}
6
+ searched_at: YYYY-MM-DD
7
+ sources:
8
+ - title: ""
9
+ url: ""
10
+ ---
11
+
12
+ # {トピック名}
13
+
14
+ ## 調査目的
15
+
16
+ ## ベストプラクティス
17
+
18
+ ## 注意点・落とし穴
19
+
20
+ ## 本プロジェクトへの適用方針
@@ -0,0 +1,48 @@
1
+ ---
2
+ spec_runner:
3
+ node_id: adr.{decision_slug}
4
+ kind: adr
5
+ ---
6
+
7
+ # {決定内容のタイトル}
8
+
9
+ **ステータス**: 提案 / 採用 / 廃止 / 置換
10
+ **日付**: YYYY-MM-DD
11
+
12
+ ## コンテキスト
13
+
14
+ | 項目 | 内容 |
15
+ |------|------|
16
+ | 現在の状況 | {問題・課題} |
17
+ | 要件 | {実現する必要があること} |
18
+ | 制約 | {技術的・ビジネス的制約} |
19
+
20
+ ## 決定
21
+
22
+ **採用案**: {案名}
23
+
24
+ ### 採用理由
25
+
26
+ - {理由1}
27
+ - {理由2}
28
+
29
+ ### 実装方針
30
+
31
+ 1. {方針1}
32
+ 2. {方針2}
33
+ 3. {方針3}
34
+
35
+ ## 影響
36
+
37
+ | カテゴリ | 項目 | 内容 |
38
+ |----------|------|------|
39
+ | システム | 新規追加 | {コンポーネント} |
40
+ | システム | 変更 | {コンポーネント} |
41
+ | パフォーマンス | 処理速度 | {変化} |
42
+ | コスト | 追加コスト | {影響} |
43
+ | 制約 | 将来課題 | {課題} |
44
+
45
+ ### 反映が必要な文書
46
+
47
+ - `docs/02_概要設計/{対象文書}.md`
48
+ - `docs/03_詳細設計/src/{対象パス}.md`
@@ -1,7 +1,7 @@
1
1
  # Resources
2
2
 
3
3
  エラーや調査が必要なときにサブエージェントが参照する外部リソース一覧。
4
- `architecture-skill-development` 実行時に登録する。
4
+ 設計・実装を進める中で随時追記していく。AI が有用と判断したリファレンスも積極的に追加する。
5
5
 
6
6
  ## 言語・ランタイム
7
7