yodogawa 2.0.0 → 2.1.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 (75) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +60 -22
  3. package/bin/cli.js +3 -7
  4. package/package.json +1 -1
  5. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  6. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
  7. package/skills/a-002-initialize-project/SKILL.md +124 -289
  8. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  9. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  10. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  11. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  12. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  13. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  14. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  15. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  16. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  17. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  18. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  19. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  20. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  21. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  22. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  23. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  24. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  25. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  26. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  27. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  28. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  29. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  30. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  31. package/skills/a-010-define-design-system/SKILL.md +134 -212
  32. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  33. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  34. package/skills/a-011-define-data-model/SKILL.md +121 -134
  35. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  36. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  37. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  38. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  39. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  40. package/skills/a-013-define-architecture/SKILL.md +101 -128
  41. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  42. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  43. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  44. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  45. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  46. package/skills/a-015-review-design/SKILL.md +88 -140
  47. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  48. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  49. package/skills/b-001-create-task-directory/SKILL.md +68 -78
  50. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  51. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  52. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  53. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  54. package/skills/b-003-create-task-research/SKILL.md +130 -454
  55. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  56. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  57. package/skills/b-004-create-task-implementation/SKILL.md +97 -100
  58. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  59. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  60. package/skills/b-005-review-task/SKILL.md +117 -324
  61. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  62. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  63. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  64. package/skills/c-001-implement-task/SKILL.md +186 -521
  65. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  66. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  67. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  68. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  69. package/skills/c-002-update-documentation/SKILL.md +159 -853
  70. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  71. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  72. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  73. package/templates/tasks/task-template/a-definition.md +1 -1
  74. package/templates/tasks/task-template/b-research.md +1 -1
  75. package/templates/tasks/task-template/c-implementation.md +2 -2
@@ -1,134 +1,121 @@
1
- ---
2
- name: a-011-define-data-model
3
- description: ドメインモデルと画面設計からデータベース構造(ERD)を定義し、エンティティ、属性、リレーションシップ、制約を明確化するワークフロー
4
- ---
5
-
6
- # DefineDataModel (a-011)
7
-
8
- ## 目的
9
-
10
- - ドメインモデル(Aggregates)と画面設計を基に、データベース構造を定義する。
11
- - エンティティ(テーブル)、属性(カラム)、リレーションシップを明確化する。
12
- - データ型、制約(NOT NULL、UNIQUE、CHECK)、インデックス戦略を決定する。
13
- - Mermaid ERD(Entity Relationship Diagram)で視覚化し、開発者間の認識を統一する。
14
-
15
- ## 前提
16
-
17
- - `docs/project/domain/01-domain-model.md` が作成されていること。
18
- - `docs/project/design/01-tech-stack.md` が作成されていること(DB選定済み)。
19
- - `docs/project/design/03-screen-design.md` が作成されていること。
20
- - `docs/project/design/` ディレクトリが存在すること。
21
-
22
- ## 手順
23
-
24
- ### 1. ドキュメントと前提条件の確認
25
-
26
- - 必要なドキュメントを読み込む:
27
- - `docs/project/domain/01-domain-model.md`
28
- - `docs/project/design/01-tech-stack.md`
29
- - `docs/project/design/03-screen-design.md`
30
-
31
- - ドキュメントが不足している場合、対応するワークフローの実行を促す。
32
-
33
- ### 2. テンプレートの準備
34
-
35
- - テンプレートをコピーして作業用ファイルを作成する:
36
-
37
- ```bash
38
- SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
39
- cp "$SCRIPT_DIR/templates/project/04-design/05-data-model.md" "docs/project/design/05-data-model.md"
40
- ```
41
-
42
- ### 3. エンティティの抽出と提案
43
-
44
- - **ドメインモデルから**: Aggregate Rootおよび内部エンティティを抽出。
45
- - **画面設計から**: 表示・入力項目から必要なデータ構造(履歴、設定、ログ等)を抽出。
46
- - **エンティティ一覧案を提示**:
47
- - 「以下のエンティティを定義します:」
48
- - 「[エンティティ名] (対応するAggregate: [名前])」
49
-
50
- ### 4. 詳細定義(インタビュー)
51
-
52
- ユーザーからのフィードバックを受け、各エンティティの詳細を定義する。
53
-
54
- #### 4.1 基本定義
55
-
56
- - テーブル名(物理名)、論理名、説明
57
- - 主キー(ID)の戦略(Auto Increment / UUID / CUID)
58
-
59
- #### 4.2 属性(カラム)
60
-
61
- - カラム名、データ型(DB製品に合わせて具体的に)
62
- - 制約(NOT NULL, UNIQUE, DEFAULT)
63
- - 監査カラム(created_at, updated_at)の有無
64
-
65
- #### 4.3 リレーションシップ
66
-
67
- - 関連するエンティティ(1:1, 1:N, N:M)
68
- - 外部キー制約(ON DELETE CASCADE / SET NULL / RESTRICT
69
-
70
- ### 5. ERDの作成と正規化
71
-
72
- - 抽出したエンティティとリレーションシップを Mermaid ERD 形式で記述する。
73
- - 正規化(1NF-3NF)を確認し、意図的な非正規化があれば理由を記録する。
74
- - インデックス戦略(検索頻度の高いカラム、ユニーク制約)を定義する。
75
-
76
- ### 6. ドキュメント作成
77
-
78
- - `docs/project/design/05-data-model.md` に決定事項を記入する。
79
- - **必須項目**:
80
- - エンティティ一覧
81
- - リレーションシップ定義
82
- - ERD (Mermaid)
83
-
84
- ### 7. 完了条件と構造の確認
85
-
86
- - 以下の完了条件を満たしているか、コマンドとチェックリストで確認してください:
87
- 1. **構造確認**:
88
-
89
- ```bash
90
- # エンティティ一覧の確認
91
- grep "## エンティティ一覧" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: Entities"
92
- # ERDの確認
93
- grep "\`\`\`mermaid" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: ERD"
94
- # リレーションシップ定義の確認
95
- grep "## リレーションシップ" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: Relationships"
96
- ```
97
-
98
- 2. **チェックリスト**:
99
- - [ ] `docs/project/design/05-data-model.md` が作成されている
100
- - [ ] 全エンティティの物理名・論理名が定義されている
101
- - [ ] ERDが正しくレンダリングされる
102
-
103
- ### 8. Git への追加(オプション)
104
-
105
- - ユーザーに確認:「作成したデータモデルドキュメントを Git に追加しますか?」
106
- - 「はい」の場合、以下を実行:
107
-
108
- ```bash
109
- git add docs/project/design/05-data-model.md
110
- git status
111
- ```
112
-
113
- - 推奨コミットメッセージ:
114
-
115
- ```
116
- docs: データモデル(ERD)の定義
117
-
118
- - エンティティ、属性、リレーションシップを定義
119
- - MermaidによるER図を追加
120
- ```
121
-
122
- ## 完了条件
123
-
124
- - `docs/project/design/05-data-model.md` が作成されている。
125
- - データベーススキーマ(テーブル、カラム、型、制約)が定義されている。
126
- - エンティティ間の関係性が可視化(ERD)されている。
127
- - ユーザーが内容を承認している。
128
-
129
- ## エスカレーション
130
-
131
- - ドメインモデルとの不整合がある場合:
132
- - 「ドメインモデルのAggregate構造とデータモデルが乖離しています。ORMのマッピング戦略を確認するか、ドメインモデルを見直してください。」
133
- - パフォーマンス懸念がある場合:
134
- - 「正規化によりJOINが多発する可能性があります。Read Model(参照用テーブル)の導入や、意図的な非正規化を検討しませんか?」
1
+ ---
2
+ name: a-011-define-data-model
3
+ description: ドメインモデルと画面設計からデータベース構造(ERD・エンティティ・属性・リレーションシップ・制約)を定義する。画面設計後、永続化層を設計する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # DefineDataModel (a-011)
9
+
10
+ ## 目的
11
+
12
+ - ドメインモデル(Aggregates)と画面設計を基に、データベース構造を定義する。
13
+ - エンティティ(テーブル)、属性(カラム)、リレーションシップを明確化する。
14
+ - データ型、制約(NOT NULL、UNIQUE、CHECK)、インデックス戦略を決定する。
15
+ - Mermaid ERD(Entity Relationship Diagram)で視覚化し、開発者間の認識を統一する。
16
+
17
+ ## 前提
18
+
19
+ - `docs/project/domain/01-domain-model.md` が作成されていること。
20
+ - `docs/project/design/01-tech-stack.md` が作成されていること(DB 選定済み)。
21
+ - `docs/project/design/03-screen-design.md` が作成されていること。
22
+ - `docs/project/design/` ディレクトリが存在すること。
23
+
24
+ ## 手順
25
+
26
+ ### 1. ドキュメントと前提条件の確認
27
+
28
+ 以下を読み込む:
29
+
30
+ - `docs/project/domain/01-domain-model.md`
31
+ - `docs/project/design/01-tech-stack.md`
32
+ - `docs/project/design/03-screen-design.md`
33
+
34
+ 不足があれば対応スキルの実行を促す。
35
+
36
+ ### 2. テンプレートの準備
37
+
38
+ ```bash
39
+ SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
40
+ cp "$SCRIPT_DIR/templates/project/04-design/05-data-model.md" "docs/project/design/05-data-model.md"
41
+ ```
42
+
43
+ ### 3. エンティティの抽出と提案
44
+
45
+ - **ドメインモデルから**: Aggregate Root および内部エンティティを抽出
46
+ - **画面設計から**: 表示・入力項目から必要なデータ構造(履歴、設定、ログ等)を抽出
47
+ - 「[エンティティ名] (対応 Aggregate: [名前])」形式で一覧化
48
+
49
+ エンティティ一覧の記述例は [examples/erd-templates.md](examples/erd-templates.md#エンティティ一覧テーブル) を参照。
50
+
51
+ ### 4. 詳細定義(インタビュー)
52
+
53
+ #### 4.1 基本定義
54
+
55
+ - テーブル名(物理名)、論理名、説明
56
+ - 主キー戦略(Auto Increment / UUID / CUID)— 選択ガイドは [examples/erd-templates.md](examples/erd-templates.md#主キー戦略) を参照
57
+
58
+ #### 4.2 属性(カラム)
59
+
60
+ - カラム名、データ型(DB 製品に合わせて具体化)
61
+ - 制約(NOT NULL, UNIQUE, DEFAULT, CHECK)
62
+ - 監査カラム(created_at, updated_at)の有無
63
+
64
+ カラム定義の例は [examples/erd-templates.md](examples/erd-templates.md#カラム定義テンプレート) を参照。
65
+
66
+ #### 4.3 リレーションシップ
67
+
68
+ - 関連(1:1 / 1:N / N:M
69
+ - 外部キー制約(ON DELETE CASCADE / SET NULL / RESTRICT)— 選択基準は [examples/erd-templates.md](examples/erd-templates.md#外部キー削除動作の選択) を参照
70
+
71
+ ### 5. ERD の作成と正規化
72
+
73
+ - Mermaid ERD 形式で記述(テンプレートは [examples/erd-templates.md](examples/erd-templates.md#mermaid-erd-記述例) を参照)
74
+ - 正規化(1NF-3NF)を確認。意図的な非正規化があれば理由を記録
75
+ - インデックス戦略(検索頻度、UNIQUE、複合インデックス)を定義
76
+
77
+ 正規化の目安は [reference/structure-check.md](reference/structure-check.md#正規化レベルの目安) を参照。
78
+
79
+ ### 6. ドキュメント作成
80
+
81
+ `docs/project/design/05-data-model.md` に以下を記入する:
82
+
83
+ - エンティティ一覧
84
+ - リレーションシップ定義
85
+ - ERD(Mermaid)
86
+ - インデックス戦略・非正規化の記録
87
+
88
+ ### 7. 構造チェック
89
+
90
+ ```bash
91
+ grep "## エンティティ一覧" docs/project/design/05-data-model.md \
92
+ && grep "\`\`\`mermaid" docs/project/design/05-data-model.md \
93
+ && grep "## リレーションシップ" docs/project/design/05-data-model.md \
94
+ && echo "OK" || echo "MISSING SECTION"
95
+ ```
96
+
97
+ 詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
98
+
99
+ ### 8. Git への追加(任意)
100
+
101
+ ```bash
102
+ git add docs/project/design/05-data-model.md
103
+ git commit -m "docs: データモデル(ERD)の定義"
104
+ ```
105
+
106
+ ## 完了条件
107
+
108
+ - `docs/project/design/05-data-model.md` が作成されている。
109
+ - データベーススキーマ(テーブル、カラム、型、制約)が定義されている。
110
+ - エンティティ間の関係性が可視化(ERD)されている。
111
+ - ユーザーが内容を承認している。
112
+
113
+ ## エスカレーション
114
+
115
+ - **ドメインモデルとの不整合**: 「Aggregate 構造とデータモデルが乖離しています。ORM のマッピング戦略を確認するか、ドメインモデルを見直してください。」
116
+ - **パフォーマンス懸念**: 「正規化により JOIN が多発する可能性があります。Read Model や意図的な非正規化を検討しませんか?」
117
+
118
+ ## 参考
119
+
120
+ - [examples/erd-templates.md](examples/erd-templates.md) — エンティティ一覧、カラム定義、主キー戦略、外部キー動作、Mermaid ERD、インデックス・非正規化の例
121
+ - [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、正規化レベル、レビュー質問
@@ -0,0 +1,108 @@
1
+ # エンティティ定義と ERD テンプレート
2
+
3
+ SKILL.md 手順3〜5 で使用するエンティティ記述・リレーション・ERD のサンプル。
4
+
5
+ ## エンティティ一覧テーブル
6
+
7
+ | 物理名 | 論理名 | 対応 Aggregate | 説明 |
8
+ |:--|:--|:--|:--|
9
+ | users | ユーザー | User | 認証・プロフィール |
10
+ | orders | 注文 | Order | 注文ヘッダ |
11
+ | order_items | 注文明細 | Order (child) | 注文の商品行 |
12
+ | products | 商品 | Product | 商品マスタ |
13
+
14
+ ## カラム定義テンプレート
15
+
16
+ ### users テーブル
17
+
18
+ | カラム | 型 | 制約 | 説明 |
19
+ |:--|:--|:--|:--|
20
+ | id | UUID | PK | 主キー |
21
+ | email | VARCHAR(255) | NOT NULL, UNIQUE | ログイン ID |
22
+ | password_hash | VARCHAR(255) | NOT NULL | bcrypt ハッシュ |
23
+ | status | VARCHAR(20) | NOT NULL, DEFAULT 'active' | active / suspended |
24
+ | created_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() | 作成日時 |
25
+ | updated_at | TIMESTAMPTZ | NOT NULL, DEFAULT NOW() | 更新日時 |
26
+
27
+ ### 主キー戦略
28
+
29
+ | 戦略 | 適合シーン |
30
+ |:--|:--|
31
+ | Auto Increment | 単一 DB、連番の可読性重視 |
32
+ | UUID v4 | 分散環境、推測困難性 |
33
+ | UUID v7 / ULID | ソート可能な ID が必要 |
34
+ | CUID | 短く衝突しにくい ID |
35
+
36
+ ## リレーションシップ定義例
37
+
38
+ - `users 1 : N orders` (FK: orders.user_id → users.id)
39
+ - `orders 1 : N order_items` (FK: order_items.order_id → orders.id, ON DELETE CASCADE)
40
+ - `products 1 : N order_items` (FK: order_items.product_id → products.id, ON DELETE RESTRICT)
41
+
42
+ ### 外部キー削除動作の選択
43
+
44
+ - `CASCADE`: 親削除時に子も削除(注文明細など)
45
+ - `SET NULL`: 親削除時に NULL(オプション参照)
46
+ - `RESTRICT`: 子が存在すれば親削除不可(マスタデータ)
47
+
48
+ ## Mermaid ERD 記述例
49
+
50
+ ```mermaid
51
+ erDiagram
52
+ users ||--o{ orders : places
53
+ orders ||--|{ order_items : contains
54
+ products ||--o{ order_items : referenced_by
55
+
56
+ users {
57
+ uuid id PK
58
+ varchar email UK
59
+ varchar password_hash
60
+ varchar status
61
+ timestamptz created_at
62
+ timestamptz updated_at
63
+ }
64
+
65
+ orders {
66
+ uuid id PK
67
+ uuid user_id FK
68
+ varchar status
69
+ numeric total_amount
70
+ timestamptz created_at
71
+ }
72
+
73
+ order_items {
74
+ uuid id PK
75
+ uuid order_id FK
76
+ uuid product_id FK
77
+ int quantity
78
+ numeric unit_price
79
+ }
80
+
81
+ products {
82
+ uuid id PK
83
+ varchar name
84
+ numeric price
85
+ int stock
86
+ }
87
+ ```
88
+
89
+ ## インデックス戦略の例
90
+
91
+ - 検索頻度の高いカラム(`orders.user_id`, `orders.status`)に単純インデックス
92
+ - 一意性保証: `users.email` に UNIQUE
93
+ - 複合インデックス: `(user_id, created_at DESC)` で注文履歴の高速取得
94
+ - 全文検索用途は別途 pg_trgm / GIN 等を検討
95
+
96
+ ## 意図的な非正規化の記録例
97
+
98
+ - `orders.total_amount`: 集計クエリの高速化のため、order_items の合計を冗長保持
99
+ - 更新時のトリガ or アプリ側計算を明記
100
+
101
+ ## コミットメッセージ例
102
+
103
+ ```text
104
+ docs: データモデル(ERD)の定義
105
+
106
+ - エンティティ、属性、リレーションシップを定義
107
+ - Mermaid による ER 図を追加
108
+ ```
@@ -0,0 +1,56 @@
1
+ # 構造チェックとレビュー観点
2
+
3
+ SKILL.md 手順7〜8 で使う確認コマンドとレビュー観点。
4
+
5
+ ## セクション存在確認
6
+
7
+ ```bash
8
+ # エンティティ一覧の確認
9
+ grep "## エンティティ一覧" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: Entities"
10
+ # ERD の確認
11
+ grep "\`\`\`mermaid" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: ERD"
12
+ # リレーションシップ定義の確認
13
+ grep "## リレーションシップ" docs/project/design/05-data-model.md && echo "OK" || echo "MISSING: Relationships"
14
+ ```
15
+
16
+ ## チェックリスト
17
+
18
+ - [ ] `docs/project/design/05-data-model.md` が作成されている
19
+ - [ ] 全エンティティの物理名・論理名が定義されている
20
+ - [ ] 各カラムの型・制約・デフォルト値が定義されている
21
+ - [ ] 主キー戦略(Auto Increment / UUID / CUID)が明記されている
22
+ - [ ] 監査カラム(created_at, updated_at)の有無が決定している
23
+ - [ ] リレーション(1:1, 1:N, N:M)と外部キー動作(CASCADE / SET NULL / RESTRICT)が定義されている
24
+ - [ ] ERD が正しくレンダリングされる
25
+ - [ ] インデックス戦略が記録されている
26
+ - [ ] 意図的な非正規化があれば理由が記載されている
27
+
28
+ ## 正規化レベルの目安
29
+
30
+ - **1NF**: 繰り返しグループを排除、原子値のみ
31
+ - **2NF**: 複合主キーの部分従属を排除
32
+ - **3NF**: 推移関数従属を排除
33
+ - 通常は 3NF を基本とし、パフォーマンス目的で意図的に非正規化する場合は理由を明記
34
+
35
+ ## レビュー確認質問
36
+
37
+ - 「ドメインモデルの Aggregate 構造と整合していますか?」
38
+ - 「検索・集計のパフォーマンス要件を満たせそうですか?」
39
+ - 「ソフトデリート / 履歴保持の方針は決まっていますか?」
40
+ - 「機微情報(パスワード、PII)の扱いは適切ですか?」
41
+
42
+ ## Git への追加(任意)
43
+
44
+ ```bash
45
+ git add docs/project/design/05-data-model.md
46
+ git status
47
+ ```
48
+
49
+ 推奨コミットメッセージ:
50
+
51
+ ```text
52
+ docs: データモデル(ERD)の定義
53
+
54
+ - エンティティ、属性、リレーションシップを定義
55
+ - Mermaid による ER 図を追加
56
+ ```