spec-runner 1.1.13 → 1.1.17
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 +63 -0
- package/package.json +1 -1
- package/spec-runner/templates/.claude/agents/design-reviewer.md +8 -8
- package/spec-runner/templates/.claude/agents/impact-analyzer.md +35 -11
- package/spec-runner/templates/.claude/rules/coding.md +11 -0
- package/spec-runner/templates/.claude/rules/design-docs.md +52 -18
- package/spec-runner/templates/.claude/rules/harness-formats.md +93 -0
- package/spec-runner/templates/.claude/settings.json +15 -0
- package/spec-runner/templates/.claude/skills/architecture-definition/SKILL.md +43 -15
- package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +26 -21
- package/spec-runner/templates/.claude/skills/design-change/SKILL.md +14 -12
- 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 -32
- package/spec-runner/templates/.claude/skills/docs-driven-seed/SKILL.md +127 -0
- package/spec-runner/templates/.claude/skills/docs-driven-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 +15 -0
- package/spec-runner/templates/.claude/skills/docs-driven-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/docs-driven-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260.md +33 -0
- package/spec-runner/templates/.claude/skills/docs-driven-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 +32 -0
- package/spec-runner/templates/.claude/skills/docs-driven-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 +15 -0
- package/spec-runner/templates/.claude/skills/docs-driven-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/01_/343/203/211/343/203/241/343/202/244/343/203/263/{/343/203/211/343/203/241/343/202/244/343/203/263/345/220/215}.md +56 -0
- package/spec-runner/templates/.claude/skills/docs-driven-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 +55 -0
- package/spec-runner/templates/.claude/skills/existing-project-to-docs/SKILL.md +12 -9
- package/spec-runner/templates/.claude/skills/harness-engineering/SKILL.md +4 -0
- package/spec-runner/templates/.claude/skills/simple-seed/SKILL.md +105 -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-{/346/227/245/346/234/254/350/252/236/345/220/215}.md +53 -0
- package/spec-runner/templates/.claude/skills/test-driven-development/SKILL.md +104 -7
- package/spec-runner/templates/.github/agents/design-reviewer.agent.md +8 -8
- package/spec-runner/templates/.github/agents/impact-analyzer.agent.md +35 -11
- package/spec-runner/templates/.github/instructions/coding.instructions.md +11 -0
- package/spec-runner/templates/.github/instructions/design-docs.instructions.md +52 -18
- package/spec-runner/templates/.github/instructions/harness-formats.instructions.md +87 -0
- package/spec-runner/templates/.github/skills/architecture-definition/SKILL.md +43 -15
- package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +26 -21
- package/spec-runner/templates/.github/skills/design-change/SKILL.md +14 -12
- 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 -32
- package/spec-runner/templates/.github/skills/docs-driven-seed/SKILL.md +127 -0
- package/spec-runner/templates/.github/skills/docs-driven-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 +15 -0
- package/spec-runner/templates/.github/skills/docs-driven-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/docs-driven-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260.md +33 -0
- package/spec-runner/templates/.github/skills/docs-driven-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 +32 -0
- package/spec-runner/templates/.github/skills/docs-driven-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 +15 -0
- package/spec-runner/templates/.github/skills/docs-driven-seed/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/01_/343/203/211/343/203/241/343/202/244/343/203/263/{/343/203/211/343/203/241/343/202/244/343/203/263/345/220/215}.md +56 -0
- package/spec-runner/templates/.github/skills/docs-driven-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 +55 -0
- package/spec-runner/templates/.github/skills/existing-project-to-docs/SKILL.md +12 -9
- package/spec-runner/templates/.github/skills/harness-engineering/SKILL.md +4 -0
- package/spec-runner/templates/.github/skills/simple-seed/SKILL.md +105 -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-{/346/227/245/346/234/254/350/252/236/345/220/215}.md +53 -0
- package/spec-runner/templates/.github/skills/test-driven-development/SKILL.md +104 -7
- package/spec-runner/templates/.spec-runner/scripts/scan.js +156 -0
- package/spec-runner/templates/.claude/skills/plugin-development/SKILL.md +0 -173
- package/spec-runner/templates/.claude/skills/plugin-development/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//346/246/202/350/246/201/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -88
- package/spec-runner/templates/.claude/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -81
- package/spec-runner/templates/.claude/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -80
- package/spec-runner/templates/.claude/skills/plugin-development/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/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -57
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/aws.md +0 -53
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/database.md +0 -54
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/schema.dbml +0 -25
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/sequence//343/202/267/343/203/274/343/202/261/343/203/263/343/202/271/345/233/263/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -28
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/agent.md +0 -56
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/config.md +0 -47
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/domain.md +0 -67
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/prompts.md +0 -72
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/skills/{skill_name}/skill.md +0 -53
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/tools/{tool_name}/tool.md +0 -51
- package/spec-runner/templates/.github/skills/plugin-development/SKILL.md +0 -173
- package/spec-runner/templates/.github/skills/plugin-development/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//346/246/202/350/246/201/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -88
- package/spec-runner/templates/.github/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -81
- package/spec-runner/templates/.github/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -80
- package/spec-runner/templates/.github/skills/plugin-development/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/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -57
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/aws.md +0 -53
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/database.md +0 -54
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/schema.dbml +0 -25
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/sequence//343/202/267/343/203/274/343/202/261/343/203/263/343/202/271/345/233/263/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +0 -28
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/agent.md +0 -56
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/config.md +0 -47
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/domain.md +0 -67
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/prompts.md +0 -72
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/skills/{skill_name}/skill.md +0 -53
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/tools/{tool_name}/tool.md +0 -51
|
@@ -41,16 +41,17 @@ Phase 6: TDD → 実装 → 検証
|
|
|
41
41
|
3. 各案について概要・メリット・デメリット・適合性を示す
|
|
42
42
|
4. ユーザーが案を決定する
|
|
43
43
|
5. テンプレート `templates/90_ADR/ADRテンプレート.md` をコピーして生成する
|
|
44
|
-
6. ファイル名は `mmdd-{日本語タイトル}.md
|
|
44
|
+
6. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
|
|
45
|
+
7. ユーザーに確認・承認を得る
|
|
45
46
|
|
|
46
47
|
### ADR 配置ルール
|
|
47
48
|
|
|
48
|
-
|
|
|
49
|
-
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
| 対象 | 配置先 |
|
|
50
|
+
|------|--------|
|
|
51
|
+
| システム横断の決定 | `docs/02_概要設計/90_ADR/全体/` |
|
|
52
|
+
| ドメイン設計の決定 | `docs/02_概要設計/90_ADR/ドメイン/` |
|
|
53
|
+
| UC フローの決定 | `docs/02_概要設計/90_ADR/UC/` |
|
|
54
|
+
| DB・外部サービスの決定 | `docs/02_概要設計/90_ADR/DB/` |
|
|
54
55
|
|
|
55
56
|
## Phase 3: 影響ドキュメントの確定
|
|
56
57
|
|
|
@@ -62,7 +63,7 @@ MVP では `docs/02_概要設計/90_ADR/` に集約する。
|
|
|
62
63
|
|
|
63
64
|
## Phase 4: 概要設計の修正
|
|
64
65
|
|
|
65
|
-
1. `ユースケース一覧.md` / `システム全体俯瞰.md` /
|
|
66
|
+
1. `ユースケース一覧.md` / `システム全体俯瞰.md` / `ドメインモデル.md` / ADR を必要順に修正する
|
|
66
67
|
2. 修正完了ごとにチェックリストを更新する
|
|
67
68
|
3. 全概要設計の修正完了後、ユーザーに確認・承認を得る
|
|
68
69
|
|
|
@@ -73,10 +74,11 @@ MVP では `docs/02_概要設計/90_ADR/` に集約する。
|
|
|
73
74
|
|
|
74
75
|
## Phase 5: 詳細設計の修正
|
|
75
76
|
|
|
76
|
-
1. `docs/03_詳細設計/
|
|
77
|
-
2.
|
|
78
|
-
3.
|
|
79
|
-
4.
|
|
77
|
+
1. `docs/03_詳細設計/01_ドメイン/**` のドメイン設計を修正する
|
|
78
|
+
2. `docs/03_詳細設計/02_ユースケース/**` の UC 設計を修正する
|
|
79
|
+
3. DB・外部サービスの変更がある場合は `docs/03_詳細設計/03_DB・外部サービス/**` を修正する
|
|
80
|
+
4. frontmatter の `depends_on` / `maps_to` を更新する
|
|
81
|
+
5. ユーザーに最終確認を得る
|
|
80
82
|
|
|
81
83
|
## Phase 6: TDD → 実装 → 検証
|
|
82
84
|
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
spec_runner:
|
|
3
3
|
node_id: adr.{decision_slug}
|
|
4
4
|
kind: adr
|
|
5
|
-
depends_on:
|
|
6
|
-
- overview.system_context
|
|
7
|
-
maps_to: []
|
|
8
5
|
---
|
|
9
6
|
|
|
10
7
|
# {決定内容のタイトル}
|
|
@@ -21,35 +18,6 @@ spec_runner:
|
|
|
21
18
|
| 要件 | {実現する必要があること} |
|
|
22
19
|
| 制約 | {技術的・ビジネス的制約} |
|
|
23
20
|
|
|
24
|
-
## 選択肢
|
|
25
|
-
|
|
26
|
-
### 案1: {案1の名前}
|
|
27
|
-
|
|
28
|
-
- 概要: {何をするか}
|
|
29
|
-
- メリット:
|
|
30
|
-
- {メリット}
|
|
31
|
-
- デメリット:
|
|
32
|
-
- {デメリット}
|
|
33
|
-
- 適合性: {このプロジェクトにどう合うか}
|
|
34
|
-
|
|
35
|
-
### 案2: {案2の名前}
|
|
36
|
-
|
|
37
|
-
- 概要: {何をするか}
|
|
38
|
-
- メリット:
|
|
39
|
-
- {メリット}
|
|
40
|
-
- デメリット:
|
|
41
|
-
- {デメリット}
|
|
42
|
-
- 適合性: {このプロジェクトにどう合うか}
|
|
43
|
-
|
|
44
|
-
### 案3: {案3の名前}
|
|
45
|
-
|
|
46
|
-
- 概要: {何をするか}
|
|
47
|
-
- メリット:
|
|
48
|
-
- {メリット}
|
|
49
|
-
- デメリット:
|
|
50
|
-
- {デメリット}
|
|
51
|
-
- 適合性: {このプロジェクトにどう合うか}
|
|
52
|
-
|
|
53
21
|
## 決定
|
|
54
22
|
|
|
55
23
|
**採用案**: {案名}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-driven-seed
|
|
3
|
+
description: UC/DDD 駆動の docs 正本開発フローの種。新規プロジェクトの初期テンプレートとして使い、architecture-skill-development でプロジェクト専用スキルに育てる。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# docs-driven-seed
|
|
7
|
+
|
|
8
|
+
**DDD(ドメイン駆動設計)を採用するプロジェクト向け**の docs 正本開発フロー参照実装(種)。
|
|
9
|
+
`architecture.yaml` の `style: ddd` のときに使う。レイヤード / CRUD 中心のプロジェクトは `simple-seed` を使う。
|
|
10
|
+
|
|
11
|
+
**このスキルをそのまま使い続けない。`architecture-skill-development` で自プロジェクト専用スキルに育てることを前提とする。**
|
|
12
|
+
|
|
13
|
+
## 全体フロー
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Phase 1: 要件定義
|
|
17
|
+
Phase 2: 概要設計(ユースケース + ドメインモデル)
|
|
18
|
+
Phase 3: ADR(必要時のみ)
|
|
19
|
+
Phase 4: 詳細設計(ドメイン → UC → DB・外部サービス)
|
|
20
|
+
Phase 5: TDD → 実装
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 前提ルール
|
|
24
|
+
|
|
25
|
+
- docs は正本とし、各ドキュメントに `spec_runner` frontmatter を付ける
|
|
26
|
+
- 詳細設計は `01_ドメイン/` `02_ユースケース/` `03_DB・外部サービス/` の 3 層で構成する
|
|
27
|
+
- UC がドメインを使う。ドメインの中に UC は入れない
|
|
28
|
+
- `maps_to` は必ず設定する。パス推定に頼らない
|
|
29
|
+
- ユーザー承認なしに次フェーズへ進めない
|
|
30
|
+
|
|
31
|
+
## Phase 1: 要件定義
|
|
32
|
+
|
|
33
|
+
`architecture-definition` で完了済み。`docs/01_要件定義/` が存在することを確認して次へ進む。
|
|
34
|
+
|
|
35
|
+
## Phase 2: 概要設計
|
|
36
|
+
|
|
37
|
+
### 2-1. ユースケース一覧
|
|
38
|
+
|
|
39
|
+
1. 要件定義からユースケースを洗い出す(Query / Command を意識)
|
|
40
|
+
2. `docs/02_概要設計/ユースケース一覧.md` を作る
|
|
41
|
+
3. ユーザーに確認・承認を得る
|
|
42
|
+
|
|
43
|
+
### 2-2. ドメインモデル + システム全体俯瞰
|
|
44
|
+
|
|
45
|
+
1. UC から集約・境界コンテキストを整理し `docs/02_概要設計/ドメインモデル.md` を作る
|
|
46
|
+
2. コンポーネント全体図・外部 IF を整理し `docs/02_概要設計/システム全体俯瞰.md` を作る
|
|
47
|
+
3. ユーザーに確認・承認を得る
|
|
48
|
+
|
|
49
|
+
### 出力
|
|
50
|
+
|
|
51
|
+
テンプレート: `templates/02_概要設計/ユースケース一覧.md` / `templates/02_概要設計/ドメインモデル.md` / `templates/02_概要設計/システム全体俯瞰.md`
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
docs/02_概要設計/
|
|
55
|
+
ユースケース一覧.md
|
|
56
|
+
ドメインモデル.md
|
|
57
|
+
システム全体俯瞰.md
|
|
58
|
+
90_ADR/
|
|
59
|
+
全体/
|
|
60
|
+
ドメイン/
|
|
61
|
+
UC/
|
|
62
|
+
DB/
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Phase 3: ADR(必要時のみ)
|
|
66
|
+
|
|
67
|
+
1. 設計判断が必要な場合だけ ADR を作る
|
|
68
|
+
2. **提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する**
|
|
69
|
+
3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
|
|
70
|
+
|
|
71
|
+
| 対象 | 配置先 |
|
|
72
|
+
|------|--------|
|
|
73
|
+
| システム横断の決定 | `90_ADR/全体/` |
|
|
74
|
+
| ドメイン設計の決定 | `90_ADR/ドメイン/` |
|
|
75
|
+
| UC フローの決定 | `90_ADR/UC/` |
|
|
76
|
+
| DB・外部サービスの決定 | `90_ADR/DB/` |
|
|
77
|
+
|
|
78
|
+
4. 採用案を概要設計へ反映してから次へ進む
|
|
79
|
+
|
|
80
|
+
## Phase 4: 詳細設計
|
|
81
|
+
|
|
82
|
+
**ドメイン → UC → DB・外部サービス の順に設計する。**
|
|
83
|
+
|
|
84
|
+
### 4-1. ドメイン
|
|
85
|
+
|
|
86
|
+
テンプレート: `templates/03_詳細設計/01_ドメイン/{ドメイン名}.md`
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
docs/03_詳細設計/01_ドメイン/
|
|
90
|
+
{ドメイン名}.md
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 4-2. ユースケース
|
|
94
|
+
|
|
95
|
+
シーケンス図は UC ファイルに Mermaid で埋め込む。
|
|
96
|
+
|
|
97
|
+
テンプレート: `templates/03_詳細設計/02_ユースケース/UC-{日本語名}.md`
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
docs/03_詳細設計/02_ユースケース/
|
|
101
|
+
UC-{日本語名}.md
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 4-3. DB・外部サービス(必要時のみ)
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
docs/03_詳細設計/03_DB・外部サービス/
|
|
108
|
+
スキーマ定義.dbml
|
|
109
|
+
外部サービス.md
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
4. ユーザーに確認・承認を得る
|
|
113
|
+
|
|
114
|
+
## Phase 5: TDD → 実装
|
|
115
|
+
|
|
116
|
+
`test-driven-development` スキルへ移行する。
|
|
117
|
+
|
|
118
|
+
### 実装完了後
|
|
119
|
+
|
|
120
|
+
- `@design-reviewer` — 設計書⇔実装の整合性チェック
|
|
121
|
+
- `@code-reviewer` — コーディング規約への適合チェック
|
|
122
|
+
|
|
123
|
+
## 原則
|
|
124
|
+
|
|
125
|
+
- **このスキルは種。`architecture-skill-development` でプロジェクト専用スキルに育てることを前提とする**
|
|
126
|
+
- **ドメインを先に設計し、UC はドメインを参照する形で書く**
|
|
127
|
+
- **`maps_to` は必ず設定する。パス推定に頼らない**
|
|
@@ -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,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: overview.system_context
|
|
4
|
+
kind: overview_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.domain_model
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# システム全体俯瞰
|
|
12
|
+
|
|
13
|
+
## コンポーネント全体図
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
graph LR
|
|
17
|
+
User([ユーザー])
|
|
18
|
+
subgraph システム
|
|
19
|
+
{フロントエンド}
|
|
20
|
+
{バックエンド}
|
|
21
|
+
end
|
|
22
|
+
Ext([{外部サービス}])
|
|
23
|
+
|
|
24
|
+
User --> {フロントエンド}
|
|
25
|
+
{フロントエンド} --> {バックエンド}
|
|
26
|
+
{バックエンド} --> Ext
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 外部インターフェース
|
|
30
|
+
|
|
31
|
+
| 外部システム | 方向 | プロトコル | 概要 |
|
|
32
|
+
|------------|------|----------|------|
|
|
33
|
+
| {外部システム名} | 受信 / 送信 | {HTTP / gRPC など} | {概要} |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: overview.domain_model
|
|
4
|
+
kind: overview_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.use_case_list
|
|
7
|
+
maps_to:
|
|
8
|
+
- docs/03_詳細設計/01_ドメイン/
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ドメインモデル
|
|
12
|
+
|
|
13
|
+
集約と境界コンテキストの概念モデル。DBスキーマ・永続化の詳細はここに書かない。
|
|
14
|
+
|
|
15
|
+
## 境界コンテキスト
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
graph LR
|
|
19
|
+
subgraph {コンテキストA}
|
|
20
|
+
{集約A}
|
|
21
|
+
end
|
|
22
|
+
subgraph {コンテキストB}
|
|
23
|
+
{集約B}
|
|
24
|
+
end
|
|
25
|
+
{コンテキストA} -->|下流| {コンテキストB}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 集約一覧
|
|
29
|
+
|
|
30
|
+
| 境界コンテキスト | 集約 | 責務 |
|
|
31
|
+
|----------------|------|------|
|
|
32
|
+
| {コンテキスト名} | {集約名} | {責務} |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: overview.use_case_list
|
|
4
|
+
kind: overview_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- requirement.要件定義
|
|
7
|
+
maps_to:
|
|
8
|
+
- docs/03_詳細設計/02_ユースケース/
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ユースケース一覧
|
|
12
|
+
|
|
13
|
+
| UC ID | UC名 | 種別 | 概要 |
|
|
14
|
+
|-------|------|------|------|
|
|
15
|
+
| UC-{番号} | {UC名} | Command / Query | {概要} |
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.domain.{ドメイン名}
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.domain_model
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/domain/{ドメイン名}/
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {ドメイン名} ドメイン詳細設計
|
|
12
|
+
|
|
13
|
+
## 責務
|
|
14
|
+
|
|
15
|
+
- {このドメインが扱うビジネス概念}
|
|
16
|
+
- {このドメインの不変条件・制約}
|
|
17
|
+
|
|
18
|
+
## 集約
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
classDiagram
|
|
22
|
+
class {集約ルート} {
|
|
23
|
+
+{ID型} id
|
|
24
|
+
+{値オブジェクト} {フィールド名}
|
|
25
|
+
+{操作}() {戻り値型}
|
|
26
|
+
}
|
|
27
|
+
class {エンティティ} {
|
|
28
|
+
+{ID型} id
|
|
29
|
+
}
|
|
30
|
+
class {値オブジェクト} {
|
|
31
|
+
+{型} {フィールド名}
|
|
32
|
+
}
|
|
33
|
+
{集約ルート} "1" --> "0..*" {エンティティ} : 含む
|
|
34
|
+
{集約ルート} --> {値オブジェクト} : 持つ
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
| 集約 | 責務 | ルートエンティティ |
|
|
38
|
+
|------|------|----------------|
|
|
39
|
+
| {集約名} | {責務} | {ルートエンティティ名} |
|
|
40
|
+
|
|
41
|
+
## 値オブジェクト
|
|
42
|
+
|
|
43
|
+
| 値オブジェクト | 制約・ルール |
|
|
44
|
+
|--------------|------------|
|
|
45
|
+
| {名前} | {制約} |
|
|
46
|
+
|
|
47
|
+
## ドメインルール
|
|
48
|
+
|
|
49
|
+
- {ルール1}
|
|
50
|
+
- {ルール2}
|
|
51
|
+
|
|
52
|
+
## テスト観点
|
|
53
|
+
|
|
54
|
+
- {正常系の観点}
|
|
55
|
+
- {ルール違反の観点}
|
|
56
|
+
- {境界条件の観点}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.usecase.{UC名}
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.use_case_list
|
|
7
|
+
- detail.domain.{ドメイン名}
|
|
8
|
+
maps_to:
|
|
9
|
+
- src/application/{uc_name}/
|
|
10
|
+
- tests/application/{uc_name}/
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# UC-{UC名} 詳細設計
|
|
14
|
+
|
|
15
|
+
## 概要
|
|
16
|
+
|
|
17
|
+
- 使用するドメイン: {ドメイン名}
|
|
18
|
+
- トリガー: {何がこのUCを呼び出すか}
|
|
19
|
+
- 事前条件: {UCが成立するために必要な状態}
|
|
20
|
+
- 事後条件: {UC完了後の状態}
|
|
21
|
+
|
|
22
|
+
## 入出力
|
|
23
|
+
|
|
24
|
+
| 種別 | 名前 | 型 | 説明 |
|
|
25
|
+
|------|------|----|------|
|
|
26
|
+
| 入力 | {入力名} | {型} | {説明} |
|
|
27
|
+
| 出力 | {出力名} | {型} | {説明} |
|
|
28
|
+
|
|
29
|
+
## 主要フロー
|
|
30
|
+
|
|
31
|
+
```mermaid
|
|
32
|
+
sequenceDiagram
|
|
33
|
+
{シーケンス図}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
1. {ステップ1}
|
|
37
|
+
2. {ステップ2}
|
|
38
|
+
|
|
39
|
+
## 判断条件
|
|
40
|
+
|
|
41
|
+
| 判断ポイント | 条件 | アクション |
|
|
42
|
+
|------------|------|----------|
|
|
43
|
+
| {判断ポイント} | {条件} | {アクション} |
|
|
44
|
+
|
|
45
|
+
## エラーポリシー
|
|
46
|
+
|
|
47
|
+
| エラーケース | 発生条件 | 対応 |
|
|
48
|
+
|------------|---------|------|
|
|
49
|
+
| {エラーケース} | {発生条件} | {対応} |
|
|
50
|
+
|
|
51
|
+
## テスト観点
|
|
52
|
+
|
|
53
|
+
- {正常系の観点}
|
|
54
|
+
- {異常系の観点}
|
|
55
|
+
- {境界条件の観点}
|
|
@@ -27,22 +27,25 @@ Phase 5: architecture contract 化
|
|
|
27
27
|
|
|
28
28
|
## Phase 2: 要件とユースケースの抽出
|
|
29
29
|
|
|
30
|
-
1.
|
|
30
|
+
1. `current-system-inventory.md` を起点に、既存機能からユースケースを逆算する
|
|
31
31
|
2. `docs/01_要件定義/要件定義.md` と `docs/02_概要設計/ユースケース一覧.md` の draft を作る
|
|
32
|
-
3.
|
|
32
|
+
3. ドメイン用語が識別できたら `docs/01_要件定義/ユビキタス言語辞書.md` も draft する
|
|
33
|
+
4. ユーザーに確認・承認を得る
|
|
33
34
|
|
|
34
35
|
## Phase 3: 概要設計の draft 化
|
|
35
36
|
|
|
36
|
-
1. `docs/02_
|
|
37
|
-
2.
|
|
38
|
-
3.
|
|
37
|
+
1. UC から集約・境界コンテキストを整理し `docs/02_概要設計/ドメインモデル.md` を draft する
|
|
38
|
+
2. `docs/02_概要設計/システム全体俯瞰.md` を作る
|
|
39
|
+
3. 必要なら ADR 候補も洗い出す(配置先は `90_ADR/全体/` / `ドメイン/` / `UC/` / `DB/`)
|
|
40
|
+
4. ユーザーに確認・承認を得る
|
|
39
41
|
|
|
40
42
|
## Phase 4: 詳細設計の draft 化
|
|
41
43
|
|
|
42
|
-
1. `docs/03_詳細設計/
|
|
43
|
-
2. `
|
|
44
|
-
3.
|
|
45
|
-
4.
|
|
44
|
+
1. ドメインごとにビジネスルール・集約を整理し `docs/03_詳細設計/01_ドメイン/{ドメイン名}.md` を draft する
|
|
45
|
+
2. UC ごとに `docs/03_詳細設計/02_ユースケース/UC-{日本語名}.md` を draft する
|
|
46
|
+
3. DB・外部サービスの仕様が必要なら `docs/03_詳細設計/03_DB・外部サービス/` を作る
|
|
47
|
+
4. 各ファイルの `maps_to` に対応コードとテストを入れる
|
|
48
|
+
5. ユーザーに確認・承認を得る
|
|
46
49
|
|
|
47
50
|
## Phase 5: architecture contract 化
|
|
48
51
|
|
|
@@ -68,6 +68,8 @@ Phase 4: 影響範囲の反映確認
|
|
|
68
68
|
|
|
69
69
|
## Phase 3: skill / rule / agent / template の修正
|
|
70
70
|
|
|
71
|
+
ファイルを作成・修正する前に **`.claude/rules/harness-formats.md`** を読み、フォーマットを確認する。
|
|
72
|
+
|
|
71
73
|
1. 対象ファイルを特定する
|
|
72
74
|
2. 意図が変わらない最小差分で修正する
|
|
73
75
|
3. 片系だけでなく、対応するテンプレートも揃えて更新する
|
|
@@ -91,6 +93,8 @@ Phase 4: 影響範囲の反映確認
|
|
|
91
93
|
- Claude / Copilot の対応ファイルに反映漏れがないか
|
|
92
94
|
- 今回限りのノイズをルール化していないか
|
|
93
95
|
- skill 名・起動条件・使いどころを変更した場合、`CLAUDE.md` の記述と一致しているか
|
|
96
|
+
- `CLAUDE.md` が肥大化していないか(20行超えたら `rules/` や `skills/` へ移動を検討する)
|
|
97
|
+
- docs 構造・命名規則・node_id 体系に影響する変更の場合、`design-docs.md` と整合しているか
|
|
94
98
|
|
|
95
99
|
## 原則
|
|
96
100
|
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: simple-seed
|
|
3
|
+
description: レイヤードアーキテクチャ / CRUD 中心のプロジェクト向け docs 正本開発フロー。ドメイン層を持たず UC・サービス層で設計する。architecture.yaml の style: layered のときに使う。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# simple-seed
|
|
7
|
+
|
|
8
|
+
**レイヤードアーキテクチャ / CRUD 中心のプロジェクト向け**の docs 正本開発フロー参照実装(種)。
|
|
9
|
+
`architecture.yaml` の `style: layered` のときに使う。DDD が必要なプロジェクトは `docs-driven-seed` を使う。
|
|
10
|
+
|
|
11
|
+
**このスキルをそのまま使い続けない。`architecture-skill-development` で自プロジェクト専用スキルに育てることを前提とする。**
|
|
12
|
+
|
|
13
|
+
## 全体フロー
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Phase 1: 要件定義
|
|
17
|
+
Phase 2: 概要設計(ユースケース + システム全体俯瞰)
|
|
18
|
+
Phase 3: ADR(必要時のみ)
|
|
19
|
+
Phase 4: 詳細設計(UC → DB・外部サービス)
|
|
20
|
+
Phase 5: TDD → 実装
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 前提ルール
|
|
24
|
+
|
|
25
|
+
- docs は正本とし、各ドキュメントに `spec_runner` frontmatter を付ける
|
|
26
|
+
- 詳細設計は `01_ユースケース/` `02_DB・外部サービス/` の 2 層で構成する
|
|
27
|
+
- `maps_to` は必ず設定する。パス推定に頼らない
|
|
28
|
+
- ユーザー承認なしに次フェーズへ進めない
|
|
29
|
+
|
|
30
|
+
## Phase 1: 要件定義
|
|
31
|
+
|
|
32
|
+
`architecture-definition` で完了済み。`docs/01_要件定義/` が存在することを確認して次へ進む。
|
|
33
|
+
|
|
34
|
+
## Phase 2: 概要設計
|
|
35
|
+
|
|
36
|
+
テンプレート: `../docs-driven-seed/templates/02_概要設計/`(ユースケース一覧・システム全体俯瞰のみ)
|
|
37
|
+
|
|
38
|
+
1. 要件定義からユースケースを洗い出す(Query / Command を意識)
|
|
39
|
+
2. テンプレートをコピーして `docs/02_概要設計/ユースケース一覧.md` を作る
|
|
40
|
+
3. コンポーネント全体図・外部 IF を整理し `docs/02_概要設計/システム全体俯瞰.md` を作る
|
|
41
|
+
4. ユーザーに確認・承認を得る
|
|
42
|
+
|
|
43
|
+
### 出力
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
docs/02_概要設計/
|
|
47
|
+
ユースケース一覧.md
|
|
48
|
+
システム全体俯瞰.md
|
|
49
|
+
90_ADR/
|
|
50
|
+
全体/
|
|
51
|
+
UC/
|
|
52
|
+
DB/
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Phase 3: ADR(必要時のみ)
|
|
56
|
+
|
|
57
|
+
1. 設計判断が必要な場合だけ ADR を作る
|
|
58
|
+
2. **提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する**
|
|
59
|
+
3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
|
|
60
|
+
|
|
61
|
+
| 対象 | 配置先 |
|
|
62
|
+
|------|--------|
|
|
63
|
+
| システム横断の決定 | `90_ADR/全体/` |
|
|
64
|
+
| UC フローの決定 | `90_ADR/UC/` |
|
|
65
|
+
| DB・外部サービスの決定 | `90_ADR/DB/` |
|
|
66
|
+
|
|
67
|
+
4. 採用案を概要設計へ反映してから次へ進む
|
|
68
|
+
|
|
69
|
+
## Phase 4: 詳細設計
|
|
70
|
+
|
|
71
|
+
**UC → DB・外部サービス の順に設計する。**
|
|
72
|
+
|
|
73
|
+
### 4-1. ユースケース
|
|
74
|
+
|
|
75
|
+
テンプレート: `templates/03_詳細設計/01_ユースケース/UC-{日本語名}.md`
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
docs/03_詳細設計/01_ユースケース/
|
|
79
|
+
UC-{日本語名}.md
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4-2. DB・外部サービス(必要時のみ)
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
docs/03_詳細設計/02_DB・外部サービス/
|
|
86
|
+
スキーマ定義.dbml
|
|
87
|
+
外部サービス.md
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
3. ユーザーに確認・承認を得る
|
|
91
|
+
|
|
92
|
+
## Phase 5: TDD → 実装
|
|
93
|
+
|
|
94
|
+
`test-driven-development` スキルへ移行する。
|
|
95
|
+
|
|
96
|
+
### 実装完了後
|
|
97
|
+
|
|
98
|
+
- `@design-reviewer` — 設計書⇔実装の整合性チェック
|
|
99
|
+
- `@code-reviewer` — コーディング規約への適合チェック
|
|
100
|
+
|
|
101
|
+
## 原則
|
|
102
|
+
|
|
103
|
+
- **このスキルは種。`architecture-skill-development` でプロジェクト専用スキルに育てることを前提とする**
|
|
104
|
+
- **ドメイン層は持たない。ビジネスロジックは UC / サービス層で表現する**
|
|
105
|
+
- **`maps_to` は必ず設定する。パス推定に頼らない**
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.usecase.{UC名}
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.use_case_list
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/application/{uc_name}/
|
|
9
|
+
- tests/application/{uc_name}/
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# UC-{UC名} 詳細設計
|
|
13
|
+
|
|
14
|
+
## 概要
|
|
15
|
+
|
|
16
|
+
- トリガー: {何がこのUCを呼び出すか}
|
|
17
|
+
- 事前条件: {UCが成立するために必要な状態}
|
|
18
|
+
- 事後条件: {UC完了後の状態}
|
|
19
|
+
|
|
20
|
+
## 入出力
|
|
21
|
+
|
|
22
|
+
| 種別 | 名前 | 型 | 説明 |
|
|
23
|
+
|------|------|----|------|
|
|
24
|
+
| 入力 | {入力名} | {型} | {説明} |
|
|
25
|
+
| 出力 | {出力名} | {型} | {説明} |
|
|
26
|
+
|
|
27
|
+
## 主要フロー
|
|
28
|
+
|
|
29
|
+
```mermaid
|
|
30
|
+
sequenceDiagram
|
|
31
|
+
{シーケンス図}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
1. {ステップ1}
|
|
35
|
+
2. {ステップ2}
|
|
36
|
+
|
|
37
|
+
## 判断条件
|
|
38
|
+
|
|
39
|
+
| 判断ポイント | 条件 | アクション |
|
|
40
|
+
|------------|------|----------|
|
|
41
|
+
| {判断ポイント} | {条件} | {アクション} |
|
|
42
|
+
|
|
43
|
+
## エラーポリシー
|
|
44
|
+
|
|
45
|
+
| エラーケース | 発生条件 | 対応 |
|
|
46
|
+
|------------|---------|------|
|
|
47
|
+
| {エラーケース} | {発生条件} | {対応} |
|
|
48
|
+
|
|
49
|
+
## テスト観点
|
|
50
|
+
|
|
51
|
+
- {正常系の観点}
|
|
52
|
+
- {異常系の観点}
|
|
53
|
+
- {境界条件の観点}
|