ai-flow-dev 2.6.0 โ†’ 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 (161) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +570 -570
  3. package/package.json +73 -73
  4. package/prompts/backend/flow-build-phase-0.md +535 -535
  5. package/prompts/backend/flow-build-phase-1.md +626 -626
  6. package/prompts/backend/flow-build-phase-10.md +340 -340
  7. package/prompts/backend/flow-build-phase-2.md +573 -573
  8. package/prompts/backend/flow-build-phase-3.md +834 -834
  9. package/prompts/backend/flow-build-phase-4.md +554 -554
  10. package/prompts/backend/flow-build-phase-5.md +703 -703
  11. package/prompts/backend/flow-build-phase-6.md +524 -524
  12. package/prompts/backend/flow-build-phase-7.md +1001 -1001
  13. package/prompts/backend/flow-build-phase-8.md +1407 -1407
  14. package/prompts/backend/flow-build-phase-9.md +477 -477
  15. package/prompts/backend/flow-build.md +137 -137
  16. package/prompts/backend/flow-check-review.md +20 -20
  17. package/prompts/backend/flow-check-test.md +14 -14
  18. package/prompts/backend/flow-check.md +67 -67
  19. package/prompts/backend/flow-commit.md +119 -119
  20. package/prompts/backend/flow-docs-sync.md +354 -354
  21. package/prompts/backend/flow-work-feature.md +61 -61
  22. package/prompts/backend/flow-work-fix.md +46 -46
  23. package/prompts/backend/flow-work-refactor.md +48 -48
  24. package/prompts/backend/flow-work-resume.md +34 -34
  25. package/prompts/backend/flow-work.md +1286 -1023
  26. package/prompts/desktop/flow-build-phase-0.md +359 -359
  27. package/prompts/desktop/flow-build-phase-1.md +295 -295
  28. package/prompts/desktop/flow-build-phase-10.md +357 -357
  29. package/prompts/desktop/flow-build-phase-2.md +282 -282
  30. package/prompts/desktop/flow-build-phase-3.md +291 -291
  31. package/prompts/desktop/flow-build-phase-4.md +308 -308
  32. package/prompts/desktop/flow-build-phase-5.md +269 -269
  33. package/prompts/desktop/flow-build-phase-6.md +350 -350
  34. package/prompts/desktop/flow-build-phase-7.md +297 -297
  35. package/prompts/desktop/flow-build-phase-8.md +541 -541
  36. package/prompts/desktop/flow-build-phase-9.md +439 -439
  37. package/prompts/desktop/flow-build.md +156 -156
  38. package/prompts/desktop/flow-check-review.md +20 -20
  39. package/prompts/desktop/flow-check-test.md +14 -14
  40. package/prompts/desktop/flow-check.md +67 -67
  41. package/prompts/desktop/flow-commit.md +119 -119
  42. package/prompts/desktop/flow-docs-sync.md +354 -354
  43. package/prompts/desktop/flow-work-feature.md +61 -61
  44. package/prompts/desktop/flow-work-fix.md +46 -46
  45. package/prompts/desktop/flow-work-refactor.md +48 -48
  46. package/prompts/desktop/flow-work-resume.md +34 -34
  47. package/prompts/desktop/flow-work.md +1390 -1023
  48. package/prompts/frontend/flow-build-phase-0.md +425 -425
  49. package/prompts/frontend/flow-build-phase-1.md +626 -626
  50. package/prompts/frontend/flow-build-phase-10.md +33 -33
  51. package/prompts/frontend/flow-build-phase-2.md +573 -573
  52. package/prompts/frontend/flow-build-phase-3.md +782 -782
  53. package/prompts/frontend/flow-build-phase-4.md +554 -554
  54. package/prompts/frontend/flow-build-phase-5.md +703 -703
  55. package/prompts/frontend/flow-build-phase-6.md +524 -524
  56. package/prompts/frontend/flow-build-phase-7.md +1001 -1001
  57. package/prompts/frontend/flow-build-phase-8.md +872 -872
  58. package/prompts/frontend/flow-build-phase-9.md +94 -94
  59. package/prompts/frontend/flow-build.md +137 -137
  60. package/prompts/frontend/flow-check-review.md +20 -20
  61. package/prompts/frontend/flow-check-test.md +14 -14
  62. package/prompts/frontend/flow-check.md +67 -67
  63. package/prompts/frontend/flow-commit.md +119 -119
  64. package/prompts/frontend/flow-docs-sync.md +550 -550
  65. package/prompts/frontend/flow-work-feature.md +61 -61
  66. package/prompts/frontend/flow-work-fix.md +38 -38
  67. package/prompts/frontend/flow-work-refactor.md +48 -48
  68. package/prompts/frontend/flow-work-resume.md +34 -34
  69. package/prompts/frontend/flow-work.md +1320 -1027
  70. package/prompts/mobile/flow-build-phase-0.md +425 -425
  71. package/prompts/mobile/flow-build-phase-1.md +626 -626
  72. package/prompts/mobile/flow-build-phase-10.md +32 -32
  73. package/prompts/mobile/flow-build-phase-2.md +573 -573
  74. package/prompts/mobile/flow-build-phase-3.md +782 -782
  75. package/prompts/mobile/flow-build-phase-4.md +554 -554
  76. package/prompts/mobile/flow-build-phase-5.md +703 -703
  77. package/prompts/mobile/flow-build-phase-6.md +524 -524
  78. package/prompts/mobile/flow-build-phase-7.md +1001 -1001
  79. package/prompts/mobile/flow-build-phase-8.md +888 -888
  80. package/prompts/mobile/flow-build-phase-9.md +90 -90
  81. package/prompts/mobile/flow-build.md +135 -135
  82. package/prompts/mobile/flow-check-review.md +20 -20
  83. package/prompts/mobile/flow-check-test.md +14 -14
  84. package/prompts/mobile/flow-check.md +67 -67
  85. package/prompts/mobile/flow-commit.md +119 -119
  86. package/prompts/mobile/flow-docs-sync.md +620 -620
  87. package/prompts/mobile/flow-work-feature.md +61 -61
  88. package/prompts/mobile/flow-work-fix.md +46 -46
  89. package/prompts/mobile/flow-work-refactor.md +48 -48
  90. package/prompts/mobile/flow-work-resume.md +34 -34
  91. package/prompts/mobile/flow-work.md +1329 -1023
  92. package/prompts/shared/mermaid-guidelines.md +102 -102
  93. package/prompts/shared/scope-levels.md +114 -114
  94. package/prompts/shared/smart-skip-preflight.md +214 -214
  95. package/prompts/shared/story-points.md +55 -55
  96. package/prompts/shared/task-format.md +74 -74
  97. package/prompts/shared/task-summary-template.md +277 -277
  98. package/templates/AGENT.template.md +443 -443
  99. package/templates/backend/.clauderules.template +112 -112
  100. package/templates/backend/.cursorrules.template +102 -102
  101. package/templates/backend/README.template.md +2 -2
  102. package/templates/backend/ai-instructions.template.md +2 -2
  103. package/templates/backend/copilot-instructions.template.md +2 -2
  104. package/templates/backend/docs/api.template.md +320 -320
  105. package/templates/backend/docs/business-flows.template.md +97 -97
  106. package/templates/backend/docs/code-standards.template.md +2 -2
  107. package/templates/backend/docs/contributing.template.md +3 -3
  108. package/templates/backend/docs/data-model.template.md +520 -520
  109. package/templates/backend/docs/testing.template.md +2 -2
  110. package/templates/backend/project-brief.template.md +2 -2
  111. package/templates/backend/specs/configuration.template.md +2 -2
  112. package/templates/backend/specs/security.template.md +2 -2
  113. package/templates/desktop/.clauderules.template +112 -112
  114. package/templates/desktop/.cursorrules.template +102 -102
  115. package/templates/desktop/README.template.md +170 -170
  116. package/templates/desktop/ai-instructions.template.md +366 -366
  117. package/templates/desktop/copilot-instructions.template.md +140 -140
  118. package/templates/desktop/docs/docs/api.template.md +320 -320
  119. package/templates/desktop/docs/docs/architecture.template.md +724 -724
  120. package/templates/desktop/docs/docs/business-flows.template.md +102 -102
  121. package/templates/desktop/docs/docs/code-standards.template.md +792 -792
  122. package/templates/desktop/docs/docs/contributing.template.md +149 -149
  123. package/templates/desktop/docs/docs/data-model.template.md +520 -520
  124. package/templates/desktop/docs/docs/operations.template.md +720 -720
  125. package/templates/desktop/docs/docs/testing.template.md +722 -722
  126. package/templates/desktop/project-brief.template.md +150 -150
  127. package/templates/desktop/specs/specs/configuration.template.md +121 -121
  128. package/templates/desktop/specs/specs/security.template.md +392 -392
  129. package/templates/frontend/README.template.md +2 -2
  130. package/templates/frontend/ai-instructions.template.md +2 -2
  131. package/templates/frontend/docs/api-integration.template.md +362 -362
  132. package/templates/frontend/docs/components.template.md +2 -2
  133. package/templates/frontend/docs/error-handling.template.md +360 -360
  134. package/templates/frontend/docs/operations.template.md +107 -107
  135. package/templates/frontend/docs/performance.template.md +124 -124
  136. package/templates/frontend/docs/pwa.template.md +119 -119
  137. package/templates/frontend/docs/state-management.template.md +2 -2
  138. package/templates/frontend/docs/styling.template.md +2 -2
  139. package/templates/frontend/docs/testing.template.md +2 -2
  140. package/templates/frontend/project-brief.template.md +2 -2
  141. package/templates/frontend/specs/accessibility.template.md +95 -95
  142. package/templates/frontend/specs/configuration.template.md +2 -2
  143. package/templates/frontend/specs/security.template.md +175 -175
  144. package/templates/fullstack/README.template.md +252 -252
  145. package/templates/fullstack/ai-instructions.template.md +444 -444
  146. package/templates/fullstack/project-brief.template.md +157 -157
  147. package/templates/fullstack/specs/configuration.template.md +340 -340
  148. package/templates/mobile/README.template.md +167 -167
  149. package/templates/mobile/ai-instructions.template.md +196 -196
  150. package/templates/mobile/docs/app-store.template.md +135 -135
  151. package/templates/mobile/docs/architecture.template.md +63 -63
  152. package/templates/mobile/docs/native-features.template.md +94 -94
  153. package/templates/mobile/docs/navigation.template.md +59 -59
  154. package/templates/mobile/docs/offline-strategy.template.md +65 -65
  155. package/templates/mobile/docs/permissions.template.md +56 -56
  156. package/templates/mobile/docs/state-management.template.md +85 -85
  157. package/templates/mobile/docs/testing.template.md +109 -109
  158. package/templates/mobile/project-brief.template.md +69 -69
  159. package/templates/mobile/specs/build-configuration.template.md +91 -91
  160. package/templates/mobile/specs/deployment.template.md +92 -92
  161. 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