ai-flow-dev 2.1.8 โ 2.2.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.
- package/README.md +15 -13
- package/dist/cli.js +10 -9
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/prompts/backend/flow-build-phase-0.md +85 -1809
- package/prompts/backend/flow-build-phase-1.md +24 -2
- package/prompts/backend/flow-build-phase-10.md +26 -9
- package/prompts/backend/flow-build-phase-2.md +20 -2
- package/prompts/backend/flow-build-phase-3.md +19 -0
- package/prompts/backend/flow-build-phase-4.md +26 -3
- package/prompts/backend/flow-build-phase-5.md +20 -1
- package/prompts/backend/flow-build-phase-6.md +22 -2
- package/prompts/backend/flow-build-phase-7.md +24 -263
- package/prompts/backend/flow-build-phase-8.md +107 -49
- package/prompts/backend/flow-build-phase-9.md +62 -12
- package/prompts/backend/flow-build.md +61 -811
- package/prompts/frontend/flow-build-phase-0.md +46 -477
- package/prompts/frontend/flow-build-phase-10.md +33 -0
- package/prompts/frontend/flow-build-phase-8.md +27 -16
- package/prompts/frontend/flow-build-phase-9.md +80 -0
- package/prompts/frontend/flow-build.md +68 -414
- package/prompts/mobile/flow-build-phase-0.md +47 -360
- package/prompts/mobile/flow-build-phase-10.md +32 -0
- package/prompts/mobile/flow-build-phase-8.md +27 -16
- package/prompts/mobile/flow-build-phase-9.md +76 -0
- package/prompts/mobile/flow-build.md +67 -426
- package/templates/AGENT.template.md +1 -1
|
@@ -3,394 +3,81 @@
|
|
|
3
3
|
**โก AUTOMATED ANALYSIS - Minimal User Input Required**
|
|
4
4
|
|
|
5
5
|
This phase automatically analyzes your existing mobile codebase to pre-populate answers for the build questionnaire.
|
|
6
|
-
---
|
|
7
|
-
## ๐ฏ Objective
|
|
6
|
+
---
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
## ๐ซ Critical Exclusion Rules
|
|
9
|
+
To avoid false-positive detections, **IGNORE** the following folders and files during all detection steps:
|
|
10
|
+
- `.ai-flow/` (contains AI Flow internal cache and prompts)
|
|
11
|
+
- `.agent/` (contains AI workflows)
|
|
12
|
+
- `docs/` and `specs/` (if they contain AI Flow generated documentation)
|
|
13
|
+
- `project-brief.md`, `ai-instructions.md`, `AGENT.md`
|
|
10
14
|
|
|
11
|
-
|
|
12
|
-
2. **Validate assumptions** - Confirm detected patterns with user
|
|
13
|
-
3. **Save time** - Reduce questionnaire from ~100 min to ~50 min
|
|
14
|
-
4. **Maintain accuracy** - User can override any detection
|
|
15
|
-
---
|
|
16
|
-
## ๐ Detection Layers (Progressive)
|
|
15
|
+
**A project is considered "Existing" only if it contains functional source code or framework configuration files OUTSIDE these excluded paths.**
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
---
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
## ๐ฏ Objective
|
|
20
|
+
Detect the current mobile stack, architecture patterns, and configuration from existing code.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
---
|
|
23
|
+
## ๐ Detection Layers (Progressive)
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"platform": "iOS + Android",
|
|
27
|
-
"framework": "React Native",
|
|
28
|
-
"frameworkVersion": "0.72.0",
|
|
29
|
-
"typescript": true,
|
|
30
|
-
"navigation": "React Navigation",
|
|
31
|
-
"stateManagement": "Redux Toolkit",
|
|
32
|
-
"storage": "AsyncStorage",
|
|
33
|
-
"lastAnalyzed": "2025-01-20T10:30:00Z"
|
|
34
|
-
}
|
|
35
|
-
```
|
|
25
|
+
### Layer 0: Cache Check (0-2 seconds)
|
|
26
|
+
Check if `.ai-flow/cache/mobile-context.json` exists and is fresh (<7 days old).
|
|
36
27
|
|
|
37
28
|
**Action:** Ask user: "Found cached analysis from X days ago. Use it? (Y/n)"
|
|
38
29
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
**If no or cache doesn't exist:** Proceed to Layer 1
|
|
42
|
-
---
|
|
30
|
+
---
|
|
43
31
|
### Layer 1: Fast Metadata Scan (10-20 seconds)
|
|
44
32
|
|
|
33
|
+
// turbo
|
|
45
34
|
**Purpose:** Detect framework, platform, build tool, TypeScript
|
|
46
35
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
5. **tsconfig.json** (TypeScript)
|
|
54
|
-
6. **app.json / app.config.js** (React Native)
|
|
55
|
-
|
|
56
|
-
#### Detection Logic
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
// 1. Read package.json or pubspec.yaml
|
|
60
|
-
const pkg = await detectPackageFile();
|
|
61
|
-
|
|
62
|
-
// 2. Detect Mobile Framework
|
|
63
|
-
const framework = pkg.dependencies?.['react-native']
|
|
64
|
-
? 'React Native'
|
|
65
|
-
: (await fs.exists('pubspec.yaml'))
|
|
66
|
-
? 'Flutter'
|
|
67
|
-
: (await fs.exists('ios/')) && (await fs.exists('android/'))
|
|
68
|
-
? 'Native (iOS + Android)'
|
|
69
|
-
: (await fs.exists('ios/'))
|
|
70
|
-
? 'Native iOS (Swift)'
|
|
71
|
-
: (await fs.exists('android/'))
|
|
72
|
-
? 'Native Android (Kotlin)'
|
|
73
|
-
: pkg.dependencies?.['@ionic/core']
|
|
74
|
-
? 'Ionic'
|
|
75
|
-
: pkg.dependencies?.['@capacitor/core']
|
|
76
|
-
? 'Capacitor'
|
|
77
|
-
: null;
|
|
78
|
-
|
|
79
|
-
// 3. Detect Platform Support
|
|
80
|
-
const platforms = [];
|
|
81
|
-
if (await fs.exists('ios/')) platforms.push('iOS');
|
|
82
|
-
if (await fs.exists('android/')) platforms.push('Android');
|
|
83
|
-
|
|
84
|
-
// 4. Detect Navigation Library
|
|
85
|
-
const navigation = pkg.dependencies?.['@react-navigation/native']
|
|
86
|
-
? 'React Navigation'
|
|
87
|
-
: pkg.dependencies?.['react-native-navigation']
|
|
88
|
-
? 'React Native Navigation'
|
|
89
|
-
: pkg.dependencies?.['go_router']
|
|
90
|
-
? 'GoRouter'
|
|
91
|
-
: pkg.dependencies?.['auto_route']
|
|
92
|
-
? 'AutoRoute'
|
|
93
|
-
: null;
|
|
94
|
-
|
|
95
|
-
// 5. Detect State Management
|
|
96
|
-
const stateManagement = pkg.dependencies?.['@reduxjs/toolkit']
|
|
97
|
-
? 'Redux Toolkit'
|
|
98
|
-
: pkg.dependencies?.zustand
|
|
99
|
-
? 'Zustand'
|
|
100
|
-
: pkg.dependencies?.mobx
|
|
101
|
-
? 'MobX'
|
|
102
|
-
: pkg.dependencies?.provider
|
|
103
|
-
? 'Provider'
|
|
104
|
-
: pkg.dependencies?.['flutter_riverpod']
|
|
105
|
-
? 'Riverpod'
|
|
106
|
-
: pkg.dependencies?.['flutter_bloc']
|
|
107
|
-
? 'Bloc'
|
|
108
|
-
: null;
|
|
109
|
-
|
|
110
|
-
// 6. Detect Storage Solution
|
|
111
|
-
const storage = pkg.dependencies?.['@react-native-async-storage/async-storage']
|
|
112
|
-
? 'AsyncStorage'
|
|
113
|
-
: pkg.dependencies?.['react-native-mmkv']
|
|
114
|
-
? 'MMKV'
|
|
115
|
-
: pkg.dependencies?.['@nozbe/watermelondb']
|
|
116
|
-
? 'WatermelonDB'
|
|
117
|
-
: pkg.dependencies?.realm
|
|
118
|
-
? 'Realm'
|
|
119
|
-
: pkg.dependencies?.hive
|
|
120
|
-
? 'Hive'
|
|
121
|
-
: (await fs.exists('ios/DataModel.xcdatamodeld'))
|
|
122
|
-
? 'Core Data'
|
|
123
|
-
: (await fs.exists('android/app/src/main/java/**/RoomDatabase.kt'))
|
|
124
|
-
? 'Room'
|
|
125
|
-
: null;
|
|
36
|
+
โญ **Context Links:**
|
|
37
|
+
- Node.js (React Native): [package.json](file:///package.json)
|
|
38
|
+
- Flutter: [pubspec.yaml](file:///pubspec.yaml)
|
|
39
|
+
- iOS: [Podfile](file:///ios/Podfile) | [Info.plist](file:///ios/App/App/Info.plist)
|
|
40
|
+
- Android: [build.gradle](file:///android/build.gradle) | [AndroidManifest.xml](file:///android/app/src/main/AndroidManifest.xml)
|
|
41
|
+
- Config: [app.json](file:///app.json) | [tsconfig.json](file:///tsconfig.json)
|
|
126
42
|
|
|
127
|
-
|
|
128
|
-
const typescript = await fs.exists('tsconfig.json');
|
|
129
|
-
const dart = await fs.exists('pubspec.yaml');
|
|
43
|
+
**Action:** Use your internal knowledge to detect the Framework (React Native, Flutter, Native, etc.), Platform Support, Navigation, State Management, and Storage Solution from the configuration files.
|
|
130
44
|
|
|
131
|
-
|
|
132
|
-
const unitTest = pkg.devDependencies?.jest
|
|
133
|
-
? 'Jest'
|
|
134
|
-
: pkg.devDependencies?.vitest
|
|
135
|
-
? 'Vitest'
|
|
136
|
-
: (await fs.exists('test/')) && dart
|
|
137
|
-
? 'Flutter Test'
|
|
138
|
-
: null;
|
|
139
|
-
|
|
140
|
-
const e2eTest = pkg.devDependencies?.['detox']
|
|
141
|
-
? 'Detox'
|
|
142
|
-
: pkg.devDependencies?.['@maestrohq/cli']
|
|
143
|
-
? 'Maestro'
|
|
144
|
-
: pkg.devDependencies?.appium
|
|
145
|
-
? 'Appium'
|
|
146
|
-
: null;
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
#### Layer 1 Output
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
โ
DETECTED:
|
|
153
|
-
|
|
154
|
-
Platform: iOS + Android
|
|
155
|
-
Framework: React Native 0.72.0
|
|
156
|
-
TypeScript: Yes
|
|
157
|
-
Navigation: React Navigation 6.0.0
|
|
158
|
-
State Management: Redux Toolkit 1.9.0
|
|
159
|
-
Storage: AsyncStorage 1.19.0
|
|
160
|
-
Testing: Jest + Detox
|
|
161
|
-
|
|
162
|
-
Continue to Layer 2 for structural analysis? (Y/n)
|
|
163
|
-
```
|
|
164
|
-
---
|
|
45
|
+
---
|
|
165
46
|
### Layer 2: Structural Analysis (30-90 seconds)
|
|
47
|
+
**Purpose:** Analyze navigation structure, component organization, and architecture patterns (Feature-based, Clean Architecture, etc.).
|
|
166
48
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
#### Files to Analyze
|
|
170
|
-
|
|
171
|
-
- **Navigation files:** `src/navigation/**`, `src/routes/**`, `lib/router/**`
|
|
172
|
-
- **Screen files:** `src/screens/**`, `src/pages/**`, `lib/presentation/pages/**`
|
|
173
|
-
- **Component files:** `src/components/**`, `lib/presentation/widgets/**`
|
|
174
|
-
- **Store files:** `src/store/**`, `lib/domain/**`
|
|
175
|
-
|
|
176
|
-
#### Detection Patterns
|
|
177
|
-
|
|
178
|
-
```typescript
|
|
179
|
-
// 1. Navigation Pattern Detection
|
|
180
|
-
const navigationPattern = detectNavigationPattern(srcFiles);
|
|
181
|
-
|
|
182
|
-
function detectNavigationPattern(files: string[]): string {
|
|
183
|
-
const hasStack = files.some((f) => f.includes('Stack') || f.includes('createStackNavigator'));
|
|
184
|
-
const hasTab = files.some((f) => f.includes('Tab') || f.includes('createBottomTabNavigator'));
|
|
185
|
-
const hasDrawer = files.some((f) => f.includes('Drawer') || f.includes('createDrawerNavigator'));
|
|
186
|
-
|
|
187
|
-
if (hasTab && hasStack) return 'Tab + Stack Navigation';
|
|
188
|
-
if (hasDrawer && hasStack) return 'Drawer + Stack Navigation';
|
|
189
|
-
if (hasStack) return 'Stack Navigation';
|
|
190
|
-
if (hasTab) return 'Tab Navigation';
|
|
191
|
-
return 'Unknown';
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// 2. Architecture Pattern
|
|
195
|
-
const architecturePattern = detectArchitecture(srcFiles);
|
|
196
|
-
|
|
197
|
-
function detectArchitecture(files: string[]): string {
|
|
198
|
-
const hasFeatures = files.some((f) => f.includes('/features/'));
|
|
199
|
-
const hasDomains = files.some((f) => f.includes('/domain/'));
|
|
200
|
-
const hasPresentation = files.some((f) => f.includes('/presentation/'));
|
|
201
|
-
const hasClean = files.some((f) => f.includes('/data/') && f.includes('/domain/'));
|
|
202
|
-
|
|
203
|
-
if (hasClean) return 'Clean Architecture';
|
|
204
|
-
if (hasFeatures) return 'Feature-based';
|
|
205
|
-
if (hasDomains) return 'Domain-driven';
|
|
206
|
-
if (hasPresentation) return 'Layered (Presentation/Domain/Data)';
|
|
207
|
-
return 'Flat';
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// 3. Component Organization
|
|
211
|
-
const componentPattern = detectComponentPattern(srcFiles);
|
|
212
|
-
|
|
213
|
-
function detectComponentPattern(files: string[]): string {
|
|
214
|
-
const hasAtomic = files.some(
|
|
215
|
-
(f) => f.includes('/atoms/') || f.includes('/molecules/') || f.includes('/organisms/')
|
|
216
|
-
);
|
|
217
|
-
const hasScreens = files.some((f) => f.includes('/screens/'));
|
|
218
|
-
const hasWidgets = files.some((f) => f.includes('/widgets/'));
|
|
219
|
-
|
|
220
|
-
if (hasAtomic) return 'Atomic Design';
|
|
221
|
-
if (hasScreens && hasWidgets) return 'Screens + Widgets';
|
|
222
|
-
if (hasScreens) return 'Screens-based';
|
|
223
|
-
return 'Flat';
|
|
224
|
-
}
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
#### Layer 2 Output
|
|
228
|
-
|
|
229
|
-
```
|
|
230
|
-
โ
ARCHITECTURE DETECTED:
|
|
231
|
-
|
|
232
|
-
Navigation Pattern: Tab + Stack Navigation
|
|
233
|
-
- Bottom tabs: 4 tabs
|
|
234
|
-
- Stack navigators: 8 screens
|
|
235
|
-
|
|
236
|
-
Architecture: Feature-based
|
|
237
|
-
- features/: 6 features
|
|
238
|
-
- Each feature: screens/, components/, hooks/, store/
|
|
239
|
-
|
|
240
|
-
Component Pattern: Screens + Components
|
|
241
|
-
- screens/: 12 screens
|
|
242
|
-
- components/: 45 components
|
|
243
|
-
|
|
244
|
-
Continue to Layer 3 for deep analysis? (Y/n)
|
|
245
|
-
```
|
|
246
|
-
---
|
|
49
|
+
---
|
|
247
50
|
### Layer 3: Selective Deep Analysis (Optional, 60-120 seconds)
|
|
51
|
+
**Purpose:** Extract advanced patterns, permissions, and native module integrations.
|
|
248
52
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
**Only proceed if:**
|
|
252
|
-
|
|
253
|
-
- User confirms (not automatic)
|
|
254
|
-
- Project is large (>20 screens)
|
|
255
|
-
- Accuracy is critical
|
|
256
|
-
|
|
257
|
-
#### Advanced Detection
|
|
258
|
-
|
|
259
|
-
```typescript
|
|
260
|
-
// 1. Permissions Detection
|
|
261
|
-
const permissions = detectPermissions(srcFiles, platformFiles);
|
|
262
|
-
|
|
263
|
-
function detectPermissions(srcFiles: string[], platformFiles: string[]): string[] {
|
|
264
|
-
const detected = [];
|
|
265
|
-
|
|
266
|
-
// Check Info.plist (iOS)
|
|
267
|
-
const infoPlist = platformFiles.find((f) => f.includes('Info.plist'));
|
|
268
|
-
if (infoPlist) {
|
|
269
|
-
const content = fs.readFileSync(infoPlist, 'utf-8');
|
|
270
|
-
if (content.includes('NSCameraUsageDescription')) detected.push('Camera');
|
|
271
|
-
if (content.includes('NSLocationWhenInUseUsageDescription')) detected.push('Location');
|
|
272
|
-
if (content.includes('NSPhotoLibraryUsageDescription')) detected.push('Photo Library');
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
// Check AndroidManifest.xml (Android)
|
|
276
|
-
const manifest = platformFiles.find((f) => f.includes('AndroidManifest.xml'));
|
|
277
|
-
if (manifest) {
|
|
278
|
-
const content = fs.readFileSync(manifest, 'utf-8');
|
|
279
|
-
if (content.includes('android.permission.CAMERA')) detected.push('Camera');
|
|
280
|
-
if (content.includes('android.permission.ACCESS_FINE_LOCATION')) detected.push('Location');
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
// Check code for permission requests
|
|
284
|
-
srcFiles.forEach((file) => {
|
|
285
|
-
const content = fs.readFileSync(file, 'utf-8');
|
|
286
|
-
if (content.includes('requestPermission') || content.includes('Permissions.')) {
|
|
287
|
-
// Extract permission type from context
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
return detected;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
// 2. Native Module Usage
|
|
295
|
-
const nativeModules = detectNativeModules(srcFiles);
|
|
296
|
-
|
|
297
|
-
function detectNativeModules(files: string[]): string[] {
|
|
298
|
-
const modules = [];
|
|
299
|
-
|
|
300
|
-
files.forEach((file) => {
|
|
301
|
-
const content = fs.readFileSync(file, 'utf-8');
|
|
302
|
-
if (content.includes('react-native-camera')) modules.push('Camera');
|
|
303
|
-
if (content.includes('@react-native-async-storage')) modules.push('AsyncStorage');
|
|
304
|
-
if (content.includes('react-native-maps')) modules.push('Maps');
|
|
305
|
-
if (content.includes('@react-native-firebase')) modules.push('Firebase');
|
|
306
|
-
});
|
|
307
|
-
|
|
308
|
-
return modules;
|
|
309
|
-
}
|
|
310
|
-
```
|
|
311
|
-
---
|
|
53
|
+
---
|
|
312
54
|
## โ
Validation & Confirmation
|
|
313
55
|
|
|
314
56
|
### Present Findings
|
|
57
|
+
Show the summary report and ask for confirmation:
|
|
58
|
+
- โ
Platform
|
|
59
|
+
- โ
Framework
|
|
60
|
+
- โ
TypeScript/Dart
|
|
61
|
+
- โ
Navigation
|
|
62
|
+
- โ
State Management
|
|
63
|
+
- โ
Storage
|
|
64
|
+
- โ
Architecture
|
|
315
65
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
```
|
|
319
|
-
---
|
|
320
|
-
๐ MOBILE STACK DETECTED
|
|
321
|
-
---
|
|
322
|
-
โ
Platform: iOS + Android
|
|
323
|
-
โ
Framework: React Native 0.72.0
|
|
324
|
-
โ
TypeScript: Yes
|
|
325
|
-
โ
Navigation: React Navigation 6.0.0 (Tab + Stack)
|
|
326
|
-
โ
State Management: Redux Toolkit 1.9.0
|
|
327
|
-
โ
Storage: AsyncStorage 1.19.0
|
|
328
|
-
โ
Architecture: Feature-based
|
|
329
|
-
โ
Testing: Jest + Detox
|
|
330
|
-
|
|
331
|
-
Is this correct? (Y/n)
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
### If User Says "Yes"
|
|
335
|
-
|
|
336
|
-
```
|
|
337
|
-
โ
Great! I'll use these detected values.
|
|
66
|
+
---
|
|
338
67
|
|
|
339
|
-
I'll still ask you questions for:
|
|
340
|
-
- Business requirements (Phase 1)
|
|
341
|
-
- Specific conventions and preferences
|
|
342
|
-
- Permissions and native features
|
|
343
|
-
- Store deployment strategy
|
|
344
|
-
|
|
345
|
-
This will reduce the questionnaire from ~100 min to ~50 min.
|
|
346
|
-
|
|
347
|
-
Proceed to Phase 1? (Y/n)
|
|
348
|
-
```
|
|
349
|
-
---
|
|
350
68
|
## ๐พ Cache Storage
|
|
69
|
+
Save detected context to `.ai-flow/cache/mobile-context.json` for future use.
|
|
351
70
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
```json
|
|
355
|
-
{
|
|
356
|
-
"platform": "iOS + Android",
|
|
357
|
-
"framework": "React Native",
|
|
358
|
-
"frameworkVersion": "0.72.0",
|
|
359
|
-
"typescript": true,
|
|
360
|
-
"navigation": "React Navigation",
|
|
361
|
-
"navigationVersion": "6.0.0",
|
|
362
|
-
"navigationPattern": "Tab + Stack",
|
|
363
|
-
"stateManagement": "Redux Toolkit",
|
|
364
|
-
"storage": "AsyncStorage",
|
|
365
|
-
"architecture": "Feature-based",
|
|
366
|
-
"componentPattern": "Screens + Components",
|
|
367
|
-
"permissions": ["Camera", "Location"],
|
|
368
|
-
"nativeModules": ["Camera", "Maps", "Firebase"],
|
|
369
|
-
"unitTest": "Jest",
|
|
370
|
-
"e2eTest": "Detox",
|
|
371
|
-
"lastAnalyzed": "2025-01-20T10:30:00Z",
|
|
372
|
-
"projectPath": "/Users/username/my-mobile-app"
|
|
373
|
-
}
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
**Cache invalidation:** 7 days or when package.json/pubspec.yaml is modified
|
|
377
|
-
---
|
|
378
|
-
## ๐ Next Steps
|
|
379
|
-
|
|
380
|
-
After Phase 0 completes:
|
|
381
|
-
|
|
382
|
-
```
|
|
383
|
-
โ
Context analysis complete!
|
|
384
|
-
|
|
385
|
-
Next: Proceed to Phase 1 (Platform & Framework Selection)
|
|
386
|
-
|
|
387
|
-
Read: .ai-flow/prompts/mobile/flow-build-phase-1-platform.md
|
|
388
|
-
```
|
|
389
|
-
---
|
|
390
|
-
**Last Updated:** 2025-01-XX
|
|
71
|
+
---
|
|
391
72
|
|
|
392
|
-
**
|
|
73
|
+
โ
**Phase 0 Complete: Context Analysis Finalized**
|
|
393
74
|
|
|
75
|
+
---
|
|
394
76
|
|
|
77
|
+
**Next Phase:** Phase 1 - Platform & Framework Selection
|
|
395
78
|
|
|
79
|
+
Read: `.ai-flow/prompts/mobile/flow-build-phase-1.md`
|
|
396
80
|
|
|
81
|
+
---
|
|
82
|
+
_Version: 4.2 (Antigravity Optimized - Ultra-Light Edition)_
|
|
83
|
+
_Last Updated: 2025-12-21_
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
## PHASE 10: Agile Planning - User Stories (Mobile) (5-10 min)
|
|
2
|
+
|
|
3
|
+
> **Order for this phase:** OPTIONAL. Executed after Phase 9 or on demand.
|
|
4
|
+
|
|
5
|
+
### Objective
|
|
6
|
+
Break down technical roadmap tasks into user-centric Agile requirements (User Stories) with a focus on Mobile UX, Gestures, and Native interactions.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Workflow: 4 Steps
|
|
11
|
+
|
|
12
|
+
// turbo
|
|
13
|
+
### Step 10.1: Load Context from Roadmap
|
|
14
|
+
|
|
15
|
+
### Step 10.2: Select Scope
|
|
16
|
+
|
|
17
|
+
### Step 10.3: Generate User Story Documents
|
|
18
|
+
Create `docs/user-stories/EP-XXX/HU-XXX-YYY.md`.
|
|
19
|
+
|
|
20
|
+
**Mobile specific Acceptance Criteria focus:**
|
|
21
|
+
- **UX/Touch:** "When I swipe left on X, Y action is triggered."
|
|
22
|
+
- **Gestures:** "Long-pressing Y opens the context menu."
|
|
23
|
+
- **Permissions:** "If camera permission is denied, show helpful alert with link to settings."
|
|
24
|
+
- **Offline:** "User can continue editing X while offline; sync starts when connection returns."
|
|
25
|
+
- **Native:** "System biometrics dialog appears before accessing Y."
|
|
26
|
+
|
|
27
|
+
### Step 10.4: Generate Test Cases
|
|
28
|
+
Create `docs/user-stories/EP-XXX/tests/TC-XXX-YYY.md`.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
_Version: 4.2 (Antigravity Optimized)_
|
|
32
|
+
_Last Updated: 2025-12-21_
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
**Duration:** 10-15 minutes
|
|
6
6
|
|
|
7
7
|
**Goal:** Set up the project structure and create comprehensive documentation that consolidates all information from previous phases.
|
|
8
|
-
---
|
|
8
|
+
---
|
|
9
9
|
## ๐ Phase 8 Overview
|
|
10
10
|
|
|
11
11
|
This final phase will:
|
|
@@ -16,11 +16,16 @@ This final phase will:
|
|
|
16
16
|
4. **Generate master index** (AGENT.md)
|
|
17
17
|
5. **Generate README.md** (with intelligent merge if needed)
|
|
18
18
|
6. **Create tool-specific configs** (based on AI tool selection)
|
|
19
|
-
---
|
|
19
|
+
---
|
|
20
|
+
// turbo
|
|
20
21
|
## 8.1: Project State Detection
|
|
21
22
|
|
|
22
23
|
```
|
|
23
24
|
๐ Detecting current project state...
|
|
25
|
+
|
|
26
|
+
**โ ๏ธ CRITICAL: Ignore AI Flow documentation and Meta files during detection:**
|
|
27
|
+
- Files: project-brief.md, ai-instructions.md, AGENT.md, .env.example, .cursorrules, .clauderules, .geminirules
|
|
28
|
+
- Directories: .ai-flow/, .agent/, docs/, specs/
|
|
24
29
|
```
|
|
25
30
|
|
|
26
31
|
**Auto-detect:**
|
|
@@ -52,7 +57,7 @@ Found:
|
|
|
52
57
|
|
|
53
58
|
Recommendation: [Next action based on state]
|
|
54
59
|
```
|
|
55
|
-
---
|
|
60
|
+
---
|
|
56
61
|
## 8.2: Framework Initialization (Optional)
|
|
57
62
|
|
|
58
63
|
**Only if:** Project state = "New Project"
|
|
@@ -209,7 +214,7 @@ You can initialize manually later with:
|
|
|
209
214
|
|
|
210
215
|
Proceeding to documentation generation...
|
|
211
216
|
```
|
|
212
|
-
---
|
|
217
|
+
---
|
|
213
218
|
## 8.3: Generate Final Documentation
|
|
214
219
|
|
|
215
220
|
```
|
|
@@ -291,7 +296,7 @@ Generating...
|
|
|
291
296
|
```
|
|
292
297
|
โ
Generated: docs/contributing.md
|
|
293
298
|
```
|
|
294
|
-
---
|
|
299
|
+
---
|
|
295
300
|
## 8.3.4: Generate .gitignore
|
|
296
301
|
|
|
297
302
|
**IMPORTANT:** Generate a comprehensive `.gitignore` file based on the mobile framework selected in previous phases.
|
|
@@ -448,7 +453,7 @@ Thumbs.db
|
|
|
448
453
|
โ
Generated: .gitignore
|
|
449
454
|
Patterns included: [React Native | Flutter] + Platform-specific
|
|
450
455
|
```
|
|
451
|
-
---
|
|
456
|
+
---
|
|
452
457
|
## 8.4: Generate AGENT.md (Master Index)
|
|
453
458
|
|
|
454
459
|
- **Template:** `.ai-flow/templates/AGENT.template.md`
|
|
@@ -533,7 +538,7 @@ Thumbs.db
|
|
|
533
538
|
```
|
|
534
539
|
โ
Generated: .ai-flow/AGENT.md (Master Index)
|
|
535
540
|
```
|
|
536
|
-
---
|
|
541
|
+
---
|
|
537
542
|
## 8.5: Generate README.md (Intelligent Merge)
|
|
538
543
|
|
|
539
544
|
- **Template:** `.ai-flow/templates/README.template.md`
|
|
@@ -576,7 +581,7 @@ Thumbs.db
|
|
|
576
581
|
โ
Generated: .ai-flow/README.md
|
|
577
582
|
[If merged] Merged with framework's setup instructions
|
|
578
583
|
```
|
|
579
|
-
---
|
|
584
|
+
---
|
|
580
585
|
## 8.6: Create Tool-Specific Configs
|
|
581
586
|
|
|
582
587
|
**Based on AI tool selection from Phase 1:**
|
|
@@ -690,7 +695,7 @@ Master index: `.ai-flow/AGENT.md`
|
|
|
690
695
|
โ
Generated tool-specific configs:
|
|
691
696
|
[List generated files based on selection]
|
|
692
697
|
```
|
|
693
|
-
---
|
|
698
|
+
---
|
|
694
699
|
## 8.7: Final Validation & Success Message
|
|
695
700
|
|
|
696
701
|
```
|
|
@@ -749,7 +754,7 @@ Phase 8:
|
|
|
749
754
|
|
|
750
755
|
Tool-specific configs:
|
|
751
756
|
โ
[List generated configs]
|
|
752
|
-
---
|
|
757
|
+
---
|
|
753
758
|
๐ Project Structure:
|
|
754
759
|
|
|
755
760
|
your-app/
|
|
@@ -777,7 +782,7 @@ your-app/
|
|
|
777
782
|
โโโ .env.example
|
|
778
783
|
โโโ .gitignore
|
|
779
784
|
โโโ [tool configs] # .clauderules, .cursorrules, etc.
|
|
780
|
-
---
|
|
785
|
+
---
|
|
781
786
|
Next steps:
|
|
782
787
|
|
|
783
788
|
1. โญ **Read `.ai-flow/AGENT.md`** - Master index of all documentation
|
|
@@ -795,7 +800,7 @@ Next steps:
|
|
|
795
800
|
โข Android: `npm run android` or `flutter run`
|
|
796
801
|
6. ๐พ **Initialize git** (if not done) - `git init && git add . && git commit -m "Initial commit with AI Flow docs"`
|
|
797
802
|
7. ๐งช **Start developing!** - Your AI assistant now has complete project context
|
|
798
|
-
---
|
|
803
|
+
---
|
|
799
804
|
๐ก **Remember:**
|
|
800
805
|
- Documents are **living artifacts** - update them as project evolves
|
|
801
806
|
- All AI assistants will reference these docs for future work
|
|
@@ -812,7 +817,7 @@ Your AI assistant (Claude, Cursor, Copilot) will now:
|
|
|
812
817
|
|
|
813
818
|
Happy building! ๐๐ฑ
|
|
814
819
|
```
|
|
815
|
-
---
|
|
820
|
+
---
|
|
816
821
|
## EXECUTION CHECKLIST FOR AI ASSISTANT
|
|
817
822
|
|
|
818
823
|
When executing Phase 8:
|
|
@@ -868,10 +873,16 @@ When executing Phase 8:
|
|
|
868
873
|
- [ ] Show success message
|
|
869
874
|
|
|
870
875
|
**ESTIMATED TIME:** 10-15 minutes
|
|
871
|
-
---
|
|
872
|
-
**
|
|
876
|
+
---
|
|
877
|
+
**Next Phase:** Phase 9 - Project Roadmap (Post-Documentation)
|
|
878
|
+
|
|
879
|
+
Read: `.ai-flow/prompts/mobile/flow-build-phase-9.md`
|
|
880
|
+
|
|
881
|
+
---
|
|
882
|
+
|
|
883
|
+
**Last Updated:** 2025-12-21
|
|
884
|
+
**Version:** 2.1.9
|
|
873
885
|
|
|
874
|
-
**SUCCESS:** Mobile app fully documented and ready for development! ๐๐ฑ
|
|
875
886
|
|
|
876
887
|
|
|
877
888
|
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
## PHASE 9: Implementation Roadmap (Mobile) (5-10 min)
|
|
2
|
+
|
|
3
|
+
> **Order for this phase:** OPTIONAL. Executed after Phase 8 or on demand.
|
|
4
|
+
|
|
5
|
+
### Objective
|
|
6
|
+
Translate all UX/UI and architectural specifications into a prioritized implementation plan (Roadmap) focused on Mobile development.
|
|
7
|
+
|
|
8
|
+
## Context Variables (Extract from docs)
|
|
9
|
+
|
|
10
|
+
// turbo
|
|
11
|
+
**Before generating tasks, extract these from project documentation:**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
From ai-instructions.md:
|
|
15
|
+
โโโ LANG: {{LANGUAGE}} # e.g., TypeScript, Dart, Swift, Kotlin
|
|
16
|
+
โโโ FRAMEWORK: {{FRAMEWORK}} # e.g., React Native, Flutter, Native
|
|
17
|
+
โโโ SRC: {{SOURCE_DIR}} # e.g., src/, lib/
|
|
18
|
+
โโโ TESTS: {{TEST_DIR}} # e.g., tests/, __tests__/, spec/
|
|
19
|
+
|
|
20
|
+
From docs/architecture.md & navigation.md:
|
|
21
|
+
โโโ COMP_DIR: {{COMPONENTS_PATH}} # e.g., components/, widgets/
|
|
22
|
+
โโโ SCREEN_DIR: {{SCREENS_PATH}} # e.g., screens/, pages/
|
|
23
|
+
โโโ NAV_DIR: {{NAV_PATH}} # e.g., navigation/, router/
|
|
24
|
+
โโโ STORE_DIR: {{STORE_PATH}} # e.g., store/, state/, provider/
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Task Format (MANDATORY)
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
- [ ] TXXX [CAT] Description โข 1 SP โ {{path}} | deps: TXXX
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Categories [CAT]
|
|
38
|
+
|
|
39
|
+
| Cat | Name | Description | SP Range |
|
|
40
|
+
|-----|------------|------------------------------------|----------|
|
|
41
|
+
| [U] | UI/Comp | Reusable components/widgets | 1 SP |
|
|
42
|
+
| [P] | Screen | Screen layout & logic | 1-2 SP |
|
|
43
|
+
| [N] | Nav | Navigation setup, deep links | 1 SP |
|
|
44
|
+
| [S] | State/Data | State management, local storage | 1-2 SP |
|
|
45
|
+
| [F] | Native/Feat| Permissions, native modules, SDKs | 1-2 SP |
|
|
46
|
+
| [T] | Test | Unit, integration, e2e tests | 1-2 SP |
|
|
47
|
+
| [D] | Docs | Documentation updates | 1 SP |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Workflow: 6 Steps
|
|
52
|
+
|
|
53
|
+
// turbo
|
|
54
|
+
### Step 9.1: Extract Context & Inventory
|
|
55
|
+
|
|
56
|
+
**1. Extract context variables.**
|
|
57
|
+
**2. Extract inventory (Screens, Components, Permissions).**
|
|
58
|
+
|
|
59
|
+
### Step 9.2: Coverage Matrix
|
|
60
|
+
Ensure every Screen/Feature has: [P], [U], [S], [F], [T], [D].
|
|
61
|
+
|
|
62
|
+
### Step 9.3: Epic Definition
|
|
63
|
+
EP-000: Foundation (Platform setup, Navigation config)
|
|
64
|
+
EP-001: Core UI & Theme
|
|
65
|
+
EP-002: Main User Journeys
|
|
66
|
+
EP-ZZZ: Store Preparation & Deployment
|
|
67
|
+
|
|
68
|
+
### Step 9.4: Task Generation
|
|
69
|
+
|
|
70
|
+
### Step 9.5: Validate Coverage
|
|
71
|
+
|
|
72
|
+
### Step 9.6: Generate Document (docs/roadmap.md)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
_Version: 4.2 (Antigravity Optimized)_
|
|
76
|
+
_Last Updated: 2025-12-21_
|