yodogawa 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +134 -82
  2. package/LICENSE +1 -1
  3. package/README.md +351 -246
  4. package/bin/checks/id-trace.js +137 -0
  5. package/bin/checks/links.js +59 -0
  6. package/bin/checks/placeholder.js +132 -0
  7. package/bin/checks/structure.js +127 -0
  8. package/bin/cli.js +51 -68
  9. package/bin/commands/doctor.js +128 -0
  10. package/bin/commands/install.js +58 -0
  11. package/bin/commands/new-task.js +117 -0
  12. package/bin/lib/check-cli.js +19 -0
  13. package/bin/lib/findings.js +31 -0
  14. package/bin/lib/markdown.js +103 -0
  15. package/bin/lib/project-spec.js +138 -0
  16. package/bin/lib/walk-md.js +23 -0
  17. package/package.json +68 -56
  18. package/skills/a-001-setup-doc-structure/SKILL.md +7 -6
  19. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +40 -13
  20. package/skills/a-002-initialize-project/SKILL.md +72 -52
  21. package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
  22. package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
  23. package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
  24. package/skills/a-002b-define-user-stories/SKILL.md +80 -0
  25. package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
  26. package/skills/a-003-create-scenarios/SKILL.md +37 -39
  27. package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
  28. package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
  29. package/skills/a-004-define-domain-model/SKILL.md +44 -36
  30. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
  31. package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
  32. package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
  33. package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
  34. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
  35. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
  36. package/skills/a-007-define-tech-stack/SKILL.md +4 -7
  37. package/skills/a-008-define-repository-structure/SKILL.md +2 -5
  38. package/skills/a-009-define-screen-design/SKILL.md +3 -6
  39. package/skills/a-010-define-design-system/SKILL.md +1 -5
  40. package/skills/a-011-define-data-model/SKILL.md +4 -7
  41. package/skills/a-012-define-api-spec/SKILL.md +1 -4
  42. package/skills/a-013-define-architecture/SKILL.md +1 -4
  43. package/skills/a-014-define-infrastructure/SKILL.md +9 -4
  44. package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
  45. package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
  46. package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
  47. package/skills/b-001-create-task-directory/SKILL.md +14 -8
  48. package/skills/b-002-create-task-definition/SKILL.md +4 -5
  49. package/skills/b-003-create-task-research/SKILL.md +4 -5
  50. package/skills/b-004-create-task-implementation/SKILL.md +4 -5
  51. package/skills/b-005-review-task/reference/assessment-criteria.md +3 -3
  52. package/skills/c-001-implement-task/SKILL.md +1 -1
  53. package/skills/c-001-implement-task/reference/implementation-loop.md +1 -1
  54. package/skills/c-002-update-documentation/SKILL.md +7 -7
  55. package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
  56. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +8 -9
  57. package/templates/project/01-requirements/01-product-brief.md +186 -0
  58. package/templates/project/01-requirements/02-mvp-scope.md +64 -0
  59. package/templates/project/01-requirements/03-parking-lot.md +29 -0
  60. package/templates/project/01-requirements/05-user-stories.md +28 -124
  61. package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
  62. package/templates/project/02-behavior/01-core-scenarios.md +80 -0
  63. package/templates/project/03-domain/01-domain-model.md +120 -339
  64. package/templates/project/03-domain/01-domain-sketch.md +90 -0
  65. package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
  66. package/templates/project/04-design/01-tech-stack.md +367 -367
  67. package/templates/project/04-design/02-repository-structure.md +391 -391
  68. package/templates/project/04-design/03-screen-design.md +596 -596
  69. package/templates/project/04-design/04-design-system.md +261 -261
  70. package/templates/project/04-design/05-data-model.md +211 -211
  71. package/templates/project/04-design/06-api-spec.md +226 -226
  72. package/templates/project/04-design/07-architecture.md +183 -183
  73. package/templates/project/04-design/08-infrastructure.md +180 -180
  74. package/templates/project/AI_CONTEXT.md +55 -0
  75. package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
  76. package/templates/tasks/task-template/a-definition.md +143 -143
  77. package/templates/tasks/task-template/b-research.md +185 -185
  78. package/templates/tasks/task-template/c-implementation.md +200 -200
  79. package/scripts/create-task.sh +0 -77
  80. package/scripts/init-project-docs.sh +0 -90
  81. package/scripts/init-task-doc.sh +0 -77
  82. package/scripts/setup-docs.sh +0 -92
  83. package/templates/documentation-rules.md +0 -143
  84. package/templates/project/01-requirements/01-system-overview.md +0 -49
  85. package/templates/project/01-requirements/03-features-planned.md +0 -75
@@ -5,27 +5,30 @@ SKILL.md 手順6〜7 で使う構造確認コマンドとレビュー観点。
5
5
  ## セクション存在確認
6
6
 
7
7
  ```bash
8
- # シナリオ一覧テーブルの確認
9
- grep "| シナリオID | 機能 |" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
10
- # Feature 定義の確認
11
- grep "Feature:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
12
- # Scenario 定義の確認
13
- grep "Scenario:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
8
+ # Core Flow 一覧の確認
9
+ grep "## Core Flow 一覧" docs/project/02-behavior/01-core-scenarios.md && echo "OK" || echo "MISSING: Core Flow"
10
+ # Day 1 Happy Path の確認
11
+ grep "## Day 1 Happy Path" docs/project/02-behavior/01-core-scenarios.md && echo "OK" || echo "MISSING: Happy Path"
12
+ # Critical Failure の確認
13
+ grep "## Critical Failure" docs/project/02-behavior/01-core-scenarios.md && echo "OK" || echo "MISSING: Critical Failure"
14
+ # Not Covered in MVP の確認
15
+ grep "## Not Covered in MVP" docs/project/02-behavior/01-core-scenarios.md && echo "OK" || echo "MISSING: Not Covered"
14
16
  ```
15
17
 
16
18
  ## チェックリスト
17
19
 
18
- - [ ] `docs/project/02-behavior/01-scenarios.md` が作成されている
19
- - [ ] シナリオ一覧テーブルが更新されている
20
- - [ ] FeatureGherkin 形式で記述されている
21
- - [ ] 正常系と異常系のシナリオが網羅されている
22
- - [ ] Empty State や境界値も考慮されている
23
- - [ ] タグ(@SC-XXX, @smoke 等)が付与されている
20
+ - [ ] `docs/project/02-behavior/01-core-scenarios.md` が作成されている
21
+ - [ ] 対象が MVP Scope の Must 機能に絞られている(Not Now / Won't を扱っていない)
22
+ - [ ] Day 1 Happy Path 1〜3 本に固定されている
23
+ - [ ] Critical Failure が「価値を壊す重大失敗」に限定されている(網羅していない)
24
+ - [ ] Not Covered in MVP が明示され、`02-mvp-scope.md` の Not Now / Won't と整合している
25
+ - [ ] User Story(要約 AC)と Core Scenario(実行時主要行動)が二重化していない
24
26
 
25
27
  ## レビュー確認質問
26
28
 
27
- - 「シナリオは実際の動作を正しく表現していますか?」
28
- - 「漏れているケース(エラー、境界値)はありませんか?」
29
+ - 「Day 1 の成功体験を正しく表現していますか?」
30
+ - 「価値を壊す Critical Failure に漏れはありませんか?(法務・課金・権限・データ消失)」
31
+ - 「Not Covered in MVP は MVP Scope の Not Now / Won't と矛盾していませんか?」
29
32
  - 「非技術者でも理解できる表現になっていますか?」
30
33
  - 「UI 操作に依存せず、ユーザーの意図を表現できていますか?」
31
34
 
@@ -39,8 +42,8 @@ git status
39
42
  推奨コミットメッセージ:
40
43
 
41
44
  ```text
42
- docs: 振る舞い仕様(シナリオ)の作成
45
+ docs: Core Scenarios(MVP 主要行動)の作成
43
46
 
44
- - ユーザーストーリーに基づく Gherkin シナリオを追加
45
- - 正常系・異常系・境界値ケースを定義
47
+ - Must 機能の Day 1 Happy Path と Critical Failure を定義
48
+ - Not Covered in MVP を明示
46
49
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: a-004-define-domain-model
3
- description: Event Storming 形式でドメインモデル(イベント・コマンド・集約)を定義し、ユビキタス言語を整備する。シナリオ作成後、ドメイン設計を開始する際に使用。
3
+ description: Core Scenarios と MVP Scope から軽量な Domain Sketch(主要用語・境界・中核エンティティ・重要ルール)を定義し、ユビキタス言語を整備する。完全な Event Storming は任意(a-005)。シナリオ作成後、ドメイン理解を素早く固定する際に使用。
4
4
  disable-model-invocation: true
5
5
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
6
  ---
@@ -9,69 +9,76 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
9
9
 
10
10
  ## 目的
11
11
 
12
- - Event Storming 形式でドメインモデルを体系的に定義する。
13
- - ドメインモデルを作成しながら、ユビキタス言語(共通用語)を並行して洗練させる。
14
- - Bounded Context を特定し、Actors / Commands / Events / Policies / Aggregates を明確化する。
12
+ - Core Scenarios と MVP Scope から、AI が責務混在を起こさない程度の軽量な Domain Sketch を定義する。
13
+ - 主要な業務概念・システム境界・中核エンティティ・重要なビジネスルール・MVP で作らない範囲を素早く固定する。
14
+ - 並行してユビキタス言語(共通用語)を洗練させる。
15
+ - 完全な Event Storming(Bounded Context / Aggregate / Context Map)は標準では作らない。複雑ドメインで必要なら任意スキル `/a-005-create-domain-diagram`(advanced)に委ねる。
15
16
 
16
17
  ## 前提
17
18
 
18
- - `docs/project/02-behavior/01-scenarios.md` が作成されている(`/a-003-create-scenarios` 実行済み)
19
- - `docs/project/03-domain/` ディレクトリが存在(なければ `/a-001-setup-doc-structure`)
20
- - ドメインエキスパートと協力できる
19
+ - `docs/project/02-behavior/01-core-scenarios.md` が作成されている(`/a-003-create-scenarios` 実行済み)
20
+ - `docs/project/01-requirements/02-mvp-scope.md` が作成されている(Must 機能・Not Now / Won't)
21
+ - `docs/project/03-domain/` ディレクトリが存在(なければ本スキルが作成する)
21
22
 
22
23
  ## 手順
23
24
 
24
- ### 1. ディレクトリと前提条件の確認
25
+ ### 1. 前提ドキュメントの確認
25
26
 
26
27
  ```bash
27
28
  ls -la docs/project/03-domain/ 2>/dev/null || echo "ディレクトリが存在しません"
28
29
  ```
29
30
 
30
- 存在しなければ `/a-001-setup-doc-structure` を促す。`docs/project/02-behavior/01-scenarios.md` を読み込み内容確認。
31
+ `02-behavior/01-core-scenarios.md`(Core Flow / Critical Failure)と `02-mvp-scope.md`(Must / Not Now / Won't)を読み込み、ドメインの主要概念と境界を把握する。
31
32
 
32
33
  ### 2. テンプレートの準備
33
34
 
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
- ```
35
+ このスキルの配置ディレクトリ(`skills/a-004-define-domain-model/`)を起点に、`docs/project/03-domain/` へ次の 2 ファイルを Read→Write する(FOR EACH)。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。出力先ディレクトリ(`docs/project/03-domain/`)が無ければ作成する。
39
36
 
40
- ### 3. Bounded Context の特定
37
+ - `../../templates/project/03-domain/01-domain-sketch.md` `docs/project/03-domain/01-domain-sketch.md`
38
+ - `../../templates/project/03-domain/02-ubiquitous-language.md` → `docs/project/03-domain/02-ubiquitous-language.md`
41
39
 
42
- シナリオとユーザーストーリーから Bounded Context を提案し、戦略的分類(Core / Supporting / Generic)を確認。詳細は [reference/event-storming-guide.md](reference/event-storming-guide.md#bounded-context-の特定) を参照。
40
+ ### 3. 主要概念と境界の抽出
43
41
 
44
- ### 4. Bounded Context のドメインモデル定義
42
+ Core Scenarios と MVP Scope から以下を提案し、`01-domain-sketch.md` を更新する。観点は [reference/event-storming-guide.md](reference/event-storming-guide.md) を参照。
45
43
 
46
- Context について以下を定義し、`01-domain-model.md` を更新。新しい用語が登場するたびに `02-ubiquitous-language.md` にも追記。
44
+ - **主要用語(10〜20 個)**: 頻出する業務用語。曖昧語(Data / Process / Manager)は避ける。
45
+ - **アクター / 外部システム / システム境界**: 誰が使い、何と連携し、MVP で作る範囲はどこか。
46
+ - **中核エンティティと責務**: MVP の中核エンティティと 1 行責務(属性網羅は不要)。
47
47
 
48
- - 概要とアクター
49
- - コマンド / イベント / ポリシー(Event Storming)
50
- - 集約 / Read Models / External Systems
48
+ ### 4. ルール・状態・作らない範囲の記入
51
49
 
52
- 各要素の詳細は [reference/event-storming-guide.md](reference/event-storming-guide.md#各-context-の定義項目) を参照。
50
+ - **重要なビジネスルール**: 守らないと価値・正しさが崩れるルールだけ。Core Scenarios の Critical Failure と整合させる。
51
+ - **状態遷移(任意)**: 明確なライフサイクルがあるエンティティのみ。
52
+ - **MVP では作らないドメイン範囲**: `02-mvp-scope.md` の Not Now / Won't と整合させる。
53
+ - 新しい用語が登場したら `02-ubiquitous-language.md` にも追記する。
53
54
 
54
- ### 5. ユビキタス言語の洗練
55
+ ### 5. 簡易ドメイン図の作成(任意)
55
56
 
56
- `02-ubiquitous-language.md` を見直し、重複・曖昧さ・禁止用語を排除。観点は [reference/event-storming-guide.md](reference/event-storming-guide.md#ユビキタス言語の洗練観点) を参照。
57
+ 必要に応じて、アクター・システム境界・外部システムを示す簡易 Mermaid 図を 1 枚だけ `01-domain-sketch.md` の「簡易ドメイン図」へ追加する。複雑な Context Map / Aggregate 図が必要なら `/a-005-create-domain-diagram`(advanced)に委ねる。
57
58
 
58
- ### 6. Context Map の定義
59
+ ### 6. ユビキタス言語の洗練
59
60
 
60
- Context 間の関係性(Customer-Supplier, Shared Kernel 等)を Mermaid 図で定義。関係パターン: [reference/event-storming-guide.md](reference/event-storming-guide.md#context-map-の関係性)
61
+ `02-ubiquitous-language.md` を見直し、重複・曖昧さ・禁止用語を排除。観点は [reference/event-storming-guide.md](reference/event-storming-guide.md#ユビキタス言語の洗練観点) を参照。
61
62
 
62
63
  ### 7. レビューと確認
63
64
 
64
- 作成したドキュメントを提示し、ビジネス用語の正確性 / Aggregate 境界 / ユビキタス言語定義を確認。
65
+ 作成したドキュメントを提示し、(1) 主要概念・境界が Core Scenarios と一致するか、(2) 重要ルールが Critical Failure を防げるか、(3) 作らない範囲が MVP Scope と矛盾しないかを確認する。
65
66
 
66
67
  ### 8. 完了条件と構造の確認
67
68
 
68
- 構造確認コマンドは [reference/event-storming-guide.md](reference/event-storming-guide.md#構造確認コマンド) を参照。
69
+ ```bash
70
+ grep "## 中核エンティティと責務" docs/project/03-domain/01-domain-sketch.md \
71
+ && grep "## 重要なビジネスルール" docs/project/03-domain/01-domain-sketch.md \
72
+ && grep "| 用語 | 定義 |" docs/project/03-domain/02-ubiquitous-language.md \
73
+ && echo "OK" || echo "MISSING SECTION"
74
+ ```
69
75
 
70
76
  チェックリスト:
71
77
 
72
- - [ ] `01-domain-model.md` に主要な Event Storming 要素が含まれている
78
+ - [ ] `01-domain-sketch.md` に主要用語・境界・中核エンティティ・重要ルールが含まれている
79
+ - [ ] MVP で作らないドメイン範囲が明示されている
73
80
  - [ ] `02-ubiquitous-language.md` の用語が定義されている
74
- - [ ] ドメインモデルとユビキタス言語の整合性が取れている
81
+ - [ ] Domain Sketch とユビキタス言語の整合性が取れている
75
82
 
76
83
  ### 9. Git への追加(オプション)
77
84
 
@@ -84,16 +91,17 @@ git status
84
91
 
85
92
  ## 完了条件
86
93
 
87
- - `docs/project/03-domain/01-domain-model.md` と `02-ubiquitous-language.md` が作成されている
88
- - Bounded Context の主要ドメイン要素(Aggregates, Commands, Events)が定義されている
89
- - ドメインモデルで使用される用語がユビキタス言語として定義されている
94
+ - `docs/project/03-domain/01-domain-sketch.md` と `02-ubiquitous-language.md` が作成されている
95
+ - 主要用語・システム境界・中核エンティティ・重要なビジネスルール・MVP で作らない範囲が定義されている
96
+ - ドメインで使用される用語がユビキタス言語として定義されている
90
97
  - ユーザーが内容を承認している
91
98
 
92
99
  ## エスカレーション
93
100
 
94
- - **シナリオが不足**: 「`/a-003-create-scenarios` に戻ってシナリオを充実させましょう。」
95
- - **Bounded Context の境界が不明確**: 「暫定的な境界を設定し、実装を進めながら見直す方針で進めませんか?」
101
+ - **Core Scenarios が不足**: 「`/a-003-create-scenarios` に戻って Core Scenarios を充実させましょう。」
102
+ - **ドメインが複雑で軽量スケッチに収まらない**: 「複雑な Bounded Context / Aggregate / Context Map が必要なら、任意スキル `/a-005-create-domain-diagram`(advanced)で Full DDD を作成しましょう。」
96
103
 
97
104
  ## 参考
98
105
 
99
- - [reference/event-storming-guide.md](reference/event-storming-guide.md) — Event Storming の観点、Context Map パターン、構造確認コマンド
106
+ - [reference/event-storming-guide.md](reference/event-storming-guide.md) — ドメイン概念抽出の観点、(advanced)Event Storming / Context Map パターン、構造確認コマンド
107
+ - [reference/ubiquitous-language-guide.md](reference/ubiquitous-language-guide.md) — ユビキタス言語の記載ポイント・禁止用語の選び方・Living Document 運用(手順6)
@@ -1,10 +1,12 @@
1
1
  # Event Storming ガイド
2
2
 
3
- SKILL.md 手順3〜6で使うドメインモデル定義の観点集。
3
+ ドメイン概念抽出の観点集。a-004(Domain Sketch)の手順3・4 では主要概念・境界・中核エンティティ・重要ルールの抽出に使う。
4
+
5
+ > 以下の **Bounded Context / コマンドとイベント / 集約とモデル / Context Map の関係性** は完全な Event Storming の観点であり、標準フローでは必須ではない。複雑ドメインで Full DDD が必要なときに、任意スキル `/a-005-create-domain-diagram`(advanced)と `01-domain-model.md` で用いる。a-004 の Domain Sketch では、これらを軽量に(中核エンティティ・境界の把握に必要な範囲で)参照する。
4
6
 
5
7
  ## Bounded Context の特定
6
8
 
7
- シナリオとユーザーストーリーを分析し、ビジネス領域を特定。
9
+ Core Scenarios と MVP Scope を分析し、ビジネス領域を特定。
8
10
 
9
11
  - **戦略的分類**:
10
12
  - **Core**: ビジネスの中核的な競争優位を生む領域
@@ -43,6 +45,19 @@ SKILL.md 手順3〜6で使うドメインモデル定義の観点集。
43
45
  - **Anticorruption Layer**: 外部モデルの変換層
44
46
  - **Conformist**: 上流に従う
45
47
  - **Partnership**: 相互協調
48
+ - **Open Host Service**: API 経由で公開
49
+ - **Published Language**: 共通のデータフォーマットで連携
50
+ - **Separate Ways**: 連携しない(独立)
51
+
52
+ ## Full DDD テンプレート(01-domain-model.md)の補足
53
+
54
+ 任意スキル `/a-005-create-domain-diagram` で `01-domain-model.md` を埋めるときの追加メモ。
55
+
56
+ - **付箋の色(Event Storming 表記)**: Actors=小さな黄 / Commands=青 / Domain Events=オレンジ / Policies=紫(ライラック) / Aggregates=大きな黄 / Read Models=緑 / External Systems=ピンク。
57
+ - **Commands / Events**: Command は動詞・命令形(`RegisterUser`)で必ず Domain Event をトリガーする。Event は過去形(`UserRegistered`)でビジネス上意味のある出来事を表し、技術イベント(「DB 保存」)は書かない。
58
+ - **Aggregates**: トランザクション境界=一貫性の保証範囲。1 Aggregate は 1 ルートエンティティを持ち、コマンドを受けてルールを適用しイベントを発行する。他 Aggregate とは疎結合でイベント経由で連携する。
59
+ - **Read Models(CQRS)**: Command(書き込み)と Query(読み込み)を分離し、UI のニーズに合わせた読み取り専用モデルをイベントから構築する。複数 Aggregate を集約する場合もある。
60
+ - **External Systems**: 外部システムとの境界には Anticorruption Layer(腐敗防止層)の要否を検討し、外部障害がこの Context に与える影響を考慮する。
46
61
 
47
62
  ## レビュー観点
48
63
 
@@ -52,20 +67,31 @@ SKILL.md 手順3〜6で使うドメインモデル定義の観点集。
52
67
 
53
68
  ## 構造確認コマンド
54
69
 
70
+ 標準フロー(Domain Sketch):
71
+
72
+ ```bash
73
+ grep "## 中核エンティティと責務" docs/project/03-domain/01-domain-sketch.md \
74
+ && echo "OK" || echo "MISSING: 中核エンティティ"
75
+ grep "## 重要なビジネスルール" docs/project/03-domain/01-domain-sketch.md \
76
+ && echo "OK" || echo "MISSING: 重要なビジネスルール"
77
+ grep "| 用語 | 定義 |" docs/project/03-domain/02-ubiquitous-language.md \
78
+ && echo "OK" || echo "MISSING: Terminology table"
79
+ ```
80
+
81
+ advanced(Full Event Storming / a-005 実行時の `01-domain-model.md`):
82
+
55
83
  ```bash
56
84
  grep "Bounded Context:" docs/project/03-domain/01-domain-model.md \
57
85
  && echo "OK" || echo "MISSING: Bounded Context definition"
58
86
  grep "### Aggregates" docs/project/03-domain/01-domain-model.md \
59
87
  && echo "OK" || echo "MISSING: Aggregates section"
60
- grep "| 用語 | 定義 |" docs/project/03-domain/02-ubiquitous-language.md \
61
- && echo "OK" || echo "MISSING: Terminology table"
62
88
  ```
63
89
 
64
90
  ## Git コミットメッセージ
65
91
 
66
92
  ```
67
- docs: ドメインモデルとユビキタス言語の定義
93
+ docs: Domain Sketch とユビキタス言語の定義
68
94
 
69
- - Event Stormingによるドメインモデルの作成
70
- - Bounded Contextごとのユビキタス言語の整備
95
+ - Core Scenarios からの主要概念・境界・中核エンティティの整理
96
+ - ユビキタス言語の整備
71
97
  ```
@@ -0,0 +1,49 @@
1
+ # ユビキタス言語 整備ガイド
2
+
3
+ `02-ubiquitous-language.md` を書くときの原則・記載のポイント・運用方法。テンプレートは用語表を中心に保ち、
4
+ 詳しい考え方が必要なときに本ガイドを参照する。Event Storming 全体の観点は
5
+ [event-storming-guide.md](event-storming-guide.md) を参照。
6
+
7
+ ## ユビキタス言語とは
8
+
9
+ プロジェクト全体で共有される共通言語の定義集。Domain-Driven Design の中核概念で、ビジネス用語と技術用語の橋渡しをする。
10
+
11
+ - **目的**: 開発者とドメインエキスパートの共通理解構築 / 用語の曖昧さ排除 / コード・ドキュメント・会話で一貫した用語使用 / 新メンバーのオンボーディング支援。
12
+ - すべてのコミュニケーション(コード・会話・ドキュメント)で同じ言葉を使う。
13
+ - **Bounded Context ごとに定義される**(同じ用語でも Context が異なれば意味が異なる場合がある)。`[Bounded Context 共通]` セクションを設けて全体共通の用語を記すのも有効。
14
+
15
+ ## 用語の記載ポイント
16
+
17
+ | 列 | 書き方 |
18
+ |---|---|
19
+ | 用語 | ドメインエキスパートが使う正式な用語。単複を明確に(Order / Orders)。日本語は表記ゆれ注意(「ユーザ」か「ユーザー」か統一)。略語は避けフルスペル。 |
20
+ | 定義 | 1〜3 文で明確に。その Context 内での意味を正確に。実装詳細ではなくビジネス的意味を、エキスパートと合意した形で書く。 |
21
+ | 使用例 | コード例(クラス名・メソッド名・変数名)/ ドキュメント例 / 会話例。複数あれば箇条書き。 |
22
+
23
+ - ドメインエキスパートが使う言葉を優先し、技術用語ではなくビジネス用語で記述する。
24
+ - クラス名・メソッド名・変数名にも反映する。
25
+ - 動詞(Order = 注文する, Ship = 出荷する)や状態遷移に関わる語(Pending, Confirmed, Shipped)も含める。
26
+ - 類似用語の違いを明確にする(例: Customer vs User)。
27
+
28
+ ## 禁止用語
29
+
30
+ 使用を避けるべき曖昧・誤解を招く用語を記録する。目的は用語の混乱防止、新メンバーへの注意喚起、コードレビューのチェックリスト。
31
+
32
+ 記載すべき用語: 複数の意味を持つ曖昧な語 / 技術用語とビジネス用語が混在する語 / 過去に混乱を招いた語 / Context により意味が変わる語 / 意味が不明瞭な略語。
33
+
34
+ 各エントリには **なぜ禁止か** と **代替となる明確な用語** を必ず添える。
35
+
36
+ ## Living Document として運用する
37
+
38
+ ドメイン理解が深まるにつれ継続的に更新する。
39
+
40
+ - ドメインモデリング時に初版作成。Event Storming やレビュー時に追加・修正。混乱や不一致が見つかったら即更新。
41
+ - Git で変更履歴を追跡し、チーム全員がアクセスできる場所(Wiki / Confluence 等)に置く。
42
+ - 用語変更はコード全体への影響が大きいため慎重に。変更時はリファクタリングタスクを作成する。
43
+ - 用語の進化を歓迎する(ドメイン理解が深まった証)。図やダイアグラムを併用すると理解が深まる。
44
+
45
+ ## コード・コミュニケーションとの整合
46
+
47
+ - コードレビュー時に本ドキュメントを参照する。可能なら CI/CD で用語の lint チェックを自動化する。
48
+ - ドメインエキスパートとの会話・仕様書でも必ずこの用語を使う。
49
+ - 命名規則(クラス/メソッド/変数)・表記規則(単複・大文字小文字)・言語選択(英/日)のルールを「メモ」に明記する。
@@ -1,40 +1,38 @@
1
1
  ---
2
2
  name: a-005-create-domain-diagram
3
- description: ドメインモデルを Mermaid 図(Context Map・Aggregate 構造)として可視化する。ドメインモデル定義後、関係性を図で確認する際に使用。
3
+ description: (任意 / advanced)Domain Sketch を完全な Event Storming(Bounded Context・Aggregate・Context Map)へ拡張し、Mermaid 図で可視化する。複雑なドメインで Full DDD が必要なときに使用。標準の MVP フローには含まれない。
4
4
  disable-model-invocation: true
5
5
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
6
  ---
7
7
 
8
8
  # CreateDomainDiagram (a-005)
9
9
 
10
+ > ⚠️ これは**任意 / advanced スキル**。標準の MVP フローには含まれない。a-004 の軽量な Domain Sketch(`01-domain-sketch.md`)で十分なドメインでは実行不要。Bounded Context が複数に分かれる、集約境界の検討が必要、Context 間連携が複雑、といった場合にのみ使う。
11
+
10
12
  ## 目的
11
13
 
12
- - ドメインモデルドキュメント(`01-domain-model.md`)を基に、視覚的なダイアグラムを作成する。
13
- - Context Map(Bounded Context 間の関係図)を Mermaid 形式で図示する。
14
- - Bounded Context 内の Aggregate 構造や関係性を図示する(オプション)。
14
+ - 軽量な Domain Sketch(`01-domain-sketch.md`)を入力に、完全な Event Storming 形式のドメインモデル(`01-domain-model.md`)へ拡張する。
15
+ - Bounded Context・Commands・Events・Policies・Aggregates・Read Models・External Systems を体系的に整理する。
16
+ - Context Map(Bounded Context 間の関係図)と Aggregate 構造を Mermaid 形式で図示する。
15
17
 
16
18
  ## 前提
17
19
 
18
- - `docs/project/03-domain/01-domain-model.md` が作成されていること(`/a-004-define-domain-model` 実行済み)。
19
- - ドメインモデルドキュメントに Bounded Context の一覧と関係性が記述されていること。
20
+ - `docs/project/03-domain/01-domain-sketch.md` が作成されていること(`/a-004-define-domain-model` 実行済み)。
21
+ - ドメインが複雑で、軽量な Domain Sketch だけでは設計判断が難しいこと(そうでなければ本スキルは不要)。
20
22
 
21
23
  ## 手順
22
24
 
23
25
  ### 1. ドキュメントの確認
24
26
 
25
27
  ```bash
26
- ls -la docs/project/03-domain/01-domain-model.md 2>/dev/null || echo "ファイルが存在しません"
28
+ ls -la docs/project/03-domain/01-domain-sketch.md 2>/dev/null || echo "Domain Sketch が存在しません"
27
29
  ```
28
30
 
29
- 未作成の場合、`/a-004-define-domain-model` の実行を促す。
30
-
31
- ### 2. Context Map の情報収集と提案
31
+ 未作成の場合、`/a-004-define-domain-model` の実行を促す。`01-domain-sketch.md` を読み込み、主要概念・境界・中核エンティティを把握する。
32
32
 
33
- `docs/project/03-domain/01-domain-model.md` から以下を抽出し、構成案を提示する:
33
+ ### 2. Full DDD テンプレートの準備
34
34
 
35
- - Bounded Context のリスト
36
- - 戦略的分類(Core / Supporting / Generic)
37
- - Context 間の関係性と通信方法
35
+ このスキルの配置ディレクトリ(`skills/a-005-create-domain-diagram/`)を起点に、相対パス `../../templates/project/03-domain/01-domain-model.md` を Read で読み込み、その内容を `docs/project/03-domain/01-domain-model.md` へ Write する(冪等。既存ならスキップして報告する)。Domain Sketch の内容を起点に、Bounded Context・Commands・Events・Policies・Aggregates・Read Models・External Systems を埋める。
38
36
 
39
37
  ### 3. Context Map 図の作成
40
38
 
@@ -70,14 +68,14 @@ grep "\`\`\`mermaid" docs/project/03-domain/01-domain-model.md \
70
68
 
71
69
  ```bash
72
70
  git add docs/project/03-domain/01-domain-model.md
73
- git commit -m "docs: ドメインモデル図(Context Map)の追加"
71
+ git commit -m "docs: Full DDD ドメインモデル・Context Map 図の作成"
74
72
  ```
75
73
 
76
74
  詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加任意) を参照。
77
75
 
78
76
  ## 完了条件
79
77
 
80
- - `docs/project/03-domain/01-domain-model.md` Context Map 図が追加されている。
78
+ - `docs/project/03-domain/01-domain-model.md` Full Event Storming 形式で作成され、Context Map 図が追加されている。
81
79
  - Bounded Context 間の関係性が正しく表現されている。
82
80
  - 戦略的分類が視覚的に区別されている。
83
81
  - オプションの詳細図(Aggregate 図、シーケンス図)が必要に応じて追加されている。
@@ -85,10 +83,13 @@ git commit -m "docs: ドメインモデル図(Context Map)の追加"
85
83
 
86
84
  ## エスカレーション
87
85
 
88
- - **ドメインモデルが不完全で図を作成できない**: 「`/a-004-define-domain-model` に戻って定義を補完しましょう。」
86
+ - **Domain Sketch が不完全で拡張できない**: 「`/a-004-define-domain-model` に戻って Domain Sketch を補完しましょう。」
87
+ - **そもそも Full DDD が過剰**: 「MVP 段階では Domain Sketch で十分なことが多いです。本スキルは複雑ドメインに限って使いましょう。」
89
88
  - **図が複雑すぎて読みにくい**: 「主要な関係のみに絞るか、図を分割することを検討しましょう。」
90
89
 
91
90
  ## 参考
92
91
 
93
92
  - [examples/mermaid-templates.md](examples/mermaid-templates.md) — Context Map / Aggregate / シーケンス図の Mermaid テンプレート、スタイル定義、エッジラベル例
94
93
  - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー質問、Git 追加例
94
+ - [../a-004-define-domain-model/reference/event-storming-guide.md](../a-004-define-domain-model/reference/event-storming-guide.md) — Actors / Commands / Events / Policies / Aggregates / Context Map パターンなど各要素の意味・付箋の色・CQRS / ACL の解説
95
+ - [../../templates/project/03-domain/01-domain-model.md](../../templates/project/03-domain/01-domain-model.md) — Full Event Storming(advanced)テンプレート
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: a-006-review-requirements-domain
3
- description: 要件定義・シナリオ・ドメインモデル間の一貫性を検証し、不整合や抜け漏れを検出する。ドメイン設計完了後、技術選定フェーズへ移る前の検査として使用。
3
+ description: 要件定義・シナリオ・ドメインモデル間の一貫性を検証し、さらに MVP 正当化(過剰作り込み検査)と Go / Go with caveats / No-Go の PM Gate 判定を行う。ステークホルダー向け要約(STAKEHOLDER-SUMMARY.md)と AI 実装用コンテキスト(AI_CONTEXT.md)を生成する。ドメイン設計完了後、技術選定・実装フェーズへ移る前の関門として使用。
4
4
  disable-model-invocation: true
5
5
  context: fork
6
6
  allowed-tools: Read, Grep, Glob, Write, Bash
@@ -13,15 +13,18 @@ allowed-tools: Read, Grep, Glob, Write, Bash
13
13
  - ここまでに作成されたすべてのドキュメント間の一貫性を体系的にチェックする。
14
14
  - ドキュメント間の不整合、漏れ、矛盾を検出し、修正提案を提供する。
15
15
  - ユビキタス言語の遵守状況を確認し、用語の一貫性を保証する。
16
+ - MVP として過剰でないか(YAGNI / 過剰作り込み)を検査し、各 Must 機能の正当性を確認する。
17
+ - **PM Gate** として実装着手の Go / Go with caveats / No-Go を判定する。
18
+ - ステークホルダー合意用の要約(`STAKEHOLDER-SUMMARY.md`)と AI 実装用の圧縮コンテキスト(`AI_CONTEXT.md`)を生成する。
16
19
  - レビュー結果レポートを作成し、修正すべき項目を優先度付きでリストアップする。
17
20
 
18
21
  ## 前提
19
22
 
20
23
  以下のドキュメントが作成されていること:
21
24
 
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
+ - `docs/project/01-requirements/` の各ドキュメント(`01-product-brief.md`, `02-mvp-scope.md`, `03-parking-lot.md`, `05-user-stories.md`、existing モードは加えて `06-features-implemented.md`)
26
+ - `docs/project/02-behavior/01-core-scenarios.md`
27
+ - `docs/project/03-domain/01-domain-sketch.md`, `02-ubiquitous-language.md`(Full DDD を採用した場合は加えて `01-domain-model.md`)
25
28
 
26
29
  ## 手順
27
30
 
@@ -31,46 +34,78 @@ allowed-tools: Read, Grep, Glob, Write, Bash
31
34
  ls -l docs/project/01-requirements/*.md docs/project/02-behavior/*.md docs/project/03-domain/*.md
32
35
  ```
33
36
 
34
- 不足があれば、対応する `/a-002`, `/a-003`, `/a-004` スキルの実行を促す。
37
+ 不足があれば、対応する `/a-002`, `/a-002a`, `/a-002b`, `/a-003`, `/a-004` スキルの実行を促す。
35
38
 
36
39
  ### 2. 一貫性チェックの実行
37
40
 
38
- 以下の 6 観点を自動検索(grep 等)と手動確認で検証する。詳細な観点・コマンドは [reference/consistency-checks.md](reference/consistency-checks.md) を参照。
41
+ 以下の 7 観点を自動検索(grep 等)と手動確認で検証する。詳細な観点・コマンドは [reference/consistency-checks.md](reference/consistency-checks.md) を参照。
39
42
 
40
43
  - **2.1 ユーザーストーリー ↔ シナリオ**: US-XXX に対応する SC-XXX の存在、価値と結果の整合
41
- - **2.2 実装済み/予定機能 ↔ シナリオ**: リグレッション用/優先度 High のカバレッジ
42
- - **2.3 非機能要件ドメインモデル**: 性能要件(Read Model)、セキュリティ(Policy/Guard)
43
- - **2.4 シナリオドメインモデル**: Command / Event / Actor の対応
44
+ - **2.2 MVP スコープ/実装済み機能 ↔ シナリオ**: Must 機能/リグレッション用のカバレッジ
45
+ - **2.3 クリティカル制約スコープ/ドメイン**: Product Brief のクリティカル制約(法務・セキュリティ・期限・予算等)が MVP スコープ判断・ドメインモデルに反映されているか(初期フェーズでは定量 NFR ではなく制約を確認。詳細 NFR は a-014 の責務)
46
+ - **2.4 Core Scenario Domain Sketch**: アクター・中核エンティティ・重要ビジネスルールの対応(Full DDD 採用時は Command / Event / Actor の対応も)
44
47
  - **2.5 ユビキタス言語**: 主要要素の登録、禁止用語の検出
45
- - **2.6 目的との整合性**: システム目的と Core Domain の一致
48
+ - **2.6 目的との整合性**: Product Brief の価値提案と Domain Sketch の中核エンティティ(Full DDD 採用時は Core Domain)の一致、および**目的 ↔ 成功指標**の整合・成功指標の計測可能性
49
+ - **2.7 MVP 正当化 / 過剰作り込み(YAGNI)**: 各 Must が課題/ペルソナ/指標/仮説に trace するか、Out of Scope と矛盾しないか、安い代替手段で済むものが Must になっていないか
46
50
 
47
- ### 3. レビュー結果レポートの作成
51
+ ### 3. PM Gate 判定(Go / Go with caveats / No-Go)
48
52
 
49
- 検出された問題(Error / Warning / OK)をまとめ、`docs/project/REVIEW-REPORT-YYYYMMDDHHMMSS.md` を作成する。フォーマットは [examples/review-report-template.md](examples/review-report-template.md#レポートフォーマット) を参照。
53
+ 一貫性チェック(特に 2.7 MVP 正当化)の結果をもとに、実装着手の可否を判定する。次のチェックリストで評価する:
54
+
55
+ - [ ] 検証する仮説が 1〜3 個に絞れている
56
+ - [ ] すべての Must 機能が 課題 / ペルソナ / 成功指標 / 検証仮説 のいずれかに紐づいている
57
+ - [ ] Not Now / Won't が明示され、理由が書かれている
58
+ - [ ] 手作業・既存ツール・外部サービスで代替できるものを Must にしていない
59
+ - [ ] ステークホルダー・決裁者・関心事が明確である
60
+ - [ ] クリティカル制約が MVP 判断に反映されている
61
+ - [ ] 未決事項が実装開始を妨げないレベルまで減っている
62
+
63
+ 判定:
64
+
65
+ - **Go**: 上記をおおむね満たし、重大な Error が無い。
66
+ - **Go with caveats**: 着手可だが条件あり(caveat を明記する)。
67
+ - **No-Go**: 重大な Error / 過剰作り込み / 未決があり、実装前に解消が必要。
68
+
69
+ ### 4. レビュー結果レポートの作成
70
+
71
+ 検出された問題(Error / Warning / OK)と PM Gate 判定をまとめ、`docs/project/REVIEW-REPORT-YYYYMMDDHHMMSS.md` を作成する。フォーマットは [examples/review-report-template.md](examples/review-report-template.md#レポートフォーマット) を参照。
50
72
 
51
73
  必須セクション:
52
74
 
53
75
  - サマリー(OK / Warning / Error の件数)
54
- - 詳細(上記 6 観点ごとの結果)
76
+ - 詳細(上記 7 観点ごとの結果。2.7 では**過剰作り込み候補**を明示)
77
+ - PM Gate 判定(Go / Go with caveats / No-Go と根拠)
55
78
  - 推奨アクション(修正すべきタスクとスキル参照)
56
79
 
57
- ### 4. 結果の報告と修正提案
80
+ ### 5. ステークホルダー要約 / AI コンテキストの生成
81
+
82
+ このスキルの配置ディレクトリ(`skills/a-006-review-requirements-domain/`)を起点に、次の 2 テンプレートを Read→Write で生成する。出力先が既に存在する場合は確認の上、最新内容で更新する。
83
+
84
+ - `../../templates/project/STAKEHOLDER-SUMMARY.md` → `docs/project/STAKEHOLDER-SUMMARY.md`
85
+ - `../../templates/project/AI_CONTEXT.md` → `docs/project/AI_CONTEXT.md`
86
+
87
+ 上流ドキュメント(`01-product-brief.md` / `02-mvp-scope.md` / `02-behavior/01-core-scenarios.md` / `03-domain/`)を**要約・参照**して各テンプレートを埋める(single source of truth を複製しない)。`AI_CONTEXT.md` には **MVP must NOT build**(Won't / Out of Scope)を必ず明記する。`STAKEHOLDER-SUMMARY.md` には手順3の PM Gate 判定を転記する。
88
+
89
+ ### 6. 結果の報告と修正提案
58
90
 
59
- - レポート内容を要約してユーザーに伝える。
60
- - 重大なエラー(Error)がある場合は優先修正を提案。
91
+ - レポートと PM Gate 判定を要約してユーザーに伝える。
92
+ - 重大なエラー(Error)や No-Go がある場合は優先修正を提案。
93
+ - Go / Go with caveats の場合は「`docs/project/AI_CONTEXT.md` を実装エージェント(Vibe coding / AI 実装)へ渡してください」と案内する。
61
94
  - 「修正作業を開始しますか?それともレポートを Git に保存して終了しますか?」
62
95
 
63
- ### 5. Git への追加(任意)
96
+ ### 7. Git への追加(任意)
64
97
 
65
98
  ```bash
66
- git add docs/project/REVIEW-REPORT-*.md
67
- git commit -m "docs: 要件・ドメイン整合性レビューレポートの作成"
99
+ git add docs/project/REVIEW-REPORT-*.md docs/project/STAKEHOLDER-SUMMARY.md docs/project/AI_CONTEXT.md
100
+ git commit -m "docs: PM Gate レビュー(要約・AI コンテキスト含む)の作成"
68
101
  ```
69
102
 
70
103
  ## 完了条件
71
104
 
72
- - `docs/project/REVIEW-REPORT-YYYYMMDDHHMMSS.md` が作成されている。
105
+ - `docs/project/REVIEW-REPORT-YYYYMMDDHHMMSS.md` が作成され、7 観点の結果と PM Gate 判定(Go / Go with caveats / No-Go)が記録されている。
73
106
  - 全ドキュメント間の整合性がチェックされ、結果(OK/Warning/Error)が記録されている。
107
+ - 各 Must 機能の MVP 正当化が検査され、trace しない機能が**過剰作り込み候補**としてフラグされている。
108
+ - `docs/project/STAKEHOLDER-SUMMARY.md` と `docs/project/AI_CONTEXT.md` が生成され、`AI_CONTEXT.md` に「作らないもの(must NOT build)」が明記されている。
74
109
  - 具体的な修正アクションが提案されている。
75
110
 
76
111
  ## エスカレーション
@@ -81,5 +116,7 @@ git commit -m "docs: 要件・ドメイン整合性レビューレポートの
81
116
 
82
117
  ## 参考
83
118
 
84
- - [examples/review-report-template.md](examples/review-report-template.md) — レビュー結果レポートのフォーマット例と重大度記号
85
- - [reference/consistency-checks.md](reference/consistency-checks.md) — 6 観点の詳細なチェック項目、grep コマンド例、エスカレーション基準
119
+ - [examples/review-report-template.md](examples/review-report-template.md) — レビュー結果レポートのフォーマット例、重大度記号、PM Gate 判定の使い方
120
+ - [reference/consistency-checks.md](reference/consistency-checks.md) — 7 観点(MVP 正当化/YAGNI 含む)の詳細なチェック項目、grep コマンド例、エスカレーション基準
121
+ - [../../templates/project/STAKEHOLDER-SUMMARY.md](../../templates/project/STAKEHOLDER-SUMMARY.md) — ステークホルダー向け統合1枚もののテンプレート
122
+ - [../../templates/project/AI_CONTEXT.md](../../templates/project/AI_CONTEXT.md) — AI 実装用の圧縮コンテキストのテンプレート
@@ -1,6 +1,6 @@
1
1
  # レビュー結果レポートテンプレート
2
2
 
3
- SKILL.md 手順3 で作成する `docs/project/REVIEW-REPORT-*.md` のフォーマット例。
3
+ SKILL.md 手順4 で作成する `docs/project/REVIEW-REPORT-*.md` のフォーマット例。
4
4
 
5
5
  ## レポートフォーマット
6
6
 
@@ -22,10 +22,10 @@ SKILL.md 手順3 で作成する `docs/project/REVIEW-REPORT-*.md` のフォー
22
22
  - **Error**: US-005 に対応するシナリオが見つかりません。
23
23
  - OK: 優先度 High のストーリーはすべてカバーされています。
24
24
 
25
- ### 2. 機能要件・非機能要件
25
+ ### 2. MVP スコープ・クリティカル制約
26
26
 
27
27
  - **Warning**: 実装済み機能「決済」のシナリオが不足しています。
28
- - OK: パフォーマンス要件に対応する Read Model が定義されています。
28
+ - OK: Product Brief のクリティカル制約「社内 SSO 必須」が MVP スコープ・ドメインに反映されています。
29
29
 
30
30
  ### 3. シナリオ ↔ ドメインモデル
31
31
 
@@ -34,13 +34,25 @@ SKILL.md 手順3 で作成する `docs/project/REVIEW-REPORT-*.md` のフォー
34
34
  ### 4. ユビキタス言語
35
35
 
36
36
  - **Error**: 用語「ShippingAddress」がユビキタス言語一覧にありません。
37
- - **Warning**: 禁止用語「User Data」が `01-domain-model.md` で使用されています。
37
+ - **Warning**: 禁止用語「User Data」が `01-domain-sketch.md` で使用されています。
38
+
39
+ ### 5. MVP 正当化 / 過剰作り込み(YAGNI)
40
+
41
+ - **過剰作り込み候補**: Must 機能「実績バッジ」が課題・ペルソナ・成功指標のいずれにも trace しません。Not Now / Won't への変更を検討してください。
42
+ - OK: その他の Must はすべて検証仮説・成功指標に紐づいています。
43
+ - OK: Out of Scope(Won't)と矛盾する実装記述はありません。
44
+
45
+ ## PM Gate 判定
46
+
47
+ **判定**: Go with caveats
48
+
49
+ **根拠**: 整合性は良好。ただし Must「実績バッジ」が正当化されていないため、スコープから外すことを条件に実装着手可。
38
50
 
39
51
  ## 推奨アクション
40
52
 
41
- 1. `/a-003-create-scenarios` US-005 のシナリオを追加する。
42
- 2. `/a-004-define-domain-model` で「在庫を引き当てる」コマンドを定義する。
43
- 3. `01-domain-model.md` の「User Data」を「User Profile」に修正する。
53
+ 1. `02-mvp-scope.md` の「実績バッジ」を Won't に変更する(過剰作り込み)。
54
+ 2. `/a-003-create-scenarios` で US-005 のシナリオを追加する。
55
+ 3. `01-domain-sketch.md` の「User Data」を「User Profile」に修正する。
44
56
  ```
45
57
 
46
58
  ## 重大度記号の使い方
@@ -51,6 +63,14 @@ SKILL.md 手順3 で作成する `docs/project/REVIEW-REPORT-*.md` のフォー
51
63
  | Warning | 軽微な不整合 | 計画的に修正 |
52
64
  | Error | 重大な不整合 | 実装前に必ず修正 |
53
65
 
66
+ ## PM Gate 判定の使い方
67
+
68
+ | 判定 | 意味 | 次のアクション |
69
+ |:--|:--|:--|
70
+ | Go | 実装着手してよい | `AI_CONTEXT.md` を実装エージェントへ渡す |
71
+ | Go with caveats | 条件付きで着手可 | caveat を明記し、合意の上で着手 |
72
+ | No-Go | 重大課題あり | 実装前に該当ドキュメントを修正し再レビュー |
73
+
54
74
  ## コミットメッセージ例
55
75
 
56
76
  ```text