yodogawa 2.0.0 → 2.1.1

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 (79) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +66 -22
  4. package/bin/cli.js +3 -7
  5. package/package.json +2 -2
  6. package/scripts/create-task.sh +77 -0
  7. package/scripts/init-project-docs.sh +90 -0
  8. package/scripts/init-task-doc.sh +77 -0
  9. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  10. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +48 -0
  11. package/skills/a-002-initialize-project/SKILL.md +125 -289
  12. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  13. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  14. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  15. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  16. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  17. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  18. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  19. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  20. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  21. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  22. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  23. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  24. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  25. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  26. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  27. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  28. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  29. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  30. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  31. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  32. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  33. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  34. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  35. package/skills/a-010-define-design-system/SKILL.md +134 -212
  36. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  37. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  38. package/skills/a-011-define-data-model/SKILL.md +121 -134
  39. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  40. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  41. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  42. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  43. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  44. package/skills/a-013-define-architecture/SKILL.md +101 -128
  45. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  46. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  47. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  48. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  49. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  50. package/skills/a-015-review-design/SKILL.md +88 -140
  51. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  52. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  53. package/skills/b-001-create-task-directory/SKILL.md +62 -78
  54. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  55. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  56. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  57. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  58. package/skills/b-003-create-task-research/SKILL.md +129 -454
  59. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  60. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  61. package/skills/b-004-create-task-implementation/SKILL.md +99 -100
  62. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  63. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  64. package/skills/b-005-review-task/SKILL.md +117 -324
  65. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  66. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  67. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  68. package/skills/c-001-implement-task/SKILL.md +186 -521
  69. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  70. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  71. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  72. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  73. package/skills/c-002-update-documentation/SKILL.md +159 -853
  74. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  75. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  76. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  77. package/templates/tasks/task-template/a-definition.md +1 -1
  78. package/templates/tasks/task-template/b-research.md +1 -1
  79. package/templates/tasks/task-template/c-implementation.md +2 -2
@@ -1,144 +1,99 @@
1
- ---
2
- name: a-004-define-domain-model
3
- description: Event Storming形式でドメインモデルを定義し、ユビキタス言語を反復的に洗練させるワークフロー
4
- ---
5
-
6
- # DefineDomainModel (a-004)
7
-
8
- ## 目的
9
-
10
- - Event Storming形式でドメインモデルを体系的に定義する。
11
- - ドメインモデルを作成しながら、ユビキタス言語(共通用語)を並行して洗練させる。
12
- - Bounded Context(境界づけられたコンテキスト)を特定し、各コンテキスト内のActors、Commands、Events、Policies、Aggregatesを明確化する。
13
-
14
- ## 前提
15
-
16
- - `docs/project/behavior/01-scenarios.md` が作成されていること(先に `CreateScenarios` (a-003) を実行)。
17
- - `docs/project/domain/` ディレクトリが存在すること(存在しない場合は先に `SetupDocStructure` (a-001) を実行)。
18
- - ドメインエキスパート(ビジネス側の専門家)と協力できること。
19
-
20
- ## 手順
21
-
22
- ### 1. ディレクトリと前提条件の確認
23
-
24
- - `docs/project/domain/` ディレクトリの存在を確認:
25
-
26
- ```bash
27
- ls -la docs/project/domain/ 2>/dev/null || echo "ディレクトリが存在しません"
28
- ```
29
-
30
- - ディレクトリが存在しない場合:
31
- - ユーザーに通知:「`docs/project/domain/` ディレクトリが見つかりません。先に `SetupDocStructure` (a-001) を実行してください。」
32
-
33
- - シナリオの確認:
34
- - `docs/project/behavior/01-scenarios.md` を読み込み、内容を確認する。
35
-
36
- ### 2. テンプレートの準備
37
-
38
- - テンプレートをコピーして作業用ファイルを作成する:
39
-
40
- ```bash
41
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
42
- cp "$SCRIPT_DIR/templates/project/03-domain/01-domain-model.md" "docs/project/domain/01-domain-model.md"
43
- cp "$SCRIPT_DIR/templates/project/03-domain/02-ubiquitous-language.md" "docs/project/domain/02-ubiquitous-language.md"
44
- ```
45
-
46
- ### 3. Bounded Context の特定
47
-
48
- - シナリオとユーザーストーリーを分析し、Bounded Context(ビジネス領域)を提案する。
49
- - 「シナリオから、以下のBounded Contextが考えられます:[コンテキスト一覧]」
50
- - 各Contextの戦略的分類(Core/Supporting/Generic)を確認する。
51
-
52
- ### 4. 各Bounded Context のドメインモデル定義
53
-
54
- 各Bounded Contextについて、以下の要素をヒアリング・定義し、`01-domain-model.md` を更新する。
55
- **同時に、新しい用語が登場するたびに `02-ubiquitous-language.md` にも追記する。**
56
-
57
- #### 4.1 概要とアクター
58
-
59
- - Contextの責務と主要な責任
60
- - 登場するアクター(Actors)とその役割
61
-
62
- #### 4.2 コマンドとイベント (Event Storming)
63
-
64
- - アクターが実行するアクション(**Commands**、命令形)
65
- - その結果発生するビジネス上の出来事(**Domain Events**、過去形)
66
- - 自動化ルール(**Policies**、"Whenever ..., then ...")
67
-
68
- #### 4.3 集約とモデル
69
-
70
- - 一貫性を保つエンティティの塊(**Aggregates**)
71
- - 画面表示用の参照モデル(**Read Models**)
72
- - 連携する外部システム(**External Systems**)
73
-
74
- ### 5. ユビキタス言語の洗練
75
-
76
- - `02-ubiquitous-language.md` を見直し、以下の点を確認・修正する:
77
- - 用語の重複や曖昧さがないか
78
- - 禁止用語(Data, Processなど曖昧な語)が含まれていないか
79
- - 定義が具体的で、Context内での意味に限定されているか
80
-
81
- ### 6. Context Map の定義
82
-
83
- - 各Context間の関係性(Customer-Supplier, Shared Kernelなど)を定義し、`01-domain-model.md` のContext Mapセクション(Mermaid図)を更新する。
84
-
85
- ### 7. レビューと確認
86
-
87
- - 作成したドキュメントを提示し、以下を確認する:
88
- - 「ビジネス用語は正確に表現されていますか?」
89
- - 「Aggregateの境界は適切ですか?」
90
- - 「ユビキタス言語の定義は明確ですか?」
91
-
92
- ### 8. 完了条件と構造の確認
93
-
94
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
95
-
96
- 1. **構造確認**:
97
-
98
- ```bash
99
- # Bounded Context定義の確認
100
- grep "Bounded Context:" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Bounded Context definition"
101
- # Aggregate定義の確認
102
- grep "### Aggregates" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Aggregates section"
103
- # ユビキタス言語定義の確認
104
- grep "| 用語 | 定義 |" docs/project/domain/02-ubiquitous-language.md && echo "OK" || echo "MISSING: Terminology table"
105
- ```
106
-
107
- 2. **チェックリスト**:
108
- - [ ] `docs/project/domain/01-domain-model.md` が作成され、主要なEvent Storming要素が含まれている
109
- - [ ] `docs/project/domain/02-ubiquitous-language.md` が作成され、用語が定義されている
110
- - [ ] ドメインモデルとユビキタス言語の整合性が取れている
111
-
112
- ### 9. Git への追加(オプション)
113
-
114
- - ユーザーに確認:「作成したドメインモデルドキュメントを Git に追加しますか?」
115
- - 「はい」の場合、以下を実行:
116
-
117
- ```bash
118
- git add docs/project/domain/
119
- git status
120
- ```
121
-
122
- - 推奨コミットメッセージ:
123
-
124
- ```
125
- docs: ドメインモデルとユビキタス言語の定義
126
-
127
- - Event Stormingによるドメインモデルの作成
128
- - Bounded Contextごとのユビキタス言語の整備
129
- ```
130
-
131
- ## 完了条件
132
-
133
- - `docs/project/domain/01-domain-model.md` が作成されている。
134
- - `docs/project/domain/02-ubiquitous-language.md` が作成されている。
135
- - 各Bounded Contextについて、主要なドメイン要素(Aggregates, Commands, Events)が定義されている。
136
- - ドメインモデルで使用される用語がユビキタス言語として定義されている。
137
- - ユーザーが内容を承認している。
138
-
139
- ## エスカレーション
140
-
141
- - シナリオが不足していてドメインモデルを作成できない場合:
142
- - 「シナリオ不足のためモデル化が困難です。`CreateScenarios` (a-003) に戻ってシナリオを充実させましょう。」と提案する。
143
- - Bounded Contextの境界が不明確な場合:
144
- - 「境界が曖昧です。暫定的な境界を設定し、実装を進めながら見直す方針で進めませんか?」と提案する。
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
+ ```bash
35
+ SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
36
+ cp "$SCRIPT_DIR/templates/project/03-domain/01-domain-model.md" "docs/project/03-domain/01-domain-model.md"
37
+ cp "$SCRIPT_DIR/templates/project/03-domain/02-ubiquitous-language.md" "docs/project/03-domain/02-ubiquitous-language.md"
38
+ ```
39
+
40
+ ### 3. Bounded Context の特定
41
+
42
+ シナリオとユーザーストーリーから Bounded Context を提案し、戦略的分類(Core / Supporting / Generic)を確認。詳細は [reference/event-storming-guide.md](reference/event-storming-guide.md#bounded-context-の特定) を参照。
43
+
44
+ ### 4. 各 Bounded Context のドメインモデル定義
45
+
46
+ Context について以下を定義し、`01-domain-model.md` を更新。新しい用語が登場するたびに `02-ubiquitous-language.md` にも追記。
47
+
48
+ - 概要とアクター
49
+ - コマンド / イベント / ポリシー(Event Storming)
50
+ - 集約 / Read Models / External Systems
51
+
52
+ 各要素の詳細は [reference/event-storming-guide.md](reference/event-storming-guide.md#各-context-の定義項目) を参照。
53
+
54
+ ### 5. ユビキタス言語の洗練
55
+
56
+ `02-ubiquitous-language.md` を見直し、重複・曖昧さ・禁止用語を排除。観点は [reference/event-storming-guide.md](reference/event-storming-guide.md#ユビキタス言語の洗練観点) を参照。
57
+
58
+ ### 6. Context Map の定義
59
+
60
+ Context 間の関係性(Customer-Supplier, Shared Kernel 等)を Mermaid 図で定義。関係パターン: [reference/event-storming-guide.md](reference/event-storming-guide.md#context-map-の関係性)
61
+
62
+ ### 7. レビューと確認
63
+
64
+ 作成したドキュメントを提示し、ビジネス用語の正確性 / Aggregate 境界 / ユビキタス言語定義を確認。
65
+
66
+ ### 8. 完了条件と構造の確認
67
+
68
+ 構造確認コマンドは [reference/event-storming-guide.md](reference/event-storming-guide.md#構造確認コマンド) を参照。
69
+
70
+ チェックリスト:
71
+
72
+ - [ ] `01-domain-model.md` に主要な Event Storming 要素が含まれている
73
+ - [ ] `02-ubiquitous-language.md` の用語が定義されている
74
+ - [ ] ドメインモデルとユビキタス言語の整合性が取れている
75
+
76
+ ### 9. Git への追加(オプション)
77
+
78
+ ```bash
79
+ git add docs/project/03-domain/
80
+ git status
81
+ ```
82
+
83
+ コミットメッセージ: [reference/event-storming-guide.md](reference/event-storming-guide.md#git-コミットメッセージ)
84
+
85
+ ## 完了条件
86
+
87
+ - `docs/project/03-domain/01-domain-model.md` と `02-ubiquitous-language.md` が作成されている
88
+ - 各 Bounded Context の主要ドメイン要素(Aggregates, Commands, Events)が定義されている
89
+ - ドメインモデルで使用される用語がユビキタス言語として定義されている
90
+ - ユーザーが内容を承認している
91
+
92
+ ## エスカレーション
93
+
94
+ - **シナリオが不足**: 「`/a-003-create-scenarios` に戻ってシナリオを充実させましょう。」
95
+ - **Bounded Context の境界が不明確**: 「暫定的な境界を設定し、実装を進めながら見直す方針で進めませんか?」
96
+
97
+ ## 参考
98
+
99
+ - [reference/event-storming-guide.md](reference/event-storming-guide.md) — Event Storming の観点、Context Map パターン、構造確認コマンド
@@ -0,0 +1,71 @@
1
+ # Event Storming ガイド
2
+
3
+ SKILL.md 手順3〜6で使うドメインモデル定義の観点集。
4
+
5
+ ## Bounded Context の特定
6
+
7
+ シナリオとユーザーストーリーを分析し、ビジネス領域を特定。
8
+
9
+ - **戦略的分類**:
10
+ - **Core**: ビジネスの中核的な競争優位を生む領域
11
+ - **Supporting**: Core を支援する領域
12
+ - **Generic**: 汎用的に解決できる領域(既製ソリューション候補)
13
+
14
+ ## 各 Context の定義項目
15
+
16
+ ### 概要とアクター
17
+
18
+ - Context の責務と主要な責任
19
+ - 登場するアクター(Actors)とその役割
20
+
21
+ ### コマンドとイベント(Event Storming)
22
+
23
+ - **Commands**: アクターが実行するアクション(命令形、例: `RegisterUser`)
24
+ - **Domain Events**: 結果として発生するビジネス上の出来事(過去形、例: `UserRegistered`)
25
+ - **Policies**: 自動化ルール(`Whenever X, then Y` 形式)
26
+
27
+ ### 集約とモデル
28
+
29
+ - **Aggregates**: 一貫性を保つエンティティの塊
30
+ - **Read Models**: 画面表示用の参照モデル
31
+ - **External Systems**: 連携する外部システム
32
+
33
+ ## ユビキタス言語の洗練観点
34
+
35
+ - 用語の重複や曖昧さがないか
36
+ - 禁止用語(`Data`, `Process` など曖昧な語)が含まれていないか
37
+ - 定義が具体的で Context 内での意味に限定されているか
38
+
39
+ ## Context Map の関係性
40
+
41
+ - **Customer-Supplier**: 上流/下流の依存関係
42
+ - **Shared Kernel**: 共有される小さなモデル
43
+ - **Anticorruption Layer**: 外部モデルの変換層
44
+ - **Conformist**: 上流に従う
45
+ - **Partnership**: 相互協調
46
+
47
+ ## レビュー観点
48
+
49
+ - ビジネス用語は正確に表現されているか
50
+ - Aggregate の境界は適切か
51
+ - ユビキタス言語の定義は明確か
52
+
53
+ ## 構造確認コマンド
54
+
55
+ ```bash
56
+ grep "Bounded Context:" docs/project/03-domain/01-domain-model.md \
57
+ && echo "OK" || echo "MISSING: Bounded Context definition"
58
+ grep "### Aggregates" docs/project/03-domain/01-domain-model.md \
59
+ && echo "OK" || echo "MISSING: Aggregates section"
60
+ grep "| 用語 | 定義 |" docs/project/03-domain/02-ubiquitous-language.md \
61
+ && echo "OK" || echo "MISSING: Terminology table"
62
+ ```
63
+
64
+ ## Git コミットメッセージ
65
+
66
+ ```
67
+ docs: ドメインモデルとユビキタス言語の定義
68
+
69
+ - Event Stormingによるドメインモデルの作成
70
+ - Bounded Contextごとのユビキタス言語の整備
71
+ ```
@@ -1,120 +1,94 @@
1
- ---
2
- name: a-005-create-domain-diagram
3
- description: ドメインモデルをMermaid図で視覚化し、Context MapAggregate構造を図示するワークフロー
4
- ---
5
-
6
- # CreateDomainDiagram (a-005)
7
-
8
- ## 目的
9
-
10
- - ドメインモデルドキュメント(`01-domain-model.md`)を基に、視覚的なダイアグラムを作成する。
11
- - Context Map(Bounded Context間の関係図)をMermaid形式で図示する。
12
- - 各Bounded Context内のAggregate構造や関係性を図示する(オプション)。
13
-
14
- ## 前提
15
-
16
- - `docs/project/domain/01-domain-model.md` が作成されていること(先に `DefineDomainModel` (a-004) を実行)。
17
- - ドメインモデルドキュメントにBounded Contextの一覧と関係性が記述されていること。
18
-
19
- ## 手順
20
-
21
- ### 1. ドキュメントの確認
22
-
23
- - `docs/project/domain/01-domain-model.md` を読み込み、内容を確認する。
24
-
25
- ```bash
26
- ls -la docs/project/domain/01-domain-model.md 2>/dev/null || echo "ファイルが存在しません"
27
- ```
28
-
29
- - ファイルが存在しない場合:
30
- - ユーザーに通知:「ドメインモデルが見つかりません。先に `DefineDomainModel` (a-004) を実行してください。」
31
-
32
- ### 2. Context Map の情報収集と提案
33
-
34
- - `docs/project/domain/01-domain-model.md` から以下の情報を抽出する:
35
- - Bounded Contextのリスト
36
- - 戦略的分類(Core / Supporting / Generic)
37
- - Context間の関係性
38
-
39
- - 抽出した情報に基づき、Mermaid図の構成案を提示する:
40
- - 「以下の関係を図示します:」
41
- - Context A --> Context B (関係パターン)
42
-
43
- ### 3. Context Map 図の作成
44
-
45
- - `docs/project/domain/01-domain-model.md` の `## Context Map` セクションに Mermaid図を追加(または更新)する。
46
- - **スタイル定義**:
47
- - Core Domain: 金色 (`fill:#FFD700`)
48
- - Supporting Domain: 水色 (`fill:#87CEEB`)
49
- - Generic Domain: グレー (`fill:#D3D3D3`)
50
- - **エッジ定義**:
51
- - 関係パターンと通信方法をラベルに記載する。
52
-
53
- ### 4. 詳細図の作成(オプション)
54
-
55
- - ユーザーに確認:「以下の詳細図も作成しますか?」
56
- - **Aggregate構造図**: クラス図形式でAggregateの内部構造と関係性を表現。
57
- - **イベントフロー図**: シーケンス図形式で主要なビジネスフロー(Command -> Event -> Policy)を表現。
58
-
59
- - 「はい」の場合、対象のBounded Contextやシナリオを確認し、図を作成してドキュメント内の適切な箇所に追加する。
60
-
61
- ### 5. レビューと確認
62
-
63
- - 作成した図をユーザーに提示し、以下を確認:
64
- - 「関係性は正しく表現されていますか?」
65
- - 「分類の色分けは適切ですか?」
66
- - 「複雑すぎて読みにくい箇所はありませんか?」
67
-
68
- - フィードバックに基づき、レイアウト(TD/LR)や配置を調整する。
69
-
70
- ### 6. 完了条件と構造の確認
71
-
72
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
73
-
74
- 1. **構造確認**:
75
-
76
- ```bash
77
- # Mermaidブロックの存在確認
78
- grep "\`\`\`mermaid" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Mermaid diagram"
79
- # Context Mapセクションの確認
80
- grep "## Context Map" docs/project/domain/01-domain-model.md && echo "OK" || echo "MISSING: Context Map section"
81
- ```
82
-
83
- 2. **チェックリスト**:
84
- - [ ] `docs/project/domain/01-domain-model.md` にContext Map図が含まれている
85
- - [ ] Mermaid図が正しくレンダリングされる(構文エラーがない)
86
- - [ ] 戦略的分類に応じて色分けされている
87
-
88
- ### 7. Git への追加(オプション)
89
-
90
- - ユーザーに確認:「更新したドメインモデルドキュメントを Git に追加しますか?」
91
- - 「はい」の場合、以下を実行:
92
-
93
- ```bash
94
- git add docs/project/domain/01-domain-model.md
95
- git status
96
- ```
97
-
98
- - 推奨コミットメッセージ:
99
-
100
- ```
101
- docs: ドメインモデル図(Context Map)の追加
102
-
103
- - Bounded Context間の関係をMermaid図で視覚化
104
- - 戦略的分類に基づく色分けを追加
105
- ```
106
-
107
- ## 完了条件
108
-
109
- - `docs/project/domain/01-domain-model.md` にContext Map図が追加されている。
110
- - Bounded Context間の関係性が正しく表現されている。
111
- - 戦略的分類が視覚的に区別されている。
112
- - オプションの詳細図(Aggregate図、シーケンス図)が必要に応じて追加されている。
113
- - ユーザーが図の内容を承認している。
114
-
115
- ## エスカレーション
116
-
117
- - ドメインモデルが不完全で図を作成できない場合:
118
- - 「必要な情報(関係性など)が不足しています。`DefineDomainModel` (a-004) に戻って定義を補完しましょう。」と提案する。
119
- - 図が複雑すぎて読みにくい場合:
120
- - 「関係が複雑すぎます。主要な関係のみに絞るか、図を分割することを検討しましょう。」と提案する。
1
+ ---
2
+ name: a-005-create-domain-diagram
3
+ description: ドメインモデルを Mermaid 図(Context MapAggregate 構造)として可視化する。ドメインモデル定義後、関係性を図で確認する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # CreateDomainDiagram (a-005)
9
+
10
+ ## 目的
11
+
12
+ - ドメインモデルドキュメント(`01-domain-model.md`)を基に、視覚的なダイアグラムを作成する。
13
+ - Context Map(Bounded Context 間の関係図)を Mermaid 形式で図示する。
14
+ - 各 Bounded Context 内の Aggregate 構造や関係性を図示する(オプション)。
15
+
16
+ ## 前提
17
+
18
+ - `docs/project/03-domain/01-domain-model.md` が作成されていること(`/a-004-define-domain-model` 実行済み)。
19
+ - ドメインモデルドキュメントに Bounded Context の一覧と関係性が記述されていること。
20
+
21
+ ## 手順
22
+
23
+ ### 1. ドキュメントの確認
24
+
25
+ ```bash
26
+ ls -la docs/project/03-domain/01-domain-model.md 2>/dev/null || echo "ファイルが存在しません"
27
+ ```
28
+
29
+ 未作成の場合、`/a-004-define-domain-model` の実行を促す。
30
+
31
+ ### 2. Context Map の情報収集と提案
32
+
33
+ `docs/project/03-domain/01-domain-model.md` から以下を抽出し、構成案を提示する:
34
+
35
+ - Bounded Context のリスト
36
+ - 戦略的分類(Core / Supporting / Generic)
37
+ - Context 間の関係性と通信方法
38
+
39
+ ### 3. Context Map 図の作成
40
+
41
+ `## Context Map` セクションに Mermaid 図を追加する。スタイル定義と記述テンプレートは [examples/mermaid-templates.md](examples/mermaid-templates.md#context-mapbounded-context-間の関係) を参照。
42
+
43
+ - Core Domain: 金色、Supporting: 水色、Generic: グレー
44
+ - エッジラベルに関係パターン(Customer/Supplier、ACL 等)と通信方法を記載
45
+
46
+ ### 4. 詳細図の作成(オプション)
47
+
48
+ ユーザー確認の上、以下を追加作成する:
49
+
50
+ - **Aggregate 構造図**: クラス図形式。Aggregate 内部の Entity/Value Object と関係を表現。
51
+ - **イベントフロー図**: シーケンス図形式。主要ビジネスフロー(Command → Event → Policy)を表現。
52
+
53
+ テンプレートは [examples/mermaid-templates.md](examples/mermaid-templates.md#aggregate-構造図クラス図形式) を参照。
54
+
55
+ ### 5. レビューと確認
56
+
57
+ 作成した図を提示し、関係性の正確性、色分けの適切性、読みやすさを確認する。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。フィードバックに応じてレイアウト(TD/LR)や配置を調整する。
58
+
59
+ ### 6. 構造チェック
60
+
61
+ ```bash
62
+ grep "\`\`\`mermaid" docs/project/03-domain/01-domain-model.md \
63
+ && grep "## Context Map" docs/project/03-domain/01-domain-model.md \
64
+ && echo "OK" || echo "MISSING SECTION"
65
+ ```
66
+
67
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
68
+
69
+ ### 7. Git への追加(任意)
70
+
71
+ ```bash
72
+ git add docs/project/03-domain/01-domain-model.md
73
+ git commit -m "docs: ドメインモデル図(Context Map)の追加"
74
+ ```
75
+
76
+ 詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加任意) を参照。
77
+
78
+ ## 完了条件
79
+
80
+ - `docs/project/03-domain/01-domain-model.md` Context Map 図が追加されている。
81
+ - Bounded Context 間の関係性が正しく表現されている。
82
+ - 戦略的分類が視覚的に区別されている。
83
+ - オプションの詳細図(Aggregate 図、シーケンス図)が必要に応じて追加されている。
84
+ - ユーザーが図の内容を承認している。
85
+
86
+ ## エスカレーション
87
+
88
+ - **ドメインモデルが不完全で図を作成できない**: 「`/a-004-define-domain-model` に戻って定義を補完しましょう。」
89
+ - **図が複雑すぎて読みにくい**: 「主要な関係のみに絞るか、図を分割することを検討しましょう。」
90
+
91
+ ## 参考
92
+
93
+ - [examples/mermaid-templates.md](examples/mermaid-templates.md) — Context Map / Aggregate / シーケンス図の Mermaid テンプレート、スタイル定義、エッジラベル例
94
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
@@ -0,0 +1,73 @@
1
+ # Mermaid 図のテンプレート集
2
+
3
+ SKILL.md 手順3〜4 で使用する Mermaid 記述例。
4
+
5
+ ## Context Map(Bounded Context 間の関係)
6
+
7
+ ```mermaid
8
+ flowchart LR
9
+ Order[Order Context]:::core
10
+ Customer[Customer Context]:::supporting
11
+ Payment[Payment Context]:::generic
12
+
13
+ Order -->|Customer/Supplier| Customer
14
+ Order -->|Published Language| Payment
15
+
16
+ classDef core fill:#FFD700,stroke:#333,stroke-width:2px;
17
+ classDef supporting fill:#87CEEB,stroke:#333,stroke-width:1px;
18
+ classDef generic fill:#D3D3D3,stroke:#333,stroke-width:1px;
19
+ ```
20
+
21
+ ### スタイル定義
22
+
23
+ - Core Domain: 金色 `fill:#FFD700`
24
+ - Supporting Domain: 水色 `fill:#87CEEB`
25
+ - Generic Domain: グレー `fill:#D3D3D3`
26
+
27
+ ### エッジ(関係)のラベル例
28
+
29
+ - `-->|Customer/Supplier|`
30
+ - `-->|Conformist|`
31
+ - `-->|Published Language|`
32
+ - `-->|Anti-Corruption Layer|`
33
+ - `-->|Shared Kernel|`
34
+
35
+ ## Aggregate 構造図(クラス図形式)
36
+
37
+ ```mermaid
38
+ classDiagram
39
+ class Order {
40
+ +OrderId id
41
+ +CustomerId customerId
42
+ +OrderStatus status
43
+ +place()
44
+ +cancel()
45
+ }
46
+ class OrderItem {
47
+ +ProductId productId
48
+ +int quantity
49
+ }
50
+ Order "1" *-- "N" OrderItem : contains
51
+ ```
52
+
53
+ ## イベントフロー図(シーケンス図形式)
54
+
55
+ ```mermaid
56
+ sequenceDiagram
57
+ participant U as User
58
+ participant O as OrderAggregate
59
+ participant P as PaymentPolicy
60
+
61
+ U->>O: PlaceOrder (Command)
62
+ O-->>P: OrderPlaced (Event)
63
+ P->>P: trigger ProcessPayment
64
+ ```
65
+
66
+ ## コミットメッセージ例
67
+
68
+ ```text
69
+ docs: ドメインモデル図(Context Map)の追加
70
+
71
+ - Bounded Context 間の関係を Mermaid 図で視覚化
72
+ - 戦略的分類に基づく色分けを追加
73
+ ```
@@ -0,0 +1,43 @@
1
+ # 構造チェックとレビュー観点
2
+
3
+ SKILL.md 手順5〜7 で使用する確認コマンドとレビュー観点。
4
+
5
+ ## セクション存在確認
6
+
7
+ ```bash
8
+ # Mermaid ブロックの存在確認
9
+ grep "\`\`\`mermaid" docs/project/03-domain/01-domain-model.md && echo "OK" || echo "MISSING: Mermaid diagram"
10
+ # Context Map セクションの確認
11
+ grep "## Context Map" docs/project/03-domain/01-domain-model.md && echo "OK" || echo "MISSING: Context Map section"
12
+ ```
13
+
14
+ ## チェックリスト
15
+
16
+ - [ ] `docs/project/03-domain/01-domain-model.md` に Context Map 図が含まれている
17
+ - [ ] Mermaid 図が正しくレンダリングされる(構文エラーがない)
18
+ - [ ] 戦略的分類に応じて色分けされている(Core / Supporting / Generic)
19
+ - [ ] 関係パターン(Customer/Supplier など)と通信方法がエッジに記載されている
20
+ - [ ] 必要に応じて Aggregate 図やシーケンス図が追加されている
21
+
22
+ ## レビュー確認質問
23
+
24
+ - 「関係性は正しく表現されていますか?」
25
+ - 「分類の色分けは適切ですか?」
26
+ - 「複雑すぎて読みにくい箇所はありませんか?」
27
+ - 「主要なユースケース(Command → Event)が追えますか?」
28
+
29
+ ## Git への追加(任意)
30
+
31
+ ```bash
32
+ git add docs/project/03-domain/01-domain-model.md
33
+ git status
34
+ ```
35
+
36
+ 推奨コミットメッセージ:
37
+
38
+ ```text
39
+ docs: ドメインモデル図(Context Map)の追加
40
+
41
+ - Bounded Context 間の関係を Mermaid 図で視覚化
42
+ - 戦略的分類に基づく色分けを追加
43
+ ```