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
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
**Duration:** 20-25 minutes
|
|
4
4
|
**Questions:** ~13 questions
|
|
5
5
|
**Output:** docs/state-management.md, docs/offline-strategy.md, parts of ai-instructions.md
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
6
|
+
---
|
|
9
7
|
## 🎯 Objective
|
|
10
8
|
|
|
11
9
|
Define how your mobile app will manage state and handle data:
|
|
@@ -14,9 +12,7 @@ Define how your mobile app will manage state and handle data:
|
|
|
14
12
|
2. How will you fetch server data?
|
|
15
13
|
3. What offline strategy will you use?
|
|
16
14
|
4. How will you synchronize data?
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
15
|
+
---
|
|
20
16
|
## 📋 Questions
|
|
21
17
|
|
|
22
18
|
### Question 3.1: App State Management
|
|
@@ -24,6 +20,7 @@ Define how your mobile app will manage state and handle data:
|
|
|
24
20
|
**How will you manage global app state?**
|
|
25
21
|
|
|
26
22
|
**If React Native:**
|
|
23
|
+
|
|
27
24
|
- A) ⭐ **Redux Toolkit** (Recommended)
|
|
28
25
|
- Predictable state management
|
|
29
26
|
- DevTools support
|
|
@@ -49,6 +46,7 @@ Define how your mobile app will manage state and handle data:
|
|
|
49
46
|
- Best for: Fine-grained reactivity
|
|
50
47
|
|
|
51
48
|
**If Flutter:**
|
|
49
|
+
|
|
52
50
|
- A) ⭐ **Provider** (Recommended)
|
|
53
51
|
- Simple, official recommendation
|
|
54
52
|
- Best for: Most apps
|
|
@@ -66,18 +64,18 @@ Define how your mobile app will manage state and handle data:
|
|
|
66
64
|
- Best for: Rapid development
|
|
67
65
|
|
|
68
66
|
**If Native:**
|
|
67
|
+
|
|
69
68
|
- **MVVM Pattern** with ViewModels
|
|
70
69
|
- **Observable Pattern** (RxSwift/RxJava)
|
|
71
70
|
|
|
72
71
|
**Your answer:**
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
72
|
+
---
|
|
76
73
|
### Question 3.2: HTTP Client Library
|
|
77
74
|
|
|
78
75
|
**What HTTP client library will you use to fetch data from your backend?**
|
|
79
76
|
|
|
80
77
|
**If React Native:**
|
|
78
|
+
|
|
81
79
|
- A) ⭐ **Axios** (Recommended)
|
|
82
80
|
- Promise-based HTTP client
|
|
83
81
|
- Interceptors, automatic JSON parsing
|
|
@@ -94,6 +92,7 @@ Define how your mobile app will manage state and handle data:
|
|
|
94
92
|
- Best for: Complex data needs
|
|
95
93
|
|
|
96
94
|
**If Flutter:**
|
|
95
|
+
|
|
97
96
|
- A) ⭐ **Dio** (Recommended)
|
|
98
97
|
- Powerful HTTP client
|
|
99
98
|
- Interceptors, form data
|
|
@@ -105,11 +104,13 @@ Define how your mobile app will manage state and handle data:
|
|
|
105
104
|
- Best for: Simple apps
|
|
106
105
|
|
|
107
106
|
**If Native iOS:**
|
|
107
|
+
|
|
108
108
|
- A) ⭐ **URLSession** (Built-in)
|
|
109
109
|
- B) **Alamofire**
|
|
110
110
|
- Popular third-party library
|
|
111
111
|
|
|
112
112
|
**If Native Android:**
|
|
113
|
+
|
|
113
114
|
- A) ⭐ **OkHttp** (Recommended)
|
|
114
115
|
- B) **Retrofit**
|
|
115
116
|
- Type-safe HTTP client
|
|
@@ -117,48 +118,50 @@ Define how your mobile app will manage state and handle data:
|
|
|
117
118
|
**Your answer:**
|
|
118
119
|
|
|
119
120
|
**If using REST API, ask:**
|
|
121
|
+
|
|
120
122
|
- What API base URL structure?
|
|
121
123
|
- Single base URL
|
|
122
124
|
- Multiple endpoints
|
|
123
125
|
- Environment-based URLs (dev/staging/prod)
|
|
124
126
|
|
|
125
127
|
**If using GraphQL, ask:**
|
|
128
|
+
|
|
126
129
|
- What GraphQL client?
|
|
127
130
|
- React Native: Apollo Client, urql
|
|
128
131
|
- Flutter: graphql_flutter, ferry
|
|
129
132
|
- What GraphQL endpoint URL?
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
+
---
|
|
133
134
|
### Question 3.3: Offline Strategy
|
|
134
135
|
|
|
135
136
|
**How will your app work offline?**
|
|
136
137
|
|
|
137
138
|
A) ⭐ **Read-Only Offline** (Recommended)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
|
|
140
|
+
- Cache data for reading
|
|
141
|
+
- Show cached data when offline
|
|
142
|
+
- Queue writes for when online
|
|
143
|
+
- Best for: Most apps
|
|
142
144
|
|
|
143
145
|
B) **Full Offline Support**
|
|
144
|
-
- Complete CRUD offline
|
|
145
|
-
- Sync when online
|
|
146
|
-
- Best for: Productivity apps, note-taking
|
|
147
146
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
- Best for: Real-time apps, streaming
|
|
147
|
+
- Complete CRUD offline
|
|
148
|
+
- Sync when online
|
|
149
|
+
- Best for: Productivity apps, note-taking
|
|
152
150
|
|
|
153
|
-
**
|
|
151
|
+
C) **No Offline Support**
|
|
154
152
|
|
|
155
|
-
|
|
153
|
+
- Require internet connection
|
|
154
|
+
- Show error when offline
|
|
155
|
+
- Best for: Real-time apps, streaming
|
|
156
156
|
|
|
157
|
+
**Your answer:**
|
|
158
|
+
---
|
|
157
159
|
### Question 3.4: Local Storage Solution
|
|
158
160
|
|
|
159
161
|
**What will you use for local data storage?**
|
|
160
162
|
|
|
161
163
|
**If React Native:**
|
|
164
|
+
|
|
162
165
|
- A) ⭐ **AsyncStorage** (Recommended)
|
|
163
166
|
- Simple key-value storage
|
|
164
167
|
- Best for: Small data, settings
|
|
@@ -176,109 +179,117 @@ C) **No Offline Support**
|
|
|
176
179
|
- Best for: Complex data models
|
|
177
180
|
|
|
178
181
|
**If Flutter:**
|
|
182
|
+
|
|
179
183
|
- A) ⭐ **SharedPreferences** (Simple data)
|
|
180
184
|
- B) **Hive** (Fast, NoSQL)
|
|
181
185
|
- C) **Isar** (Fast, NoSQL)
|
|
182
186
|
- D) **SQLite (sqflite)** (Relational data)
|
|
183
187
|
|
|
184
188
|
**If Native iOS:**
|
|
189
|
+
|
|
185
190
|
- A) **UserDefaults** (Simple data)
|
|
186
191
|
- B) **Core Data** (Complex relational data)
|
|
187
192
|
- C) **Realm** (Object database)
|
|
188
193
|
|
|
189
194
|
**If Native Android:**
|
|
195
|
+
|
|
190
196
|
- A) **SharedPreferences** (Simple data)
|
|
191
197
|
- B) **Room** (SQLite abstraction)
|
|
192
198
|
- C) **DataStore** (Modern, type-safe)
|
|
193
199
|
|
|
194
200
|
**Your answer:**
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
201
|
+
---
|
|
198
202
|
### Question 3.5: Data Synchronization
|
|
199
203
|
|
|
200
204
|
**How will you sync data between local and server?**
|
|
201
205
|
|
|
202
206
|
A) ⭐ **Optimistic Updates + Background Sync** (Recommended)
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
+
|
|
208
|
+
- Update UI immediately
|
|
209
|
+
- Sync in background
|
|
210
|
+
- Handle conflicts gracefully
|
|
211
|
+
- Best for: Most apps
|
|
207
212
|
|
|
208
213
|
B) **Pessimistic Updates**
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
214
|
+
|
|
215
|
+
- Wait for server confirmation
|
|
216
|
+
- Show loading states
|
|
217
|
+
- Best for: Critical data (payments, etc.)
|
|
212
218
|
|
|
213
219
|
C) **Manual Sync**
|
|
214
|
-
- User-triggered sync
|
|
215
|
-
- Pull-to-refresh pattern
|
|
216
|
-
- Best for: Simple apps
|
|
217
220
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
- Best for: Collaborative apps, chat
|
|
221
|
+
- User-triggered sync
|
|
222
|
+
- Pull-to-refresh pattern
|
|
223
|
+
- Best for: Simple apps
|
|
222
224
|
|
|
223
|
-
**
|
|
225
|
+
D) **Real-time Sync**
|
|
224
226
|
|
|
225
|
-
|
|
227
|
+
- WebSockets or Server-Sent Events
|
|
228
|
+
- Instant updates
|
|
229
|
+
- Best for: Collaborative apps, chat
|
|
226
230
|
|
|
231
|
+
**Your answer:**
|
|
232
|
+
---
|
|
227
233
|
### Question 3.6: Conflict Resolution
|
|
228
234
|
|
|
229
235
|
**How will you handle data conflicts when syncing?**
|
|
230
236
|
|
|
231
237
|
A) ⭐ **Last Write Wins** (Recommended)
|
|
232
|
-
|
|
233
|
-
|
|
238
|
+
|
|
239
|
+
- Simple, most recent update wins
|
|
240
|
+
- Best for: Most apps
|
|
234
241
|
|
|
235
242
|
B) **Server Wins**
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
|
|
244
|
+
- Always use server version
|
|
245
|
+
- Best for: Authoritative server data
|
|
238
246
|
|
|
239
247
|
C) **Merge Strategy**
|
|
240
|
-
- Intelligent merging
|
|
241
|
-
- Best for: Collaborative editing
|
|
242
248
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
- Best for: Critical conflicts
|
|
249
|
+
- Intelligent merging
|
|
250
|
+
- Best for: Collaborative editing
|
|
246
251
|
|
|
247
|
-
**
|
|
252
|
+
D) **User Resolution**
|
|
248
253
|
|
|
249
|
-
|
|
254
|
+
- Ask user to choose
|
|
255
|
+
- Best for: Critical conflicts
|
|
250
256
|
|
|
257
|
+
**Your answer:**
|
|
258
|
+
---
|
|
251
259
|
### Question 3.7: Caching Strategy
|
|
252
260
|
|
|
253
261
|
**How will you cache API responses?**
|
|
254
262
|
|
|
255
263
|
A) ⭐ **Time-based Cache** (Recommended)
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
264
|
+
|
|
265
|
+
- Cache for X minutes/hours
|
|
266
|
+
- Refresh after expiry
|
|
267
|
+
- Best for: Most data
|
|
259
268
|
|
|
260
269
|
B) **Stale-While-Revalidate**
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
270
|
+
|
|
271
|
+
- Show cached data immediately
|
|
272
|
+
- Fetch fresh data in background
|
|
273
|
+
- Best for: Good UX
|
|
264
274
|
|
|
265
275
|
C) **Cache Forever**
|
|
266
|
-
- Cache until app update
|
|
267
|
-
- Best for: Static data
|
|
268
276
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
- Best for: Real-time data
|
|
277
|
+
- Cache until app update
|
|
278
|
+
- Best for: Static data
|
|
272
279
|
|
|
273
|
-
**
|
|
280
|
+
D) **No Caching**
|
|
274
281
|
|
|
275
|
-
|
|
282
|
+
- Always fetch fresh
|
|
283
|
+
- Best for: Real-time data
|
|
276
284
|
|
|
285
|
+
**Your answer:**
|
|
286
|
+
---
|
|
277
287
|
### Question 3.8: Form State Management
|
|
278
288
|
|
|
279
289
|
**How will you handle form state?**
|
|
280
290
|
|
|
281
291
|
**If React Native:**
|
|
292
|
+
|
|
282
293
|
- A) ⭐ **React Hook Form** (Recommended)
|
|
283
294
|
- Minimal re-renders
|
|
284
295
|
- Good performance
|
|
@@ -287,36 +298,36 @@ D) **No Caching**
|
|
|
287
298
|
- Popular, well-documented
|
|
288
299
|
|
|
289
300
|
**If Flutter:**
|
|
301
|
+
|
|
290
302
|
- A) ⭐ **FormBuilder** (Recommended)
|
|
291
303
|
- B) **Built-in Form widgets**
|
|
292
304
|
|
|
293
305
|
**Your answer:**
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
306
|
+
---
|
|
297
307
|
### Question 3.9: Error Handling Strategy
|
|
298
308
|
|
|
299
309
|
**How will you handle API errors?**
|
|
300
310
|
|
|
301
311
|
A) ⭐ **Centralized Error Handler** (Recommended)
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
312
|
+
|
|
313
|
+
- Global error handling
|
|
314
|
+
- Consistent error messages
|
|
315
|
+
- Best for: Most apps
|
|
305
316
|
|
|
306
317
|
B) **Per-Request Handling**
|
|
307
|
-
- Handle errors in components
|
|
308
|
-
- More granular control
|
|
309
|
-
- Best for: Complex error scenarios
|
|
310
318
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
- Best for: React Native
|
|
319
|
+
- Handle errors in components
|
|
320
|
+
- More granular control
|
|
321
|
+
- Best for: Complex error scenarios
|
|
315
322
|
|
|
316
|
-
**
|
|
323
|
+
C) **Error Boundary Pattern**
|
|
317
324
|
|
|
318
|
-
|
|
325
|
+
- Catch errors at component level
|
|
326
|
+
- Show fallback UI
|
|
327
|
+
- Best for: React Native
|
|
319
328
|
|
|
329
|
+
**Your answer:**
|
|
330
|
+
---
|
|
320
331
|
### Question 3.10: Network Error Handling (Mobile-Specific)
|
|
321
332
|
|
|
322
333
|
**How will you handle mobile-specific network errors?**
|
|
@@ -351,85 +362,85 @@ C) **Error Boundary Pattern**
|
|
|
351
362
|
**Your answer:**
|
|
352
363
|
|
|
353
364
|
**If retry logic selected, ask:**
|
|
365
|
+
|
|
354
366
|
- What retry strategy?
|
|
355
367
|
- Exponential backoff
|
|
356
368
|
- Fixed interval
|
|
357
369
|
- User-triggered retry
|
|
358
|
-
|
|
359
|
-
---
|
|
360
|
-
|
|
370
|
+
---
|
|
361
371
|
### Question 3.11: Loading States
|
|
362
372
|
|
|
363
373
|
**How will you handle loading states?**
|
|
364
374
|
|
|
365
375
|
A) ⭐ **Skeleton Screens** (Recommended)
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
376
|
+
|
|
377
|
+
- Show content structure while loading
|
|
378
|
+
- Better UX than spinners
|
|
379
|
+
- Best for: Most screens
|
|
369
380
|
|
|
370
381
|
B) **Loading Spinners**
|
|
371
|
-
- Simple, universal
|
|
372
|
-
- Best for: Quick loads
|
|
373
382
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
- Load secondary data after
|
|
377
|
-
- Best for: Complex screens
|
|
383
|
+
- Simple, universal
|
|
384
|
+
- Best for: Quick loads
|
|
378
385
|
|
|
379
|
-
**
|
|
386
|
+
C) **Progressive Loading**
|
|
380
387
|
|
|
381
|
-
|
|
388
|
+
- Load critical data first
|
|
389
|
+
- Load secondary data after
|
|
390
|
+
- Best for: Complex screens
|
|
382
391
|
|
|
392
|
+
**Your answer:**
|
|
393
|
+
---
|
|
383
394
|
### Question 3.12: Data Validation
|
|
384
395
|
|
|
385
396
|
**How will you validate data?**
|
|
386
397
|
|
|
387
398
|
A) ⭐ **Client-side Validation** (Required)
|
|
388
|
-
|
|
389
|
-
|
|
399
|
+
|
|
400
|
+
- Validate before sending to server
|
|
401
|
+
- Better UX, less server load
|
|
390
402
|
|
|
391
403
|
B) **Schema Validation**
|
|
392
|
-
- Use Zod, Yup, or similar
|
|
393
|
-
- Type-safe validation
|
|
394
404
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
- Show errors after submission
|
|
398
|
-
- Not recommended (poor UX)
|
|
405
|
+
- Use Zod, Yup, or similar
|
|
406
|
+
- Type-safe validation
|
|
399
407
|
|
|
400
|
-
**
|
|
408
|
+
C) **Server Validation Only**
|
|
401
409
|
|
|
402
|
-
|
|
410
|
+
- Validate on server
|
|
411
|
+
- Show errors after submission
|
|
412
|
+
- Not recommended (poor UX)
|
|
403
413
|
|
|
414
|
+
**Your answer:**
|
|
415
|
+
---
|
|
404
416
|
### Question 3.13: Background Data Refresh
|
|
405
417
|
|
|
406
418
|
**How will you refresh data in the background?**
|
|
407
419
|
|
|
408
420
|
A) ⭐ **Background Fetch** (Recommended)
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
421
|
+
|
|
422
|
+
- Refresh when app is backgrounded
|
|
423
|
+
- iOS: Background App Refresh
|
|
424
|
+
- Android: WorkManager
|
|
425
|
+
- Best for: Most apps
|
|
413
426
|
|
|
414
427
|
B) **Push Notifications**
|
|
415
|
-
- Server pushes updates
|
|
416
|
-
- App refreshes on notification
|
|
417
|
-
- Best for: Real-time updates
|
|
418
428
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
429
|
+
- Server pushes updates
|
|
430
|
+
- App refreshes on notification
|
|
431
|
+
- Best for: Real-time updates
|
|
422
432
|
|
|
423
|
-
**
|
|
433
|
+
C) **No Background Refresh**
|
|
424
434
|
|
|
425
|
-
|
|
435
|
+
- Refresh only when app opens
|
|
436
|
+
- Best for: Simple apps
|
|
426
437
|
|
|
438
|
+
**Your answer:**
|
|
439
|
+
---
|
|
427
440
|
#### 🎨 MERMAID STATE MANAGEMENT DIAGRAM FORMATS - CRITICAL
|
|
428
441
|
|
|
429
442
|
**Use these exact formats** for mobile state management diagrams:
|
|
430
|
-
|
|
431
|
-
---
|
|
432
|
-
|
|
443
|
+
---
|
|
433
444
|
##### 1️⃣ Mobile State Architecture (Server + Client + Local)
|
|
434
445
|
|
|
435
446
|
Use `graph LR` to show different state types:
|
|
@@ -465,9 +476,7 @@ graph LR
|
|
|
465
476
|
```
|
|
466
477
|
|
|
467
478
|
**Use for:** Mobile apps with offline-first strategy
|
|
468
|
-
|
|
469
|
-
---
|
|
470
|
-
|
|
479
|
+
---
|
|
471
480
|
##### 2️⃣ Data Flow with Offline Support
|
|
472
481
|
|
|
473
482
|
Use `sequenceDiagram` to show complete data sync cycle:
|
|
@@ -518,9 +527,7 @@ sequenceDiagram
|
|
|
518
527
|
```
|
|
519
528
|
|
|
520
529
|
**Use for:** Apps with offline support and data synchronization
|
|
521
|
-
|
|
522
|
-
---
|
|
523
|
-
|
|
530
|
+
---
|
|
524
531
|
##### 3️⃣ State Decision Tree (Mobile-Specific)
|
|
525
532
|
|
|
526
533
|
Use `graph TD` to help developers choose state strategy:
|
|
@@ -551,9 +558,7 @@ graph TD
|
|
|
551
558
|
```
|
|
552
559
|
|
|
553
560
|
**Use for:** Decision-making guide for mobile state strategy
|
|
554
|
-
|
|
555
|
-
---
|
|
556
|
-
|
|
561
|
+
---
|
|
557
562
|
##### 4️⃣ Redux Architecture (Mobile Pattern)
|
|
558
563
|
|
|
559
564
|
Use `graph TB` to show Redux structure for mobile:
|
|
@@ -600,27 +605,23 @@ graph TB
|
|
|
600
605
|
```
|
|
601
606
|
|
|
602
607
|
**Use for:** Redux-based mobile apps with persistence
|
|
603
|
-
|
|
604
|
-
---
|
|
605
|
-
|
|
608
|
+
---
|
|
606
609
|
**Diagram Guidelines:**
|
|
610
|
+
|
|
607
611
|
- Show offline/online paths clearly
|
|
608
612
|
- Include cache layers (AsyncStorage, MMKV, WatermelonDB)
|
|
609
613
|
- Use sequence diagrams for sync flows
|
|
610
614
|
- Color code: Server=blue, Client=orange, Local=green, Cache=purple
|
|
611
615
|
- Include mobile-specific considerations (slow networks, offline-first)
|
|
612
|
-
|
|
613
|
-
---
|
|
614
|
-
|
|
616
|
+
---
|
|
615
617
|
## ✅ Phase 3 Completion
|
|
616
618
|
|
|
617
619
|
After answering all questions, summarize:
|
|
618
620
|
|
|
619
621
|
```
|
|
620
|
-
|
|
622
|
+
---
|
|
621
623
|
✅ Phase 3 Complete: State & Data Management
|
|
622
|
-
|
|
623
|
-
|
|
624
|
+
---
|
|
624
625
|
Selected Stack:
|
|
625
626
|
- State Management: Redux Toolkit
|
|
626
627
|
- HTTP Client: Axios
|
|
@@ -633,9 +634,7 @@ Selected Stack:
|
|
|
633
634
|
|
|
634
635
|
Proceed to Phase 4 (Permissions & Native Features)? (Y/n)
|
|
635
636
|
```
|
|
636
|
-
|
|
637
|
-
---
|
|
638
|
-
|
|
637
|
+
---
|
|
639
638
|
## 📝 Generated Documents
|
|
640
639
|
|
|
641
640
|
After Phase 3, generate/update:
|
|
@@ -643,15 +642,11 @@ After Phase 3, generate/update:
|
|
|
643
642
|
- `docs/state-management.md` - State management patterns and setup
|
|
644
643
|
- `docs/offline-strategy.md` - Offline and sync strategy
|
|
645
644
|
- `ai-instructions.md` - Add state management rules
|
|
646
|
-
|
|
647
|
-
---
|
|
648
|
-
|
|
645
|
+
---
|
|
649
646
|
**Next Phase:** Phase 4 - Permissions & Native Features
|
|
650
647
|
|
|
651
648
|
Read: `.ai-flow/prompts/mobile/flow-build-phase-4-permissions.md`
|
|
652
|
-
|
|
653
|
-
---
|
|
654
|
-
|
|
649
|
+
---
|
|
655
650
|
**Last Updated:** 2025-01-XX
|
|
656
651
|
|
|
657
652
|
**Version:** 1.4.0
|