vibefast-cli 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/DOCS-CLEANUP-SUMMARY.md +140 -0
  3. package/DOCS.md +141 -0
  4. package/ERROR-MESSAGE-CLEANUP.md +64 -0
  5. package/IMPLEMENTATION-COMPLETE.md +6 -5
  6. package/MANUAL-STEPS-GUIDE.md +385 -0
  7. package/MANUAL-STEPS-USER-FLOW.md +231 -0
  8. package/PLAN-VS-IMPLEMENTATION.md +248 -0
  9. package/PUBLISHED-0.2.2.md +65 -0
  10. package/README.md +24 -2
  11. package/START-HERE.md +115 -0
  12. package/dist/commands/add.d.ts.map +1 -1
  13. package/dist/commands/add.js +0 -2
  14. package/dist/commands/add.js.map +1 -1
  15. package/dist/commands/devices.d.ts.map +1 -1
  16. package/dist/commands/devices.js +1 -3
  17. package/dist/commands/devices.js.map +1 -1
  18. package/dist/commands/list.d.ts.map +1 -1
  19. package/dist/commands/list.js +1 -3
  20. package/dist/commands/list.js.map +1 -1
  21. package/dist/core/http.d.ts.map +1 -1
  22. package/dist/core/http.js +61 -33
  23. package/dist/core/http.js.map +1 -1
  24. package/docs/next-steps.md +12 -0
  25. package/package.json +10 -1
  26. package/recipes/audio-recorder@latest.zip +0 -0
  27. package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -0
  28. package/recipes/charts/apps/native/src/features/charts/app/preview.tsx +3 -0
  29. package/recipes/charts/apps/native/src/features/charts/components/area-chart.tsx +3 -0
  30. package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -0
  31. package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -0
  32. package/recipes/charts/apps/native/src/features/charts/components/chart-card.tsx +3 -0
  33. package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -0
  34. package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +3 -0
  35. package/recipes/charts/apps/native/src/features/charts/components/index.ts +3 -0
  36. package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -0
  37. package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -0
  38. package/recipes/charts/apps/native/src/features/charts/components/radial-bar-chart.tsx +3 -0
  39. package/recipes/charts/apps/native/src/features/charts/components/stacked-area-chart.tsx +3 -0
  40. package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -0
  41. package/recipes/charts/apps/native/src/features/charts/data/mock-data.ts +3 -0
  42. package/recipes/charts/apps/native/src/features/charts/types/index.ts +3 -0
  43. package/recipes/charts/recipe.json +7 -1
  44. package/recipes/charts@latest.zip +0 -0
  45. package/recipes/chatbot/apps/native/src/app/chatbot/index.tsx +1 -0
  46. package/recipes/chatbot/apps/native/src/features/chatbot/app/index.tsx +1 -0
  47. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +1 -0
  48. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-input-bar.tsx +1 -0
  49. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +1 -0
  50. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +1 -0
  51. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +1 -0
  52. package/recipes/chatbot/apps/native/src/features/chatbot/components/image-preview-list.tsx +1 -0
  53. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +1 -0
  54. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/index.ts +1 -0
  55. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +1 -0
  56. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-error-boundary.tsx +1 -0
  57. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-list.tsx +1 -0
  58. package/recipes/chatbot/apps/native/src/features/chatbot/components/model-selector.tsx +1 -0
  59. package/recipes/chatbot/apps/native/src/features/chatbot/components/report-content-modal.tsx +1 -0
  60. package/recipes/chatbot/apps/native/src/features/chatbot/components/suggested-messages.tsx +1 -0
  61. package/recipes/chatbot/apps/native/src/features/chatbot/constants/models.ts +1 -0
  62. package/recipes/chatbot/apps/native/src/features/chatbot/constants/report-reasons.ts +1 -0
  63. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +1 -0
  64. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-config.ts +1 -0
  65. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +1 -0
  66. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +1 -0
  67. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-conversation.ts +1 -0
  68. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-image-picker.ts +1 -0
  69. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +1 -0
  70. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +1 -0
  71. package/recipes/chatbot/apps/native/src/features/chatbot/models/index.ts +1 -0
  72. package/recipes/chatbot/apps/native/src/features/chatbot/models/models.ts +1 -0
  73. package/recipes/chatbot/apps/native/src/features/chatbot/models/providers.ts +1 -0
  74. package/recipes/chatbot/apps/native/src/features/chatbot/models/types.ts +1 -0
  75. package/recipes/chatbot/apps/native/src/features/chatbot/services/file-uploader.ts +1 -0
  76. package/recipes/chatbot/apps/native/src/features/chatbot/services/message-handler-service.ts +1 -0
  77. package/recipes/chatbot/apps/native/src/features/chatbot/types/index.ts +1 -0
  78. package/recipes/chatbot/apps/native/src/features/chatbot/utils/chat-telemetry.ts +1 -0
  79. package/recipes/chatbot/packages/backend/convex/chatbot/index.ts +30 -0
  80. package/recipes/chatbot/recipe.json +16 -1
  81. package/recipes/chatbot@latest.zip +0 -0
  82. package/recipes/image-generator@latest.zip +0 -0
  83. package/recipes/quiz@latest.zip +0 -0
  84. package/recipes/tracker-app@latest.zip +0 -0
  85. package/recipes/voice-bot@latest.zip +0 -0
  86. package/scripts/create-recipes.mjs +33 -1
  87. package/src/commands/add.ts +0 -2
  88. package/src/commands/devices.ts +1 -3
  89. package/src/commands/list.ts +1 -3
  90. package/src/core/http.ts +62 -36
  91. package/MONITORING-AND-ANNOUNCEMENT-GUIDE.md +0 -669
  92. package/PRE-PUBLISH-CHECKLIST.md +0 -558
  93. package/PUBLISHED-SUCCESS.md +0 -282
  94. package/READY-TO-PUBLISH.md +0 -419
  95. package/RECIPES-READY.md +0 -172
  96. package/cloudflare-worker/mini-native@latest.zip +0 -0
  97. package/cloudflare-worker/test-recipe/apps/native/src/app/mini/index.tsx +0 -15
  98. package/cloudflare-worker/test-recipe/recipe.json +0 -16
  99. package/text.md +0 -27
  100. /package/{AUTO-DETECT-DEPS.md → docs/archive/AUTO-DETECT-DEPS.md} +0 -0
  101. /package/{FINAL-PACKAGE-STRATEGY.md → docs/archive/FINAL-PACKAGE-STRATEGY.md} +0 -0
  102. /package/{FINAL-SIMPLE-PLAN.md → docs/archive/FINAL-SIMPLE-PLAN.md} +0 -0
  103. /package/{FINAL-STATUS.md → docs/archive/FINAL-STATUS.md} +0 -0
  104. /package/{FLOW-DIAGRAM.md → docs/archive/FLOW-DIAGRAM.md} +0 -0
  105. /package/{GOTCHAS-AND-RISKS.md → docs/archive/GOTCHAS-AND-RISKS.md} +0 -0
  106. /package/{IMPLEMENTATION-PLAN.md → docs/archive/IMPLEMENTATION-PLAN.md} +0 -0
  107. /package/{PLAN.md → docs/archive/PLAN.md} +0 -0
  108. /package/{PRODUCTION-READINESS.md → docs/archive/PRODUCTION-READINESS.md} +0 -0
  109. /package/{PRODUCTION-TEST-RESULTS.md → docs/archive/PRODUCTION-TEST-RESULTS.md} +0 -0
  110. /package/{SIMPLIFIED-PLAN.md → docs/archive/SIMPLIFIED-PLAN.md} +0 -0
  111. /package/{STATUS.md → docs/archive/STATUS.md} +0 -0
  112. /package/{SUCCESS.md → docs/archive/SUCCESS.md} +0 -0
  113. /package/{TEST-SUMMARY.md → docs/archive/TEST-SUMMARY.md} +0 -0
  114. /package/{TESTING-CHECKLIST.md → docs/archive/TESTING-CHECKLIST.md} +0 -0
  115. /package/{USER-MODIFICATIONS.md → docs/archive/USER-MODIFICATIONS.md} +0 -0
@@ -0,0 +1,385 @@
1
+ # Manual Steps Guide
2
+
3
+ ## What Are Manual Steps?
4
+
5
+ Manual steps are instructions shown to users when a feature requires **external service configuration** that can't be automated. This is for features that need:
6
+
7
+ - API keys from third-party services
8
+ - Account creation on external platforms
9
+ - Environment variables
10
+ - Manual code modifications
11
+
12
+ ## When to Use Manual Steps
13
+
14
+ ### ✅ Use Manual Steps For:
15
+
16
+ 1. **Third-Party Services**
17
+ - Sentry (error tracking)
18
+ - PostHog (analytics)
19
+ - Stripe (payments)
20
+ - OpenAI (AI APIs)
21
+ - Firebase (backend services)
22
+ - Supabase (database)
23
+
24
+ 2. **API Keys & Secrets**
25
+ - Any feature requiring API keys
26
+ - OAuth credentials
27
+ - Webhook URLs
28
+ - Service tokens
29
+
30
+ 3. **External Accounts**
31
+ - Features requiring user to sign up elsewhere
32
+ - Services with manual approval process
33
+
34
+ ### ❌ Don't Use Manual Steps For:
35
+
36
+ 1. **Pure UI Components**
37
+ - Charts, graphs, visualizations
38
+ - UI widgets, buttons, forms
39
+ - Navigation components
40
+ - Layout components
41
+
42
+ 2. **Self-Contained Features**
43
+ - Quiz app (no external service)
44
+ - Tracker app (local storage)
45
+ - Audio recorder (device only)
46
+
47
+ ## How to Add Manual Steps
48
+
49
+ ### Recipe Format
50
+
51
+ ```json
52
+ {
53
+ "name": "sentry",
54
+ "version": "1.0.0",
55
+ "description": "Error tracking with Sentry",
56
+ "target": "native",
57
+
58
+ "copy": [
59
+ {
60
+ "from": "apps/native/src/features/sentry",
61
+ "to": "apps/native/src/features/sentry"
62
+ }
63
+ ],
64
+
65
+ "dependencies": {
66
+ "expo": ["@sentry/react-native"]
67
+ },
68
+
69
+ "env": [
70
+ {
71
+ "key": "SENTRY_DSN",
72
+ "description": "Your Sentry DSN for error tracking",
73
+ "example": "https://abc123@o123.ingest.sentry.io/456",
74
+ "link": "https://sentry.io/settings/projects/"
75
+ },
76
+ {
77
+ "key": "SENTRY_ORG",
78
+ "description": "Your Sentry organization slug",
79
+ "example": "my-company",
80
+ "link": "https://sentry.io/settings/"
81
+ }
82
+ ],
83
+
84
+ "manualSteps": [
85
+ {
86
+ "title": "Create Sentry Account",
87
+ "description": "Sign up at sentry.io and create a new project for your app",
88
+ "link": "https://sentry.io/signup/"
89
+ },
90
+ {
91
+ "title": "Get Your DSN",
92
+ "description": "Copy your DSN from Project Settings > Client Keys (DSN)",
93
+ "link": "https://sentry.io/settings/"
94
+ },
95
+ {
96
+ "title": "Add Environment Variables",
97
+ "description": "Add SENTRY_DSN and SENTRY_ORG to your .env file",
98
+ "file": ".env",
99
+ "content": "SENTRY_DSN=your-dsn-here\nSENTRY_ORG=your-org-slug"
100
+ },
101
+ {
102
+ "title": "Initialize Sentry",
103
+ "description": "Import and initialize Sentry in your app entry point",
104
+ "file": "apps/native/src/app/_layout.tsx",
105
+ "content": "import { initSentry } from '@/features/sentry';\ninitSentry();"
106
+ }
107
+ ],
108
+
109
+ "postInstall": {
110
+ "message": "Sentry is installed! Complete the manual steps to start tracking errors."
111
+ }
112
+ }
113
+ ```
114
+
115
+ ### Field Descriptions
116
+
117
+ #### `env` Array
118
+ Each environment variable needs:
119
+ - `key` (required): The env var name (e.g., "SENTRY_DSN")
120
+ - `description` (required): What this variable is for
121
+ - `example` (required): Example value to show format
122
+ - `link` (optional): URL where to get this value
123
+
124
+ #### `manualSteps` Array
125
+ Each step needs:
126
+ - `title` (required): Short step title
127
+ - `description` (required): Detailed instructions
128
+ - `link` (optional): URL for more info or to perform action
129
+ - `file` (optional): File to modify
130
+ - `content` (optional): Code/text to add to the file
131
+
132
+ ## User Experience
133
+
134
+ ### During Installation
135
+
136
+ When a user runs `vf add sentry`, they see:
137
+
138
+ ```bash
139
+ ✓ sentry installed successfully!
140
+ ℹ Files added: 5
141
+
142
+ ⚠ This feature requires additional packages
143
+
144
+ 📦 Required packages:
145
+ • @sentry/react-native
146
+
147
+ Install with:
148
+ npx expo install @sentry/react-native
149
+
150
+ 💡 Expo will automatically pick compatible versions
151
+
152
+ ⚠ MANUAL STEPS REQUIRED:
153
+
154
+ This feature requires some manual configuration:
155
+
156
+ Step 1: Create Sentry Account
157
+ Sign up at sentry.io and create a new project for your app
158
+ 🔗 https://sentry.io/signup/
159
+
160
+ Step 2: Get Your DSN
161
+ Copy your DSN from Project Settings > Client Keys (DSN)
162
+ 🔗 https://sentry.io/settings/
163
+
164
+ Step 3: Add Environment Variables
165
+ Add SENTRY_DSN and SENTRY_ORG to your .env file
166
+ 📝 File: .env
167
+ Add: SENTRY_DSN=your-dsn-here
168
+ SENTRY_ORG=your-org-slug
169
+
170
+ Step 4: Initialize Sentry
171
+ Import and initialize Sentry in your app entry point
172
+ 📝 File: apps/native/src/app/_layout.tsx
173
+ Add: import { initSentry } from '@/features/sentry';
174
+ initSentry();
175
+
176
+ ⚠ REQUIRED ENVIRONMENT VARIABLES:
177
+
178
+ SENTRY_DSN
179
+ Your Sentry DSN for error tracking
180
+ Example: https://abc123@o123.ingest.sentry.io/456
181
+ Get it: https://sentry.io/settings/projects/
182
+
183
+ SENTRY_ORG
184
+ Your Sentry organization slug
185
+ Example: my-company
186
+ Get it: https://sentry.io/settings/
187
+
188
+ Add these to your .env file
189
+
190
+ 💡 Run 'vf checklist sentry' to see these steps again
191
+ ```
192
+
193
+ ### Later Reference
194
+
195
+ User can run `vf checklist sentry` anytime to see the steps again:
196
+
197
+ ```bash
198
+ $ vf checklist sentry
199
+
200
+ Manual setup steps for sentry:
201
+
202
+ Step 1: Create Sentry Account
203
+ Sign up at sentry.io and create a new project for your app
204
+ 🔗 https://sentry.io/signup/
205
+
206
+ Step 2: Get Your DSN
207
+ Copy your DSN from Project Settings > Client Keys (DSN)
208
+ 🔗 https://sentry.io/settings/
209
+
210
+ ...
211
+ ```
212
+
213
+ ### Status Command
214
+
215
+ The status command shows which features have pending manual steps:
216
+
217
+ ```bash
218
+ $ vf status
219
+
220
+ Installed features:
221
+
222
+ ✓ charts (v1.0.0) - native
223
+ Files: 17
224
+ Installed: 11/14/2024
225
+
226
+ ✓ sentry (v1.2.0) - native
227
+ Files: 5
228
+ Installed: 11/14/2024
229
+ ⚠ Has manual setup steps (run: vf checklist sentry)
230
+
231
+ Total: 2 feature(s) installed
232
+ ```
233
+
234
+ ## Real-World Examples
235
+
236
+ ### Example 1: PostHog Analytics
237
+
238
+ ```json
239
+ {
240
+ "name": "posthog",
241
+ "env": [
242
+ {
243
+ "key": "POSTHOG_API_KEY",
244
+ "description": "Your PostHog project API key",
245
+ "example": "phc_abc123xyz",
246
+ "link": "https://app.posthog.com/project/settings"
247
+ },
248
+ {
249
+ "key": "POSTHOG_HOST",
250
+ "description": "PostHog instance URL",
251
+ "example": "https://app.posthog.com",
252
+ "link": "https://posthog.com/docs/getting-started/cloud"
253
+ }
254
+ ],
255
+ "manualSteps": [
256
+ {
257
+ "title": "Create PostHog Account",
258
+ "description": "Sign up at posthog.com and create a project",
259
+ "link": "https://app.posthog.com/signup"
260
+ },
261
+ {
262
+ "title": "Get API Key",
263
+ "description": "Copy your Project API Key from Settings",
264
+ "link": "https://app.posthog.com/project/settings"
265
+ }
266
+ ]
267
+ }
268
+ ```
269
+
270
+ ### Example 2: Stripe Payments
271
+
272
+ ```json
273
+ {
274
+ "name": "stripe-checkout",
275
+ "env": [
276
+ {
277
+ "key": "STRIPE_PUBLISHABLE_KEY",
278
+ "description": "Your Stripe publishable key (starts with pk_)",
279
+ "example": "pk_test_abc123",
280
+ "link": "https://dashboard.stripe.com/apikeys"
281
+ },
282
+ {
283
+ "key": "STRIPE_SECRET_KEY",
284
+ "description": "Your Stripe secret key (starts with sk_) - KEEP SECRET!",
285
+ "example": "sk_test_xyz789",
286
+ "link": "https://dashboard.stripe.com/apikeys"
287
+ }
288
+ ],
289
+ "manualSteps": [
290
+ {
291
+ "title": "Create Stripe Account",
292
+ "description": "Sign up at stripe.com and complete account setup",
293
+ "link": "https://dashboard.stripe.com/register"
294
+ },
295
+ {
296
+ "title": "Get API Keys",
297
+ "description": "Get your test keys from the Stripe Dashboard",
298
+ "link": "https://dashboard.stripe.com/apikeys"
299
+ },
300
+ {
301
+ "title": "Configure Webhooks",
302
+ "description": "Set up webhook endpoint for payment events",
303
+ "link": "https://dashboard.stripe.com/webhooks"
304
+ }
305
+ ]
306
+ }
307
+ ```
308
+
309
+ ### Example 3: OpenAI Integration
310
+
311
+ ```json
312
+ {
313
+ "name": "ai-chat",
314
+ "env": [
315
+ {
316
+ "key": "OPENAI_API_KEY",
317
+ "description": "Your OpenAI API key",
318
+ "example": "sk-proj-abc123xyz",
319
+ "link": "https://platform.openai.com/api-keys"
320
+ }
321
+ ],
322
+ "manualSteps": [
323
+ {
324
+ "title": "Create OpenAI Account",
325
+ "description": "Sign up at platform.openai.com",
326
+ "link": "https://platform.openai.com/signup"
327
+ },
328
+ {
329
+ "title": "Add Payment Method",
330
+ "description": "Add a payment method to enable API access",
331
+ "link": "https://platform.openai.com/account/billing"
332
+ },
333
+ {
334
+ "title": "Generate API Key",
335
+ "description": "Create a new API key from your account settings",
336
+ "link": "https://platform.openai.com/api-keys"
337
+ }
338
+ ]
339
+ }
340
+ ```
341
+
342
+ ## Best Practices
343
+
344
+ ### 1. Be Specific
345
+ ❌ Bad: "Get your API key"
346
+ ✅ Good: "Copy your Project API Key from Settings > API Keys"
347
+
348
+ ### 2. Include Links
349
+ Always provide direct links to:
350
+ - Sign up pages
351
+ - Settings pages
352
+ - Documentation
353
+ - API key pages
354
+
355
+ ### 3. Show Examples
356
+ Always include example values so users know the format:
357
+ ```json
358
+ {
359
+ "example": "https://abc123@o123.ingest.sentry.io/456"
360
+ }
361
+ ```
362
+
363
+ ### 4. Order Steps Logically
364
+ 1. Create account
365
+ 2. Get credentials
366
+ 3. Add to .env
367
+ 4. Initialize in code
368
+
369
+ ### 5. Warn About Secrets
370
+ For sensitive keys, add warnings:
371
+ ```json
372
+ {
373
+ "description": "Your Stripe secret key (starts with sk_) - KEEP SECRET! Never commit to Git!"
374
+ }
375
+ ```
376
+
377
+ ## Summary
378
+
379
+ - **Use manual steps** for features requiring external services, API keys, or accounts
380
+ - **Don't use** for pure UI components or self-contained features
381
+ - **Be specific** with instructions and always include links
382
+ - **Show examples** so users know what format to expect
383
+ - Users can run `vf checklist <feature>` anytime to see steps again
384
+
385
+ Your current features (charts, chatbot, quiz, etc.) don't need manual steps because they're self-contained UI components!
@@ -0,0 +1,231 @@
1
+ # How Users Access Manual Steps
2
+
3
+ ## The User Journey
4
+
5
+ ### Step 1: User Installs a Feature
6
+
7
+ ```bash
8
+ $ vf add sentry
9
+ ```
10
+
11
+ ### Step 2: CLI Shows Manual Steps Automatically
12
+
13
+ After installation completes, the CLI **automatically displays** manual steps:
14
+
15
+ ```bash
16
+ ✓ sentry installed successfully!
17
+ ℹ Files added: 5
18
+
19
+ ⚠ This feature requires additional packages
20
+
21
+ 📦 Required packages:
22
+ • @sentry/react-native
23
+
24
+ Install with:
25
+ npx expo install @sentry/react-native
26
+
27
+ 💡 Expo will automatically pick compatible versions
28
+
29
+
30
+ ⚠ MANUAL STEPS REQUIRED:
31
+
32
+ This feature requires some manual configuration:
33
+
34
+ Step 1: Create Sentry Account
35
+ Sign up at sentry.io and create a new project for your app
36
+ 🔗 https://sentry.io/signup/
37
+
38
+ Step 2: Get Your DSN
39
+ Copy your DSN from Project Settings > Client Keys (DSN)
40
+ 🔗 https://sentry.io/settings/
41
+
42
+ Step 3: Add Environment Variables
43
+ Add SENTRY_DSN to your .env file
44
+ 📝 File: .env
45
+ Add: SENTRY_DSN=your-dsn-here
46
+
47
+ ⚠ REQUIRED ENVIRONMENT VARIABLES:
48
+
49
+ SENTRY_DSN
50
+ Your Sentry DSN for error tracking
51
+ Example: https://abc123@o123.ingest.sentry.io/456
52
+ Get it: https://sentry.io/settings/projects/
53
+
54
+ Add these to your .env file
55
+
56
+ 💡 Run 'vf checklist sentry' to see these steps again
57
+ ```
58
+
59
+ **Key Point:** Users see manual steps **immediately** after installation. They don't need to look for them!
60
+
61
+ ---
62
+
63
+ ### Step 3: User Forgets Steps (Later)
64
+
65
+ A week later, user wants to see the steps again:
66
+
67
+ ```bash
68
+ $ vf checklist sentry
69
+ ```
70
+
71
+ Output:
72
+ ```bash
73
+ Manual setup steps for sentry:
74
+
75
+ Step 1: Create Sentry Account
76
+ Sign up at sentry.io and create a new project for your app
77
+ 🔗 https://sentry.io/signup/
78
+
79
+ Step 2: Get Your DSN
80
+ Copy your DSN from Project Settings > Client Keys (DSN)
81
+ 🔗 https://sentry.io/settings/
82
+
83
+ Step 3: Add Environment Variables
84
+ Add SENTRY_DSN to your .env file
85
+ 📝 File: .env
86
+ Add: SENTRY_DSN=your-dsn-here
87
+
88
+ ⚠ REQUIRED ENVIRONMENT VARIABLES:
89
+
90
+ SENTRY_DSN
91
+ Your Sentry DSN for error tracking
92
+ Example: https://abc123@o123.ingest.sentry.io/456
93
+ Get it: https://sentry.io/settings/projects/
94
+
95
+ Add these to your .env file
96
+ ```
97
+
98
+ ---
99
+
100
+ ### Step 4: User Checks Status
101
+
102
+ User can see which features have pending manual steps:
103
+
104
+ ```bash
105
+ $ vf status
106
+ ```
107
+
108
+ Output:
109
+ ```bash
110
+ Installed features:
111
+
112
+ ✓ charts (v1.0.0) - native
113
+ Files: 17
114
+ Installed: 11/14/2024
115
+
116
+ ✓ sentry (v1.2.0) - native
117
+ Files: 5
118
+ Installed: 11/14/2024
119
+ ⚠ Has manual setup steps (run: vf checklist sentry)
120
+
121
+ Total: 2 feature(s) installed
122
+ ```
123
+
124
+ The warning `⚠ Has manual setup steps` reminds them!
125
+
126
+ ---
127
+
128
+ ## Discovery Methods
129
+
130
+ Users can discover manual steps through **3 ways**:
131
+
132
+ ### 1. Automatic Display (Primary)
133
+ ✅ **Shown immediately after `vf add`**
134
+ - User can't miss it
135
+ - Displayed in a clear, formatted way
136
+ - Includes helpful links
137
+
138
+ ### 2. Checklist Command (Reference)
139
+ ✅ **Run `vf checklist <feature>` anytime**
140
+ - See steps again later
141
+ - No need to reinstall
142
+ - Stored in journal
143
+
144
+ ### 3. Status Command (Discovery)
145
+ ✅ **Run `vf status` to see which features need setup**
146
+ - Shows warning indicator
147
+ - Tells user to run checklist command
148
+ - Quick overview
149
+
150
+ ---
151
+
152
+ ## Example: Complete User Flow
153
+
154
+ ### Scenario: User installs Sentry
155
+
156
+ ```bash
157
+ # 1. Install feature
158
+ $ vf add sentry
159
+
160
+ # Output shows manual steps immediately
161
+ ⚠ MANUAL STEPS REQUIRED:
162
+ Step 1: Create Sentry Account...
163
+ 💡 Run 'vf checklist sentry' to see these steps again
164
+
165
+ # 2. User follows steps, creates account, gets DSN
166
+
167
+ # 3. User adds to .env
168
+ $ echo "SENTRY_DSN=https://abc@xyz.ingest.sentry.io/123" >> .env
169
+
170
+ # 4. Week later, user forgets DSN format
171
+ $ vf checklist sentry
172
+
173
+ # Shows steps again with example format
174
+ Example: https://abc123@o123.ingest.sentry.io/456
175
+
176
+ # 5. User checks all installed features
177
+ $ vf status
178
+
179
+ Installed features:
180
+ ✓ sentry (v1.2.0) - native
181
+ ⚠ Has manual setup steps (run: vf checklist sentry)
182
+ ```
183
+
184
+ ---
185
+
186
+ ## For Features WITHOUT Manual Steps
187
+
188
+ Most features (charts, chatbot, quiz) don't need manual steps:
189
+
190
+ ```bash
191
+ $ vf add charts
192
+
193
+ ✓ charts installed successfully!
194
+ ℹ Files added: 17
195
+
196
+ ⚠ This feature requires additional packages
197
+
198
+ 📦 Required packages:
199
+ • @shopify/react-native-skia
200
+ • react-native-svg
201
+
202
+ Install with:
203
+ npx expo install @shopify/react-native-skia react-native-svg
204
+
205
+ # No manual steps shown - just install packages and you're done!
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Summary
211
+
212
+ **Users access manual steps through:**
213
+
214
+ 1. **Automatic display** - Shown right after `vf add` (can't miss it!)
215
+ 2. **`vf checklist <feature>`** - See steps again anytime
216
+ 3. **`vf status`** - Reminder that steps exist
217
+
218
+ **No searching required!** The CLI guides users through the entire process.
219
+
220
+ ---
221
+
222
+ ## For Recipe Creators
223
+
224
+ When you create a recipe with manual steps:
225
+
226
+ 1. Add `manualSteps` and `env` to recipe.json
227
+ 2. CLI automatically shows them after installation
228
+ 3. CLI stores them in journal for later reference
229
+ 4. Users can access them anytime with `vf checklist`
230
+
231
+ See [MANUAL-STEPS-GUIDE.md](MANUAL-STEPS-GUIDE.md) for details on creating recipes with manual steps.