spec-runner 1.8.0 → 2.0.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/bin/spec-runner-installer.js +8 -6
- package/package.json +1 -1
- package/spec-runner/templates/.claude/rules/code-style.md +4 -0
- package/spec-runner/templates/.claude/rules/design-docs.md +2 -1
- package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +18 -2
- package/spec-runner/templates/.claude/skills/ddd-seed/SKILL.md +57 -12
- 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/DB//343/203/236/343/202/244/343/202/260/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/346/210/246/347/225/245.md +40 -0
- 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
- 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
- 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
- package/spec-runner/templates/.claude/skills/design-change/SKILL.md +35 -4
- 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
- package/spec-runner/templates/.claude/skills/frontend-seed/SKILL.md +32 -7
- 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 +2 -0
- 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
- 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
- package/spec-runner/templates/.claude/skills/simple-seed/SKILL.md +57 -10
- 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
- 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/DB//343/203/236/343/202/244/343/202/260/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/346/210/246/347/225/245.md +40 -0
- 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
- 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
- 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
- package/spec-runner/templates/.github/instructions/code-style.instructions.md +4 -0
- package/spec-runner/templates/.github/instructions/design-docs.instructions.md +2 -1
- package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +18 -2
- package/spec-runner/templates/.github/skills/ddd-seed/SKILL.md +57 -12
- 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/DB//343/203/236/343/202/244/343/202/260/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/346/210/246/347/225/245.md +40 -0
- 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
- 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
- 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
- package/spec-runner/templates/.github/skills/design-change/SKILL.md +35 -4
- 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
- package/spec-runner/templates/.github/skills/frontend-seed/SKILL.md +32 -7
- 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 +2 -0
- 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
- 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
- package/spec-runner/templates/.github/skills/simple-seed/SKILL.md +57 -10
- 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
- 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/DB//343/203/236/343/202/244/343/202/260/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/346/210/246/347/225/245.md +40 -0
- 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
- 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
- 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
- package/spec-runner/templates/.spec-runner/references/resources.md +1 -1
- package/spec-runner/templates/copilot-instructions.md +22 -0
- /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-{ → {/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/UC-{}/346/227/245/346/234/254/350/252/236/345/220/215}.md" +0 -0
- /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-{ → {/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/UC-{}/346/227/245/346/234/254/350/252/236/345/220/215}.md" +0 -0
- /package/spec-runner/templates/.github/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-{ → {/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/UC-{}/346/227/245/346/234/254/350/252/236/345/220/215}.md" +0 -0
- /package/spec-runner/templates/.github/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-{ → {/343/202/253/343/203/206/343/202/264/343/203/252/345/220/215}/UC-{}/346/227/245/346/234/254/350/252/236/345/220/215}.md" +0 -0
|
@@ -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:
|
|
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
|
-
###
|
|
117
|
+
### 5-1. 画面
|
|
95
118
|
|
|
96
119
|
カテゴリ(機能ドメイン)でディレクトリを切り、画面ごとに 1 ファイル作成する。
|
|
97
120
|
|
|
@@ -103,19 +126,21 @@ docs/フロントエンド/03_詳細設計/01_画面/
|
|
|
103
126
|
{画面名}.md
|
|
104
127
|
```
|
|
105
128
|
|
|
106
|
-
###
|
|
129
|
+
### 5-2. コンポーネント
|
|
107
130
|
|
|
108
131
|
概要設計のコンポーネント一覧をもとに、共通コンポーネントごとに 1 ファイル作成する。
|
|
109
132
|
|
|
133
|
+
ファイル名は日本語にする(例: `検索バー.md`, `モーダル.md`, `ヘッダー.md`)。
|
|
134
|
+
|
|
110
135
|
テンプレート: `templates/03_詳細設計/02_コンポーネント/{コンポーネント名}.md`
|
|
111
136
|
|
|
112
137
|
```
|
|
113
138
|
docs/フロントエンド/03_詳細設計/02_コンポーネント/
|
|
114
|
-
{
|
|
139
|
+
{日本語コンポーネント名}.md
|
|
115
140
|
```
|
|
116
141
|
|
|
117
142
|
ユーザーに確認・承認を得る。
|
|
118
143
|
|
|
119
|
-
## Phase
|
|
144
|
+
## Phase 6: TDD → 実装
|
|
120
145
|
|
|
121
146
|
`test-driven-development` スキルへ移行する。
|
|
@@ -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:
|
|
27
|
-
Phase 5:
|
|
26
|
+
Phase 4: ベストプラクティス調査(必要時のみ)
|
|
27
|
+
Phase 5: 詳細設計(UC → DB・外部サービス)
|
|
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,30 +78,74 @@ 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
|
-
###
|
|
105
|
+
### 5-1. ユースケース
|
|
106
|
+
|
|
107
|
+
カテゴリ(機能ドメイン)でディレクトリを切る。
|
|
83
108
|
|
|
84
|
-
テンプレート: `templates/03_詳細設計/01_ユースケース/UC-{日本語名}.md`
|
|
109
|
+
テンプレート: `templates/03_詳細設計/01_ユースケース/{カテゴリ名}/UC-{日本語名}.md`
|
|
85
110
|
|
|
86
111
|
```
|
|
87
112
|
docs/バックエンド/03_詳細設計/01_ユースケース/
|
|
88
|
-
|
|
113
|
+
{カテゴリ名}/ # 例: 注文/, 在庫/, ユーザー/
|
|
114
|
+
UC-{日本語名}.md
|
|
89
115
|
```
|
|
90
116
|
|
|
91
|
-
###
|
|
117
|
+
### 5-2. DB・外部サービス(必要時のみ)
|
|
118
|
+
|
|
119
|
+
テンプレート: `templates/03_詳細設計/02_DB・外部サービス/{プロバイダー名}/{サービス名}.md`
|
|
92
120
|
|
|
93
121
|
```
|
|
94
122
|
docs/バックエンド/03_詳細設計/02_DB・外部サービス/
|
|
95
|
-
|
|
96
|
-
|
|
123
|
+
DB/
|
|
124
|
+
スキーマ定義.dbml
|
|
125
|
+
マイグレーション戦略.md
|
|
126
|
+
{プロバイダー名}/ # 例: AWS/, GCP/, Azure/
|
|
127
|
+
{サービス名}.md # 例: S3.md, DynamoDB.md, Athena.md
|
|
97
128
|
```
|
|
98
129
|
|
|
130
|
+
- DB 関連ファイルは `DB/` カテゴリに置く
|
|
131
|
+
- 外部サービスはクラウドプロバイダー(AWS / GCP / Azure など)をカテゴリフォルダとし、中にサービス名の md を置く
|
|
132
|
+
- `外部サービス.md` のような汎用名は使わない
|
|
133
|
+
|
|
99
134
|
3. ユーザーに確認・承認を得る
|
|
100
135
|
|
|
101
|
-
## Phase 5:
|
|
136
|
+
## Phase 5.5: マイグレーション戦略
|
|
137
|
+
|
|
138
|
+
スキーマ定義が確定した後、TDD に入る前に実施する。
|
|
139
|
+
|
|
140
|
+
1. Migration ツール・命名規則・Up/Down 方針をユーザーと確認する
|
|
141
|
+
2. ゼロダウンタイムの要否を確認する
|
|
142
|
+
3. ロールバック方針・既存データの扱いを決める
|
|
143
|
+
4. `docs/バックエンド/03_詳細設計/02_DB・外部サービス/DB/マイグレーション戦略.md` を作る
|
|
144
|
+
5. ユーザーに確認・承認を得る
|
|
145
|
+
|
|
146
|
+
テンプレート: `templates/03_詳細設計/02_DB・外部サービス/DB/マイグレーション戦略.md`
|
|
147
|
+
|
|
148
|
+
## Phase 6: TDD → 実装
|
|
102
149
|
|
|
103
150
|
`test-driven-development` スキルへ移行する。
|
|
104
151
|
|
|
@@ -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,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.db.マイグレーション戦略
|
|
4
|
+
kind: migration_strategy
|
|
5
|
+
depends_on:
|
|
6
|
+
- detail.db.スキーマ定義
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# マイグレーション戦略
|
|
10
|
+
|
|
11
|
+
## ツール
|
|
12
|
+
|
|
13
|
+
- **Migration ツール**: {Flyway / Alembic / Prisma Migrate / その他}
|
|
14
|
+
- **ファイル命名規則**: {例: V{バージョン}__{説明}.sql}
|
|
15
|
+
|
|
16
|
+
## Up / Down 方針
|
|
17
|
+
|
|
18
|
+
- **Up**: {適用時の方針}
|
|
19
|
+
- **Down**: {ロールバック時の方針 / Down 不要の場合はその理由}
|
|
20
|
+
|
|
21
|
+
## 既存データの扱い
|
|
22
|
+
|
|
23
|
+
| ケース | 対応方針 |
|
|
24
|
+
|--------|---------|
|
|
25
|
+
| {既存レコードの変換} | {方針} |
|
|
26
|
+
| {seed データ} | {方針} |
|
|
27
|
+
| {データ移行スクリプト} | {方針} |
|
|
28
|
+
|
|
29
|
+
## ゼロダウンタイム戦略
|
|
30
|
+
|
|
31
|
+
- **要否**: {必要 / 不要}
|
|
32
|
+
- **方針**: {例: backward compatible な変更を先に適用 → デプロイ → 旧カラム削除}
|
|
33
|
+
|
|
34
|
+
## ロールバック方針
|
|
35
|
+
|
|
36
|
+
- {ロールバック手順・条件}
|
|
37
|
+
|
|
38
|
+
## 適用順序・依存関係
|
|
39
|
+
|
|
40
|
+
- {Migration ファイル間の依存がある場合に記載}
|
|
@@ -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,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`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
## spec-runner セットアップ
|
|
2
|
+
|
|
3
|
+
このプロジェクトは spec-runner を使用しています。
|
|
4
|
+
|
|
5
|
+
### 開発ワークフロー
|
|
6
|
+
|
|
7
|
+
設計書は `docs/` に格納されています。実装前に必ず設計書を参照してください。
|
|
8
|
+
|
|
9
|
+
| 状態 | 判定方法 | 起動するスキル |
|
|
10
|
+
|------|---------|--------------|
|
|
11
|
+
| 新規プロジェクト | `docs/` が存在しないか空 | `architecture-definition` |
|
|
12
|
+
| 既存プロジェクト | `docs/` にファイルがある | `existing-project-to-docs` |
|
|
13
|
+
|
|
14
|
+
どちらの場合も、そのスキルが完了したら続けて `architecture-skill-development` を起動する。
|
|
15
|
+
|
|
16
|
+
### 判定の注意
|
|
17
|
+
|
|
18
|
+
- `docs/` の中身を確認してから判断する(ディレクトリ存在だけで判断しない)
|
|
19
|
+
- ユーザーが「〇〇を作りたい」「〇〇の開発を始めたい」のように要件・作業開始を示す発言をしたら起動する
|
|
20
|
+
- 雑談や質問など、明らかに要件でない場合は起動しない
|
|
21
|
+
|
|
22
|
+
詳細な指示は `.github/instructions/` の各ファイルを参照してください。
|