yodogawa 2.1.0 → 2.1.3
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/CHANGELOG.md +12 -0
- package/LICENSE +21 -0
- package/README.md +27 -4
- package/bin/cli.js +0 -1
- package/package.json +3 -4
- package/skills/a-001-setup-doc-structure/SKILL.md +68 -67
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -52
- package/skills/a-002-initialize-project/SKILL.md +118 -124
- package/skills/a-002-initialize-project/reference/structure-check.md +7 -7
- package/skills/a-003-create-scenarios/SKILL.md +96 -99
- package/skills/a-003-create-scenarios/reference/structure-check.md +5 -5
- package/skills/a-004-define-domain-model/SKILL.md +98 -99
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +3 -3
- package/skills/a-005-create-domain-diagram/SKILL.md +7 -7
- package/skills/a-005-create-domain-diagram/reference/structure-check.md +4 -4
- package/skills/a-006-review-requirements-domain/SKILL.md +4 -4
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +5 -5
- package/skills/a-007-define-tech-stack/SKILL.md +99 -102
- package/skills/a-007-define-tech-stack/reference/structure-check.md +5 -5
- package/skills/a-008-define-repository-structure/SKILL.md +96 -99
- package/skills/a-008-define-repository-structure/reference/structure-check.md +5 -5
- package/skills/a-009-define-screen-design/SKILL.md +103 -106
- package/skills/a-009-define-screen-design/reference/structure-check.md +5 -5
- package/skills/a-010-define-design-system/SKILL.md +130 -134
- package/skills/a-011-define-data-model/SKILL.md +118 -121
- package/skills/a-011-define-data-model/reference/structure-check.md +5 -5
- package/skills/a-012-define-api-spec/SKILL.md +105 -108
- package/skills/a-012-define-api-spec/reference/structure-check.md +5 -5
- package/skills/a-013-define-architecture/SKILL.md +98 -101
- package/skills/a-013-define-architecture/reference/structure-check.md +5 -5
- package/skills/a-014-define-infrastructure/SKILL.md +110 -113
- package/skills/a-014-define-infrastructure/reference/structure-check.md +5 -5
- package/skills/a-015-review-design/SKILL.md +8 -8
- package/skills/a-015-review-design/reference/consistency-checks.md +2 -2
- package/skills/b-001-create-task-directory/SKILL.md +68 -68
- package/skills/b-002-create-task-definition/SKILL.md +114 -115
- package/skills/b-003-create-task-research/SKILL.md +128 -130
- package/skills/b-004-create-task-implementation/SKILL.md +98 -97
- package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
- package/skills/c-001-implement-task/SKILL.md +186 -186
- package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
- package/skills/c-002-update-documentation/SKILL.md +159 -159
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +97 -100
- package/templates/tasks/task-template/a-definition.md +1 -1
- package/templates/tasks/task-template/b-research.md +1 -1
- package/templates/tasks/task-template/c-implementation.md +3 -3
- package/scripts/setup-docs.sh +0 -92
- package/templates/documentation-rules.md +0 -143
|
@@ -6,23 +6,23 @@ SKILL.md 手順9で使う、生成済みドキュメントの構造確認用コ
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# 01-system-overview.md: 主要セクションの確認
|
|
9
|
-
grep "## 背景" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
|
|
10
|
-
grep "## 目的" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
|
|
9
|
+
grep "## 背景" docs/project/01-requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
|
|
10
|
+
grep "## 目的" docs/project/01-requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
|
|
11
11
|
|
|
12
12
|
# 02-features-implemented.md: テーブルヘッダー
|
|
13
|
-
grep "| 機能ID | Category 1 |" docs/project/requirements/02-features-implemented.md \
|
|
13
|
+
grep "| 機能ID | Category 1 |" docs/project/01-requirements/02-features-implemented.md \
|
|
14
14
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
15
15
|
|
|
16
16
|
# 03-features-planned.md: テーブルヘッダー
|
|
17
|
-
grep "| Category 1 | Category 2 |" docs/project/requirements/03-features-planned.md \
|
|
17
|
+
grep "| Category 1 | Category 2 |" docs/project/01-requirements/03-features-planned.md \
|
|
18
18
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
19
19
|
|
|
20
20
|
# 04-non-functional-requirements.md: テーブルヘッダー
|
|
21
|
-
grep "| カテゴリ | 要件 |" docs/project/requirements/04-non-functional-requirements.md \
|
|
21
|
+
grep "| カテゴリ | 要件 |" docs/project/01-requirements/04-non-functional-requirements.md \
|
|
22
22
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
23
23
|
|
|
24
24
|
# 05-user-stories.md: テーブルヘッダー
|
|
25
|
-
grep "| ストーリーID | ストーリー |" docs/project/requirements/05-user-stories.md \
|
|
25
|
+
grep "| ストーリーID | ストーリー |" docs/project/01-requirements/05-user-stories.md \
|
|
26
26
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -35,7 +35,7 @@ grep "| ストーリーID | ストーリー |" docs/project/requirements/05-user
|
|
|
35
35
|
## Git への追加(オプション)
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
git add docs/project/requirements/
|
|
38
|
+
git add docs/project/01-requirements/
|
|
39
39
|
git status
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -1,99 +1,96 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: a-003-create-scenarios
|
|
3
|
-
description: ユーザーストーリーから Gherkin 形式のシナリオを生成し、BDD で振る舞いを定義する。要件定義後、ドメインモデル設計前の振る舞い明確化に使用。
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# CreateScenarios (a-003)
|
|
9
|
-
|
|
10
|
-
## 目的
|
|
11
|
-
|
|
12
|
-
- ユーザーストーリーから具体的なシナリオ(振る舞い)を抽出し、Gherkin 形式で記述する。
|
|
13
|
-
- Given-When-Then 構造で、開発者・QA・ステークホルダーが共通理解できる実行可能なドキュメントを作成する。
|
|
14
|
-
- ハッピーパス(正常系)からエラーケース、境界値テストまでを網羅的に定義する。
|
|
15
|
-
|
|
16
|
-
## 前提
|
|
17
|
-
|
|
18
|
-
- `docs/project/requirements/05-user-stories.md` が作成されていること(`/a-002-initialize-project` 実行済み)。
|
|
19
|
-
- `docs/project/behavior/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
|
|
20
|
-
- ユーザーが各機能の具体的な動作例を説明できること。
|
|
21
|
-
|
|
22
|
-
## 手順
|
|
23
|
-
|
|
24
|
-
### 1. ディレクトリと前提条件の確認
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
ls -la docs/project/behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
`docs/project/requirements/05-user-stories.md` を読み込み、シナリオ化対象を把握する。
|
|
31
|
-
|
|
32
|
-
### 2. テンプレートの準備
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- [examples/gherkin-templates.md](examples/gherkin-templates.md) — Feature / Scenario / Scenario Outline の記述例、タグ付けガイド、一覧テーブル例
|
|
99
|
-
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、Git 追加例
|
|
1
|
+
---
|
|
2
|
+
name: a-003-create-scenarios
|
|
3
|
+
description: ユーザーストーリーから Gherkin 形式のシナリオを生成し、BDD で振る舞いを定義する。要件定義後、ドメインモデル設計前の振る舞い明確化に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# CreateScenarios (a-003)
|
|
9
|
+
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
12
|
+
- ユーザーストーリーから具体的なシナリオ(振る舞い)を抽出し、Gherkin 形式で記述する。
|
|
13
|
+
- Given-When-Then 構造で、開発者・QA・ステークホルダーが共通理解できる実行可能なドキュメントを作成する。
|
|
14
|
+
- ハッピーパス(正常系)からエラーケース、境界値テストまでを網羅的に定義する。
|
|
15
|
+
|
|
16
|
+
## 前提
|
|
17
|
+
|
|
18
|
+
- `docs/project/01-requirements/05-user-stories.md` が作成されていること(`/a-002-initialize-project` 実行済み)。
|
|
19
|
+
- `docs/project/02-behavior/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
|
|
20
|
+
- ユーザーが各機能の具体的な動作例を説明できること。
|
|
21
|
+
|
|
22
|
+
## 手順
|
|
23
|
+
|
|
24
|
+
### 1. ディレクトリと前提条件の確認
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ls -la docs/project/02-behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`docs/project/01-requirements/05-user-stories.md` を読み込み、シナリオ化対象を把握する。
|
|
31
|
+
|
|
32
|
+
### 2. テンプレートの準備
|
|
33
|
+
|
|
34
|
+
このスキルの配置ディレクトリ(`skills/a-003-create-scenarios/`)を起点に、相対パス `../../templates/project/02-behavior/01-scenarios.md` を Read で読み込み、その内容を `docs/project/02-behavior/01-scenarios.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/02-behavior/`)が無ければ作成する。
|
|
35
|
+
|
|
36
|
+
### 3. 分析と提案
|
|
37
|
+
|
|
38
|
+
ユーザーストーリーを機能(Feature)単位にグルーピングし、ハッピーパスと代表的なエラーケースの案を提示。
|
|
39
|
+
|
|
40
|
+
- 「機能: [機能名] (US-XXX)」
|
|
41
|
+
- 「シナリオ案1: [ハッピーパス] / シナリオ案2: [エラーケース]」
|
|
42
|
+
|
|
43
|
+
### 4. ヒアリングと記入
|
|
44
|
+
|
|
45
|
+
機能ごとに以下を詰めて `docs/project/02-behavior/01-scenarios.md` を更新する。Gherkin 記述例は [examples/gherkin-templates.md](examples/gherkin-templates.md) を参照。
|
|
46
|
+
|
|
47
|
+
- **Feature 情報**: 機能名、As a/I want/So that、Background(共通前提)
|
|
48
|
+
- **ハッピーパス**: Given-When-Then で最も基本的な成功シナリオ
|
|
49
|
+
- **エラーケース・境界値**: 必要に応じて Scenario Outline(Examples テーブル)を使用
|
|
50
|
+
- **タグ付け**: `@SC-XXX` ID 採番、`@smoke` `@happy-path` `@error-handling` 等
|
|
51
|
+
|
|
52
|
+
UI 操作の詳細ではなく、ユーザーの意図を記述するよう注意する。
|
|
53
|
+
|
|
54
|
+
### 5. シナリオ一覧テーブルの更新
|
|
55
|
+
|
|
56
|
+
ドキュメント冒頭の一覧テーブルに、全シナリオの ID・機能・シナリオ名・優先度を記載する。テーブル例は [examples/gherkin-templates.md](examples/gherkin-templates.md#シナリオ一覧テーブル例) を参照。
|
|
57
|
+
|
|
58
|
+
### 6. レビューと確認
|
|
59
|
+
|
|
60
|
+
ユーザーに提示し、実際の動作の正確性、抜け漏れ、非技術者への理解可能性を確認する。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。
|
|
61
|
+
|
|
62
|
+
### 7. 構造チェック
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
grep "Feature:" docs/project/02-behavior/01-scenarios.md \
|
|
66
|
+
&& grep "Scenario:" docs/project/02-behavior/01-scenarios.md \
|
|
67
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
詳細なチェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
71
|
+
|
|
72
|
+
### 8. Git への追加(任意)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
git add docs/project/02-behavior/
|
|
76
|
+
git commit -m "docs: 振る舞い仕様(シナリオ)の作成"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加任意) を参照。
|
|
80
|
+
|
|
81
|
+
## 完了条件
|
|
82
|
+
|
|
83
|
+
- `docs/project/02-behavior/01-scenarios.md` が作成されている。
|
|
84
|
+
- ユーザーストーリーに対応する具体的なシナリオ(Given-When-Then)が記述されている。
|
|
85
|
+
- シナリオ一覧テーブルがメンテナンスされている。
|
|
86
|
+
- ユーザーが内容を承認している。
|
|
87
|
+
|
|
88
|
+
## エスカレーション
|
|
89
|
+
|
|
90
|
+
- **ユーザーストーリーが不明確でシナリオ化できない**: 「`/a-002-initialize-project` に戻って要件を明確にしましょう。」
|
|
91
|
+
- **実装詳細への依存が強すぎる**: 「UI 操作(ボタンクリック等)ではなく、ユーザーの意図(登録する等)に焦点を当てた記述に変更しましょう。」
|
|
92
|
+
|
|
93
|
+
## 参考
|
|
94
|
+
|
|
95
|
+
- [examples/gherkin-templates.md](examples/gherkin-templates.md) — Feature / Scenario / Scenario Outline の記述例、タグ付けガイド、一覧テーブル例
|
|
96
|
+
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、Git 追加例
|
|
@@ -6,16 +6,16 @@ SKILL.md 手順6〜7 で使う構造確認コマンドとレビュー観点。
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# シナリオ一覧テーブルの確認
|
|
9
|
-
grep "| シナリオID | 機能 |" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
|
|
9
|
+
grep "| シナリオID | 機能 |" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
|
|
10
10
|
# Feature 定義の確認
|
|
11
|
-
grep "Feature:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
|
|
11
|
+
grep "Feature:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
|
|
12
12
|
# Scenario 定義の確認
|
|
13
|
-
grep "Scenario:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
|
|
13
|
+
grep "Scenario:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## チェックリスト
|
|
17
17
|
|
|
18
|
-
- [ ] `docs/project/behavior/01-scenarios.md` が作成されている
|
|
18
|
+
- [ ] `docs/project/02-behavior/01-scenarios.md` が作成されている
|
|
19
19
|
- [ ] シナリオ一覧テーブルが更新されている
|
|
20
20
|
- [ ] 各 Feature が Gherkin 形式で記述されている
|
|
21
21
|
- [ ] 正常系と異常系のシナリオが網羅されている
|
|
@@ -32,7 +32,7 @@ grep "Scenario:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MIS
|
|
|
32
32
|
## Git への追加(任意)
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
git add docs/project/behavior/
|
|
35
|
+
git add docs/project/02-behavior/
|
|
36
36
|
git status
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -1,99 +1,98 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: a-004-define-domain-model
|
|
3
|
-
description: Event Storming 形式でドメインモデル(イベント・コマンド・集約)を定義し、ユビキタス言語を整備する。シナリオ作成後、ドメイン設計を開始する際に使用。
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# DefineDomainModel (a-004)
|
|
9
|
-
|
|
10
|
-
## 目的
|
|
11
|
-
|
|
12
|
-
- Event Storming 形式でドメインモデルを体系的に定義する。
|
|
13
|
-
- ドメインモデルを作成しながら、ユビキタス言語(共通用語)を並行して洗練させる。
|
|
14
|
-
- Bounded Context を特定し、Actors / Commands / Events / Policies / Aggregates を明確化する。
|
|
15
|
-
|
|
16
|
-
## 前提
|
|
17
|
-
|
|
18
|
-
- `docs/project/behavior/01-scenarios.md` が作成されている(`/a-003-create-scenarios` 実行済み)
|
|
19
|
-
- `docs/project/domain/` ディレクトリが存在(なければ `/a-001-setup-doc-structure`)
|
|
20
|
-
- ドメインエキスパートと協力できる
|
|
21
|
-
|
|
22
|
-
## 手順
|
|
23
|
-
|
|
24
|
-
### 1. ディレクトリと前提条件の確認
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
ls -la docs/project/domain/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
存在しなければ `/a-001-setup-doc-structure` を促す。`docs/project/behavior/01-scenarios.md` を読み込み内容確認。
|
|
31
|
-
|
|
32
|
-
### 2. テンプレートの準備
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
- [ ] `
|
|
73
|
-
- [ ]
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
git
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- [reference/event-storming-guide.md](reference/event-storming-guide.md) — Event Storming の観点、Context Map パターン、構造確認コマンド
|
|
1
|
+
---
|
|
2
|
+
name: a-004-define-domain-model
|
|
3
|
+
description: Event Storming 形式でドメインモデル(イベント・コマンド・集約)を定義し、ユビキタス言語を整備する。シナリオ作成後、ドメイン設計を開始する際に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# DefineDomainModel (a-004)
|
|
9
|
+
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
12
|
+
- Event Storming 形式でドメインモデルを体系的に定義する。
|
|
13
|
+
- ドメインモデルを作成しながら、ユビキタス言語(共通用語)を並行して洗練させる。
|
|
14
|
+
- Bounded Context を特定し、Actors / Commands / Events / Policies / Aggregates を明確化する。
|
|
15
|
+
|
|
16
|
+
## 前提
|
|
17
|
+
|
|
18
|
+
- `docs/project/02-behavior/01-scenarios.md` が作成されている(`/a-003-create-scenarios` 実行済み)
|
|
19
|
+
- `docs/project/03-domain/` ディレクトリが存在(なければ `/a-001-setup-doc-structure`)
|
|
20
|
+
- ドメインエキスパートと協力できる
|
|
21
|
+
|
|
22
|
+
## 手順
|
|
23
|
+
|
|
24
|
+
### 1. ディレクトリと前提条件の確認
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ls -la docs/project/03-domain/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
存在しなければ `/a-001-setup-doc-structure` を促す。`docs/project/02-behavior/01-scenarios.md` を読み込み内容確認。
|
|
31
|
+
|
|
32
|
+
### 2. テンプレートの準備
|
|
33
|
+
|
|
34
|
+
このスキルの配置ディレクトリ(`skills/a-004-define-domain-model/`)を起点に、`docs/project/03-domain/` へ次の 2 ファイルを Read→Write する(FOR EACH)。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/03-domain/`)が無ければ作成する。
|
|
35
|
+
|
|
36
|
+
- `../../templates/project/03-domain/01-domain-model.md` → `docs/project/03-domain/01-domain-model.md`
|
|
37
|
+
- `../../templates/project/03-domain/02-ubiquitous-language.md` → `docs/project/03-domain/02-ubiquitous-language.md`
|
|
38
|
+
|
|
39
|
+
### 3. Bounded Context の特定
|
|
40
|
+
|
|
41
|
+
シナリオとユーザーストーリーから Bounded Context を提案し、戦略的分類(Core / Supporting / Generic)を確認。詳細は [reference/event-storming-guide.md](reference/event-storming-guide.md#bounded-context-の特定) を参照。
|
|
42
|
+
|
|
43
|
+
### 4. 各 Bounded Context のドメインモデル定義
|
|
44
|
+
|
|
45
|
+
各 Context について以下を定義し、`01-domain-model.md` を更新。新しい用語が登場するたびに `02-ubiquitous-language.md` にも追記。
|
|
46
|
+
|
|
47
|
+
- 概要とアクター
|
|
48
|
+
- コマンド / イベント / ポリシー(Event Storming)
|
|
49
|
+
- 集約 / Read Models / External Systems
|
|
50
|
+
|
|
51
|
+
各要素の詳細は [reference/event-storming-guide.md](reference/event-storming-guide.md#各-context-の定義項目) を参照。
|
|
52
|
+
|
|
53
|
+
### 5. ユビキタス言語の洗練
|
|
54
|
+
|
|
55
|
+
`02-ubiquitous-language.md` を見直し、重複・曖昧さ・禁止用語を排除。観点は [reference/event-storming-guide.md](reference/event-storming-guide.md#ユビキタス言語の洗練観点) を参照。
|
|
56
|
+
|
|
57
|
+
### 6. Context Map の定義
|
|
58
|
+
|
|
59
|
+
Context 間の関係性(Customer-Supplier, Shared Kernel 等)を Mermaid 図で定義。関係パターン: [reference/event-storming-guide.md](reference/event-storming-guide.md#context-map-の関係性)
|
|
60
|
+
|
|
61
|
+
### 7. レビューと確認
|
|
62
|
+
|
|
63
|
+
作成したドキュメントを提示し、ビジネス用語の正確性 / Aggregate 境界 / ユビキタス言語定義を確認。
|
|
64
|
+
|
|
65
|
+
### 8. 完了条件と構造の確認
|
|
66
|
+
|
|
67
|
+
構造確認コマンドは [reference/event-storming-guide.md](reference/event-storming-guide.md#構造確認コマンド) を参照。
|
|
68
|
+
|
|
69
|
+
チェックリスト:
|
|
70
|
+
|
|
71
|
+
- [ ] `01-domain-model.md` に主要な Event Storming 要素が含まれている
|
|
72
|
+
- [ ] `02-ubiquitous-language.md` の用語が定義されている
|
|
73
|
+
- [ ] ドメインモデルとユビキタス言語の整合性が取れている
|
|
74
|
+
|
|
75
|
+
### 9. Git への追加(オプション)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
git add docs/project/03-domain/
|
|
79
|
+
git status
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
コミットメッセージ: [reference/event-storming-guide.md](reference/event-storming-guide.md#git-コミットメッセージ)
|
|
83
|
+
|
|
84
|
+
## 完了条件
|
|
85
|
+
|
|
86
|
+
- `docs/project/03-domain/01-domain-model.md` と `02-ubiquitous-language.md` が作成されている
|
|
87
|
+
- 各 Bounded Context の主要ドメイン要素(Aggregates, Commands, Events)が定義されている
|
|
88
|
+
- ドメインモデルで使用される用語がユビキタス言語として定義されている
|
|
89
|
+
- ユーザーが内容を承認している
|
|
90
|
+
|
|
91
|
+
## エスカレーション
|
|
92
|
+
|
|
93
|
+
- **シナリオが不足**: 「`/a-003-create-scenarios` に戻ってシナリオを充実させましょう。」
|
|
94
|
+
- **Bounded Context の境界が不明確**: 「暫定的な境界を設定し、実装を進めながら見直す方針で進めませんか?」
|
|
95
|
+
|
|
96
|
+
## 参考
|
|
97
|
+
|
|
98
|
+
- [reference/event-storming-guide.md](reference/event-storming-guide.md) — Event Storming の観点、Context Map パターン、構造確認コマンド
|
|
@@ -53,11 +53,11 @@ SKILL.md 手順3〜6で使うドメインモデル定義の観点集。
|
|
|
53
53
|
## 構造確認コマンド
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
|
-
grep "Bounded Context:" docs/project/domain/01-domain-model.md \
|
|
56
|
+
grep "Bounded Context:" docs/project/03-domain/01-domain-model.md \
|
|
57
57
|
&& echo "OK" || echo "MISSING: Bounded Context definition"
|
|
58
|
-
grep "### Aggregates" docs/project/domain/01-domain-model.md \
|
|
58
|
+
grep "### Aggregates" docs/project/03-domain/01-domain-model.md \
|
|
59
59
|
&& echo "OK" || echo "MISSING: Aggregates section"
|
|
60
|
-
grep "| 用語 | 定義 |" docs/project/domain/02-ubiquitous-language.md \
|
|
60
|
+
grep "| 用語 | 定義 |" docs/project/03-domain/02-ubiquitous-language.md \
|
|
61
61
|
&& echo "OK" || echo "MISSING: Terminology table"
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -15,7 +15,7 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
15
15
|
|
|
16
16
|
## 前提
|
|
17
17
|
|
|
18
|
-
- `docs/project/domain/01-domain-model.md` が作成されていること(`/a-004-define-domain-model` 実行済み)。
|
|
18
|
+
- `docs/project/03-domain/01-domain-model.md` が作成されていること(`/a-004-define-domain-model` 実行済み)。
|
|
19
19
|
- ドメインモデルドキュメントに Bounded Context の一覧と関係性が記述されていること。
|
|
20
20
|
|
|
21
21
|
## 手順
|
|
@@ -23,14 +23,14 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
23
23
|
### 1. ドキュメントの確認
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
ls -la docs/project/domain/01-domain-model.md 2>/dev/null || echo "ファイルが存在しません"
|
|
26
|
+
ls -la docs/project/03-domain/01-domain-model.md 2>/dev/null || echo "ファイルが存在しません"
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
未作成の場合、`/a-004-define-domain-model` の実行を促す。
|
|
30
30
|
|
|
31
31
|
### 2. Context Map の情報収集と提案
|
|
32
32
|
|
|
33
|
-
`docs/project/domain/01-domain-model.md` から以下を抽出し、構成案を提示する:
|
|
33
|
+
`docs/project/03-domain/01-domain-model.md` から以下を抽出し、構成案を提示する:
|
|
34
34
|
|
|
35
35
|
- Bounded Context のリスト
|
|
36
36
|
- 戦略的分類(Core / Supporting / Generic)
|
|
@@ -59,8 +59,8 @@ ls -la docs/project/domain/01-domain-model.md 2>/dev/null || echo "ファイル
|
|
|
59
59
|
### 6. 構造チェック
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
grep "\`\`\`mermaid" docs/project/domain/01-domain-model.md \
|
|
63
|
-
&& grep "## Context Map" docs/project/domain/01-domain-model.md \
|
|
62
|
+
grep "\`\`\`mermaid" docs/project/03-domain/01-domain-model.md \
|
|
63
|
+
&& grep "## Context Map" docs/project/03-domain/01-domain-model.md \
|
|
64
64
|
&& echo "OK" || echo "MISSING SECTION"
|
|
65
65
|
```
|
|
66
66
|
|
|
@@ -69,7 +69,7 @@ grep "\`\`\`mermaid" docs/project/domain/01-domain-model.md \
|
|
|
69
69
|
### 7. Git への追加(任意)
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
git add docs/project/domain/01-domain-model.md
|
|
72
|
+
git add docs/project/03-domain/01-domain-model.md
|
|
73
73
|
git commit -m "docs: ドメインモデル図(Context Map)の追加"
|
|
74
74
|
```
|
|
75
75
|
|
|
@@ -77,7 +77,7 @@ git commit -m "docs: ドメインモデル図(Context Map)の追加"
|
|
|
77
77
|
|
|
78
78
|
## 完了条件
|
|
79
79
|
|
|
80
|
-
- `docs/project/domain/01-domain-model.md` に Context Map 図が追加されている。
|
|
80
|
+
- `docs/project/03-domain/01-domain-model.md` に Context Map 図が追加されている。
|
|
81
81
|
- Bounded Context 間の関係性が正しく表現されている。
|
|
82
82
|
- 戦略的分類が視覚的に区別されている。
|
|
83
83
|
- オプションの詳細図(Aggregate 図、シーケンス図)が必要に応じて追加されている。
|
|
@@ -6,14 +6,14 @@ SKILL.md 手順5〜7 で使用する確認コマンドとレビュー観点。
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# Mermaid ブロックの存在確認
|
|
9
|
-
grep "\`\`\`mermaid" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Mermaid diagram"
|
|
9
|
+
grep "\`\`\`mermaid" docs/project/03-domain/01-domain-model.md && echo "OK" || echo "MISSING: Mermaid diagram"
|
|
10
10
|
# Context Map セクションの確認
|
|
11
|
-
grep "## Context Map" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Context Map section"
|
|
11
|
+
grep "## Context Map" docs/project/03-domain/01-domain-model.md && echo "OK" || echo "MISSING: Context Map section"
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## チェックリスト
|
|
15
15
|
|
|
16
|
-
- [ ] `docs/project/domain/01-domain-model.md` に Context Map 図が含まれている
|
|
16
|
+
- [ ] `docs/project/03-domain/01-domain-model.md` に Context Map 図が含まれている
|
|
17
17
|
- [ ] Mermaid 図が正しくレンダリングされる(構文エラーがない)
|
|
18
18
|
- [ ] 戦略的分類に応じて色分けされている(Core / Supporting / Generic)
|
|
19
19
|
- [ ] 関係パターン(Customer/Supplier など)と通信方法がエッジに記載されている
|
|
@@ -29,7 +29,7 @@ grep "## Context Map" docs/project/domain/01-domain-model.md && echo "OK" || ech
|
|
|
29
29
|
## Git への追加(任意)
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
git add docs/project/domain/01-domain-model.md
|
|
32
|
+
git add docs/project/03-domain/01-domain-model.md
|
|
33
33
|
git status
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -19,16 +19,16 @@ allowed-tools: Read, Grep, Glob, Write, Bash
|
|
|
19
19
|
|
|
20
20
|
以下のドキュメントが作成されていること:
|
|
21
21
|
|
|
22
|
-
- `docs/project/requirements/01-system-overview.md` 〜 `05-user-stories.md`
|
|
23
|
-
- `docs/project/behavior/01-scenarios.md`
|
|
24
|
-
- `docs/project/domain/01-domain-model.md`, `02-ubiquitous-language.md`
|
|
22
|
+
- `docs/project/01-requirements/01-system-overview.md` 〜 `05-user-stories.md`
|
|
23
|
+
- `docs/project/02-behavior/01-scenarios.md`
|
|
24
|
+
- `docs/project/03-domain/01-domain-model.md`, `02-ubiquitous-language.md`
|
|
25
25
|
|
|
26
26
|
## 手順
|
|
27
27
|
|
|
28
28
|
### 1. ドキュメント存在確認
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
ls -l docs/project/requirements/*.md docs/project/behavior/*.md docs/project/domain/*.md
|
|
31
|
+
ls -l docs/project/01-requirements/*.md docs/project/02-behavior/*.md docs/project/03-domain/*.md
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
不足があれば、対応する `/a-002`, `/a-003`, `/a-004` スキルの実行を促す。
|
|
@@ -9,9 +9,9 @@ SKILL.md 手順2 で実施する各チェック項目の詳細。自動検索(
|
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
# 全ユーザーストーリーの ID 抽出
|
|
12
|
-
grep -oE "US-[0-9]+" docs/project/requirements/05-user-stories.md | sort -u
|
|
12
|
+
grep -oE "US-[0-9]+" docs/project/01-requirements/05-user-stories.md | sort -u
|
|
13
13
|
# シナリオ側の参照
|
|
14
|
-
grep -oE "US-[0-9]+" docs/project/behavior/01-scenarios.md | sort -u
|
|
14
|
+
grep -oE "US-[0-9]+" docs/project/02-behavior/01-scenarios.md | sort -u
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## 2.2 実装済み機能・予定機能 ↔ シナリオ
|
|
@@ -37,9 +37,9 @@ grep -oE "US-[0-9]+" docs/project/behavior/01-scenarios.md | sort -u
|
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
# 禁止用語の簡易検索
|
|
40
|
-
grep -rn "Data" docs/project/domain/ || echo "No 'Data' found"
|
|
41
|
-
grep -rn "Process" docs/project/domain/ || echo "No 'Process' found"
|
|
42
|
-
grep -rn "Manager" docs/project/domain/ || echo "No 'Manager' found"
|
|
40
|
+
grep -rn "Data" docs/project/03-domain/ || echo "No 'Data' found"
|
|
41
|
+
grep -rn "Process" docs/project/03-domain/ || echo "No 'Process' found"
|
|
42
|
+
grep -rn "Manager" docs/project/03-domain/ || echo "No 'Manager' found"
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
## 2.6 目的との整合性
|