ai-flow-dev 2.1.3 → 2.1.5
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 +25 -38
- package/dist/cli.js +68 -46
- package/dist/cli.js.map +1 -1
- package/package.json +5 -5
- package/prompts/backend/flow-build-phase-0.md +31 -63
- package/prompts/backend/flow-build-phase-1.md +9 -17
- package/prompts/backend/flow-build-phase-10.md +199 -585
- 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 +120 -40
- 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 +20 -196
- 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 +14 -35
- 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 +13 -32
- 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
|
@@ -14,11 +14,51 @@
|
|
|
14
14
|
|
|
15
15
|
**Container:** {{#IF_DOCKER}}Yes - Docker{{ELSE}}No{{/IF_DOCKER}}
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### Deployment Strategy
|
|
18
|
+
|
|
19
|
+
**Strategy:** {{DEPLOYMENT_STRATEGY}}
|
|
20
|
+
|
|
21
|
+
{{#IF BLUE_GREEN}}
|
|
22
|
+
**Blue-Green Deployment:**
|
|
23
|
+
|
|
24
|
+
- Active environment: {{ACTIVE_ENVIRONMENT}}
|
|
25
|
+
- Standby environment: {{STANDBY_ENVIRONMENT}}
|
|
26
|
+
- Switch mechanism: {{SWITCH_MECHANISM}}
|
|
27
|
+
- Rollback time: < {{ROLLBACK_TIME}} seconds
|
|
28
|
+
{{/IF}}
|
|
29
|
+
|
|
30
|
+
{{#IF CANARY}}
|
|
31
|
+
**Canary Deployment:**
|
|
32
|
+
|
|
33
|
+
- Initial canary percentage: {{CANARY_INITIAL_PERCENTAGE}}%
|
|
34
|
+
- Rollout increments: {{CANARY_INCREMENTS}}
|
|
35
|
+
- Success criteria: {{CANARY_SUCCESS_CRITERIA}}
|
|
36
|
+
- Automatic rollback: {{CANARY_AUTO_ROLLBACK}}
|
|
37
|
+
{{/IF}}
|
|
38
|
+
|
|
39
|
+
{{#IF ROLLING}}
|
|
40
|
+
**Rolling Deployment:**
|
|
41
|
+
|
|
42
|
+
- Max unavailable: {{ROLLING_MAX_UNAVAILABLE}}
|
|
43
|
+
- Max surge: {{ROLLING_MAX_SURGE}}
|
|
44
|
+
- Health check: {{ROLLING_HEALTH_CHECK}}
|
|
45
|
+
{{/IF}}
|
|
46
|
+
|
|
47
|
+
### Rollback Plan
|
|
48
|
+
|
|
49
|
+
**Trigger:** {{ROLLBACK_TRIGGER}}
|
|
50
|
+
|
|
51
|
+
**Process:**
|
|
52
|
+
{{#EACH ROLLBACK_STEP}}
|
|
53
|
+
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
54
|
+
{{/EACH}}
|
|
55
|
+
|
|
56
|
+
## **Rollback Time:** < {{ROLLBACK_TARGET_TIME}} minutes
|
|
18
57
|
|
|
19
58
|
## 🌍 Environments
|
|
20
59
|
|
|
21
60
|
{{#EACH ENVIRONMENT}}
|
|
61
|
+
|
|
22
62
|
### {{ENV_NAME}}
|
|
23
63
|
|
|
24
64
|
**Purpose:** {{ENV_PURPOSE}}
|
|
@@ -30,13 +70,12 @@
|
|
|
30
70
|
**Auto-deploy:** {{ENV_AUTO_DEPLOY}}
|
|
31
71
|
|
|
32
72
|
**Configuration:**
|
|
73
|
+
|
|
33
74
|
```bash
|
|
34
75
|
{{ENV_CONFIG}}
|
|
35
76
|
```
|
|
36
77
|
|
|
37
|
-
{{/EACH}}
|
|
38
|
-
|
|
39
|
-
---
|
|
78
|
+
## {{/EACH}}
|
|
40
79
|
|
|
41
80
|
## 📦 Build & Deploy
|
|
42
81
|
|
|
@@ -52,14 +91,17 @@
|
|
|
52
91
|
|
|
53
92
|
{{#EACH DEPLOYMENT_STEP}}
|
|
54
93
|
{{STEP_NUMBER}}. **{{STEP_TITLE}}**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
{{STEP_COMMAND}}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
{{STEP_DESCRIPTION}}
|
|
59
100
|
|
|
60
101
|
{{/EACH}}
|
|
61
102
|
|
|
62
103
|
{{#IF_DOCKER}}
|
|
104
|
+
|
|
63
105
|
### Docker
|
|
64
106
|
|
|
65
107
|
**Dockerfile:** `{{DOCKERFILE_PATH}}`
|
|
@@ -69,23 +111,24 @@
|
|
|
69
111
|
```
|
|
70
112
|
|
|
71
113
|
**Build Image:**
|
|
114
|
+
|
|
72
115
|
```bash
|
|
73
116
|
{{DOCKER_BUILD_COMMAND}}
|
|
74
117
|
```
|
|
75
118
|
|
|
76
119
|
**Run Container:**
|
|
120
|
+
|
|
77
121
|
```bash
|
|
78
122
|
{{DOCKER_RUN_COMMAND}}
|
|
79
123
|
```
|
|
80
124
|
|
|
81
125
|
**Docker Compose:**
|
|
126
|
+
|
|
82
127
|
```yaml
|
|
83
|
-
{{DOCKER_COMPOSE_EXAMPLE}}
|
|
128
|
+
{ { DOCKER_COMPOSE_EXAMPLE } }
|
|
84
129
|
```
|
|
85
130
|
|
|
86
|
-
{{/IF_DOCKER}}
|
|
87
|
-
|
|
88
|
-
---
|
|
131
|
+
## {{/IF_DOCKER}}
|
|
89
132
|
|
|
90
133
|
## 🔄 CI/CD Pipeline
|
|
91
134
|
|
|
@@ -97,16 +140,17 @@
|
|
|
97
140
|
|
|
98
141
|
{{#EACH PIPELINE_STAGE}}
|
|
99
142
|
{{STAGE_NUMBER}}. **{{STAGE_NAME}}**
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
143
|
+
|
|
144
|
+
- {{STAGE_DESCRIPTION}}
|
|
145
|
+
- Duration: ~{{STAGE_DURATION}}
|
|
146
|
+
- Fails if: {{STAGE_FAILURE_CONDITION}}
|
|
103
147
|
|
|
104
148
|
{{/EACH}}
|
|
105
149
|
|
|
106
150
|
### Pipeline Configuration
|
|
107
151
|
|
|
108
152
|
```yaml
|
|
109
|
-
{{CICD_CONFIG_EXAMPLE}}
|
|
153
|
+
{ { CICD_CONFIG_EXAMPLE } }
|
|
110
154
|
```
|
|
111
155
|
|
|
112
156
|
---
|
|
@@ -119,8 +163,9 @@
|
|
|
119
163
|
|
|
120
164
|
**Metrics Tracked:**
|
|
121
165
|
{{#EACH METRIC}}
|
|
166
|
+
|
|
122
167
|
- **{{METRIC_NAME}}**: {{METRIC_DESCRIPTION}} (threshold: {{METRIC_THRESHOLD}})
|
|
123
|
-
{{/EACH}}
|
|
168
|
+
{{/EACH}}
|
|
124
169
|
|
|
125
170
|
**Dashboard:** {{APM_DASHBOARD_URL}}
|
|
126
171
|
|
|
@@ -132,15 +177,18 @@
|
|
|
132
177
|
|
|
133
178
|
**Log Levels:**
|
|
134
179
|
{{#EACH LOG_LEVEL}}
|
|
180
|
+
|
|
135
181
|
- **{{LEVEL_NAME}}**: {{LEVEL_USAGE}}
|
|
136
|
-
{{/EACH}}
|
|
182
|
+
{{/EACH}}
|
|
137
183
|
|
|
138
184
|
**Example Log Entry:**
|
|
185
|
+
|
|
139
186
|
```json
|
|
140
187
|
{{LOG_ENTRY_EXAMPLE}}
|
|
141
188
|
```
|
|
142
189
|
|
|
143
190
|
**Viewing Logs:**
|
|
191
|
+
|
|
144
192
|
```bash
|
|
145
193
|
{{VIEW_LOGS_COMMAND}}
|
|
146
194
|
```
|
|
@@ -148,6 +196,7 @@
|
|
|
148
196
|
### Metrics
|
|
149
197
|
|
|
150
198
|
{{#EACH TRACKED_METRIC}}
|
|
199
|
+
|
|
151
200
|
#### {{METRIC_NAME}}
|
|
152
201
|
|
|
153
202
|
**Description:** {{METRIC_DESCRIPTION}}
|
|
@@ -156,21 +205,21 @@
|
|
|
156
205
|
|
|
157
206
|
**Alert:** {{METRIC_ALERT_CONDITION}}
|
|
158
207
|
|
|
159
|
-
{{/EACH}}
|
|
160
|
-
|
|
161
|
-
---
|
|
208
|
+
## {{/EACH}}
|
|
162
209
|
|
|
163
210
|
## 🚨 Alerting
|
|
164
211
|
|
|
165
212
|
### Alert Channels
|
|
166
213
|
|
|
167
214
|
{{#EACH ALERT_CHANNEL}}
|
|
215
|
+
|
|
168
216
|
- **{{CHANNEL_NAME}}**: {{CHANNEL_PURPOSE}}
|
|
169
|
-
{{/EACH}}
|
|
217
|
+
{{/EACH}}
|
|
170
218
|
|
|
171
219
|
### Alert Rules
|
|
172
220
|
|
|
173
221
|
{{#EACH ALERT_RULE}}
|
|
222
|
+
|
|
174
223
|
#### {{ALERT_NAME}}
|
|
175
224
|
|
|
176
225
|
**Condition:** {{ALERT_CONDITION}}
|
|
@@ -181,9 +230,7 @@
|
|
|
181
230
|
|
|
182
231
|
**Action:** {{ALERT_ACTION}}
|
|
183
232
|
|
|
184
|
-
{{/EACH}}
|
|
185
|
-
|
|
186
|
-
---
|
|
233
|
+
## {{/EACH}}
|
|
187
234
|
|
|
188
235
|
## 🔧 Configuration
|
|
189
236
|
|
|
@@ -191,15 +238,18 @@
|
|
|
191
238
|
|
|
192
239
|
**Required:**
|
|
193
240
|
{{#EACH REQUIRED_ENV_VAR}}
|
|
241
|
+
|
|
194
242
|
- `{{VAR_NAME}}` - {{VAR_DESCRIPTION}}
|
|
195
|
-
{{/EACH}}
|
|
243
|
+
{{/EACH}}
|
|
196
244
|
|
|
197
245
|
**Optional:**
|
|
198
246
|
{{#EACH OPTIONAL_ENV_VAR}}
|
|
247
|
+
|
|
199
248
|
- `{{VAR_NAME}}` - {{VAR_DESCRIPTION}} (default: {{VAR_DEFAULT}})
|
|
200
|
-
{{/EACH}}
|
|
249
|
+
{{/EACH}}
|
|
201
250
|
|
|
202
251
|
**Per Environment:**
|
|
252
|
+
|
|
203
253
|
```bash
|
|
204
254
|
# Development
|
|
205
255
|
{{DEV_ENV_VARS}}
|
|
@@ -249,6 +299,7 @@
|
|
|
249
299
|
{{/IF}}
|
|
250
300
|
|
|
251
301
|
**Migration Windows:**
|
|
302
|
+
|
|
252
303
|
- Preferred time: {{MIGRATION_WINDOW_TIME}}
|
|
253
304
|
- Duration: {{MIGRATION_WINDOW_DURATION}}
|
|
254
305
|
- Notification: {{MIGRATION_NOTIFICATION}}
|
|
@@ -260,6 +311,7 @@
|
|
|
260
311
|
**Tool:** {{CONNECTION_POOL_TOOL}}
|
|
261
312
|
|
|
262
313
|
**Settings:**
|
|
314
|
+
|
|
263
315
|
- Min connections: {{POOL_MIN_CONNECTIONS}}
|
|
264
316
|
- Max connections: {{POOL_MAX_CONNECTIONS}}
|
|
265
317
|
- Connection timeout: {{POOL_CONNECTION_TIMEOUT}}ms
|
|
@@ -267,11 +319,13 @@
|
|
|
267
319
|
- Max lifetime: {{POOL_MAX_LIFETIME}}ms
|
|
268
320
|
|
|
269
321
|
**Configuration:**
|
|
322
|
+
|
|
270
323
|
```{{LANGUAGE}}
|
|
271
324
|
{{CONNECTION_POOL_CONFIG_EXAMPLE}}
|
|
272
325
|
```
|
|
273
326
|
|
|
274
327
|
**Monitoring:**
|
|
328
|
+
|
|
275
329
|
- Active connections: {{POOL_MONITORING_ACTIVE}}
|
|
276
330
|
- Idle connections: {{POOL_MONITORING_IDLE}}
|
|
277
331
|
- Wait time: {{POOL_MONITORING_WAIT}}
|
|
@@ -286,11 +340,13 @@
|
|
|
286
340
|
**Location:** {{BACKUP_LOCATION}}
|
|
287
341
|
|
|
288
342
|
**Backup Command:**
|
|
343
|
+
|
|
289
344
|
```bash
|
|
290
345
|
{{BACKUP_COMMAND}}
|
|
291
346
|
```
|
|
292
347
|
|
|
293
348
|
**Restore Command:**
|
|
349
|
+
|
|
294
350
|
```bash
|
|
295
351
|
{{RESTORE_COMMAND}}
|
|
296
352
|
```
|
|
@@ -316,20 +372,22 @@
|
|
|
316
372
|
|
|
317
373
|
**Auto-scaling:**
|
|
318
374
|
{{#IF AUTO_SCALING}}
|
|
375
|
+
|
|
319
376
|
- Enabled: Yes
|
|
320
377
|
- Min instances: {{SCALING_MIN}}
|
|
321
378
|
- Max instances: {{SCALING_MAX}}
|
|
322
379
|
- Target CPU: {{SCALING_TARGET_CPU}}%
|
|
323
380
|
- Target Memory: {{SCALING_TARGET_MEMORY}}%
|
|
324
|
-
{{ELSE}}
|
|
381
|
+
{{ELSE}}
|
|
325
382
|
- Enabled: No - Manual scaling
|
|
326
|
-
{{/IF}}
|
|
383
|
+
{{/IF}}
|
|
327
384
|
|
|
328
385
|
### Vertical Scaling
|
|
329
386
|
|
|
330
387
|
{{VERTICAL_SCALING_DESCRIPTION}}
|
|
331
388
|
|
|
332
389
|
**Current Resources:**
|
|
390
|
+
|
|
333
391
|
- CPU: {{CURRENT_CPU}}
|
|
334
392
|
- Memory: {{CURRENT_MEMORY}}
|
|
335
393
|
- Disk: {{CURRENT_DISK}}
|
|
@@ -376,13 +434,12 @@ GET /health/live - Liveness check
|
|
|
376
434
|
|
|
377
435
|
**Rotation:** {{SECRETS_ROTATION_POLICY}}
|
|
378
436
|
|
|
379
|
-
**Access:** {{SECRETS_ACCESS_POLICY}}
|
|
380
|
-
|
|
381
|
-
---
|
|
437
|
+
## **Access:** {{SECRETS_ACCESS_POLICY}}
|
|
382
438
|
|
|
383
439
|
## 📝 Runbooks
|
|
384
440
|
|
|
385
441
|
{{#EACH RUNBOOK}}
|
|
442
|
+
|
|
386
443
|
### {{RUNBOOK_TITLE}}
|
|
387
444
|
|
|
388
445
|
**Trigger:** {{RUNBOOK_TRIGGER}}
|
|
@@ -390,26 +447,29 @@ GET /health/live - Liveness check
|
|
|
390
447
|
**Steps:**
|
|
391
448
|
{{#EACH RUNBOOK_STEP}}
|
|
392
449
|
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
450
|
+
|
|
451
|
+
```bash
|
|
452
|
+
{{STEP_COMMAND}}
|
|
453
|
+
```
|
|
397
454
|
|
|
398
455
|
{{/EACH}}
|
|
399
456
|
|
|
400
|
-
|
|
457
|
+
## {{/EACH}}
|
|
401
458
|
|
|
402
459
|
## 🐛 Troubleshooting
|
|
403
460
|
|
|
404
461
|
{{#EACH TROUBLESHOOTING_GUIDE}}
|
|
462
|
+
|
|
405
463
|
### {{ISSUE_TITLE}}
|
|
406
464
|
|
|
407
465
|
**Symptoms:**
|
|
408
466
|
{{#EACH SYMPTOM}}
|
|
467
|
+
|
|
409
468
|
- {{SYMPTOM_DESCRIPTION}}
|
|
410
|
-
{{/EACH}}
|
|
469
|
+
{{/EACH}}
|
|
411
470
|
|
|
412
471
|
**Diagnosis:**
|
|
472
|
+
|
|
413
473
|
```bash
|
|
414
474
|
{{DIAGNOSIS_COMMAND}}
|
|
415
475
|
```
|
|
@@ -419,13 +479,12 @@ GET /health/live - Liveness check
|
|
|
419
479
|
{{STEP_NUMBER}}. {{STEP_DESCRIPTION}}
|
|
420
480
|
{{/EACH}}
|
|
421
481
|
|
|
422
|
-
{{/EACH}}
|
|
423
|
-
|
|
424
|
-
---
|
|
482
|
+
## {{/EACH}}
|
|
425
483
|
|
|
426
484
|
## 📈 Performance Optimization
|
|
427
485
|
|
|
428
486
|
{{#EACH OPTIMIZATION}}
|
|
487
|
+
|
|
429
488
|
### {{OPTIMIZATION_NAME}}
|
|
430
489
|
|
|
431
490
|
**Current:** {{CURRENT_STATE}}
|
|
@@ -434,17 +493,16 @@ GET /health/live - Liveness check
|
|
|
434
493
|
|
|
435
494
|
**Implementation:** {{OPTIMIZATION_IMPLEMENTATION}}
|
|
436
495
|
|
|
437
|
-
{{/EACH}}
|
|
438
|
-
|
|
439
|
-
---
|
|
496
|
+
## {{/EACH}}
|
|
440
497
|
|
|
441
498
|
## 🔄 Rollback Procedures
|
|
442
499
|
|
|
443
500
|
### When to Rollback
|
|
444
501
|
|
|
445
502
|
{{#EACH ROLLBACK_TRIGGER}}
|
|
503
|
+
|
|
446
504
|
- {{TRIGGER_DESCRIPTION}}
|
|
447
|
-
{{/EACH}}
|
|
505
|
+
{{/EACH}}
|
|
448
506
|
|
|
449
507
|
### Rollback Steps
|
|
450
508
|
|
|
@@ -474,6 +532,7 @@ GET /health/live - Liveness check
|
|
|
474
532
|
**Rollback:** {{BLUE_GREEN_ROLLBACK}}
|
|
475
533
|
|
|
476
534
|
**Benefits:**
|
|
535
|
+
|
|
477
536
|
- Zero-downtime deployments
|
|
478
537
|
- Instant rollback capability
|
|
479
538
|
- Easy A/B testing
|
|
@@ -488,6 +547,7 @@ GET /health/live - Liveness check
|
|
|
488
547
|
**Enabled:** Yes
|
|
489
548
|
|
|
490
549
|
**Strategy:**
|
|
550
|
+
|
|
491
551
|
- Initial traffic: {{CANARY_INITIAL_TRAFFIC}}%
|
|
492
552
|
- Gradual increase: {{CANARY_GRADUAL_INCREASE}}% per {{CANARY_INCREASE_INTERVAL}}
|
|
493
553
|
- Success criteria: {{CANARY_SUCCESS_CRITERIA}}
|
|
@@ -512,15 +572,17 @@ GET /health/live - Liveness check
|
|
|
512
572
|
{{/EACH}}
|
|
513
573
|
|
|
514
574
|
**Implementation:**
|
|
575
|
+
|
|
515
576
|
```{{LANGUAGE}}
|
|
516
577
|
{{GRACEFUL_SHUTDOWN_EXAMPLE}}
|
|
517
578
|
```
|
|
518
579
|
|
|
519
580
|
**Configuration:**
|
|
581
|
+
|
|
520
582
|
- Shutdown timeout: {{SHUTDOWN_TIMEOUT}}s
|
|
521
583
|
- Health check grace period: {{HEALTH_CHECK_GRACE_PERIOD}}s
|
|
522
584
|
- Connection drain timeout: {{CONNECTION_DRAIN_TIMEOUT}}s
|
|
523
|
-
{{/IF}}
|
|
585
|
+
{{/IF}}
|
|
524
586
|
|
|
525
587
|
### Circuit Breakers
|
|
526
588
|
|
|
@@ -531,6 +593,7 @@ GET /health/live - Liveness check
|
|
|
531
593
|
|
|
532
594
|
**Configuration:**
|
|
533
595
|
{{#EACH CIRCUIT_BREAKER}}
|
|
596
|
+
|
|
534
597
|
#### {{SERVICE_NAME}}
|
|
535
598
|
|
|
536
599
|
- Failure threshold: {{FAILURE_THRESHOLD}}%
|
|
@@ -542,6 +605,7 @@ GET /health/live - Liveness check
|
|
|
542
605
|
**Fallback Strategy:** {{FALLBACK_STRATEGY}}
|
|
543
606
|
|
|
544
607
|
**Implementation:**
|
|
608
|
+
|
|
545
609
|
```{{LANGUAGE}}
|
|
546
610
|
{{CIRCUIT_BREAKER_EXAMPLE}}
|
|
547
611
|
```
|
|
@@ -558,6 +622,7 @@ GET /health/live - Liveness check
|
|
|
558
622
|
**Retry Strategy:** {{RETRY_STRATEGY}}
|
|
559
623
|
|
|
560
624
|
{{#EACH RETRY_POLICY}}
|
|
625
|
+
|
|
561
626
|
#### {{SERVICE_NAME}}
|
|
562
627
|
|
|
563
628
|
- Max attempts: {{MAX_ATTEMPTS}}
|
|
@@ -569,8 +634,74 @@ GET /health/live - Liveness check
|
|
|
569
634
|
{{/EACH}}
|
|
570
635
|
|
|
571
636
|
{{ELSE}}
|
|
637
|
+
|
|
572
638
|
- Retry policies to be configured per service.
|
|
573
|
-
{{/IF}}
|
|
639
|
+
{{/IF}}
|
|
640
|
+
|
|
641
|
+
### Timeout & Retry Matrix
|
|
642
|
+
|
|
643
|
+
| Service/Dependency | Timeout | Retries | Backoff | Notes |
|
|
644
|
+
| ------------------ | ------- | ------- | ------- | ----- |
|
|
645
|
+
|
|
646
|
+
{{#EACH TIMEOUT_POLICY}}
|
|
647
|
+
| {{SERVICE_NAME}} | {{TIMEOUT}}ms | {{RETRIES}} | {{BACKOFF}} | {{NOTES}} |
|
|
648
|
+
{{/EACH}}
|
|
649
|
+
|
|
650
|
+
**Global Defaults:**
|
|
651
|
+
|
|
652
|
+
- Default HTTP timeout: {{DEFAULT_HTTP_TIMEOUT}}ms
|
|
653
|
+
- Default retries: {{DEFAULT_RETRIES}}
|
|
654
|
+
- Default backoff: {{DEFAULT_BACKOFF}}
|
|
655
|
+
|
|
656
|
+
**Non-Retryable Errors:**
|
|
657
|
+
{{#EACH NON_RETRYABLE_ERROR}}
|
|
658
|
+
|
|
659
|
+
- `{{ERROR_CODE}}`: {{REASON}}
|
|
660
|
+
{{/EACH}}
|
|
661
|
+
|
|
662
|
+
---
|
|
663
|
+
|
|
664
|
+
## 📋 Request/Response Logging
|
|
665
|
+
|
|
666
|
+
### Log Strategy by Environment
|
|
667
|
+
|
|
668
|
+
| Environment | Level | Body Logging | Performance Logging |
|
|
669
|
+
| ----------- | ----- | ------------ | ------------------- |
|
|
670
|
+
|
|
671
|
+
{{#EACH LOGGING_STRATEGY}}
|
|
672
|
+
| {{ENVIRONMENT}} | {{LEVEL}} | {{BODY_LOGGING}} | {{PERFORMANCE_LOGGING}} |
|
|
673
|
+
{{/EACH}}
|
|
674
|
+
|
|
675
|
+
### Request Logging
|
|
676
|
+
|
|
677
|
+
**Fields Logged:**
|
|
678
|
+
{{#EACH REQUEST_LOG_FIELD}}
|
|
679
|
+
|
|
680
|
+
- {{#IF ENABLED}}✅{{ELSE}}❌{{/IF}} `{{FIELD_NAME}}` - {{DESCRIPTION}}
|
|
681
|
+
{{/EACH}}
|
|
682
|
+
|
|
683
|
+
### Response Logging
|
|
684
|
+
|
|
685
|
+
**Fields Logged:**
|
|
686
|
+
{{#EACH RESPONSE_LOG_FIELD}}
|
|
687
|
+
|
|
688
|
+
- {{#IF ENABLED}}✅{{ELSE}}❌{{/IF}} `{{FIELD_NAME}}` - {{DESCRIPTION}}
|
|
689
|
+
{{/EACH}}
|
|
690
|
+
|
|
691
|
+
### Sensitive Data Masking
|
|
692
|
+
|
|
693
|
+
| Field Pattern | Masking Strategy |
|
|
694
|
+
| ------------- | ---------------- |
|
|
695
|
+
|
|
696
|
+
{{#EACH MASKING_RULE}}
|
|
697
|
+
| `{{PATTERN}}` | {{STRATEGY}} |
|
|
698
|
+
{{/EACH}}
|
|
699
|
+
|
|
700
|
+
**Implementation Example:**
|
|
701
|
+
|
|
702
|
+
```{{LANGUAGE}}
|
|
703
|
+
{{MASKING_EXAMPLE}}
|
|
704
|
+
```
|
|
574
705
|
|
|
575
706
|
---
|
|
576
707
|
|
|
@@ -580,9 +711,7 @@ GET /health/live - Liveness check
|
|
|
580
711
|
|
|
581
712
|
**Duration:** {{MAINTENANCE_DURATION}}
|
|
582
713
|
|
|
583
|
-
**Notification:** {{MAINTENANCE_NOTIFICATION}}
|
|
584
|
-
|
|
585
|
-
---
|
|
714
|
+
## **Notification:** {{MAINTENANCE_NOTIFICATION}}
|
|
586
715
|
|
|
587
716
|
**Document Version:** 1.0
|
|
588
717
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
# Testing Strategy
|
|
2
2
|
|
|
3
3
|
> Testing approach, standards, and quality requirements for {{PROJECT_NAME}}
|
|
4
|
-
|
|
5
4
|
---
|
|
6
|
-
|
|
7
5
|
## 🎯 Testing Philosophy
|
|
8
6
|
|
|
9
7
|
{{TESTING_PHILOSOPHY}}
|
|
@@ -13,9 +11,7 @@
|
|
|
13
11
|
- All tests must pass before merge
|
|
14
12
|
- No skipped tests in main branch
|
|
15
13
|
- Critical paths require integration tests
|
|
16
|
-
|
|
17
14
|
---
|
|
18
|
-
|
|
19
15
|
## 🧪 Testing Framework
|
|
20
16
|
|
|
21
17
|
**Primary Framework:** {{TEST_FRAMEWORK}}
|
|
@@ -25,9 +21,7 @@
|
|
|
25
21
|
**Mocking Library:** {{MOCKING_LIBRARY}}
|
|
26
22
|
|
|
27
23
|
**Test Runner:** {{TEST_RUNNER}}
|
|
28
|
-
|
|
29
24
|
---
|
|
30
|
-
|
|
31
25
|
## 📊 Test Types
|
|
32
26
|
|
|
33
27
|
### Unit Tests ({{UNIT_TEST_PERCENTAGE}}% of tests)
|
|
@@ -222,9 +216,7 @@
|
|
|
222
216
|
- ❌ Never run in production without approval
|
|
223
217
|
|
|
224
218
|
{{/IF}}
|
|
225
|
-
|
|
226
219
|
---
|
|
227
|
-
|
|
228
220
|
## 📁 Test Organization
|
|
229
221
|
|
|
230
222
|
### File Structure
|
|
@@ -284,9 +276,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
284
276
|
});
|
|
285
277
|
});
|
|
286
278
|
```
|
|
287
|
-
|
|
288
279
|
---
|
|
289
|
-
|
|
290
280
|
## 🎭 Mocking Strategy
|
|
291
281
|
|
|
292
282
|
### What to Mock
|
|
@@ -324,9 +314,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
324
314
|
```{{LANGUAGE}}
|
|
325
315
|
{{TIME_MOCK_EXAMPLE}}
|
|
326
316
|
```
|
|
327
|
-
|
|
328
317
|
---
|
|
329
|
-
|
|
330
318
|
## 🗄️ Test Database
|
|
331
319
|
|
|
332
320
|
### Strategy
|
|
@@ -383,9 +371,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
383
371
|
```{{LANGUAGE}}
|
|
384
372
|
{{DB_CLEANUP_EXAMPLE}}
|
|
385
373
|
```
|
|
386
|
-
|
|
387
374
|
---
|
|
388
|
-
|
|
389
375
|
## 🏭 Test Data Factories
|
|
390
376
|
|
|
391
377
|
**Library:** {{FACTORY_LIBRARY}}
|
|
@@ -411,9 +397,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
411
397
|
- ✅ Allow overrides for specific tests
|
|
412
398
|
- ✅ Keep factories DRY
|
|
413
399
|
- ❌ Don't hardcode test data in tests
|
|
414
|
-
|
|
415
400
|
---
|
|
416
|
-
|
|
417
401
|
## ✅ Test Structure
|
|
418
402
|
|
|
419
403
|
### AAA Pattern (Arrange, Act, Assert)
|
|
@@ -427,9 +411,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
427
411
|
```{{LANGUAGE}}
|
|
428
412
|
{{GIVEN_WHEN_THEN_EXAMPLE}}
|
|
429
413
|
```
|
|
430
|
-
|
|
431
414
|
---
|
|
432
|
-
|
|
433
415
|
## 🎯 Testing Best Practices
|
|
434
416
|
|
|
435
417
|
### General
|
|
@@ -474,9 +456,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
474
456
|
- External libraries
|
|
475
457
|
- Getters/setters without logic
|
|
476
458
|
- Auto-generated code
|
|
477
|
-
|
|
478
459
|
---
|
|
479
|
-
|
|
480
460
|
## 🔧 Test Configuration
|
|
481
461
|
|
|
482
462
|
### Jest Configuration
|
|
@@ -502,9 +482,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
502
482
|
}
|
|
503
483
|
}
|
|
504
484
|
```
|
|
505
|
-
|
|
506
485
|
---
|
|
507
|
-
|
|
508
486
|
## 🚀 Running Tests
|
|
509
487
|
|
|
510
488
|
### Local Development
|
|
@@ -542,9 +520,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
542
520
|
```yaml
|
|
543
521
|
{{CICD_TEST_CONFIG}}
|
|
544
522
|
```
|
|
545
|
-
|
|
546
523
|
---
|
|
547
|
-
|
|
548
524
|
## 📊 Coverage Reports
|
|
549
525
|
|
|
550
526
|
### Viewing Coverage
|
|
@@ -576,9 +552,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
576
552
|
```
|
|
577
553
|
|
|
578
554
|
**Enforcement:** Tests fail if coverage drops below thresholds
|
|
579
|
-
|
|
580
555
|
---
|
|
581
|
-
|
|
582
556
|
## 🧬 Test Examples
|
|
583
557
|
|
|
584
558
|
### Service Test
|
|
@@ -604,9 +578,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
604
578
|
```{{LANGUAGE}}
|
|
605
579
|
{{E2E_TEST_FULL_EXAMPLE}}
|
|
606
580
|
```
|
|
607
|
-
|
|
608
581
|
---
|
|
609
|
-
|
|
610
582
|
## 🔒 Testing Security
|
|
611
583
|
|
|
612
584
|
### Authentication Tests
|
|
@@ -626,9 +598,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
626
598
|
```{{LANGUAGE}}
|
|
627
599
|
{{INPUT_VALIDATION_TEST_EXAMPLE}}
|
|
628
600
|
```
|
|
629
|
-
|
|
630
601
|
---
|
|
631
|
-
|
|
632
602
|
## 🐛 Debugging Tests
|
|
633
603
|
|
|
634
604
|
### Debug Configuration
|
|
@@ -647,9 +617,7 @@ describe('{{DESCRIBE_EXAMPLE}}', () => {
|
|
|
647
617
|
# Debug with breakpoints
|
|
648
618
|
{{DEBUG_WITH_BREAKPOINTS}}
|
|
649
619
|
```
|
|
650
|
-
|
|
651
620
|
---
|
|
652
|
-
|
|
653
621
|
## 📝 Test Documentation
|
|
654
622
|
|
|
655
623
|
### When to Document Tests
|
|
@@ -680,9 +648,7 @@ describe('Order Total Calculation', () => {
|
|
|
680
648
|
// tests...
|
|
681
649
|
});
|
|
682
650
|
```
|
|
683
|
-
|
|
684
651
|
---
|
|
685
|
-
|
|
686
652
|
## 🚨 Continuous Testing
|
|
687
653
|
|
|
688
654
|
### Pre-commit Hooks
|
|
@@ -705,9 +671,7 @@ describe('Order Total Calculation', () => {
|
|
|
705
671
|
**Runs:**
|
|
706
672
|
- Full test suite
|
|
707
673
|
- Coverage check
|
|
708
|
-
|
|
709
674
|
---
|
|
710
|
-
|
|
711
675
|
## 📈 Test Metrics
|
|
712
676
|
|
|
713
677
|
### Tracked Metrics
|
|
@@ -723,9 +687,7 @@ describe('Order Total Calculation', () => {
|
|
|
723
687
|
{{#EACH TEST_GOAL}}
|
|
724
688
|
- **{{GOAL_NAME}}**: {{GOAL_TARGET}}
|
|
725
689
|
{{/EACH}}
|
|
726
|
-
|
|
727
690
|
---
|
|
728
|
-
|
|
729
691
|
## 🔄 Test Maintenance
|
|
730
692
|
|
|
731
693
|
### Regular Tasks
|
|
@@ -744,19 +706,17 @@ describe('Order Total Calculation', () => {
|
|
|
744
706
|
- [ ] Coverage meets threshold
|
|
745
707
|
- [ ] No skipped/disabled tests (without reason)
|
|
746
708
|
- [ ] Test names are descriptive
|
|
747
|
-
|
|
748
709
|
---
|
|
749
|
-
|
|
750
710
|
## 📚 Resources
|
|
751
711
|
|
|
752
712
|
{{#EACH TESTING_RESOURCE}}
|
|
753
713
|
- [{{RESOURCE_NAME}}]({{RESOURCE_URL}})
|
|
754
714
|
{{/EACH}}
|
|
755
|
-
|
|
756
715
|
---
|
|
757
|
-
|
|
758
716
|
**Document Version:** 1.0
|
|
759
717
|
|
|
760
718
|
**Last Updated:** {{GENERATION_DATE}}
|
|
761
719
|
|
|
762
720
|
**Generated by:** AI Flow v1.0.0
|
|
721
|
+
|
|
722
|
+
|