spec-runner 1.7.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 (63) hide show
  1. package/package.json +1 -1
  2. package/spec-runner/templates/.claude/rules/design-docs.md +35 -26
  3. package/spec-runner/templates/.claude/skills/architecture-definition/SKILL.md +12 -4
  4. package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +18 -11
  5. package/spec-runner/templates/.claude/skills/ddd-seed/SKILL.md +46 -20
  6. package/spec-runner/templates/.claude/skills/ddd-seed/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//343/203/246/343/203/223/343/202/255/343/202/277/343/202/271/350/250/200/350/252/236/350/276/236/346/233/270.md +1 -1
  7. package/spec-runner/templates/.claude/skills/ddd-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 +1 -1
  8. package/spec-runner/templates/.claude/skills/ddd-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253.md +1 -1
  9. package/spec-runner/templates/.claude/skills/ddd-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247.md +1 -1
  10. package/spec-runner/templates/.claude/skills/ddd-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/02_/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/UC-{/346/227/245/346/234/254/350/252/236/345/220/215}.md +0 -15
  11. 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
  12. 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
  13. 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
  14. package/spec-runner/templates/.claude/skills/design-change/SKILL.md +57 -24
  15. 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
  16. package/spec-runner/templates/.claude/skills/existing-project-to-docs/SKILL.md +45 -24
  17. package/spec-runner/templates/.claude/skills/frontend-seed/SKILL.md +144 -0
  18. package/spec-runner/templates/.claude/skills/frontend-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 +35 -0
  19. package/spec-runner/templates/.claude/skills/frontend-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/263/343/203/263/343/203/235/343/203/274/343/203/215/343/203/263/343/203/210/344/270/200/350/246/247.md +19 -0
  20. package/spec-runner/templates/.claude/skills/frontend-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//347/224/273/351/235/242/344/270/200/350/246/247.md +25 -0
  21. package/spec-runner/templates/.claude/skills/frontend-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//347/224/273/351/235/242/351/201/267/347/247/273/345/233/263.md +23 -0
  22. package/spec-runner/templates/.claude/skills/frontend-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/01_/347/224/273/351/235/242/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/347/224/273/351/235/242/345/220/215}.md +65 -0
  23. package/spec-runner/templates/.claude/skills/frontend-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/02_/343/202/263/343/203/263/343/203/235/343/203/274/343/203/215/343/203/263/343/203/210/{/343/202/263/343/203/263/343/203/235/343/203/274/343/203/215/343/203/263/343/203/210/345/220/215}.md +41 -0
  24. package/spec-runner/templates/.claude/skills/frontend-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/90_ADR/ADR-{/346/227/245/346/234/254/350/252/236/345/220/215}.md +46 -0
  25. 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
  26. 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
  27. package/spec-runner/templates/.claude/skills/simple-seed/SKILL.md +43 -17
  28. 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
  29. package/spec-runner/templates/.claude/skills/simple-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247.md +1 -1
  30. package/spec-runner/templates/.claude/skills/simple-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/01_/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/UC-{/346/227/245/346/234/254/350/252/236/345/220/215}.md +0 -15
  31. 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
  32. 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
  33. 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
  34. package/spec-runner/templates/.github/instructions/design-docs.instructions.md +34 -25
  35. package/spec-runner/templates/.github/skills/architecture-definition/SKILL.md +12 -4
  36. package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +18 -11
  37. package/spec-runner/templates/.github/skills/ddd-seed/SKILL.md +46 -20
  38. 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
  39. 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
  40. 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
  41. package/spec-runner/templates/.github/skills/design-change/SKILL.md +57 -24
  42. 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
  43. package/spec-runner/templates/.github/skills/existing-project-to-docs/SKILL.md +45 -24
  44. package/spec-runner/templates/.github/skills/frontend-seed/SKILL.md +144 -0
  45. package/spec-runner/templates/.github/skills/frontend-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 +35 -0
  46. package/spec-runner/templates/.github/skills/frontend-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/263/343/203/263/343/203/235/343/203/274/343/203/215/343/203/263/343/203/210/344/270/200/350/246/247.md +19 -0
  47. package/spec-runner/templates/.github/skills/frontend-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//347/224/273/351/235/242/344/270/200/350/246/247.md +25 -0
  48. package/spec-runner/templates/.github/skills/frontend-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//347/224/273/351/235/242/351/201/267/347/247/273/345/233/263.md +23 -0
  49. package/spec-runner/templates/.github/skills/frontend-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/01_/347/224/273/351/235/242/{/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/{/347/224/273/351/235/242/345/220/215}.md +65 -0
  50. package/spec-runner/templates/.github/skills/frontend-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/02_/343/202/263/343/203/263/343/203/235/343/203/274/343/203/215/343/203/263/343/203/210/{/343/202/263/343/203/263/343/203/235/343/203/274/343/203/215/343/203/263/343/203/210/345/220/215}.md +41 -0
  51. package/spec-runner/templates/.github/skills/frontend-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/90_ADR/ADR-{/346/227/245/346/234/254/350/252/236/345/220/215}.md +46 -0
  52. 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
  53. 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
  54. package/spec-runner/templates/.github/skills/simple-seed/SKILL.md +43 -17
  55. 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
  56. 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
  57. 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
  58. 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
  59. package/spec-runner/templates/.spec-runner/references/resources.md +1 -1
  60. package/spec-runner/templates/.claude/skills/design-change/references//345/275/261/351/237/277/347/257/204/345/233/262/343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +0 -59
  61. package/spec-runner/templates/.claude/skills/spec-probe/SKILL.md +0 -12
  62. package/spec-runner/templates/.github/skills/design-change/references//345/275/261/351/237/277/347/257/204/345/233/262/343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +0 -59
  63. package/spec-runner/templates/.github/skills/spec-probe/SKILL.md +0 -12
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ddd-seed
3
- description: UC/DDD 駆動の docs 正本開発フローの種。新規プロジェクトの初期テンプレートとして使い、architecture-skill-development でプロジェクト専用スキルに育てる。
3
+ description: UC/DDD 駆動の docs 正本開発フローの種(バックエンド担当)。新規プロジェクトの初期テンプレートとして使い、architecture-skill-development でプロジェクト専用スキルに育てる。
4
4
  ---
5
5
 
6
6
  # ddd-seed
@@ -12,7 +12,7 @@ description: UC/DDD 駆動の docs 正本開発フローの種。新規プロジ
12
12
  | キー | 用途 |
13
13
  |------|------|
14
14
  | `style` | このスキル(`ddd`)が適切かを確認 |
15
- | `has_frontend` | `true` なら UC ファイルに「画面レイアウト」セクションを含める |
15
+ | `has_frontend` | `true` なら `frontend-seed` が並走していることを確認 |
16
16
  | `folder_structure` | `maps_to` パスの基準として参照する |
17
17
 
18
18
  設計フェーズで新たな方針・コンポーネントが確定したら、都度 architecture.yaml を最新状態に保つ。
@@ -23,13 +23,15 @@ 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
  ## 前提ルール
31
32
 
32
33
  - docs は正本とし、各ドキュメントに `spec_runner`ヘッダーを付ける
34
+ - バックエンドの設計はすべて `docs/バックエンド/` 配下に置く
33
35
  - 詳細設計は `01_ドメイン/` `02_ユースケース/` `03_DB・外部サービス/` の 3 層で構成する
34
36
  - ドメインを先に設計し、UC はドメインを参照する形で書く。ドメインの中に UC は入れない
35
37
  - `maps_to` は必ず設定する。パス推定に頼らない
@@ -38,20 +40,20 @@ Phase 5: TDD → 実装
38
40
 
39
41
  ## Phase 1: 要件定義
40
42
 
41
- `architecture-definition` で完了済み。`docs/01_要件定義/` が存在することを確認して次へ進む。
43
+ `architecture-definition` で完了済み。`docs/バックエンド/01_要件定義/` が存在することを確認して次へ進む。
42
44
 
43
45
  ## Phase 2: 概要設計
44
46
 
45
47
  ### 2-1. ユースケース一覧
46
48
 
47
49
  1. 要件定義からユースケースを洗い出す(Query / Command を意識)
48
- 2. `docs/02_概要設計/ユースケース一覧.md` を作る
50
+ 2. `docs/バックエンド/02_概要設計/ユースケース一覧.md` を作る
49
51
  3. ユーザーに確認・承認を得る
50
52
 
51
53
  ### 2-2. ドメインモデル + システム全体俯瞰
52
54
 
53
- 1. UC から集約・境界コンテキストを整理し `docs/02_概要設計/ドメインモデル.md` を作る
54
- 2. コンポーネント全体図・外部 IF を整理し `docs/02_概要設計/システム全体俯瞰.md` を作る
55
+ 1. UC から集約・境界コンテキストを整理し `docs/バックエンド/02_概要設計/ドメインモデル.md` を作る
56
+ 2. コンポーネント全体図・外部 IF を整理し `docs/バックエンド/02_概要設計/システム全体俯瞰.md` を作る
55
57
  3. ユーザーに確認・承認を得る
56
58
 
57
59
  ### 出力
@@ -59,7 +61,7 @@ Phase 5: TDD → 実装
59
61
  テンプレート: `templates/02_概要設計/ユースケース一覧.md` / `templates/02_概要設計/ドメインモデル.md` / `templates/02_概要設計/システム全体俯瞰.md`
60
62
 
61
63
  ```
62
- docs/02_概要設計/
64
+ docs/バックエンド/02_概要設計/
63
65
  ユースケース一覧.md
64
66
  ドメインモデル.md
65
67
  システム全体俯瞰.md
@@ -72,6 +74,8 @@ docs/02_概要設計/
72
74
 
73
75
  ## Phase 3: ADR(必要時のみ)
74
76
 
77
+ ADR テンプレート: `templates/90_ADR/ADRテンプレート.md`
78
+
75
79
  1. 設計判断が必要な場合だけ ADR を作る
76
80
  2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
77
81
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
@@ -85,42 +89,64 @@ docs/02_概要設計/
85
89
 
86
90
  4. 採用案を概要設計へ反映してから次へ進む
87
91
 
88
- ## 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: 詳細設計
89
113
 
90
114
  ドメイン → UC → DB・外部サービス の順に設計する。
91
115
 
92
- ### 4-1. ドメイン
116
+ ### 5-1. ドメイン
93
117
 
94
118
  テンプレート: `templates/03_詳細設計/01_ドメイン/{ドメイン名}.md`
95
119
 
96
120
  ```
97
- docs/03_詳細設計/01_ドメイン/
121
+ docs/バックエンド/03_詳細設計/01_ドメイン/
98
122
  {ドメイン名}.md
99
123
  ```
100
124
 
101
- ### 4-2. ユースケース
125
+ ### 5-2. ユースケース
102
126
 
103
127
  シーケンス図は UC ファイルに Mermaid で埋め込む。
104
128
 
105
129
  テンプレート: `templates/03_詳細設計/02_ユースケース/UC-{日本語名}.md`
106
130
 
107
- > `has_frontend: true` の場合は各 UC ファイルに「画面レイアウト」セクションを含める。`false` なら削除する。
108
-
109
131
  ```
110
- docs/03_詳細設計/02_ユースケース/
132
+ docs/バックエンド/03_詳細設計/02_ユースケース/
111
133
  UC-{日本語名}.md
112
134
  ```
113
135
 
114
- ### 4-3. DB・外部サービス(必要時のみ)
136
+ ### 5-3. DB・外部サービス(必要時のみ)
115
137
 
116
138
  ```
117
- docs/03_詳細設計/03_DB・外部サービス/
139
+ docs/バックエンド/03_詳細設計/03_DB・外部サービス/
118
140
  スキーマ定義.dbml
119
- 外部サービス.md
141
+ {プロバイダー名}/ # 例: AWS/, GCP/, Azure/
142
+ {サービス名}.md # 例: S3.md, DynamoDB.md, Athena.md
120
143
  ```
121
144
 
145
+ - 外部サービスはクラウドプロバイダー(AWS / GCP / Azure など)をカテゴリフォルダとし、中にサービス名の md を置く
146
+ - `外部サービス.md` のような汎用名は使わない
147
+
122
148
  4. ユーザーに確認・承認を得る
123
149
 
124
- ## Phase 5: TDD → 実装
150
+ ## Phase 6: TDD → 実装
125
151
 
126
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`
@@ -7,7 +7,6 @@ description: 既存機能の変更を docs 正本で進めるフローガイド
7
7
 
8
8
  フェーズは順番通りに進める。ユーザーの承認なしに先へ進めない。
9
9
 
10
- 影響範囲のチェックリストは `references/影響範囲チェックリスト.md` を参照する。
11
10
  ADR テンプレートは `templates/90_ADR/ADRテンプレート.md` を使用する。
12
11
 
13
12
  ## 前提: architecture.yaml の読み込み
@@ -17,7 +16,7 @@ ADR テンプレートは `templates/90_ADR/ADRテンプレート.md` を使用
17
16
  | キー | 用途 |
18
17
  |------|------|
19
18
  | `style` | Phase 4/5 のフォルダパス・設計順序を決定 |
20
- | `has_frontend` | UC 修正時に「画面レイアウト」セクションの要否を判断 |
19
+ | `has_frontend` | `true` なら `docs/フロントエンド/` の設計書も変更対象に含める |
21
20
  | `folder_structure` | 影響ドキュメントのパス確認に使用 |
22
21
 
23
22
  設計変更によって方針・構成に変化があった場合は、architecture.yaml も合わせて更新する。
@@ -29,22 +28,25 @@ Phase 1: 変更要求の整理と軽い影響調査
29
28
  Phase 2: ADR 作成(必要時)
30
29
  Phase 3: 影響ドキュメントの確定
31
30
  Phase 4: 概要設計の修正
32
- Phase 5: 詳細設計の修正
33
- Phase 6: TDD → 実装 → 検証
31
+ Phase 5: ベストプラクティス調査(必要時)
32
+ Phase 6: 詳細設計の修正
33
+ Phase 7: TDD → 実装 → 検証
34
34
  ```
35
35
 
36
36
  ## Phase 1: 変更要求の整理と軽い影響調査
37
37
 
38
- 1. 曖昧な前提があれば `spec-probe` スキルで先に整理する
38
+ 1. 変更の背景や目的について曖昧な点があれば、一問一答で深掘りする(各質問に推奨回答を添える。コードで確認できることは質問しない)
39
39
  2. 以下をユーザーにヒアリングする
40
40
  - 変更の背景・課題
41
41
  - 変更の目的・期待する結果
42
42
  - 影響を受ける機能カテゴリ
43
+ - バックエンド / フロントエンド / 両方のどちらに影響するか
43
44
  - 技術的・ビジネス的制約
44
45
  3. 変更起点となる docs を特定する
45
46
  4. `@analyze-impact` に委任して `depends_on` / `maps_to` を辿る影響ファイルを洗い出す
46
- 5. 変更が影響するドメインと成果物を一覧化する
47
- 6. ユーザーに確認・承認を得る
47
+ 5. `has_frontend: true` かつバックエンドの **API(UC の入出力・エンドポイント)** が変わる場合、フロントエンドの画面設計も影響対象に追加する(`docs/フロントエンド/03_詳細設計/01_画面/` の「API連携」セクションを確認)
48
+ 6. 変更が影響するドメインと成果物を一覧化する
49
+ 7. ユーザーに確認・承認を得る
48
50
 
49
51
  ## Phase 2: ADR 作成(必要時)
50
52
 
@@ -60,15 +62,16 @@ Phase 6: TDD → 実装 → 検証
60
62
 
61
63
  | 対象 | 配置先 |
62
64
  |------|--------|
63
- | システム横断の決定 | `docs/02_概要設計/90_ADR/全体/` |
64
- | ドメイン設計の決定 | `docs/02_概要設計/90_ADR/ドメイン/` |
65
- | UC フローの決定 | `docs/02_概要設計/90_ADR/UC/` |
66
- | DB・外部サービスの決定 | `docs/02_概要設計/90_ADR/DB/` |
65
+ | システム横断の決定 | `docs/バックエンド/02_概要設計/90_ADR/全体/` |
66
+ | ドメイン設計の決定 | `docs/バックエンド/02_概要設計/90_ADR/ドメイン/` |
67
+ | UC フローの決定 | `docs/バックエンド/02_概要設計/90_ADR/UC/` |
68
+ | DB・外部サービスの決定 | `docs/バックエンド/02_概要設計/90_ADR/DB/` |
69
+ | フロントエンドの決定 | `docs/フロントエンド/02_概要設計/90_ADR/` |
67
70
 
68
71
  ## Phase 3: 影響ドキュメントの確定
69
72
 
70
- 1. `references/影響範囲チェックリスト.md` を読み、変更に応じた影響ドキュメントを網羅的に洗い出す
71
- 2.ヘッダーの `depends_on` / `maps_to` を使って候補を絞る
73
+ 1. `@analyze-impact` に委任して `depends_on` / `maps_to` を辿る影響ファイルを網羅的に洗い出す
74
+ 2. ヘッダーの `depends_on` / `maps_to` を使って候補を絞る
72
75
  3. 修正が必要なファイルをチェックリスト形式で提示する
73
76
  4. `@review-design` エージェントに委任して、現時点の設計書⇔実装の乖離も合わせて確認する
74
77
  5. ユーザーに確認・承認を得る
@@ -77,26 +80,56 @@ Phase 6: TDD → 実装 → 検証
77
80
 
78
81
  概要設計では「何をするか」に留める。変更理由は ADR または本文で追えるようにする。
79
82
 
80
- 1. `ユースケース一覧.md` / `システム全体俯瞰.md` / ADR を必要順に修正する
83
+ ### バックエンド
84
+
85
+ 1. `docs/バックエンド/02_概要設計/ユースケース一覧.md` / `システム全体俯瞰.md` / ADR を必要順に修正する
81
86
  2. `style: ddd` の場合: `ドメインモデル.md` も必要に応じて修正する
82
- 3. 修正完了ごとにチェックリストを更新する
83
- 4. 全概要設計の修正完了後、ユーザーに確認・承認を得る
84
87
 
85
- ## Phase 5: 詳細設計の修正
88
+ ### フロントエンド(has_frontend: true かつ影響がある場合)
89
+
90
+ 1. `docs/フロントエンド/02_概要設計/画面一覧.md` / `画面遷移図.md` / `コンポーネント一覧.md` を必要順に修正する
91
+
92
+ 修正完了ごとにチェックリストを更新する。全概要設計の修正完了後、ユーザーに確認・承認を得る。
93
+
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: 詳細設計の修正
112
+
113
+ ### バックエンド
86
114
 
87
115
  `style: ddd` の場合:
88
116
 
89
- 1. `docs/03_詳細設計/01_ドメイン/**` のドメイン設計を修正する
90
- 2. `docs/03_詳細設計/02_ユースケース/**` の UC 設計を修正する
91
- 3. DB・外部サービスの変更がある場合は `docs/03_詳細設計/03_DB・外部サービス/**` を修正する
117
+ 1. `docs/バックエンド/03_詳細設計/01_ドメイン/**` のドメイン設計を修正する
118
+ 2. `docs/バックエンド/03_詳細設計/02_ユースケース/**` の UC 設計を修正する
119
+ 3. DB・外部サービスの変更がある場合は `docs/バックエンド/03_詳細設計/03_DB・外部サービス/**` を修正する
92
120
 
93
121
  `style: layered` の場合:
94
122
 
95
- 1. `docs/03_詳細設計/01_ユースケース/**` の UC 設計を修正する
96
- 2. DB・外部サービスの変更がある場合は `docs/03_詳細設計/02_DB・外部サービス/**` を修正する
123
+ 1. `docs/バックエンド/03_詳細設計/01_ユースケース/**` の UC 設計を修正する
124
+ 2. DB・外部サービスの変更がある場合は `docs/バックエンド/03_詳細設計/02_DB・外部サービス/**` を修正する
125
+
126
+ ### フロントエンド(has_frontend: true かつ影響がある場合)
127
+
128
+ 1. `docs/フロントエンド/03_詳細設計/01_画面/**` の画面設計を修正する
129
+ 2. コンポーネントの変更がある場合は `docs/フロントエンド/03_詳細設計/02_コンポーネント/**` を修正する
97
130
 
98
- ヘッダー `depends_on` / `maps_to` を更新する。ユーザーに最終確認を得る。
131
+ ヘッダーの `depends_on` / `maps_to` を更新する。ユーザーに最終確認を得る。
99
132
 
100
- ## Phase 6: TDD → 実装 → 検証
133
+ ## Phase 7: TDD → 実装 → 検証
101
134
 
102
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
 
@@ -23,6 +23,8 @@ Phase 5: architecture contract 化
23
23
  - 既存コードを正として観測する。推測する場合は明示する
24
24
  - `depends_on` を使って後続変更に耐える形へ整える
25
25
  - ユーザー承認なしに次フェーズへ進めない
26
+ - バックエンドの設計はすべて `docs/バックエンド/` 配下に置く
27
+ - `has_frontend: true` の場合、フロントエンドの設計は `docs/フロントエンド/` 配下に置く
26
28
  - `style: ddd` の場合: UC がドメインを使う。ドメインの中に UC を入れない
27
29
  - `style: ddd` の場合: 詳細設計は `01_ドメイン/` `02_ユースケース/` `03_DB・外部サービス/` の 3 層で構成する
28
30
  - `style: layered` の場合: ドメイン層は持たない。ビジネスロジックは UC / サービス層で表現する
@@ -32,8 +34,9 @@ Phase 5: architecture contract 化
32
34
 
33
35
  1. `src/`、`tests/`、設定ファイル、README、IaC を読む
34
36
  2. 現状システムの入口、主要フロー、外部依存を一覧化する
35
- 3. `.spec-runner/intake/current-system-inventory.md` を作る
36
- 4. ユーザーに確認・承認を得る
37
+ 3. フロントエンドの有無(Web UI・画面があるか)を判定する
38
+ 4. `.spec-runner/intake/current-system-inventory.md` を作る
39
+ 5. ユーザーに確認・承認を得る
37
40
 
38
41
  ## Phase 1.5: docs 構成の合意
39
42
 
@@ -41,34 +44,44 @@ Phase 5: architecture contract 化
41
44
 
42
45
  1. `current-system-inventory.md` を元に以下を提案する
43
46
  - `style`(`ddd` / `layered`)
44
- - `docs/` のフォルダ構成
47
+ - `has_frontend`(`true` / `false`)
48
+ - `docs/` のフォルダ構成(`バックエンド/` + 必要なら `フロントエンド/`)
45
49
  - 作成予定ファイルの一覧
46
50
  2. ユーザーに確認・承認を得る
47
- 3. 承認後、`.spec-runner/architecture/architecture.yaml` を新規作成し `style` だけ先に書き込む(残りは Phase 5 で完成させる)
51
+ 3. 承認後、`.spec-runner/architecture/architecture.yaml` を新規作成し `style` と `has_frontend` だけ先に書き込む(残りは Phase 5 で完成させる)
48
52
 
49
53
  ## Phase 2: 要件とユースケースの抽出
50
54
 
51
55
  要件定義テンプレートは `simple-seed` に存在しないため、`style` に関わらず `ddd-seed` のテンプレートを使う。
52
56
 
53
57
  1. `current-system-inventory.md` を起点に、既存機能からユースケースを逆算する
54
- 2. `.claude/skills/ddd-seed/templates/01_要件定義/要件定義.md` を使い `docs/01_要件定義/要件定義.md` を作る
55
- 3. `.claude/skills/ddd-seed/templates/02_概要設計/ユースケース一覧.md` を使い `docs/02_概要設計/ユースケース一覧.md` を作る
56
- 4. ドメイン用語が識別できたら `.claude/skills/ddd-seed/templates/01_要件定義/ユビキタス言語辞書.md` を使い `docs/01_要件定義/ユビキタス言語辞書.md` を作る
57
- 5. ユーザーに確認・承認を得る
58
+ 2. `.claude/skills/ddd-seed/templates/01_要件定義/要件定義.md` を使い `docs/バックエンド/01_要件定義/要件定義.md` を作る
59
+ 3. `.claude/skills/ddd-seed/templates/02_概要設計/ユースケース一覧.md` を使い `docs/バックエンド/02_概要設計/ユースケース一覧.md` を作る
60
+ 4. ドメイン用語が識別できたら `.claude/skills/ddd-seed/templates/01_要件定義/ユビキタス言語辞書.md` を使い `docs/バックエンド/01_要件定義/ユビキタス言語辞書.md` を作る
61
+ 5. `has_frontend: true` の場合: `.claude/skills/frontend-seed/templates/01_要件定義/要件定義.md` を使い `docs/フロントエンド/01_要件定義/要件定義.md` も作る
62
+ 6. ユーザーに確認・承認を得る
58
63
 
59
64
  ## Phase 3: 概要設計
60
65
 
66
+ ### バックエンド
67
+
61
68
  `style: ddd` の場合:
62
69
 
63
- 1. `.claude/skills/ddd-seed/templates/02_概要設計/システム全体俯瞰.md` を使い `docs/02_概要設計/システム全体俯瞰.md` を作る
64
- 2. `.claude/skills/ddd-seed/templates/02_概要設計/ドメインモデル.md` を使い `docs/02_概要設計/ドメインモデル.md` を作る
70
+ 1. `.claude/skills/ddd-seed/templates/02_概要設計/システム全体俯瞰.md` を使い `docs/バックエンド/02_概要設計/システム全体俯瞰.md` を作る
71
+ 2. `.claude/skills/ddd-seed/templates/02_概要設計/ドメインモデル.md` を使い `docs/バックエンド/02_概要設計/ドメインモデル.md` を作る
65
72
  3. 必要なら ADR を作る(作成ルールは下記)
66
73
 
67
74
  `style: layered` の場合:
68
75
 
69
- 1. `.claude/skills/simple-seed/templates/02_概要設計/システム全体俯瞰.md` を使い `docs/02_概要設計/システム全体俯瞰.md` を作る
76
+ 1. `.claude/skills/simple-seed/templates/02_概要設計/システム全体俯瞰.md` を使い `docs/バックエンド/02_概要設計/システム全体俯瞰.md` を作る
70
77
  2. 必要なら ADR を作る(作成ルールは下記)
71
78
 
79
+ ### フロントエンド(has_frontend: true のみ)
80
+
81
+ 1. `.claude/skills/frontend-seed/templates/02_概要設計/画面一覧.md` を使い `docs/フロントエンド/02_概要設計/画面一覧.md` を作る
82
+ 2. `.claude/skills/frontend-seed/templates/02_概要設計/画面遷移図.md` を使い `docs/フロントエンド/02_概要設計/画面遷移図.md` を作る
83
+ 3. `.claude/skills/frontend-seed/templates/02_概要設計/コンポーネント一覧.md` を使い `docs/フロントエンド/02_概要設計/コンポーネント一覧.md` を作る
84
+
72
85
  ### ADR 作成ルール(必要時のみ)
73
86
 
74
87
  1. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
@@ -78,18 +91,20 @@ Phase 5: architecture contract 化
78
91
 
79
92
  | 対象 | 配置先 |
80
93
  |------|--------|
81
- | システム横断の決定 | `90_ADR/全体/` |
82
- | ドメイン設計の決定 | `90_ADR/ドメイン/` |
83
- | UC フローの決定 | `90_ADR/UC/` |
84
- | DB・外部サービスの決定 | `90_ADR/DB/` |
94
+ | システム横断の決定 | `docs/バックエンド/02_概要設計/90_ADR/全体/` |
95
+ | ドメイン設計の決定 | `docs/バックエンド/02_概要設計/90_ADR/ドメイン/` |
96
+ | UC フローの決定 | `docs/バックエンド/02_概要設計/90_ADR/UC/` |
97
+ | DB・外部サービスの決定 | `docs/バックエンド/02_概要設計/90_ADR/DB/` |
98
+ | フロントエンドの決定 | `docs/フロントエンド/02_概要設計/90_ADR/` |
85
99
 
86
100
  `style: layered` の場合:
87
101
 
88
102
  | 対象 | 配置先 |
89
103
  |------|--------|
90
- | システム横断の決定 | `90_ADR/全体/` |
91
- | UC フローの決定 | `90_ADR/UC/` |
92
- | DB・外部サービスの決定 | `90_ADR/DB/` |
104
+ | システム横断の決定 | `docs/バックエンド/02_概要設計/90_ADR/全体/` |
105
+ | UC フローの決定 | `docs/バックエンド/02_概要設計/90_ADR/UC/` |
106
+ | DB・外部サービスの決定 | `docs/バックエンド/02_概要設計/90_ADR/DB/` |
107
+ | フロントエンドの決定 | `docs/フロントエンド/02_概要設計/90_ADR/` |
93
108
 
94
109
  3. 採用案を概要設計へ反映してから次へ進む
95
110
 
@@ -97,16 +112,23 @@ Phase 5: architecture contract 化
97
112
 
98
113
  ## Phase 4: 詳細設計
99
114
 
115
+ ### バックエンド
116
+
100
117
  `style: ddd` の場合(ドメイン → UC → DB・外部サービス の順に設計する):
101
118
 
102
- 1. `.claude/skills/ddd-seed/templates/03_詳細設計/01_ドメイン/{ドメイン名}.md` を使い、ドメインごとにビジネスルール・集約を整理し `docs/03_詳細設計/01_ドメイン/{ドメイン名}.md` を作る
103
- 2. `.claude/skills/ddd-seed/templates/03_詳細設計/02_ユースケース/UC-{日本語名}.md` を使い、UC ごとに `docs/03_詳細設計/02_ユースケース/UC-{日本語名}.md` を作る(シーケンス図は Mermaid で埋め込む)
104
- 3. DB・外部サービスの仕様が必要なら `docs/03_詳細設計/03_DB・外部サービス/` を作る
119
+ 1. `.claude/skills/ddd-seed/templates/03_詳細設計/01_ドメイン/{ドメイン名}.md` を使い、ドメインごとにビジネスルール・集約を整理し `docs/バックエンド/03_詳細設計/01_ドメイン/{ドメイン名}.md` を作る
120
+ 2. `.claude/skills/ddd-seed/templates/03_詳細設計/02_ユースケース/UC-{日本語名}.md` を使い、UC ごとに `docs/バックエンド/03_詳細設計/02_ユースケース/UC-{日本語名}.md` を作る(シーケンス図は Mermaid で埋め込む)
121
+ 3. DB・外部サービスの仕様が必要なら `docs/バックエンド/03_詳細設計/03_DB・外部サービス/` を作る
105
122
 
106
123
  `style: layered` の場合(UC → DB・外部サービス の順に設計する):
107
124
 
108
- 1. `.claude/skills/simple-seed/templates/03_詳細設計/01_ユースケース/UC-{日本語名}.md` を使い、UC ごとに `docs/03_詳細設計/01_ユースケース/UC-{日本語名}.md` を作る
109
- 2. DB・外部サービスの仕様が必要なら `docs/03_詳細設計/02_DB・外部サービス/` を作る
125
+ 1. `.claude/skills/simple-seed/templates/03_詳細設計/01_ユースケース/UC-{日本語名}.md` を使い、UC ごとに `docs/バックエンド/03_詳細設計/01_ユースケース/UC-{日本語名}.md` を作る
126
+ 2. DB・外部サービスの仕様が必要なら `docs/バックエンド/03_詳細設計/02_DB・外部サービス/` を作る
127
+
128
+ ### フロントエンド(has_frontend: true のみ)
129
+
130
+ 1. `.claude/skills/frontend-seed/templates/03_詳細設計/01_画面/{カテゴリ名}/{画面名}.md` を使い、カテゴリごとに画面 MD を `docs/フロントエンド/03_詳細設計/01_画面/` に作る
131
+ 2. `.claude/skills/frontend-seed/templates/03_詳細設計/02_コンポーネント/{コンポーネント名}.md` を使い、共通コンポーネントを `docs/フロントエンド/03_詳細設計/02_コンポーネント/` に作る
110
132
 
111
133
  各ファイルの `maps_to` に対応コードとテストを必ず入れる。ユーザーに確認・承認を得る。
112
134
 
@@ -115,4 +137,3 @@ Phase 5: architecture contract 化
115
137
  1. `.spec-runner/architecture/architecture.yaml` を完成させる
116
138
  2. 現状構造を project 専用 skill へ渡せる粒度に整える
117
139
  3. `architecture-skill-development` へ引き渡す
118
-