vibefast-cli 0.2.2 → 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.
- package/DOCS-CLEANUP-SUMMARY.md +140 -0
- package/DOCS.md +141 -0
- package/IMPLEMENTATION-COMPLETE.md +6 -5
- package/MANUAL-STEPS-GUIDE.md +385 -0
- package/MANUAL-STEPS-USER-FLOW.md +231 -0
- package/PLAN-VS-IMPLEMENTATION.md +248 -0
- package/PUBLISHED-0.2.2.md +65 -0
- package/README.md +24 -2
- package/START-HERE.md +115 -0
- package/docs/next-steps.md +12 -0
- package/package.json +10 -1
- package/recipes/audio-recorder@latest.zip +0 -0
- package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/app/preview.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/area-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/chart-card.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/index.ts +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/radial-bar-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/stacked-area-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -0
- package/recipes/charts/apps/native/src/features/charts/data/mock-data.ts +3 -0
- package/recipes/charts/apps/native/src/features/charts/types/index.ts +3 -0
- package/recipes/charts/recipe.json +7 -1
- package/recipes/charts@latest.zip +0 -0
- package/recipes/chatbot/apps/native/src/app/chatbot/index.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/app/index.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-input-bar.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/image-preview-list.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/index.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/message-error-boundary.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/message-list.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/model-selector.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/report-content-modal.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/components/suggested-messages.tsx +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/constants/models.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/constants/report-reasons.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-config.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-conversation.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-image-picker.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/models/index.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/models/models.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/models/providers.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/models/types.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/services/file-uploader.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/services/message-handler-service.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/types/index.ts +1 -0
- package/recipes/chatbot/apps/native/src/features/chatbot/utils/chat-telemetry.ts +1 -0
- package/recipes/chatbot/packages/backend/convex/chatbot/index.ts +30 -0
- package/recipes/chatbot/recipe.json +16 -1
- package/recipes/chatbot@latest.zip +0 -0
- package/recipes/image-generator@latest.zip +0 -0
- package/recipes/quiz@latest.zip +0 -0
- package/recipes/tracker-app@latest.zip +0 -0
- package/recipes/voice-bot@latest.zip +0 -0
- package/scripts/create-recipes.mjs +33 -1
- package/MONITORING-AND-ANNOUNCEMENT-GUIDE.md +0 -669
- package/PRE-PUBLISH-CHECKLIST.md +0 -558
- package/PUBLISHED-SUCCESS.md +0 -282
- package/READY-TO-PUBLISH.md +0 -419
- package/RECIPES-READY.md +0 -172
- package/cloudflare-worker/mini-native@latest.zip +0 -0
- package/cloudflare-worker/test-recipe/apps/native/src/app/mini/index.tsx +0 -15
- package/cloudflare-worker/test-recipe/recipe.json +0 -16
- package/text.md +0 -27
- /package/{AUTO-DETECT-DEPS.md → docs/archive/AUTO-DETECT-DEPS.md} +0 -0
- /package/{FINAL-PACKAGE-STRATEGY.md → docs/archive/FINAL-PACKAGE-STRATEGY.md} +0 -0
- /package/{FINAL-SIMPLE-PLAN.md → docs/archive/FINAL-SIMPLE-PLAN.md} +0 -0
- /package/{FINAL-STATUS.md → docs/archive/FINAL-STATUS.md} +0 -0
- /package/{FLOW-DIAGRAM.md → docs/archive/FLOW-DIAGRAM.md} +0 -0
- /package/{GOTCHAS-AND-RISKS.md → docs/archive/GOTCHAS-AND-RISKS.md} +0 -0
- /package/{IMPLEMENTATION-PLAN.md → docs/archive/IMPLEMENTATION-PLAN.md} +0 -0
- /package/{PLAN.md → docs/archive/PLAN.md} +0 -0
- /package/{PRODUCTION-READINESS.md → docs/archive/PRODUCTION-READINESS.md} +0 -0
- /package/{PRODUCTION-TEST-RESULTS.md → docs/archive/PRODUCTION-TEST-RESULTS.md} +0 -0
- /package/{SIMPLIFIED-PLAN.md → docs/archive/SIMPLIFIED-PLAN.md} +0 -0
- /package/{STATUS.md → docs/archive/STATUS.md} +0 -0
- /package/{SUCCESS.md → docs/archive/SUCCESS.md} +0 -0
- /package/{TEST-SUMMARY.md → docs/archive/TEST-SUMMARY.md} +0 -0
- /package/{TESTING-CHECKLIST.md → docs/archive/TESTING-CHECKLIST.md} +0 -0
- /package/{USER-MODIFICATIONS.md → docs/archive/USER-MODIFICATIONS.md} +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Documentation Cleanup Summary
|
|
2
|
+
|
|
3
|
+
## What Was Done
|
|
4
|
+
|
|
5
|
+
### 📦 Archived (moved to `docs/archive/`)
|
|
6
|
+
Planning and development docs that are no longer actively needed:
|
|
7
|
+
- AUTO-DETECT-DEPS.md
|
|
8
|
+
- FINAL-PACKAGE-STRATEGY.md
|
|
9
|
+
- FINAL-SIMPLE-PLAN.md
|
|
10
|
+
- FINAL-STATUS.md
|
|
11
|
+
- FLOW-DIAGRAM.md
|
|
12
|
+
- GOTCHAS-AND-RISKS.md
|
|
13
|
+
- IMPLEMENTATION-PLAN.md
|
|
14
|
+
- PLAN.md
|
|
15
|
+
- PRODUCTION-READINESS.md
|
|
16
|
+
- PRODUCTION-TEST-RESULTS.md
|
|
17
|
+
- SIMPLIFIED-PLAN.md
|
|
18
|
+
- STATUS.md
|
|
19
|
+
- SUCCESS.md
|
|
20
|
+
- TEST-SUMMARY.md
|
|
21
|
+
- TESTING-CHECKLIST.md
|
|
22
|
+
- USER-MODIFICATIONS.md
|
|
23
|
+
|
|
24
|
+
### 🗑️ Deleted
|
|
25
|
+
Temporary/duplicate docs:
|
|
26
|
+
- text.md
|
|
27
|
+
- RECIPES-READY.md
|
|
28
|
+
- READY-TO-PUBLISH.md
|
|
29
|
+
- PUBLISHED-SUCCESS.md
|
|
30
|
+
- PRE-PUBLISH-CHECKLIST.md
|
|
31
|
+
- MONITORING-AND-ANNOUNCEMENT-GUIDE.md
|
|
32
|
+
|
|
33
|
+
### ✅ Kept (Active Documentation)
|
|
34
|
+
**User Documentation:**
|
|
35
|
+
- **README.md** - Main user guide (updated with manual steps info)
|
|
36
|
+
- **CHANGELOG.md** - Version history
|
|
37
|
+
- **DOCS.md** - Documentation index (NEW)
|
|
38
|
+
|
|
39
|
+
**Technical Documentation:**
|
|
40
|
+
- **HOW-IT-WORKS.md** - Architecture and internals
|
|
41
|
+
- **IMPLEMENTATION-COMPLETE.md** - Implementation details
|
|
42
|
+
|
|
43
|
+
**Recipe Creator Documentation:**
|
|
44
|
+
- **MANUAL-STEPS-GUIDE.md** - Guide for adding manual steps
|
|
45
|
+
- **MANUAL-STEPS-USER-FLOW.md** - How users access manual steps (NEW)
|
|
46
|
+
|
|
47
|
+
**Release Documentation:**
|
|
48
|
+
- **ERROR-MESSAGE-CLEANUP.md** - v0.2.2 error fixes
|
|
49
|
+
- **PUBLISHED-0.2.2.md** - v0.2.2 release notes
|
|
50
|
+
- **PLAN-VS-IMPLEMENTATION.md** - Implementation status
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## New Documentation Structure
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
vibefast-cli/
|
|
58
|
+
├── README.md # START HERE - User guide
|
|
59
|
+
├── DOCS.md # Documentation index
|
|
60
|
+
├── CHANGELOG.md # Version history
|
|
61
|
+
│
|
|
62
|
+
├── HOW-IT-WORKS.md # Technical architecture
|
|
63
|
+
├── IMPLEMENTATION-COMPLETE.md # Implementation details
|
|
64
|
+
│
|
|
65
|
+
├── MANUAL-STEPS-GUIDE.md # For recipe creators
|
|
66
|
+
├── MANUAL-STEPS-USER-FLOW.md # How users access manual steps
|
|
67
|
+
│
|
|
68
|
+
├── ERROR-MESSAGE-CLEANUP.md # v0.2.2 fixes
|
|
69
|
+
├── PUBLISHED-0.2.2.md # v0.2.2 release
|
|
70
|
+
├── PLAN-VS-IMPLEMENTATION.md # Implementation status
|
|
71
|
+
│
|
|
72
|
+
└── docs/
|
|
73
|
+
└── archive/ # Historical planning docs
|
|
74
|
+
├── IMPLEMENTATION-PLAN.md
|
|
75
|
+
├── FLOW-DIAGRAM.md
|
|
76
|
+
└── ... (16 archived docs)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Quick Reference
|
|
82
|
+
|
|
83
|
+
**I want to...**
|
|
84
|
+
|
|
85
|
+
| Goal | Read This |
|
|
86
|
+
|------|-----------|
|
|
87
|
+
| Use the CLI | [README.md](README.md) |
|
|
88
|
+
| See what's new | [CHANGELOG.md](CHANGELOG.md) |
|
|
89
|
+
| Find a specific doc | [DOCS.md](DOCS.md) |
|
|
90
|
+
| Understand internals | [HOW-IT-WORKS.md](HOW-IT-WORKS.md) |
|
|
91
|
+
| Create recipes with manual steps | [MANUAL-STEPS-GUIDE.md](MANUAL-STEPS-GUIDE.md) |
|
|
92
|
+
| Understand how users see manual steps | [MANUAL-STEPS-USER-FLOW.md](MANUAL-STEPS-USER-FLOW.md) |
|
|
93
|
+
| Check implementation status | [PLAN-VS-IMPLEMENTATION.md](PLAN-VS-IMPLEMENTATION.md) |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Benefits
|
|
98
|
+
|
|
99
|
+
### Before Cleanup
|
|
100
|
+
- 29 markdown files in root
|
|
101
|
+
- Confusing mix of planning, temp, and user docs
|
|
102
|
+
- Hard to find what you need
|
|
103
|
+
- Outdated information
|
|
104
|
+
|
|
105
|
+
### After Cleanup
|
|
106
|
+
- 10 focused docs in root
|
|
107
|
+
- Clear separation: user docs, technical docs, recipe creator docs
|
|
108
|
+
- Easy navigation with DOCS.md index
|
|
109
|
+
- All docs are current and relevant
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Maintenance
|
|
114
|
+
|
|
115
|
+
### When to Archive
|
|
116
|
+
Move docs to `docs/archive/` when:
|
|
117
|
+
- Planning phase is complete
|
|
118
|
+
- Implementation is done
|
|
119
|
+
- Information is historical/reference only
|
|
120
|
+
|
|
121
|
+
### When to Delete
|
|
122
|
+
Delete docs when:
|
|
123
|
+
- They're temporary (test results, checklists)
|
|
124
|
+
- They're duplicates
|
|
125
|
+
- They're empty or placeholder files
|
|
126
|
+
|
|
127
|
+
### When to Keep
|
|
128
|
+
Keep docs when:
|
|
129
|
+
- Users need them (README, CHANGELOG)
|
|
130
|
+
- Developers need them (HOW-IT-WORKS)
|
|
131
|
+
- Recipe creators need them (MANUAL-STEPS-GUIDE)
|
|
132
|
+
- They document releases (PUBLISHED-*.md)
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
**Cleanup completed:** November 14, 2024
|
|
137
|
+
**Files archived:** 16
|
|
138
|
+
**Files deleted:** 6
|
|
139
|
+
**Active docs:** 10
|
|
140
|
+
**New docs created:** 2 (DOCS.md, MANUAL-STEPS-USER-FLOW.md)
|
package/DOCS.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# VibeFast CLI Documentation Index
|
|
2
|
+
|
|
3
|
+
Quick reference to all documentation files.
|
|
4
|
+
|
|
5
|
+
## 📖 User Documentation
|
|
6
|
+
|
|
7
|
+
### [README.md](README.md) - **START HERE**
|
|
8
|
+
Complete user guide with all commands, options, and examples.
|
|
9
|
+
|
|
10
|
+
**Read this if you want to:**
|
|
11
|
+
- Install and use the CLI
|
|
12
|
+
- Learn all available commands
|
|
13
|
+
- Understand how to add/remove features
|
|
14
|
+
- Troubleshoot common issues
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### [CHANGELOG.md](CHANGELOG.md)
|
|
19
|
+
Version history and release notes.
|
|
20
|
+
|
|
21
|
+
**Read this if you want to:**
|
|
22
|
+
- See what's new in each version
|
|
23
|
+
- Check if a bug was fixed
|
|
24
|
+
- Understand breaking changes
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 🔧 Technical Documentation
|
|
29
|
+
|
|
30
|
+
### [HOW-IT-WORKS.md](HOW-IT-WORKS.md)
|
|
31
|
+
Technical architecture and implementation details.
|
|
32
|
+
|
|
33
|
+
**Read this if you want to:**
|
|
34
|
+
- Understand the CLI internals
|
|
35
|
+
- Learn about the authentication flow
|
|
36
|
+
- See how recipes are delivered
|
|
37
|
+
- Understand the journal system
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### [IMPLEMENTATION-COMPLETE.md](IMPLEMENTATION-COMPLETE.md)
|
|
42
|
+
Complete implementation details of all features.
|
|
43
|
+
|
|
44
|
+
**Read this if you want to:**
|
|
45
|
+
- See what features are implemented
|
|
46
|
+
- Understand the recipe format
|
|
47
|
+
- Learn about the journal structure
|
|
48
|
+
- See code examples
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 🎨 Recipe Creator Documentation
|
|
53
|
+
|
|
54
|
+
### [MANUAL-STEPS-GUIDE.md](MANUAL-STEPS-GUIDE.md)
|
|
55
|
+
Guide for adding manual setup steps to recipes.
|
|
56
|
+
|
|
57
|
+
**Read this if you want to:**
|
|
58
|
+
- Create recipes for services (Sentry, PostHog, etc.)
|
|
59
|
+
- Add environment variable requirements
|
|
60
|
+
- Show setup instructions to users
|
|
61
|
+
- See real-world examples
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### [MANUAL-STEPS-USER-FLOW.md](MANUAL-STEPS-USER-FLOW.md)
|
|
66
|
+
How users discover and access manual setup steps.
|
|
67
|
+
|
|
68
|
+
**Read this if you want to:**
|
|
69
|
+
- Understand how users see manual steps
|
|
70
|
+
- Learn the user journey
|
|
71
|
+
- See complete examples
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 📝 Release Documentation
|
|
76
|
+
|
|
77
|
+
### [ERROR-MESSAGE-CLEANUP.md](ERROR-MESSAGE-CLEANUP.md)
|
|
78
|
+
Documentation of error message improvements in v0.2.2.
|
|
79
|
+
|
|
80
|
+
**Read this if you want to:**
|
|
81
|
+
- Understand the error message cleanup
|
|
82
|
+
- See before/after examples
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### [PUBLISHED-0.2.2.md](PUBLISHED-0.2.2.md)
|
|
87
|
+
Release notes for v0.2.2.
|
|
88
|
+
|
|
89
|
+
**Read this if you want to:**
|
|
90
|
+
- See what was fixed in v0.2.2
|
|
91
|
+
- Verify installation
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### [PLAN-VS-IMPLEMENTATION.md](PLAN-VS-IMPLEMENTATION.md)
|
|
96
|
+
Comparison of planned vs implemented features.
|
|
97
|
+
|
|
98
|
+
**Read this if you want to:**
|
|
99
|
+
- See if all planned features are complete
|
|
100
|
+
- Understand what was simplified
|
|
101
|
+
- Check implementation status
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 📦 Archived Documentation
|
|
106
|
+
|
|
107
|
+
Historical planning and development docs are in `docs/archive/`:
|
|
108
|
+
- Implementation plans
|
|
109
|
+
- Testing checklists
|
|
110
|
+
- Production readiness docs
|
|
111
|
+
- Flow diagrams
|
|
112
|
+
- Status updates
|
|
113
|
+
|
|
114
|
+
**These are kept for reference but are no longer actively maintained.**
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Quick Navigation
|
|
119
|
+
|
|
120
|
+
**I want to...**
|
|
121
|
+
|
|
122
|
+
- **Use the CLI** → [README.md](README.md)
|
|
123
|
+
- **See what's new** → [CHANGELOG.md](CHANGELOG.md)
|
|
124
|
+
- **Understand how it works** → [HOW-IT-WORKS.md](HOW-IT-WORKS.md)
|
|
125
|
+
- **Create a recipe with manual steps** → [MANUAL-STEPS-GUIDE.md](MANUAL-STEPS-GUIDE.md)
|
|
126
|
+
- **See implementation details** → [IMPLEMENTATION-COMPLETE.md](IMPLEMENTATION-COMPLETE.md)
|
|
127
|
+
- **Check if a feature is done** → [PLAN-VS-IMPLEMENTATION.md](PLAN-VS-IMPLEMENTATION.md)
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Contributing
|
|
132
|
+
|
|
133
|
+
When adding new documentation:
|
|
134
|
+
1. Add it to this index
|
|
135
|
+
2. Keep it focused and concise
|
|
136
|
+
3. Link to it from relevant places
|
|
137
|
+
4. Archive old docs when they become outdated
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
**Last Updated:** November 14, 2024
|
|
@@ -445,11 +445,12 @@ The CLI is now production-ready and can be shipped!
|
|
|
445
445
|
|
|
446
446
|
## Next Steps
|
|
447
447
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
448
|
+
Remaining work is tracked in [`docs/next-steps.md`](docs/next-steps.md), which keeps these priority items discoverable for future contributors.
|
|
449
|
+
|
|
450
|
+
## Automated Test Runs
|
|
451
|
+
|
|
452
|
+
- `npm run test` (watch mode) initially timed out because Vitest remained in watch mode.
|
|
453
|
+
- `CI=1 npm run test` runs a single pass; all `34` tests complete successfully (`prompt`, `validate`, `hash`, `journal`, `fsx` suites).
|
|
453
454
|
|
|
454
455
|
---
|
|
455
456
|
|
|
@@ -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!
|