ai-flow-dev 2.5.4 โ†’ 2.7.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 (163) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +570 -567
  3. package/dist/cli.js +30 -2
  4. package/dist/cli.js.map +1 -1
  5. package/package.json +73 -73
  6. package/prompts/backend/flow-build-phase-0.md +535 -425
  7. package/prompts/backend/flow-build-phase-1.md +626 -626
  8. package/prompts/backend/flow-build-phase-10.md +340 -340
  9. package/prompts/backend/flow-build-phase-2.md +573 -573
  10. package/prompts/backend/flow-build-phase-3.md +834 -782
  11. package/prompts/backend/flow-build-phase-4.md +554 -554
  12. package/prompts/backend/flow-build-phase-5.md +703 -703
  13. package/prompts/backend/flow-build-phase-6.md +524 -524
  14. package/prompts/backend/flow-build-phase-7.md +1001 -1001
  15. package/prompts/backend/flow-build-phase-8.md +1407 -1407
  16. package/prompts/backend/flow-build-phase-9.md +477 -477
  17. package/prompts/backend/flow-build.md +137 -137
  18. package/prompts/backend/flow-check-review.md +20 -20
  19. package/prompts/backend/flow-check-test.md +14 -14
  20. package/prompts/backend/flow-check.md +67 -67
  21. package/prompts/backend/flow-commit.md +119 -119
  22. package/prompts/backend/flow-docs-sync.md +354 -354
  23. package/prompts/backend/flow-work-feature.md +61 -61
  24. package/prompts/backend/flow-work-fix.md +46 -46
  25. package/prompts/backend/flow-work-refactor.md +48 -48
  26. package/prompts/backend/flow-work-resume.md +34 -34
  27. package/prompts/backend/flow-work.md +1286 -1023
  28. package/prompts/desktop/flow-build-phase-0.md +359 -0
  29. package/prompts/desktop/flow-build-phase-1.md +295 -0
  30. package/prompts/desktop/flow-build-phase-10.md +357 -0
  31. package/prompts/desktop/flow-build-phase-2.md +282 -0
  32. package/prompts/desktop/flow-build-phase-3.md +291 -0
  33. package/prompts/desktop/flow-build-phase-4.md +308 -0
  34. package/prompts/desktop/flow-build-phase-5.md +269 -0
  35. package/prompts/desktop/flow-build-phase-6.md +350 -0
  36. package/prompts/desktop/flow-build-phase-7.md +297 -0
  37. package/prompts/desktop/flow-build-phase-8.md +541 -0
  38. package/prompts/desktop/flow-build-phase-9.md +439 -0
  39. package/prompts/desktop/flow-build.md +156 -0
  40. package/prompts/desktop/flow-check-review.md +20 -0
  41. package/prompts/desktop/flow-check-test.md +14 -0
  42. package/prompts/desktop/flow-check.md +67 -0
  43. package/prompts/desktop/flow-commit.md +119 -0
  44. package/prompts/desktop/flow-docs-sync.md +354 -0
  45. package/prompts/desktop/flow-work-feature.md +61 -0
  46. package/prompts/desktop/flow-work-fix.md +46 -0
  47. package/prompts/desktop/flow-work-refactor.md +48 -0
  48. package/prompts/desktop/flow-work-resume.md +34 -0
  49. package/prompts/desktop/flow-work.md +1390 -0
  50. package/prompts/frontend/flow-build-phase-0.md +425 -425
  51. package/prompts/frontend/flow-build-phase-1.md +626 -626
  52. package/prompts/frontend/flow-build-phase-10.md +33 -33
  53. package/prompts/frontend/flow-build-phase-2.md +573 -573
  54. package/prompts/frontend/flow-build-phase-3.md +782 -782
  55. package/prompts/frontend/flow-build-phase-4.md +554 -554
  56. package/prompts/frontend/flow-build-phase-5.md +703 -703
  57. package/prompts/frontend/flow-build-phase-6.md +524 -524
  58. package/prompts/frontend/flow-build-phase-7.md +1001 -1001
  59. package/prompts/frontend/flow-build-phase-8.md +872 -872
  60. package/prompts/frontend/flow-build-phase-9.md +94 -94
  61. package/prompts/frontend/flow-build.md +137 -137
  62. package/prompts/frontend/flow-check-review.md +20 -20
  63. package/prompts/frontend/flow-check-test.md +14 -14
  64. package/prompts/frontend/flow-check.md +67 -67
  65. package/prompts/frontend/flow-commit.md +119 -119
  66. package/prompts/frontend/flow-docs-sync.md +550 -550
  67. package/prompts/frontend/flow-work-feature.md +61 -61
  68. package/prompts/frontend/flow-work-fix.md +38 -38
  69. package/prompts/frontend/flow-work-refactor.md +48 -48
  70. package/prompts/frontend/flow-work-resume.md +34 -34
  71. package/prompts/frontend/flow-work.md +1320 -1027
  72. package/prompts/mobile/flow-build-phase-0.md +425 -425
  73. package/prompts/mobile/flow-build-phase-1.md +626 -626
  74. package/prompts/mobile/flow-build-phase-10.md +32 -32
  75. package/prompts/mobile/flow-build-phase-2.md +573 -573
  76. package/prompts/mobile/flow-build-phase-3.md +782 -782
  77. package/prompts/mobile/flow-build-phase-4.md +554 -554
  78. package/prompts/mobile/flow-build-phase-5.md +703 -703
  79. package/prompts/mobile/flow-build-phase-6.md +524 -524
  80. package/prompts/mobile/flow-build-phase-7.md +1001 -1001
  81. package/prompts/mobile/flow-build-phase-8.md +888 -888
  82. package/prompts/mobile/flow-build-phase-9.md +90 -90
  83. package/prompts/mobile/flow-build.md +135 -135
  84. package/prompts/mobile/flow-check-review.md +20 -20
  85. package/prompts/mobile/flow-check-test.md +14 -14
  86. package/prompts/mobile/flow-check.md +67 -67
  87. package/prompts/mobile/flow-commit.md +119 -119
  88. package/prompts/mobile/flow-docs-sync.md +620 -620
  89. package/prompts/mobile/flow-work-feature.md +61 -61
  90. package/prompts/mobile/flow-work-fix.md +46 -46
  91. package/prompts/mobile/flow-work-refactor.md +48 -48
  92. package/prompts/mobile/flow-work-resume.md +34 -34
  93. package/prompts/mobile/flow-work.md +1329 -1023
  94. package/prompts/shared/mermaid-guidelines.md +102 -102
  95. package/prompts/shared/scope-levels.md +114 -114
  96. package/prompts/shared/smart-skip-preflight.md +214 -214
  97. package/prompts/shared/story-points.md +55 -55
  98. package/prompts/shared/task-format.md +74 -74
  99. package/prompts/shared/task-summary-template.md +277 -277
  100. package/templates/AGENT.template.md +443 -443
  101. package/templates/backend/.clauderules.template +112 -112
  102. package/templates/backend/.cursorrules.template +102 -102
  103. package/templates/backend/README.template.md +2 -2
  104. package/templates/backend/ai-instructions.template.md +2 -2
  105. package/templates/backend/copilot-instructions.template.md +2 -2
  106. package/templates/backend/docs/api.template.md +320 -320
  107. package/templates/backend/docs/business-flows.template.md +97 -97
  108. package/templates/backend/docs/code-standards.template.md +2 -2
  109. package/templates/backend/docs/contributing.template.md +3 -3
  110. package/templates/backend/docs/data-model.template.md +520 -520
  111. package/templates/backend/docs/testing.template.md +2 -2
  112. package/templates/backend/project-brief.template.md +2 -2
  113. package/templates/backend/specs/configuration.template.md +2 -2
  114. package/templates/backend/specs/security.template.md +2 -2
  115. package/templates/desktop/.clauderules.template +112 -0
  116. package/templates/desktop/.cursorrules.template +102 -0
  117. package/templates/desktop/README.template.md +170 -0
  118. package/templates/desktop/ai-instructions.template.md +366 -0
  119. package/templates/desktop/copilot-instructions.template.md +140 -0
  120. package/templates/desktop/docs/docs/api.template.md +320 -0
  121. package/templates/desktop/docs/docs/architecture.template.md +724 -0
  122. package/templates/desktop/docs/docs/business-flows.template.md +102 -0
  123. package/templates/desktop/docs/docs/code-standards.template.md +792 -0
  124. package/templates/desktop/docs/docs/contributing.template.md +149 -0
  125. package/templates/desktop/docs/docs/data-model.template.md +520 -0
  126. package/templates/desktop/docs/docs/operations.template.md +720 -0
  127. package/templates/desktop/docs/docs/testing.template.md +722 -0
  128. package/templates/desktop/project-brief.template.md +150 -0
  129. package/templates/desktop/specs/specs/configuration.template.md +121 -0
  130. package/templates/desktop/specs/specs/security.template.md +392 -0
  131. package/templates/frontend/README.template.md +2 -2
  132. package/templates/frontend/ai-instructions.template.md +2 -2
  133. package/templates/frontend/docs/api-integration.template.md +362 -362
  134. package/templates/frontend/docs/components.template.md +2 -2
  135. package/templates/frontend/docs/error-handling.template.md +360 -360
  136. package/templates/frontend/docs/operations.template.md +107 -107
  137. package/templates/frontend/docs/performance.template.md +124 -124
  138. package/templates/frontend/docs/pwa.template.md +119 -119
  139. package/templates/frontend/docs/state-management.template.md +2 -2
  140. package/templates/frontend/docs/styling.template.md +2 -2
  141. package/templates/frontend/docs/testing.template.md +2 -2
  142. package/templates/frontend/project-brief.template.md +2 -2
  143. package/templates/frontend/specs/accessibility.template.md +95 -95
  144. package/templates/frontend/specs/configuration.template.md +2 -2
  145. package/templates/frontend/specs/security.template.md +175 -175
  146. package/templates/fullstack/README.template.md +252 -252
  147. package/templates/fullstack/ai-instructions.template.md +444 -444
  148. package/templates/fullstack/project-brief.template.md +157 -157
  149. package/templates/fullstack/specs/configuration.template.md +340 -340
  150. package/templates/mobile/README.template.md +167 -167
  151. package/templates/mobile/ai-instructions.template.md +196 -196
  152. package/templates/mobile/docs/app-store.template.md +135 -135
  153. package/templates/mobile/docs/architecture.template.md +63 -63
  154. package/templates/mobile/docs/native-features.template.md +94 -94
  155. package/templates/mobile/docs/navigation.template.md +59 -59
  156. package/templates/mobile/docs/offline-strategy.template.md +65 -65
  157. package/templates/mobile/docs/permissions.template.md +56 -56
  158. package/templates/mobile/docs/state-management.template.md +85 -85
  159. package/templates/mobile/docs/testing.template.md +109 -109
  160. package/templates/mobile/project-brief.template.md +69 -69
  161. package/templates/mobile/specs/build-configuration.template.md +91 -91
  162. package/templates/mobile/specs/deployment.template.md +92 -92
  163. package/templates/work.template.md +47 -47
@@ -1,520 +1,520 @@
1
- # Data Model
2
-
3
- > Structured view of the entities, relationships, and data contracts that power {{PROJECT_NAME}}
4
-
5
- ---
6
-
7
- ## ๐Ÿ“˜ Overview
8
-
9
- **Database Type:** {{DATABASE_TYPE}}
10
-
11
- **Primary Storage Layer:** {{DATABASE_PRIMARY_STORAGE}}
12
-
13
- **Secondary Storage / Caches:** {{DATABASE_SECONDARY_STORAGE}}
14
-
15
- **Data Access Layer:** {{DATA_ACCESS_LAYER}}
16
-
17
- ## **Data Ownership:** {{DATA_OWNERSHIP}}
18
-
19
- ## ๐Ÿ“Š Entity Catalog
20
-
21
- {{#EACH ENTITIES}}
22
-
23
- ### {{NAME}}
24
-
25
- **Purpose:** {{PURPOSE}}
26
-
27
- **Table / Collection:** `{{TABLE_NAME}}`
28
-
29
- **Primary Key:** {{PRIMARY_KEY}}
30
-
31
- **Description:** {{DESCRIPTION}}
32
-
33
- #### Attributes
34
-
35
- | Field | Type | Nullable | Default | Description |
36
- | ----- | ---- | -------- | ------- | ----------- |
37
-
38
- {{#EACH ATTRIBUTES}}
39
- | {{FIELD}} | {{TYPE}} | {{NULLABLE}} | {{DEFAULT}} | {{DESCRIPTION}} |
40
- {{/EACH}}
41
-
42
- #### Validation Rules
43
-
44
- {{#IF VALIDATION_RULES}}
45
- {{#EACH VALIDATION_RULES}}
46
-
47
- - {{RULE_DESCRIPTION}}
48
- {{/EACH}}
49
- {{ELSE}}
50
- - No additional validation rules defined.
51
- {{/IF}}
52
-
53
- #### Derived Fields
54
-
55
- {{#IF DERIVED_FIELDS}}
56
- | Field | Source | Logic |
57
- |-------|--------|-------|
58
- {{#EACH DERIVED_FIELDS}}
59
- | {{FIELD}} | {{SOURCE}} | {{LOGIC}} |
60
- {{/EACH}}
61
- {{ELSE}}
62
-
63
- - No derived fields defined.
64
- {{/IF}}
65
-
66
- ---
67
-
68
- {{/EACH}}
69
-
70
- ## ๐Ÿ”— Relationships & Contracts
71
-
72
- ### Cardinality Map
73
-
74
- {{#EACH RELATIONSHIPS}}
75
-
76
- - **{{FROM_ENTITY}} โ†’ {{TO_ENTITY}}**: {{TYPE}}
77
- - Join Condition: `{{JOIN_CONDITION}}`
78
- - Ownership: {{OWNERSHIP_MODEL}}
79
- - Cascade Rules: {{CASCADE_RULES}}
80
- {{/EACH}}
81
-
82
- ### Integrity Constraints
83
-
84
- {{#EACH INTEGRITY_CONSTRAINTS}}
85
-
86
- - **{{NAME}}**: {{DESCRIPTION}}
87
- - Enforced By: {{ENFORCED_BY}}
88
- - Failure Handling: {{FAILURE_HANDLING}}
89
- {{/EACH}}
90
-
91
- ---
92
-
93
- ## ๐Ÿ“‡ Database Indexes
94
-
95
- ### Index Strategy
96
-
97
- {{#IF INDEXES_DEFINED}}
98
- {{#EACH INDEX}}
99
-
100
- #### {{INDEX_NAME}}
101
-
102
- **Table:** `{{TABLE_NAME}}`
103
-
104
- **Columns:** {{INDEX_COLUMNS}}
105
-
106
- **Type:** {{INDEX_TYPE}} ({{#IF UNIQUE}}Unique{{ELSE}}Non-unique{{/IF}})
107
-
108
- **Purpose:** {{INDEX_PURPOSE}}
109
-
110
- **Query Patterns:** {{INDEX_QUERY_PATTERNS}}
111
-
112
- {{/EACH}}
113
-
114
- {{ELSE}}
115
-
116
- - No indexes explicitly defined yet. Indexes will be created based on query patterns and foreign keys.
117
- {{/IF}}
118
-
119
- ### Index Guidelines
120
-
121
- - โœ… Index all foreign keys
122
- - โœ… Index frequently queried columns
123
- - โœ… Index columns used in WHERE, JOIN, ORDER BY clauses
124
- - โœ… Consider composite indexes for multi-column queries
125
- - โŒ Don't over-index (each index slows writes)
126
- - โŒ Don't index low-cardinality columns (unless frequently filtered)
127
-
128
- ---
129
-
130
- ## ๐Ÿ”„ Transaction Management
131
-
132
- ### Transaction Isolation Level
133
-
134
- **Default Level:** {{TRANSACTION_ISOLATION_LEVEL}}
135
-
136
- **Supported Levels:**
137
- {{#EACH ISOLATION_LEVEL}}
138
-
139
- - **{{LEVEL_NAME}}**: {{LEVEL_DESCRIPTION}}
140
- {{/EACH}}
141
-
142
- ### Transaction Strategy
143
-
144
- **When to use transactions:**
145
-
146
- - โœ… Multi-step operations that must succeed or fail together
147
- - โœ… Updates affecting multiple tables
148
- - โœ… Operations requiring consistency guarantees
149
- - โŒ Single-row operations (usually handled by database)
150
-
151
- **Transaction Patterns:**
152
-
153
- {{#IF TRANSACTION_PATTERNS}}
154
- {{#EACH TRANSACTION_PATTERN}}
155
-
156
- #### {{PATTERN_NAME}}
157
-
158
- **Use Case:** {{PATTERN_USE_CASE}}
159
-
160
- **Implementation:**
161
-
162
- ```{{LANGUAGE}}
163
- {{PATTERN_EXAMPLE}}
164
- ```
165
-
166
- **Consistency Guarantees:** {{CONSISTENCY_GUARANTEES}}
167
-
168
- {{/EACH}}
169
- {{ELSE}}
170
-
171
- - Transaction patterns to be defined based on business requirements.
172
- {{/IF}}
173
-
174
- ### Transaction Boundaries (Atomic Operations)
175
-
176
- {{#IF TRANSACTION_BOUNDARIES}}
177
- {{#EACH TRANSACTION_BOUNDARY}}
178
-
179
- #### {{OPERATION_NAME}}
180
-
181
- **Description:** {{DESCRIPTION}}
182
-
183
- **Steps (all or nothing):**
184
- {{#EACH STEP}}
185
- {{STEP_NUMBER}}. {{STEP_DESCRIPTION}} {{#IF IN_TRANSACTION}}โœ… In transaction{{ELSE}}โšก Outside (async){{/IF}}
186
- {{/EACH}}
187
-
188
- **Rollback Trigger:** {{ROLLBACK_TRIGGER}}
189
-
190
- **Compensating Actions:** {{COMPENSATING_ACTIONS}}
191
-
192
- {{/EACH}}
193
- {{ELSE}}
194
-
195
- - No explicit transaction boundaries defined. Individual operations are atomic by default.
196
- {{/IF}}
197
-
198
- ### Consistency Model
199
-
200
- **Consistency Strategy:** {{CONSISTENCY_STRATEGY}}
201
-
202
- {{#IF EVENTUAL_CONSISTENCY}}
203
- **Eventual Consistency:**
204
-
205
- - Acceptable delay: {{CONSISTENCY_DELAY}}
206
- - Replication lag tolerance: {{REPLICATION_LAG}}
207
- - Conflict resolution: {{CONFLICT_RESOLUTION}}
208
- {{/IF}}
209
-
210
- {{#IF STRONG_CONSISTENCY}}
211
- **Strong Consistency:**
212
-
213
- - All reads see latest writes
214
- - Synchronous replication required
215
- - Higher latency, lower throughput
216
- {{/IF}}
217
-
218
- ---
219
-
220
- ## ๐Ÿ”ง Schema Migrations
221
-
222
- ### Migration Tool
223
-
224
- **Tool:** {{MIGRATION_TOOL}}
225
-
226
- {{#IF PRISMA_MIGRATE}}
227
- **Prisma Migrate:**
228
-
229
- - Location: `prisma/migrations/`
230
- - Generate migration: `npx prisma migrate dev --name migration_name`
231
- - Apply migration: `npx prisma migrate deploy`
232
- {{/IF}}
233
-
234
- {{#IF TYPEORM_MIGRATIONS}}
235
- **TypeORM Migrations:**
236
-
237
- - Location: `src/migrations/`
238
- - Generate migration: `npm run migration:generate -- -n MigrationName`
239
- - Run migration: `npm run migration:run`
240
- - Revert migration: `npm run migration:revert`
241
- {{/IF}}
242
-
243
- {{#IF ALEMBIC}}
244
- **Alembic (Python):**
245
-
246
- - Location: `alembic/versions/`
247
- - Generate migration: `alembic revision --autogenerate -m "migration_name"`
248
- - Apply migration: `alembic upgrade head`
249
- - Rollback: `alembic downgrade -1`
250
- {{/IF}}
251
-
252
- ### Migration Strategy
253
-
254
- **Versioning:** {{MIGRATION_VERSIONING}}
255
-
256
- **Rollback Strategy:** {{MIGRATION_ROLLBACK_STRATEGY}}
257
-
258
- **Zero-Downtime Migrations:** {{#IF ZERO_DOWNTIME_MIGRATIONS}}Yes{{ELSE}}No{{/IF}}
259
-
260
- {{#IF ZERO_DOWNTIME_MIGRATIONS}}
261
- **Zero-Downtime Approach:**
262
- {{#EACH ZERO_DOWNTIME_STEP}}
263
- {{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
264
- {{/EACH}}
265
- {{/IF}}
266
-
267
- ### Migration Guidelines
268
-
269
- - โœ… Always review generated migrations before applying
270
- - โœ… Test migrations on staging before production
271
- - โœ… Keep migrations small and focused
272
- - โœ… Never edit applied migrations (create new ones)
273
- - โœ… Document breaking changes
274
- - โŒ Don't run migrations manually in production
275
- - โŒ Don't mix data migrations with schema migrations
276
-
277
- ### Migration History
278
-
279
- {{#IF MIGRATION_HISTORY}}
280
- | Version | Description | Applied | Rollback Available |
281
- |---------|-------------|---------|-------------------|
282
- {{#EACH MIGRATION}}
283
- | {{VERSION}} | {{DESCRIPTION}} | {{APPLIED_DATE}} | {{#IF ROLLBACK_AVAILABLE}}Yes{{ELSE}}No{{/IF}} |
284
- {{/EACH}}
285
- {{ELSE}}
286
-
287
- - Migration history will be tracked by the migration tool.
288
- {{/IF}}
289
-
290
- ---
291
-
292
- ## ๐Ÿงฉ Domain Logic & Aggregates
293
-
294
- ### Aggregate Roots
295
-
296
- {{#EACH AGGREGATE_ROOTS}}
297
-
298
- #### {{NAME}}
299
-
300
- **Bounded Context:** {{CONTEXT}}
301
-
302
- **Responsibilities:** {{RESPONSIBILITIES}}
303
-
304
- **Entities Included:** {{ENTITIES_INCLUDED}}
305
-
306
- **Consistency Rules:** {{CONSISTENCY_RULES}}
307
-
308
- {{/EACH}}
309
-
310
- ### Domain Events
311
-
312
- {{#IF DOMAIN_EVENTS}}
313
- | Event | Trigger | Payload | Consumers |
314
- |-------|---------|---------|-----------|
315
- {{#EACH DOMAIN_EVENTS}}
316
- | {{NAME}} | {{TRIGGER}} | {{PAYLOAD}} | {{CONSUMERS}} |
317
- {{/EACH}}
318
- {{ELSE}}
319
-
320
- - No domain events defined.
321
- {{/IF}}
322
-
323
- ---
324
-
325
- ## ๏ฟฝ๏ธ Soft Delete & Data Lifecycle
326
-
327
- ### Deletion Strategy
328
-
329
- **Soft Delete Field:** `{{SOFT_DELETE_FIELD}}` ({{SOFT_DELETE_TYPE}})
330
-
331
- **Default Query Behavior:** {{SOFT_DELETE_QUERY_DEFAULT}}
332
-
333
- ### Entity Deletion Rules
334
-
335
- | Entity | Delete Type | Field | Cleanup Policy |
336
- | ------ | ----------- | ----- | -------------- |
337
-
338
- {{#EACH ENTITY_DELETE_RULE}}
339
- | {{ENTITY}} | {{DELETE_TYPE}} | {{FIELD}} | {{CLEANUP_POLICY}} |
340
- {{/EACH}}
341
-
342
- ### Permanent Cleanup Schedule
343
-
344
- **Policy:** {{CLEANUP_POLICY}}
345
- **Schedule:** {{CLEANUP_SCHEDULE}}
346
- **Retention Period:** {{RETENTION_DAYS}} days
347
-
348
- ### Cascade Delete Behavior
349
-
350
- {{#EACH CASCADE_DELETE}}
351
-
352
- - **{{PARENT_ENTITY}}** โ†’ **{{CHILD_ENTITY}}**: {{BEHAVIOR}}
353
- {{/EACH}}
354
-
355
- ---
356
-
357
- ## ๐Ÿ”„ State Machines
358
-
359
- {{#IF STATE_MACHINES}}
360
- {{#EACH STATE_MACHINE}}
361
-
362
- ### {{ENTITY_NAME}} State Machine
363
-
364
- **States:** {{STATES}}
365
-
366
- **Initial State:** {{INITIAL_STATE}}
367
-
368
- **Terminal States:** {{TERMINAL_STATES}}
369
-
370
- ```mermaid
371
- stateDiagram-v2
372
- {{STATE_DIAGRAM}}
373
- ```
374
-
375
- #### Valid Transitions
376
-
377
- | From | To | Action | Guards | Side Effects |
378
- | ---- | --- | ------ | ------ | ------------ |
379
-
380
- {{#EACH TRANSITION}}
381
- | {{FROM}} | {{TO}} | {{ACTION}} | {{GUARDS}} | {{SIDE_EFFECTS}} |
382
- {{/EACH}}
383
-
384
- #### Invalid Transitions (Explicitly Forbidden)
385
-
386
- {{#EACH INVALID_TRANSITION}}
387
-
388
- - `{{FROM}}` โ†’ `{{TO}}`: {{REASON}}
389
- {{/EACH}}
390
-
391
- {{/EACH}}
392
- {{ELSE}}
393
-
394
- - No state machines defined. Entities use simple status fields without formal transition rules.
395
- {{/IF}}
396
-
397
- ---
398
-
399
- ## ๏ฟฝ๐Ÿ“ฆ Serialization Contracts
400
-
401
- ### API Representations
402
-
403
- {{#EACH API_CONTRACTS}}
404
-
405
- #### {{NAME}}
406
-
407
- **Endpoint:** `{{ENDPOINT}}`
408
-
409
- **Method:** {{METHOD}}
410
-
411
- **Request Schema:**
412
-
413
- ```json
414
- {{REQUEST_SCHEMA}}
415
- ```
416
-
417
- **Response Schema:**
418
-
419
- ```json
420
- {{RESPONSE_SCHEMA}}
421
- ```
422
-
423
- ## **Notes:** {{NOTES}}
424
-
425
- {{/EACH}}
426
-
427
- ### Message Queue Payloads
428
-
429
- {{#IF MESSAGE_PAYLOADS}}
430
- {{#EACH MESSAGE_PAYLOADS}}
431
-
432
- - **{{TOPIC}}**
433
- - Producer: {{PRODUCER}}
434
- - Consumers: {{CONSUMERS}}
435
- - Schema:
436
- `json
437
- {{SCHEMA}}
438
- `
439
- {{/EACH}}
440
- {{ELSE}}
441
- - No asynchronous payloads defined.
442
- {{/IF}}
443
-
444
- ---
445
-
446
- ## ๐Ÿ—‚๏ธ Reference Data & Seed Values
447
-
448
- {{#IF REFERENCE_DATA}}
449
- | Name | Source | Format | Refresh Strategy |
450
- |------|--------|--------|------------------|
451
- {{#EACH REFERENCE_DATA}}
452
- | {{NAME}} | {{SOURCE}} | {{FORMAT}} | {{REFRESH_STRATEGY}} |
453
- {{/EACH}}
454
- {{ELSE}}
455
-
456
- - No reference datasets recorded.
457
- {{/IF}}
458
-
459
- ---
460
-
461
- ## ๐Ÿ” Data Governance
462
-
463
- **Data Sensitivity Classification:** {{DATA_SENSITIVITY}}
464
-
465
- **PII Handling:** {{PII_HANDLING}}
466
-
467
- **Audit Strategy:** {{AUDIT_STRATEGY}}
468
-
469
- **Retention Policy:** {{RETENTION_POLICY}}
470
-
471
- ## **Compliance Scope:** {{COMPLIANCE_SCOPE}}
472
-
473
- ## ๐Ÿงช Testing & Quality Gates
474
-
475
- ### Test Coverage by Entity
476
-
477
- {{#IF TEST_COVERAGE}}
478
- | Entity | Unit Tests | Integration Tests | Notes |
479
- |--------|------------|-------------------|-------|
480
- {{#EACH TEST_COVERAGE}}
481
- | {{ENTITY}} | {{UNIT_TESTS}} | {{INTEGRATION_TESTS}} | {{NOTES}} |
482
- {{/EACH}}
483
- {{ELSE}}
484
-
485
- - Test coverage not yet documented.
486
- {{/IF}}
487
-
488
- ### Fixtures & Factories
489
-
490
- {{#IF FIXTURE_DETAILS}}
491
-
492
- - Location: `{{FIXTURE_LOCATION}}`
493
- - Generation Tooling: {{GENERATION_TOOLING}}
494
- - TTL / Reset Strategy: {{RESET_STRATEGY}}
495
- {{ELSE}}
496
- - Fixtures and factories to be defined.
497
- {{/IF}}
498
-
499
- ---
500
-
501
- ## ๐Ÿš€ Future Enhancements
502
-
503
- {{#IF ROADMAP_ITEMS}}
504
- {{#EACH ROADMAP_ITEMS}}
505
-
506
- - **{{TITLE}}**: {{DESCRIPTION}}
507
- - Priority: {{PRIORITY}}
508
- - Target Release: {{TARGET_RELEASE}}
509
- {{/EACH}}
510
- {{ELSE}}
511
- - No future enhancements planned yet.
512
- {{/IF}}
513
-
514
- ---
515
-
516
- **Document Version:** 1.0
517
-
518
- **Last Updated:** {{GENERATION_DATE}}
519
-
520
- **Generated by:** AI Flow v1.0.0
1
+ # Data Model
2
+
3
+ > Structured view of the entities, relationships, and data contracts that power {{PROJECT_NAME}}
4
+
5
+ ---
6
+
7
+ ## ๐Ÿ“˜ Overview
8
+
9
+ **Database Type:** {{DATABASE_TYPE}}
10
+
11
+ **Primary Storage Layer:** {{DATABASE_PRIMARY_STORAGE}}
12
+
13
+ **Secondary Storage / Caches:** {{DATABASE_SECONDARY_STORAGE}}
14
+
15
+ **Data Access Layer:** {{DATA_ACCESS_LAYER}}
16
+
17
+ ## **Data Ownership:** {{DATA_OWNERSHIP}}
18
+
19
+ ## ๐Ÿ“Š Entity Catalog
20
+
21
+ {{#EACH ENTITIES}}
22
+
23
+ ### {{NAME}}
24
+
25
+ **Purpose:** {{PURPOSE}}
26
+
27
+ **Table / Collection:** `{{TABLE_NAME}}`
28
+
29
+ **Primary Key:** {{PRIMARY_KEY}}
30
+
31
+ **Description:** {{DESCRIPTION}}
32
+
33
+ #### Attributes
34
+
35
+ | Field | Type | Nullable | Default | Description |
36
+ | ----- | ---- | -------- | ------- | ----------- |
37
+
38
+ {{#EACH ATTRIBUTES}}
39
+ | {{FIELD}} | {{TYPE}} | {{NULLABLE}} | {{DEFAULT}} | {{DESCRIPTION}} |
40
+ {{/EACH}}
41
+
42
+ #### Validation Rules
43
+
44
+ {{#IF VALIDATION_RULES}}
45
+ {{#EACH VALIDATION_RULES}}
46
+
47
+ - {{RULE_DESCRIPTION}}
48
+ {{/EACH}}
49
+ {{ELSE}}
50
+ - No additional validation rules defined.
51
+ {{/IF}}
52
+
53
+ #### Derived Fields
54
+
55
+ {{#IF DERIVED_FIELDS}}
56
+ | Field | Source | Logic |
57
+ |-------|--------|-------|
58
+ {{#EACH DERIVED_FIELDS}}
59
+ | {{FIELD}} | {{SOURCE}} | {{LOGIC}} |
60
+ {{/EACH}}
61
+ {{ELSE}}
62
+
63
+ - No derived fields defined.
64
+ {{/IF}}
65
+
66
+ ---
67
+
68
+ {{/EACH}}
69
+
70
+ ## ๐Ÿ”— Relationships & Contracts
71
+
72
+ ### Cardinality Map
73
+
74
+ {{#EACH RELATIONSHIPS}}
75
+
76
+ - **{{FROM_ENTITY}} โ†’ {{TO_ENTITY}}**: {{TYPE}}
77
+ - Join Condition: `{{JOIN_CONDITION}}`
78
+ - Ownership: {{OWNERSHIP_MODEL}}
79
+ - Cascade Rules: {{CASCADE_RULES}}
80
+ {{/EACH}}
81
+
82
+ ### Integrity Constraints
83
+
84
+ {{#EACH INTEGRITY_CONSTRAINTS}}
85
+
86
+ - **{{NAME}}**: {{DESCRIPTION}}
87
+ - Enforced By: {{ENFORCED_BY}}
88
+ - Failure Handling: {{FAILURE_HANDLING}}
89
+ {{/EACH}}
90
+
91
+ ---
92
+
93
+ ## ๐Ÿ“‡ Database Indexes
94
+
95
+ ### Index Strategy
96
+
97
+ {{#IF INDEXES_DEFINED}}
98
+ {{#EACH INDEX}}
99
+
100
+ #### {{INDEX_NAME}}
101
+
102
+ **Table:** `{{TABLE_NAME}}`
103
+
104
+ **Columns:** {{INDEX_COLUMNS}}
105
+
106
+ **Type:** {{INDEX_TYPE}} ({{#IF UNIQUE}}Unique{{ELSE}}Non-unique{{/IF}})
107
+
108
+ **Purpose:** {{INDEX_PURPOSE}}
109
+
110
+ **Query Patterns:** {{INDEX_QUERY_PATTERNS}}
111
+
112
+ {{/EACH}}
113
+
114
+ {{ELSE}}
115
+
116
+ - No indexes explicitly defined yet. Indexes will be created based on query patterns and foreign keys.
117
+ {{/IF}}
118
+
119
+ ### Index Guidelines
120
+
121
+ - โœ… Index all foreign keys
122
+ - โœ… Index frequently queried columns
123
+ - โœ… Index columns used in WHERE, JOIN, ORDER BY clauses
124
+ - โœ… Consider composite indexes for multi-column queries
125
+ - โŒ Don't over-index (each index slows writes)
126
+ - โŒ Don't index low-cardinality columns (unless frequently filtered)
127
+
128
+ ---
129
+
130
+ ## ๐Ÿ”„ Transaction Management
131
+
132
+ ### Transaction Isolation Level
133
+
134
+ **Default Level:** {{TRANSACTION_ISOLATION_LEVEL}}
135
+
136
+ **Supported Levels:**
137
+ {{#EACH ISOLATION_LEVEL}}
138
+
139
+ - **{{LEVEL_NAME}}**: {{LEVEL_DESCRIPTION}}
140
+ {{/EACH}}
141
+
142
+ ### Transaction Strategy
143
+
144
+ **When to use transactions:**
145
+
146
+ - โœ… Multi-step operations that must succeed or fail together
147
+ - โœ… Updates affecting multiple tables
148
+ - โœ… Operations requiring consistency guarantees
149
+ - โŒ Single-row operations (usually handled by database)
150
+
151
+ **Transaction Patterns:**
152
+
153
+ {{#IF TRANSACTION_PATTERNS}}
154
+ {{#EACH TRANSACTION_PATTERN}}
155
+
156
+ #### {{PATTERN_NAME}}
157
+
158
+ **Use Case:** {{PATTERN_USE_CASE}}
159
+
160
+ **Implementation:**
161
+
162
+ ```{{LANGUAGE}}
163
+ {{PATTERN_EXAMPLE}}
164
+ ```
165
+
166
+ **Consistency Guarantees:** {{CONSISTENCY_GUARANTEES}}
167
+
168
+ {{/EACH}}
169
+ {{ELSE}}
170
+
171
+ - Transaction patterns to be defined based on business requirements.
172
+ {{/IF}}
173
+
174
+ ### Transaction Boundaries (Atomic Operations)
175
+
176
+ {{#IF TRANSACTION_BOUNDARIES}}
177
+ {{#EACH TRANSACTION_BOUNDARY}}
178
+
179
+ #### {{OPERATION_NAME}}
180
+
181
+ **Description:** {{DESCRIPTION}}
182
+
183
+ **Steps (all or nothing):**
184
+ {{#EACH STEP}}
185
+ {{STEP_NUMBER}}. {{STEP_DESCRIPTION}} {{#IF IN_TRANSACTION}}โœ… In transaction{{ELSE}}โšก Outside (async){{/IF}}
186
+ {{/EACH}}
187
+
188
+ **Rollback Trigger:** {{ROLLBACK_TRIGGER}}
189
+
190
+ **Compensating Actions:** {{COMPENSATING_ACTIONS}}
191
+
192
+ {{/EACH}}
193
+ {{ELSE}}
194
+
195
+ - No explicit transaction boundaries defined. Individual operations are atomic by default.
196
+ {{/IF}}
197
+
198
+ ### Consistency Model
199
+
200
+ **Consistency Strategy:** {{CONSISTENCY_STRATEGY}}
201
+
202
+ {{#IF EVENTUAL_CONSISTENCY}}
203
+ **Eventual Consistency:**
204
+
205
+ - Acceptable delay: {{CONSISTENCY_DELAY}}
206
+ - Replication lag tolerance: {{REPLICATION_LAG}}
207
+ - Conflict resolution: {{CONFLICT_RESOLUTION}}
208
+ {{/IF}}
209
+
210
+ {{#IF STRONG_CONSISTENCY}}
211
+ **Strong Consistency:**
212
+
213
+ - All reads see latest writes
214
+ - Synchronous replication required
215
+ - Higher latency, lower throughput
216
+ {{/IF}}
217
+
218
+ ---
219
+
220
+ ## ๐Ÿ”ง Schema Migrations
221
+
222
+ ### Migration Tool
223
+
224
+ **Tool:** {{MIGRATION_TOOL}}
225
+
226
+ {{#IF PRISMA_MIGRATE}}
227
+ **Prisma Migrate:**
228
+
229
+ - Location: `prisma/migrations/`
230
+ - Generate migration: `npx prisma migrate dev --name migration_name`
231
+ - Apply migration: `npx prisma migrate deploy`
232
+ {{/IF}}
233
+
234
+ {{#IF TYPEORM_MIGRATIONS}}
235
+ **TypeORM Migrations:**
236
+
237
+ - Location: `src/migrations/`
238
+ - Generate migration: `npm run migration:generate -- -n MigrationName`
239
+ - Run migration: `npm run migration:run`
240
+ - Revert migration: `npm run migration:revert`
241
+ {{/IF}}
242
+
243
+ {{#IF ALEMBIC}}
244
+ **Alembic (Python):**
245
+
246
+ - Location: `alembic/versions/`
247
+ - Generate migration: `alembic revision --autogenerate -m "migration_name"`
248
+ - Apply migration: `alembic upgrade head`
249
+ - Rollback: `alembic downgrade -1`
250
+ {{/IF}}
251
+
252
+ ### Migration Strategy
253
+
254
+ **Versioning:** {{MIGRATION_VERSIONING}}
255
+
256
+ **Rollback Strategy:** {{MIGRATION_ROLLBACK_STRATEGY}}
257
+
258
+ **Zero-Downtime Migrations:** {{#IF ZERO_DOWNTIME_MIGRATIONS}}Yes{{ELSE}}No{{/IF}}
259
+
260
+ {{#IF ZERO_DOWNTIME_MIGRATIONS}}
261
+ **Zero-Downtime Approach:**
262
+ {{#EACH ZERO_DOWNTIME_STEP}}
263
+ {{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
264
+ {{/EACH}}
265
+ {{/IF}}
266
+
267
+ ### Migration Guidelines
268
+
269
+ - โœ… Always review generated migrations before applying
270
+ - โœ… Test migrations on staging before production
271
+ - โœ… Keep migrations small and focused
272
+ - โœ… Never edit applied migrations (create new ones)
273
+ - โœ… Document breaking changes
274
+ - โŒ Don't run migrations manually in production
275
+ - โŒ Don't mix data migrations with schema migrations
276
+
277
+ ### Migration History
278
+
279
+ {{#IF MIGRATION_HISTORY}}
280
+ | Version | Description | Applied | Rollback Available |
281
+ |---------|-------------|---------|-------------------|
282
+ {{#EACH MIGRATION}}
283
+ | {{VERSION}} | {{DESCRIPTION}} | {{APPLIED_DATE}} | {{#IF ROLLBACK_AVAILABLE}}Yes{{ELSE}}No{{/IF}} |
284
+ {{/EACH}}
285
+ {{ELSE}}
286
+
287
+ - Migration history will be tracked by the migration tool.
288
+ {{/IF}}
289
+
290
+ ---
291
+
292
+ ## ๐Ÿงฉ Domain Logic & Aggregates
293
+
294
+ ### Aggregate Roots
295
+
296
+ {{#EACH AGGREGATE_ROOTS}}
297
+
298
+ #### {{NAME}}
299
+
300
+ **Bounded Context:** {{CONTEXT}}
301
+
302
+ **Responsibilities:** {{RESPONSIBILITIES}}
303
+
304
+ **Entities Included:** {{ENTITIES_INCLUDED}}
305
+
306
+ **Consistency Rules:** {{CONSISTENCY_RULES}}
307
+
308
+ {{/EACH}}
309
+
310
+ ### Domain Events
311
+
312
+ {{#IF DOMAIN_EVENTS}}
313
+ | Event | Trigger | Payload | Consumers |
314
+ |-------|---------|---------|-----------|
315
+ {{#EACH DOMAIN_EVENTS}}
316
+ | {{NAME}} | {{TRIGGER}} | {{PAYLOAD}} | {{CONSUMERS}} |
317
+ {{/EACH}}
318
+ {{ELSE}}
319
+
320
+ - No domain events defined.
321
+ {{/IF}}
322
+
323
+ ---
324
+
325
+ ## ๏ฟฝ๏ธ Soft Delete & Data Lifecycle
326
+
327
+ ### Deletion Strategy
328
+
329
+ **Soft Delete Field:** `{{SOFT_DELETE_FIELD}}` ({{SOFT_DELETE_TYPE}})
330
+
331
+ **Default Query Behavior:** {{SOFT_DELETE_QUERY_DEFAULT}}
332
+
333
+ ### Entity Deletion Rules
334
+
335
+ | Entity | Delete Type | Field | Cleanup Policy |
336
+ | ------ | ----------- | ----- | -------------- |
337
+
338
+ {{#EACH ENTITY_DELETE_RULE}}
339
+ | {{ENTITY}} | {{DELETE_TYPE}} | {{FIELD}} | {{CLEANUP_POLICY}} |
340
+ {{/EACH}}
341
+
342
+ ### Permanent Cleanup Schedule
343
+
344
+ **Policy:** {{CLEANUP_POLICY}}
345
+ **Schedule:** {{CLEANUP_SCHEDULE}}
346
+ **Retention Period:** {{RETENTION_DAYS}} days
347
+
348
+ ### Cascade Delete Behavior
349
+
350
+ {{#EACH CASCADE_DELETE}}
351
+
352
+ - **{{PARENT_ENTITY}}** โ†’ **{{CHILD_ENTITY}}**: {{BEHAVIOR}}
353
+ {{/EACH}}
354
+
355
+ ---
356
+
357
+ ## ๐Ÿ”„ State Machines
358
+
359
+ {{#IF STATE_MACHINES}}
360
+ {{#EACH STATE_MACHINE}}
361
+
362
+ ### {{ENTITY_NAME}} State Machine
363
+
364
+ **States:** {{STATES}}
365
+
366
+ **Initial State:** {{INITIAL_STATE}}
367
+
368
+ **Terminal States:** {{TERMINAL_STATES}}
369
+
370
+ ```mermaid
371
+ stateDiagram-v2
372
+ {{STATE_DIAGRAM}}
373
+ ```
374
+
375
+ #### Valid Transitions
376
+
377
+ | From | To | Action | Guards | Side Effects |
378
+ | ---- | --- | ------ | ------ | ------------ |
379
+
380
+ {{#EACH TRANSITION}}
381
+ | {{FROM}} | {{TO}} | {{ACTION}} | {{GUARDS}} | {{SIDE_EFFECTS}} |
382
+ {{/EACH}}
383
+
384
+ #### Invalid Transitions (Explicitly Forbidden)
385
+
386
+ {{#EACH INVALID_TRANSITION}}
387
+
388
+ - `{{FROM}}` โ†’ `{{TO}}`: {{REASON}}
389
+ {{/EACH}}
390
+
391
+ {{/EACH}}
392
+ {{ELSE}}
393
+
394
+ - No state machines defined. Entities use simple status fields without formal transition rules.
395
+ {{/IF}}
396
+
397
+ ---
398
+
399
+ ## ๏ฟฝ๐Ÿ“ฆ Serialization Contracts
400
+
401
+ ### API Representations
402
+
403
+ {{#EACH API_CONTRACTS}}
404
+
405
+ #### {{NAME}}
406
+
407
+ **Endpoint:** `{{ENDPOINT}}`
408
+
409
+ **Method:** {{METHOD}}
410
+
411
+ **Request Schema:**
412
+
413
+ ```json
414
+ {{REQUEST_SCHEMA}}
415
+ ```
416
+
417
+ **Response Schema:**
418
+
419
+ ```json
420
+ {{RESPONSE_SCHEMA}}
421
+ ```
422
+
423
+ ## **Notes:** {{NOTES}}
424
+
425
+ {{/EACH}}
426
+
427
+ ### Message Queue Payloads
428
+
429
+ {{#IF MESSAGE_PAYLOADS}}
430
+ {{#EACH MESSAGE_PAYLOADS}}
431
+
432
+ - **{{TOPIC}}**
433
+ - Producer: {{PRODUCER}}
434
+ - Consumers: {{CONSUMERS}}
435
+ - Schema:
436
+ `json
437
+ {{SCHEMA}}
438
+ `
439
+ {{/EACH}}
440
+ {{ELSE}}
441
+ - No asynchronous payloads defined.
442
+ {{/IF}}
443
+
444
+ ---
445
+
446
+ ## ๐Ÿ—‚๏ธ Reference Data & Seed Values
447
+
448
+ {{#IF REFERENCE_DATA}}
449
+ | Name | Source | Format | Refresh Strategy |
450
+ |------|--------|--------|------------------|
451
+ {{#EACH REFERENCE_DATA}}
452
+ | {{NAME}} | {{SOURCE}} | {{FORMAT}} | {{REFRESH_STRATEGY}} |
453
+ {{/EACH}}
454
+ {{ELSE}}
455
+
456
+ - No reference datasets recorded.
457
+ {{/IF}}
458
+
459
+ ---
460
+
461
+ ## ๐Ÿ” Data Governance
462
+
463
+ **Data Sensitivity Classification:** {{DATA_SENSITIVITY}}
464
+
465
+ **PII Handling:** {{PII_HANDLING}}
466
+
467
+ **Audit Strategy:** {{AUDIT_STRATEGY}}
468
+
469
+ **Retention Policy:** {{RETENTION_POLICY}}
470
+
471
+ ## **Compliance Scope:** {{COMPLIANCE_SCOPE}}
472
+
473
+ ## ๐Ÿงช Testing & Quality Gates
474
+
475
+ ### Test Coverage by Entity
476
+
477
+ {{#IF TEST_COVERAGE}}
478
+ | Entity | Unit Tests | Integration Tests | Notes |
479
+ |--------|------------|-------------------|-------|
480
+ {{#EACH TEST_COVERAGE}}
481
+ | {{ENTITY}} | {{UNIT_TESTS}} | {{INTEGRATION_TESTS}} | {{NOTES}} |
482
+ {{/EACH}}
483
+ {{ELSE}}
484
+
485
+ - Test coverage not yet documented.
486
+ {{/IF}}
487
+
488
+ ### Fixtures & Factories
489
+
490
+ {{#IF FIXTURE_DETAILS}}
491
+
492
+ - Location: `{{FIXTURE_LOCATION}}`
493
+ - Generation Tooling: {{GENERATION_TOOLING}}
494
+ - TTL / Reset Strategy: {{RESET_STRATEGY}}
495
+ {{ELSE}}
496
+ - Fixtures and factories to be defined.
497
+ {{/IF}}
498
+
499
+ ---
500
+
501
+ ## ๐Ÿš€ Future Enhancements
502
+
503
+ {{#IF ROADMAP_ITEMS}}
504
+ {{#EACH ROADMAP_ITEMS}}
505
+
506
+ - **{{TITLE}}**: {{DESCRIPTION}}
507
+ - Priority: {{PRIORITY}}
508
+ - Target Release: {{TARGET_RELEASE}}
509
+ {{/EACH}}
510
+ {{ELSE}}
511
+ - No future enhancements planned yet.
512
+ {{/IF}}
513
+
514
+ ---
515
+
516
+ **Document Version:** 1.0
517
+
518
+ **Last Updated:** {{GENERATION_DATE}}
519
+
520
+ **Generated by:** AI Flow v1.0.0