ai-flow-dev 2.1.2 → 2.1.4
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.
- package/README.md +28 -40
- package/dist/cli.js +69 -47
- package/dist/cli.js.map +1 -1
- package/package.json +5 -5
- package/prompts/backend/flow-build-phase-0.md +96 -84
- package/prompts/backend/flow-build-phase-1.md +10 -18
- package/prompts/backend/flow-build-phase-10.md +199 -583
- package/prompts/backend/flow-build-phase-2.md +152 -86
- package/prompts/backend/flow-build-phase-3.md +108 -68
- package/prompts/backend/flow-build-phase-4.md +5 -8
- package/prompts/backend/flow-build-phase-5.md +39 -12
- package/prompts/backend/flow-build-phase-6.md +29 -8
- package/prompts/backend/flow-build-phase-7.md +121 -41
- package/prompts/backend/flow-build-phase-8.md +28 -65
- package/prompts/backend/flow-build-phase-9.md +267 -1298
- package/prompts/backend/flow-build.md +881 -957
- package/prompts/backend/flow-dev-commit.md +27 -50
- package/prompts/backend/flow-dev-feature.md +1929 -2017
- package/prompts/backend/flow-dev-fix.md +936 -964
- package/prompts/backend/flow-dev-refactor.md +672 -701
- package/prompts/backend/flow-dev-review.md +356 -389
- package/prompts/backend/flow-dev-work.md +1066 -1118
- package/prompts/backend/flow-docs-sync.md +31 -210
- package/prompts/frontend/flow-build-phase-0.md +503 -484
- package/prompts/frontend/flow-build-phase-1.md +445 -433
- package/prompts/frontend/flow-build-phase-2.md +910 -957
- package/prompts/frontend/flow-build-phase-3.md +692 -664
- package/prompts/frontend/flow-build-phase-4.md +478 -463
- package/prompts/frontend/flow-build-phase-5.md +488 -467
- package/prompts/frontend/flow-build-phase-6.md +571 -550
- package/prompts/frontend/flow-build-phase-7.md +560 -592
- package/prompts/frontend/flow-build-phase-8.md +17 -42
- package/prompts/frontend/flow-build.md +457 -503
- package/prompts/frontend/flow-docs-sync.md +24 -45
- package/prompts/mobile/flow-build-phase-0.md +104 -97
- package/prompts/mobile/flow-build-phase-1.md +137 -122
- package/prompts/mobile/flow-build-phase-2.md +123 -130
- package/prompts/mobile/flow-build-phase-3.md +144 -149
- package/prompts/mobile/flow-build-phase-4.md +140 -132
- package/prompts/mobile/flow-build-phase-5.md +70 -70
- package/prompts/mobile/flow-build-phase-6.md +136 -134
- package/prompts/mobile/flow-build-phase-7.md +24 -58
- package/prompts/mobile/flow-build-phase-8.md +17 -42
- package/prompts/mobile/flow-build.md +47 -97
- package/prompts/mobile/flow-docs-sync.md +23 -42
- package/prompts/shared/mermaid-guidelines.md +106 -0
- package/prompts/shared/scope-levels.md +126 -0
- package/prompts/shared/story-points.md +65 -0
- package/prompts/shared/task-format.md +86 -0
- package/templates/AGENT.template.md +194 -15
- package/templates/backend/README.template.md +2 -32
- package/templates/backend/ai-instructions.template.md +2 -32
- package/templates/backend/copilot-instructions.template.md +2 -22
- package/templates/backend/docs/api.template.md +89 -20
- package/templates/backend/docs/architecture.template.md +165 -53
- package/templates/backend/docs/business-flows.template.md +7 -14
- package/templates/backend/docs/code-standards.template.md +2 -38
- package/templates/backend/docs/contributing.template.md +2 -16
- package/templates/backend/docs/data-model.template.md +125 -21
- package/templates/backend/docs/operations.template.md +179 -50
- package/templates/backend/docs/testing.template.md +2 -42
- package/templates/backend/project-brief.template.md +2 -28
- package/templates/backend/specs/configuration.template.md +2 -14
- package/templates/backend/specs/security.template.md +2 -32
- package/templates/frontend/README.template.md +2 -18
- package/templates/frontend/ai-instructions.template.md +2 -20
- package/templates/frontend/docs/api-integration.template.md +12 -30
- package/templates/frontend/docs/components.template.md +2 -28
- package/templates/frontend/docs/error-handling.template.md +11 -27
- package/templates/frontend/docs/operations.template.md +8 -18
- package/templates/frontend/docs/performance.template.md +8 -18
- package/templates/frontend/docs/pwa.template.md +8 -18
- package/templates/frontend/docs/state-management.template.md +2 -28
- package/templates/frontend/docs/styling.template.md +2 -26
- package/templates/frontend/docs/testing.template.md +2 -28
- package/templates/frontend/project-brief.template.md +2 -16
- package/templates/frontend/specs/accessibility.template.md +8 -18
- package/templates/frontend/specs/configuration.template.md +2 -24
- package/templates/frontend/specs/security.template.md +10 -24
- package/templates/fullstack/README.template.md +17 -47
- package/templates/fullstack/ai-instructions.template.md +17 -45
- package/templates/fullstack/project-brief.template.md +16 -42
- package/templates/fullstack/specs/configuration.template.md +16 -42
- package/templates/mobile/README.template.md +11 -29
- package/templates/mobile/ai-instructions.template.md +11 -27
- package/templates/mobile/docs/app-store.template.md +11 -29
- package/templates/mobile/docs/architecture.template.md +14 -38
- package/templates/mobile/docs/native-features.template.md +16 -44
- package/templates/mobile/docs/navigation.template.md +9 -23
- package/templates/mobile/docs/offline-strategy.template.md +10 -26
- package/templates/mobile/docs/permissions.template.md +9 -23
- package/templates/mobile/docs/state-management.template.md +12 -32
- package/templates/mobile/docs/testing.template.md +14 -38
- package/templates/mobile/project-brief.template.md +12 -30
- package/templates/mobile/specs/build-configuration.template.md +10 -26
- package/templates/mobile/specs/deployment.template.md +9 -23
|
@@ -10,9 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
### Why This Pattern?
|
|
12
12
|
|
|
13
|
-
{{ARCHITECTURE_RATIONALE}}
|
|
14
|
-
|
|
15
|
-
---
|
|
13
|
+
## {{ARCHITECTURE_RATIONALE}}
|
|
16
14
|
|
|
17
15
|
## 🧱 System Components
|
|
18
16
|
|
|
@@ -25,75 +23,84 @@
|
|
|
25
23
|
### Component Overview
|
|
26
24
|
|
|
27
25
|
{{#EACH COMPONENT}}
|
|
26
|
+
|
|
28
27
|
#### {{COMPONENT_NAME}}
|
|
29
28
|
|
|
30
29
|
**Purpose:** {{COMPONENT_PURPOSE}}
|
|
31
30
|
|
|
32
31
|
**Responsibilities:**
|
|
33
32
|
{{#EACH RESPONSIBILITY}}
|
|
33
|
+
|
|
34
34
|
- {{RESPONSIBILITY_DESCRIPTION}}
|
|
35
|
-
{{/EACH}}
|
|
35
|
+
{{/EACH}}
|
|
36
36
|
|
|
37
37
|
**Dependencies:**
|
|
38
38
|
{{#EACH DEPENDENCY}}
|
|
39
|
-
- {{DEPENDENCY_NAME}}
|
|
40
|
-
{{/EACH}}
|
|
41
39
|
|
|
42
|
-
{{
|
|
40
|
+
- {{DEPENDENCY_NAME}}
|
|
41
|
+
{{/EACH}}
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
## {{/EACH}}
|
|
45
44
|
|
|
46
45
|
## 📊 Layer Structure
|
|
47
46
|
|
|
48
47
|
{{#IF LAYERED_ARCHITECTURE}}
|
|
48
|
+
|
|
49
49
|
### Presentation Layer
|
|
50
|
+
|
|
50
51
|
**Location:** `{{PRESENTATION_LAYER_PATH}}`
|
|
51
52
|
|
|
52
53
|
**Responsibilities:**
|
|
54
|
+
|
|
53
55
|
- HTTP request/response handling
|
|
54
56
|
- Input validation
|
|
55
57
|
- Route definitions
|
|
56
58
|
- Middleware integration
|
|
57
59
|
|
|
58
60
|
**Rules:**
|
|
61
|
+
|
|
59
62
|
- ❌ No business logic
|
|
60
63
|
- ❌ No direct database access
|
|
61
64
|
- ✅ Thin controllers
|
|
62
65
|
- ✅ Delegate to services
|
|
63
66
|
|
|
64
67
|
### Business Logic Layer
|
|
68
|
+
|
|
65
69
|
**Location:** `{{BUSINESS_LAYER_PATH}}`
|
|
66
70
|
|
|
67
71
|
**Responsibilities:**
|
|
72
|
+
|
|
68
73
|
- Core business rules
|
|
69
74
|
- Use case orchestration
|
|
70
75
|
- Transaction management
|
|
71
76
|
- Domain logic
|
|
72
77
|
|
|
73
78
|
**Rules:**
|
|
79
|
+
|
|
74
80
|
- ❌ No HTTP concerns
|
|
75
81
|
- ❌ No database-specific code
|
|
76
82
|
- ✅ Framework-agnostic
|
|
77
83
|
- ✅ Testable in isolation
|
|
78
84
|
|
|
79
85
|
### Data Access Layer
|
|
86
|
+
|
|
80
87
|
**Location:** `{{DATA_LAYER_PATH}}`
|
|
81
88
|
|
|
82
89
|
**Responsibilities:**
|
|
90
|
+
|
|
83
91
|
- Database operations
|
|
84
92
|
- Query construction
|
|
85
93
|
- Data mapping
|
|
86
94
|
- Cache management
|
|
87
95
|
|
|
88
96
|
**Rules:**
|
|
97
|
+
|
|
89
98
|
- ❌ No business logic
|
|
90
99
|
- ✅ Repository pattern
|
|
91
100
|
- ✅ ORM abstraction
|
|
92
101
|
- ✅ Transaction support
|
|
93
102
|
|
|
94
|
-
{{/IF}}
|
|
95
|
-
|
|
96
|
-
---
|
|
103
|
+
## {{/IF}}
|
|
97
104
|
|
|
98
105
|
## 🔄 Request Flow
|
|
99
106
|
|
|
@@ -107,16 +114,18 @@
|
|
|
107
114
|
|
|
108
115
|
{{#EACH FLOW_STEP}}
|
|
109
116
|
{{STEP_NUMBER}}. **{{STEP_NAME}}**
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
{{
|
|
117
|
+
|
|
118
|
+
- Component: {{COMPONENT}}
|
|
119
|
+
- Action: {{ACTION_DESCRIPTION}}
|
|
120
|
+
- Output: {{OUTPUT}}
|
|
121
|
+
{{/EACH}}
|
|
114
122
|
|
|
115
123
|
---
|
|
116
124
|
|
|
117
125
|
## 🎯 Design Patterns
|
|
118
126
|
|
|
119
127
|
{{#EACH DESIGN_PATTERN}}
|
|
128
|
+
|
|
120
129
|
### {{PATTERN_NAME}}
|
|
121
130
|
|
|
122
131
|
**Purpose:** {{PATTERN_PURPOSE}}
|
|
@@ -124,13 +133,12 @@
|
|
|
124
133
|
**Used In:** {{PATTERN_USAGE}}
|
|
125
134
|
|
|
126
135
|
**Example:**
|
|
136
|
+
|
|
127
137
|
```{{LANGUAGE}}
|
|
128
138
|
{{PATTERN_EXAMPLE}}
|
|
129
139
|
```
|
|
130
140
|
|
|
131
|
-
{{/EACH}}
|
|
132
|
-
|
|
133
|
-
---
|
|
141
|
+
## {{/EACH}}
|
|
134
142
|
|
|
135
143
|
## 📁 Project Structure
|
|
136
144
|
|
|
@@ -141,8 +149,9 @@
|
|
|
141
149
|
### Directory Descriptions
|
|
142
150
|
|
|
143
151
|
{{#EACH DIRECTORY}}
|
|
152
|
+
|
|
144
153
|
- **`{{DIR_PATH}}`** - {{DIR_DESCRIPTION}}
|
|
145
|
-
{{/EACH}}
|
|
154
|
+
{{/EACH}}
|
|
146
155
|
|
|
147
156
|
---
|
|
148
157
|
|
|
@@ -151,6 +160,7 @@
|
|
|
151
160
|
**Strategy:** {{MODULE_ORGANIZATION_STRATEGY}}
|
|
152
161
|
|
|
153
162
|
{{#IF FEATURE_BASED}}
|
|
163
|
+
|
|
154
164
|
### Feature Modules
|
|
155
165
|
|
|
156
166
|
Each feature is self-contained:
|
|
@@ -168,6 +178,7 @@ src/
|
|
|
168
178
|
```
|
|
169
179
|
|
|
170
180
|
**Benefits:**
|
|
181
|
+
|
|
171
182
|
- Clear boundaries
|
|
172
183
|
- Easy to find related code
|
|
173
184
|
- Supports team ownership
|
|
@@ -176,6 +187,7 @@ src/
|
|
|
176
187
|
{{/IF}}
|
|
177
188
|
|
|
178
189
|
{{#IF LAYER_BASED}}
|
|
190
|
+
|
|
179
191
|
### Layer-Based Organization
|
|
180
192
|
|
|
181
193
|
Organized by technical layer:
|
|
@@ -190,9 +202,7 @@ src/
|
|
|
190
202
|
{{ENTITY_EXAMPLE}}.repository.ts
|
|
191
203
|
```
|
|
192
204
|
|
|
193
|
-
{{/IF}}
|
|
194
|
-
|
|
195
|
-
---
|
|
205
|
+
## {{/IF}}
|
|
196
206
|
|
|
197
207
|
## 🔗 Dependency Management
|
|
198
208
|
|
|
@@ -201,11 +211,13 @@ src/
|
|
|
201
211
|
**Container:** {{DI_CONTAINER}}
|
|
202
212
|
|
|
203
213
|
**Registration:**
|
|
214
|
+
|
|
204
215
|
```{{LANGUAGE}}
|
|
205
216
|
{{DI_REGISTRATION_EXAMPLE}}
|
|
206
217
|
```
|
|
207
218
|
|
|
208
219
|
**Usage:**
|
|
220
|
+
|
|
209
221
|
```{{LANGUAGE}}
|
|
210
222
|
{{DI_USAGE_EXAMPLE}}
|
|
211
223
|
```
|
|
@@ -236,6 +248,7 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
236
248
|
**Purpose:** {{API_GATEWAY_PURPOSE}}
|
|
237
249
|
|
|
238
250
|
**Configuration:**
|
|
251
|
+
|
|
239
252
|
- Rate limiting: {{GATEWAY_RATE_LIMITING}}
|
|
240
253
|
- Authentication: {{GATEWAY_AUTHENTICATION}}
|
|
241
254
|
- Request routing: {{GATEWAY_ROUTING}}
|
|
@@ -243,8 +256,9 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
243
256
|
|
|
244
257
|
**Routes:**
|
|
245
258
|
{{#EACH GATEWAY_ROUTE}}
|
|
259
|
+
|
|
246
260
|
- **{{ROUTE_PATH}}** → {{TARGET_SERVICE}} ({{ROUTE_METHODS}})
|
|
247
|
-
{{/EACH}}
|
|
261
|
+
{{/EACH}}
|
|
248
262
|
|
|
249
263
|
{{ELSE}}
|
|
250
264
|
**API Gateway:** Not used - Direct API access
|
|
@@ -256,6 +270,7 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
256
270
|
|
|
257
271
|
{{#IF SWAGGER_OPENAPI}}
|
|
258
272
|
**Swagger/OpenAPI:**
|
|
273
|
+
|
|
259
274
|
- Specification: `{{OPENAPI_SPEC_PATH}}`
|
|
260
275
|
- UI endpoint: `{{SWAGGER_UI_URL}}`
|
|
261
276
|
- Strategy: {{API_DOC_STRATEGY}} ({{#IF CODE_FIRST}}Code-First{{ELSE}}Design-First{{/IF}})
|
|
@@ -264,82 +279,128 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
264
279
|
|
|
265
280
|
{{#IF AUTO_GENERATE_DOCS}}
|
|
266
281
|
**Example:**
|
|
282
|
+
|
|
267
283
|
```{{LANGUAGE}}
|
|
268
284
|
{{API_DOC_EXAMPLE}}
|
|
269
285
|
```
|
|
286
|
+
|
|
270
287
|
{{/IF}}
|
|
271
288
|
{{/IF}}
|
|
272
289
|
|
|
273
290
|
### Endpoint Patterns
|
|
274
291
|
|
|
275
292
|
{{#IF REST_API}}
|
|
293
|
+
|
|
276
294
|
#### REST Conventions
|
|
277
295
|
|
|
278
|
-
| Resource
|
|
279
|
-
|
|
280
|
-
| {{RESOURCE_NAME}} | GET
|
|
281
|
-
| {{RESOURCE_NAME}} | GET
|
|
282
|
-
| {{RESOURCE_NAME}} | POST
|
|
283
|
-
| {{RESOURCE_NAME}} | PUT/PATCH | /{{API_VERSION}}/{{RESOURCE_PLURAL}}/:id | Update
|
|
284
|
-
| {{RESOURCE_NAME}} | DELETE
|
|
296
|
+
| Resource | Method | Endpoint | Description |
|
|
297
|
+
| ----------------- | --------- | ---------------------------------------- | ----------- |
|
|
298
|
+
| {{RESOURCE_NAME}} | GET | /{{API_VERSION}}/{{RESOURCE_PLURAL}} | List all |
|
|
299
|
+
| {{RESOURCE_NAME}} | GET | /{{API_VERSION}}/{{RESOURCE_PLURAL}}/:id | Get one |
|
|
300
|
+
| {{RESOURCE_NAME}} | POST | /{{API_VERSION}}/{{RESOURCE_PLURAL}} | Create |
|
|
301
|
+
| {{RESOURCE_NAME}} | PUT/PATCH | /{{API_VERSION}}/{{RESOURCE_PLURAL}}/:id | Update |
|
|
302
|
+
| {{RESOURCE_NAME}} | DELETE | /{{API_VERSION}}/{{RESOURCE_PLURAL}}/:id | Delete |
|
|
285
303
|
|
|
286
304
|
{{/IF}}
|
|
287
305
|
|
|
288
306
|
{{#IF GRAPHQL}}
|
|
307
|
+
|
|
289
308
|
#### GraphQL Schema
|
|
290
309
|
|
|
291
310
|
```graphql
|
|
292
311
|
{{GRAPHQL_SCHEMA_EXAMPLE}}
|
|
293
312
|
```
|
|
294
313
|
|
|
295
|
-
{{/IF}}
|
|
296
|
-
|
|
297
|
-
---
|
|
314
|
+
## {{/IF}}
|
|
298
315
|
|
|
299
316
|
## 📦 External Dependencies
|
|
300
317
|
|
|
301
318
|
### Core Libraries
|
|
302
319
|
|
|
303
320
|
{{#EACH CORE_LIBRARY}}
|
|
321
|
+
|
|
304
322
|
- **{{LIBRARY_NAME}}** ({{LIBRARY_VERSION}})
|
|
305
323
|
- Purpose: {{LIBRARY_PURPOSE}}
|
|
306
324
|
- Critical: {{IS_CRITICAL}}
|
|
307
|
-
{{/EACH}}
|
|
325
|
+
{{/EACH}}
|
|
308
326
|
|
|
309
327
|
### External Services
|
|
310
328
|
|
|
311
329
|
{{#EACH EXTERNAL_SERVICE}}
|
|
330
|
+
|
|
312
331
|
- **{{SERVICE_NAME}}**
|
|
313
332
|
- Purpose: {{SERVICE_PURPOSE}}
|
|
314
333
|
- Integration: {{INTEGRATION_METHOD}}
|
|
315
334
|
- Fallback: {{FALLBACK_STRATEGY}}
|
|
335
|
+
{{/EACH}}
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## ⚙️ Background Processing
|
|
340
|
+
|
|
341
|
+
{{#IF BACKGROUND_JOBS_ENABLED}}
|
|
342
|
+
**Queue System:** {{QUEUE_SYSTEM}}
|
|
343
|
+
|
|
344
|
+
**Job Types:**
|
|
345
|
+
{{#EACH JOB_TYPE}}
|
|
346
|
+
|
|
347
|
+
### {{JOB_NAME}}
|
|
348
|
+
|
|
349
|
+
- **Purpose:** {{JOB_PURPOSE}}
|
|
350
|
+
- **Trigger:** {{JOB_TRIGGER}}
|
|
351
|
+
- **Priority:** {{JOB_PRIORITY}}
|
|
352
|
+
- **Retry Strategy:** {{JOB_RETRY_STRATEGY}}
|
|
353
|
+
- **Timeout:** {{JOB_TIMEOUT}}
|
|
354
|
+
|
|
316
355
|
{{/EACH}}
|
|
317
356
|
|
|
357
|
+
**Dead Letter Queue:** {{#IF DLQ_ENABLED}}Enabled{{ELSE}}Disabled{{/IF}}
|
|
358
|
+
|
|
359
|
+
**Monitoring:**
|
|
360
|
+
|
|
361
|
+
- Dashboard: {{QUEUE_DASHBOARD}}
|
|
362
|
+
- Alerts: {{QUEUE_ALERTS}}
|
|
363
|
+
|
|
364
|
+
**Example:**
|
|
365
|
+
|
|
366
|
+
```{{LANGUAGE}}
|
|
367
|
+
{{BACKGROUND_JOB_EXAMPLE}}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
{{ELSE}}
|
|
371
|
+
**Background Processing:** Not implemented - All operations are synchronous
|
|
372
|
+
{{/IF}}
|
|
373
|
+
|
|
318
374
|
---
|
|
319
375
|
|
|
320
376
|
## 🔌 Real-time Communication
|
|
321
377
|
|
|
322
378
|
{{#IF REALTIME_ENABLED}}
|
|
379
|
+
|
|
323
380
|
### WebSockets
|
|
324
381
|
|
|
325
382
|
**Enabled:** Yes
|
|
326
383
|
|
|
327
384
|
**Use Cases:**
|
|
328
385
|
{{#EACH WEBSOCKET_USE_CASE}}
|
|
386
|
+
|
|
329
387
|
- {{USE_CASE_DESCRIPTION}}
|
|
330
|
-
{{/EACH}}
|
|
388
|
+
{{/EACH}}
|
|
331
389
|
|
|
332
390
|
**Implementation:**
|
|
391
|
+
|
|
333
392
|
- Library: {{WEBSOCKET_LIBRARY}}
|
|
334
393
|
- Protocol: {{WEBSOCKET_PROTOCOL}}
|
|
335
394
|
- Authentication: {{WEBSOCKET_AUTH}}
|
|
336
395
|
|
|
337
396
|
**Connection Management:**
|
|
397
|
+
|
|
338
398
|
- Max connections: {{WEBSOCKET_MAX_CONNECTIONS}}
|
|
339
399
|
- Heartbeat interval: {{WEBSOCKET_HEARTBEAT}}s
|
|
340
400
|
- Reconnection strategy: {{WEBSOCKET_RECONNECTION}}
|
|
341
401
|
|
|
342
402
|
**Example:**
|
|
403
|
+
|
|
343
404
|
```{{LANGUAGE}}
|
|
344
405
|
{{WEBSOCKET_EXAMPLE}}
|
|
345
406
|
```
|
|
@@ -351,13 +412,16 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
351
412
|
|
|
352
413
|
**Use Cases:**
|
|
353
414
|
{{#EACH SSE_USE_CASE}}
|
|
415
|
+
|
|
354
416
|
- {{USE_CASE_DESCRIPTION}}
|
|
355
|
-
{{/EACH}}
|
|
417
|
+
{{/EACH}}
|
|
356
418
|
|
|
357
419
|
**Implementation:**
|
|
420
|
+
|
|
358
421
|
```{{LANGUAGE}}
|
|
359
422
|
{{SSE_EXAMPLE}}
|
|
360
423
|
```
|
|
424
|
+
|
|
361
425
|
{{ELSE}}
|
|
362
426
|
**Enabled:** No
|
|
363
427
|
{{/IF}}
|
|
@@ -368,13 +432,54 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
368
432
|
|
|
369
433
|
---
|
|
370
434
|
|
|
371
|
-
##
|
|
435
|
+
## � File Storage
|
|
436
|
+
|
|
437
|
+
{{#IF FILE_STORAGE_ENABLED}}
|
|
438
|
+
**Storage Type:** {{FILE_STORAGE_TYPE}}
|
|
439
|
+
|
|
440
|
+
**Provider:** {{FILE_STORAGE_PROVIDER}}
|
|
441
|
+
|
|
442
|
+
**Configuration:**
|
|
443
|
+
|
|
444
|
+
- Bucket/Container: {{FILE_STORAGE_BUCKET}}
|
|
445
|
+
- Region: {{FILE_STORAGE_REGION}}
|
|
446
|
+
- CDN: {{FILE_CDN_ENABLED}}
|
|
447
|
+
|
|
448
|
+
**Allowed File Types:**
|
|
449
|
+
{{#EACH ALLOWED_FILE_TYPE}}
|
|
450
|
+
|
|
451
|
+
- {{FILE_TYPE}} (max: {{MAX_SIZE}})
|
|
452
|
+
{{/EACH}}
|
|
453
|
+
|
|
454
|
+
**Max File Size:** {{MAX_FILE_SIZE}} MB
|
|
455
|
+
|
|
456
|
+
**Upload Process:**
|
|
457
|
+
|
|
458
|
+
1. Client requests presigned URL / upload endpoint
|
|
459
|
+
2. File uploaded to {{FILE_STORAGE_PROVIDER}}
|
|
460
|
+
3. Metadata stored in database
|
|
461
|
+
4. {{#IF FILE_CDN_ENABLED}}CDN URL returned{{ELSE}}Direct URL returned{{/IF}}
|
|
462
|
+
|
|
463
|
+
**Security:**
|
|
464
|
+
|
|
465
|
+
- Presigned URLs: {{PRESIGNED_URL_EXPIRY}} expiry
|
|
466
|
+
- Access control: {{FILE_ACCESS_CONTROL}}
|
|
467
|
+
- Virus scanning: {{VIRUS_SCANNING_ENABLED}}
|
|
468
|
+
|
|
469
|
+
{{ELSE}}
|
|
470
|
+
**File Storage:** Not implemented
|
|
471
|
+
{{/IF}}
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## �📨 Message Broker Patterns
|
|
372
476
|
|
|
373
477
|
{{#IF MESSAGE_BROKER}}
|
|
374
478
|
**Broker:** {{MESSAGE_BROKER_NAME}}
|
|
375
479
|
|
|
376
480
|
**Patterns Used:**
|
|
377
481
|
{{#EACH MESSAGE_PATTERN}}
|
|
482
|
+
|
|
378
483
|
### {{PATTERN_NAME}}
|
|
379
484
|
|
|
380
485
|
**Type:** {{PATTERN_TYPE}} ({{#IF PUB_SUB}}Pub/Sub{{ELSE}}Queue{{/IF}})
|
|
@@ -383,15 +488,17 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
383
488
|
|
|
384
489
|
**Topics/Queues:**
|
|
385
490
|
{{#EACH TOPIC_QUEUE}}
|
|
491
|
+
|
|
386
492
|
- **{{NAME}}**: {{DESCRIPTION}}
|
|
387
493
|
- Producers: {{PRODUCERS}}
|
|
388
494
|
- Consumers: {{CONSUMERS}}
|
|
389
495
|
- Retention: {{RETENTION}}
|
|
390
|
-
{{/EACH}}
|
|
496
|
+
{{/EACH}}
|
|
391
497
|
|
|
392
498
|
**Delivery Guarantees:** {{DELIVERY_GUARANTEES}} ({{#IF AT_LEAST_ONCE}}At-least-once{{ELSE}}{{#IF EXACTLY_ONCE}}Exactly-once{{ELSE}}At-most-once{{/IF}}{{/IF}})
|
|
393
499
|
|
|
394
500
|
**Implementation:**
|
|
501
|
+
|
|
395
502
|
```{{LANGUAGE}}
|
|
396
503
|
{{PATTERN_EXAMPLE}}
|
|
397
504
|
```
|
|
@@ -399,6 +506,7 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
399
506
|
{{/EACH}}
|
|
400
507
|
|
|
401
508
|
**Error Handling:**
|
|
509
|
+
|
|
402
510
|
- Dead letter queue: {{#IF DLQ_ENABLED}}Enabled{{ELSE}}Disabled{{/IF}}
|
|
403
511
|
- Retry strategy: {{RETRY_STRATEGY}}
|
|
404
512
|
- Max retries: {{MAX_RETRIES}}
|
|
@@ -417,6 +525,7 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
417
525
|
**Purpose:** {{SERVICE_MESH_PURPOSE}}
|
|
418
526
|
|
|
419
527
|
**Features:**
|
|
528
|
+
|
|
420
529
|
- Service discovery: {{SERVICE_DISCOVERY}}
|
|
421
530
|
- Load balancing: {{MESH_LOAD_BALANCING}}
|
|
422
531
|
- Traffic management: {{TRAFFIC_MANAGEMENT}}
|
|
@@ -424,8 +533,9 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
424
533
|
- Observability: {{MESH_OBSERVABILITY}}
|
|
425
534
|
|
|
426
535
|
**Configuration:**
|
|
536
|
+
|
|
427
537
|
```yaml
|
|
428
|
-
{{SERVICE_MESH_CONFIG_EXAMPLE}}
|
|
538
|
+
{ { SERVICE_MESH_CONFIG_EXAMPLE } }
|
|
429
539
|
```
|
|
430
540
|
|
|
431
541
|
{{ELSE}}
|
|
@@ -446,9 +556,7 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
446
556
|
|
|
447
557
|
**Type:** {{AUTHORIZATION_MODEL}}
|
|
448
558
|
|
|
449
|
-
**Implementation:** See `specs/security.md` for details.
|
|
450
|
-
|
|
451
|
-
---
|
|
559
|
+
## **Implementation:** See `specs/security.md` for details.
|
|
452
560
|
|
|
453
561
|
## 💾 Data Flow
|
|
454
562
|
|
|
@@ -487,8 +595,9 @@ Not Allowed: Controller → Repository (bypasses service)
|
|
|
487
595
|
|
|
488
596
|
**What We Cache:**
|
|
489
597
|
{{#EACH CACHED_ITEM}}
|
|
598
|
+
|
|
490
599
|
- {{ITEM_DESCRIPTION}} (TTL: {{TTL}})
|
|
491
|
-
{{/EACH}}
|
|
600
|
+
{{/EACH}}
|
|
492
601
|
|
|
493
602
|
**Invalidation:**
|
|
494
603
|
{{CACHE_INVALIDATION_STRATEGY}}
|
|
@@ -500,8 +609,9 @@ No caching implemented yet.
|
|
|
500
609
|
### Database Optimization
|
|
501
610
|
|
|
502
611
|
{{#EACH DB_OPTIMIZATION}}
|
|
612
|
+
|
|
503
613
|
- {{OPTIMIZATION_DESCRIPTION}}
|
|
504
|
-
{{/EACH}}
|
|
614
|
+
{{/EACH}}
|
|
505
615
|
|
|
506
616
|
---
|
|
507
617
|
|
|
@@ -511,10 +621,12 @@ No caching implemented yet.
|
|
|
511
621
|
|
|
512
622
|
**Configuration Loaded From:**
|
|
513
623
|
{{#EACH CONFIG_SOURCE}}
|
|
624
|
+
|
|
514
625
|
- {{CONFIG_SOURCE_DESCRIPTION}}
|
|
515
|
-
{{/EACH}}
|
|
626
|
+
{{/EACH}}
|
|
516
627
|
|
|
517
628
|
**Per Environment:**
|
|
629
|
+
|
|
518
630
|
- Development: {{DEV_CONFIG}}
|
|
519
631
|
- Staging: {{STAGING_CONFIG}}
|
|
520
632
|
- Production: {{PROD_CONFIG}}
|
|
@@ -542,6 +654,7 @@ No caching implemented yet.
|
|
|
542
654
|
**Strategy:** See `docs/testing.md`
|
|
543
655
|
|
|
544
656
|
**Testability Features:**
|
|
657
|
+
|
|
545
658
|
- Dependency injection enables mocking
|
|
546
659
|
- Services isolated from framework
|
|
547
660
|
- Repository pattern abstracts database
|
|
@@ -562,8 +675,9 @@ No caching implemented yet.
|
|
|
562
675
|
### Bottlenecks
|
|
563
676
|
|
|
564
677
|
{{#EACH BOTTLENECK}}
|
|
678
|
+
|
|
565
679
|
- **{{BOTTLENECK_NAME}}**: {{MITIGATION_STRATEGY}}
|
|
566
|
-
{{/EACH}}
|
|
680
|
+
{{/EACH}}
|
|
567
681
|
|
|
568
682
|
---
|
|
569
683
|
|
|
@@ -573,9 +687,7 @@ See `docs/operations.md` for full deployment details.
|
|
|
573
687
|
|
|
574
688
|
**Deployment Model:** {{DEPLOYMENT_MODEL}}
|
|
575
689
|
|
|
576
|
-
**Infrastructure:** {{INFRASTRUCTURE}}
|
|
577
|
-
|
|
578
|
-
---
|
|
690
|
+
## **Infrastructure:** {{INFRASTRUCTURE}}
|
|
579
691
|
|
|
580
692
|
## 📚 Architecture Decision Records (ADRs)
|
|
581
693
|
|
|
@@ -583,8 +695,9 @@ See `docs/operations.md` for full deployment details.
|
|
|
583
695
|
Location: `specs/adr/`
|
|
584
696
|
|
|
585
697
|
{{#EACH ADR}}
|
|
698
|
+
|
|
586
699
|
- [ADR-{{ADR_NUMBER}}: {{ADR_TITLE}}](../specs/adr/{{ADR_FILE}})
|
|
587
|
-
{{/EACH}}
|
|
700
|
+
{{/EACH}}
|
|
588
701
|
|
|
589
702
|
{{ELSE}}
|
|
590
703
|
ADRs will be added as significant architectural decisions are made.
|
|
@@ -595,15 +708,14 @@ ADRs will be added as significant architectural decisions are made.
|
|
|
595
708
|
## 🔄 Future Considerations
|
|
596
709
|
|
|
597
710
|
{{#EACH FUTURE_CONSIDERATION}}
|
|
711
|
+
|
|
598
712
|
### {{CONSIDERATION_TITLE}}
|
|
599
713
|
|
|
600
714
|
{{CONSIDERATION_DESCRIPTION}}
|
|
601
715
|
|
|
602
716
|
**When:** {{CONSIDERATION_TIMELINE}}
|
|
603
717
|
|
|
604
|
-
{{/EACH}}
|
|
605
|
-
|
|
606
|
-
---
|
|
718
|
+
## {{/EACH}}
|
|
607
719
|
|
|
608
720
|
**Document Version:** 1.0
|
|
609
721
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
# Business Process Flows
|
|
2
2
|
|
|
3
3
|
> Documentation of end-to-end business processes for {{PROJECT_NAME}}
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
4
|
+
---
|
|
7
5
|
## 📚 Flow Inventory
|
|
8
6
|
|
|
9
7
|
{{#EACH FLOW}}
|
|
@@ -69,8 +67,7 @@
|
|
|
69
67
|
{{#EACH FLOW_AUTOMATION}}
|
|
70
68
|
- {{AUTOMATION_IDEA}}
|
|
71
69
|
{{/EACH}}
|
|
72
|
-
|
|
73
|
-
---
|
|
70
|
+
---
|
|
74
71
|
{{/EACH}}
|
|
75
72
|
|
|
76
73
|
## 📊 Metrics & KPIs
|
|
@@ -78,9 +75,7 @@
|
|
|
78
75
|
{{#EACH FLOW_METRIC}}
|
|
79
76
|
- **{{METRIC_NAME}}** — Target: {{METRIC_TARGET}} — Source: {{METRIC_SOURCE}}
|
|
80
77
|
{{/EACH}}
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
78
|
+
---
|
|
84
79
|
## 🧭 RACI Summary
|
|
85
80
|
|
|
86
81
|
| Role | Responsible | Accountable | Consulted | Informed |
|
|
@@ -88,9 +83,7 @@
|
|
|
88
83
|
{{#EACH FLOW_RACI}}
|
|
89
84
|
| {{RACI_ROLE}} | {{RACI_RESPONSIBLE}} | {{RACI_ACCOUNTABLE}} | {{RACI_CONSULTED}} | {{RACI_INFORMED}} |
|
|
90
85
|
{{/EACH}}
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
86
|
+
---
|
|
94
87
|
## 🔄 Continuous Improvement Backlog
|
|
95
88
|
|
|
96
89
|
{{#EACH FLOW_IMPROVEMENT}}
|
|
@@ -99,11 +92,11 @@
|
|
|
99
92
|
- Owner: {{IMPROVEMENT_OWNER}}
|
|
100
93
|
- Target Date: {{IMPROVEMENT_TARGET_DATE}}
|
|
101
94
|
{{/EACH}}
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
95
|
+
---
|
|
105
96
|
**Document Version:** 1.0
|
|
106
97
|
|
|
107
98
|
**Last Updated:** {{GENERATION_DATE}}
|
|
108
99
|
|
|
109
100
|
**Generated by:** AI Flow v1.0.0
|
|
101
|
+
|
|
102
|
+
|