vibefast-cli 1.2.1 → 1.3.1

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 (348) hide show
  1. package/README.md +30 -95
  2. package/dist/__tests__/recipes.test.js +94 -91
  3. package/dist/__tests__/recipes.test.js.map +1 -1
  4. package/dist/commands/add.d.ts.map +1 -1
  5. package/dist/commands/add.js +301 -125
  6. package/dist/commands/add.js.map +1 -1
  7. package/dist/commands/checklist.d.ts.map +1 -1
  8. package/dist/commands/checklist.js +85 -44
  9. package/dist/commands/checklist.js.map +1 -1
  10. package/dist/commands/health.d.ts.map +1 -1
  11. package/dist/commands/health.js +13 -4
  12. package/dist/commands/health.js.map +1 -1
  13. package/dist/commands/init.d.ts.map +1 -1
  14. package/dist/commands/init.js +118 -26
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/migrate.d.ts +3 -0
  17. package/dist/commands/migrate.d.ts.map +1 -0
  18. package/dist/commands/migrate.js +202 -0
  19. package/dist/commands/migrate.js.map +1 -0
  20. package/dist/commands/remove.d.ts.map +1 -1
  21. package/dist/commands/remove.js +61 -3
  22. package/dist/commands/remove.js.map +1 -1
  23. package/dist/core/auth.d.ts.map +1 -1
  24. package/dist/core/auth.js +20 -18
  25. package/dist/core/auth.js.map +1 -1
  26. package/dist/core/codemod.d.ts +33 -0
  27. package/dist/core/codemod.d.ts.map +1 -1
  28. package/dist/core/codemod.js +116 -0
  29. package/dist/core/codemod.js.map +1 -1
  30. package/dist/core/detect.d.ts.map +1 -1
  31. package/dist/core/detect.js +24 -7
  32. package/dist/core/detect.js.map +1 -1
  33. package/dist/core/journal.d.ts +1 -0
  34. package/dist/core/journal.d.ts.map +1 -1
  35. package/dist/core/journal.js.map +1 -1
  36. package/dist/core/recipes.d.ts.map +1 -1
  37. package/dist/core/recipes.js +25 -7
  38. package/dist/core/recipes.js.map +1 -1
  39. package/dist/index.js +2 -2
  40. package/dist/index.js.map +1 -1
  41. package/docs/architecture.md +50 -0
  42. package/docs/commands.md +78 -0
  43. package/docs/contributing.md +27 -0
  44. package/docs/quickstart.md +50 -0
  45. package/docs/recipes.md +57 -0
  46. package/docs/troubleshooting.md +31 -0
  47. package/package.json +2 -2
  48. package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +445 -0
  49. package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +355 -0
  50. package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +31 -0
  51. package/recipes/0/recipe.json +18 -0
  52. package/recipes/animated-chip/apps/native/src/components/advanced-ui/chip/demo.tsx +2 -1
  53. package/recipes/animated-chip/recipe.json +5 -2
  54. package/recipes/animated-chip-native@latest.zip +0 -0
  55. package/recipes/animated-chip@latest.zip +0 -0
  56. package/recipes/animated-switch/apps/native/src/components/advanced-ui/switch/demo.tsx +1 -1
  57. package/recipes/animated-switch/recipe.json +5 -2
  58. package/recipes/animated-switch-native@latest.zip +0 -0
  59. package/recipes/animated-switch@latest.zip +0 -0
  60. package/recipes/audio-recorder/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +2 -1
  61. package/recipes/audio-recorder/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +2 -2
  62. package/recipes/audio-recorder/recipe.json +7 -2
  63. package/recipes/audio-recorder-native@latest.zip +0 -0
  64. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +2 -1
  65. package/recipes/audio-recorder-supabase/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +2 -1
  66. package/recipes/audio-recorder-supabase/recipe.json +12 -16
  67. package/recipes/audio-recorder-supabase-native@latest.zip +0 -0
  68. package/recipes/audio-recorder-supabase@latest.zip +0 -0
  69. package/recipes/audio-recorder@latest.zip +0 -0
  70. package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -0
  71. package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -1
  72. package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -1
  73. package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -1
  74. package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +3 -1
  75. package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -1
  76. package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -1
  77. package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -1
  78. package/recipes/charts/recipe.json +13 -4
  79. package/recipes/charts-native@latest.zip +0 -0
  80. package/recipes/charts@latest.zip +0 -0
  81. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +86 -86
  82. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +4 -4
  83. package/recipes/chatbot/recipe.json +3 -40
  84. package/recipes/chatbot-native@latest.zip +0 -0
  85. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/chat-markdown.tsx +4 -1
  86. package/recipes/chatbot-supabase/apps/native/src/features/chatbot/components/markdown/code-block.tsx +86 -53
  87. package/recipes/chatbot-supabase/recipe.json +3 -42
  88. package/recipes/chatbot-supabase-native@latest.zip +0 -0
  89. package/recipes/chatbot-supabase@latest.zip +0 -0
  90. package/recipes/chatbot@latest.zip +0 -0
  91. package/recipes/glowing-button/recipe.json +6 -2
  92. package/recipes/glowing-button-native@latest.zip +0 -0
  93. package/recipes/glowing-button@latest.zip +0 -0
  94. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/_layout.tsx +5 -0
  95. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/analysis-options.tsx +50 -0
  96. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/camera.tsx +2 -0
  97. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/index.tsx +50 -0
  98. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/loading.tsx +50 -0
  99. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/results.tsx +2 -0
  100. package/recipes/image-analysis/apps/native/src/app/analysis/[type]/trait-details.tsx +3 -0
  101. package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +2 -2
  102. package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/camera.tsx +72 -65
  103. package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +65 -47
  104. package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/loading-screen.tsx +43 -2
  105. package/recipes/image-analysis/apps/native/src/features/image-analyzer/app/loading.tsx +34 -1
  106. package/recipes/image-analysis/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +83 -2
  107. package/recipes/image-analysis/recipe.json +11 -19
  108. package/recipes/image-analysis-native@latest.zip +0 -0
  109. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/_layout.tsx +5 -0
  110. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/analysis-options.tsx +50 -0
  111. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/camera.tsx +2 -0
  112. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/index.tsx +50 -0
  113. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/loading.tsx +50 -0
  114. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/results.tsx +2 -0
  115. package/recipes/image-analysis-supabase/apps/native/src/app/analysis/[type]/trait-details.tsx +3 -0
  116. package/recipes/image-analysis-supabase/recipe.json +10 -37
  117. package/recipes/image-analysis-supabase-native@latest.zip +0 -0
  118. package/recipes/image-analysis-supabase@latest.zip +0 -0
  119. package/recipes/image-analysis@latest.zip +0 -0
  120. package/recipes/image-analyzer/apps/native/src/app/(root)/(protected)/image-analyzer/index.tsx +2 -0
  121. package/recipes/image-generator/apps/native/src/app/image-generator/gallery.tsx +3 -0
  122. package/recipes/image-generator/apps/native/src/app/image-generator/index.tsx +3 -0
  123. package/recipes/image-generator/recipe.json +8 -18
  124. package/recipes/image-generator-native@latest.zip +0 -0
  125. package/recipes/image-generator-supabase/recipe.json +6 -35
  126. package/recipes/image-generator-supabase-native@latest.zip +0 -0
  127. package/recipes/image-generator-supabase@latest.zip +0 -0
  128. package/recipes/image-generator@latest.zip +0 -0
  129. package/recipes/ios-widget/recipe.json +18 -119
  130. package/recipes/ios-widget-native@latest.zip +0 -0
  131. package/recipes/ios-widget@latest.zip +0 -0
  132. package/recipes/number-stepper/apps/native/src/components/advanced-ui/stepper/demo.tsx +1 -1
  133. package/recipes/number-stepper/recipe.json +5 -2
  134. package/recipes/number-stepper-native@latest.zip +0 -0
  135. package/recipes/number-stepper@latest.zip +0 -0
  136. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/interactive-onboarding.tsx +11 -18
  137. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/ai-tone-step.tsx +5 -7
  138. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/currency-step.tsx +9 -7
  139. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-ai-step.tsx +8 -7
  140. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-chatbot-step.tsx +6 -5
  141. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-manual-step.tsx +4 -3
  142. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/feature-scan-step.tsx +6 -5
  143. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/main-reason-step.tsx +5 -7
  144. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/notification-step.tsx +7 -6
  145. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/overspend-step.tsx +5 -7
  146. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/personalizing-step.tsx +8 -7
  147. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/rating-step.tsx +6 -5
  148. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/reminder-step.tsx +5 -6
  149. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/safety-step.tsx +5 -4
  150. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/struggle-step.tsx +5 -7
  151. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/steps/welcome-step.tsx +7 -6
  152. package/recipes/onboarding/apps/native/src/features/onboarding/expense-tracker/components/ui/onboarding-header.tsx +4 -3
  153. package/recipes/onboarding/recipe.json +9 -6
  154. package/recipes/onboarding-native@latest.zip +0 -0
  155. package/recipes/onboarding@latest.zip +0 -0
  156. package/recipes/payments/apps/native/src/app/paywall/index.tsx +74 -0
  157. package/recipes/payments/apps/native/src/app/paywall/local.tsx +25 -0
  158. package/recipes/payments/apps/native/src/app/paywall/remote.tsx +23 -0
  159. package/recipes/payments/packages/backend/convex/payments.ts +21 -3
  160. package/recipes/payments/recipe.json +14 -34
  161. package/recipes/payments-native@latest.zip +0 -0
  162. package/recipes/payments-supabase/apps/native/src/app/paywall/index.tsx +74 -0
  163. package/recipes/payments-supabase/apps/native/src/app/paywall/local.tsx +25 -0
  164. package/recipes/payments-supabase/apps/native/src/app/paywall/remote.tsx +23 -0
  165. package/recipes/payments-supabase/recipe.json +16 -23
  166. package/recipes/payments-supabase-native@latest.zip +0 -0
  167. package/recipes/payments-supabase@latest.zip +0 -0
  168. package/recipes/payments@latest.zip +0 -0
  169. package/recipes/posthog/apps/native/src/components/analytics/navigation-tracker.tsx +14 -0
  170. package/recipes/posthog/apps/native/src/lib/hooks/use-navigation-analytics.ts +44 -0
  171. package/recipes/posthog/apps/native/src/providers/posthog-provider.tsx +51 -0
  172. package/recipes/posthog/recipe.json +60 -0
  173. package/recipes/posthog-native@latest.zip +0 -0
  174. package/recipes/progress-circle/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +1 -1
  175. package/recipes/progress-circle/recipe.json +5 -2
  176. package/recipes/progress-circle-native@latest.zip +0 -0
  177. package/recipes/progress-circle@latest.zip +0 -0
  178. package/recipes/quiz/apps/native/src/app/quiz/index.tsx +47 -0
  179. package/recipes/quiz/recipe.json +9 -6
  180. package/recipes/quiz-native@latest.zip +0 -0
  181. package/recipes/quiz@latest.zip +0 -0
  182. package/recipes/screen-kits/apps/native/src/app/screen-kits/_layout.tsx +12 -0
  183. package/recipes/screen-kits/apps/native/src/app/screen-kits/index.tsx +114 -0
  184. package/recipes/screen-kits/apps/native/src/features/screen-kits/index.ts +1 -0
  185. package/recipes/screen-kits/apps/native/src/features/screen-kits/types.ts +28 -0
  186. package/recipes/screen-kits/recipe.json +26 -0
  187. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/_layout.tsx +12 -0
  188. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/home.tsx +5 -0
  189. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/index.tsx +5 -0
  190. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson-complete.tsx +5 -0
  191. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson-fail.tsx +5 -0
  192. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/lesson.tsx +5 -0
  193. package/recipes/screen-kits-duolingo/apps/native/src/app/screen-kits/duolingo/skill-tree.tsx +5 -0
  194. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/duo-button.tsx +174 -0
  195. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/skill-button.tsx +186 -0
  196. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/components/xp-header.tsx +115 -0
  197. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/constants.ts +89 -0
  198. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/index.ts +3 -0
  199. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/home-screen.tsx +225 -0
  200. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-complete-screen.tsx +485 -0
  201. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-fail-screen.tsx +105 -0
  202. package/recipes/screen-kits-duolingo/apps/native/src/features/screen-kits/duolingo/screens/lesson-screen.tsx +384 -0
  203. package/recipes/screen-kits-duolingo/recipe.json +58 -0
  204. package/recipes/screen-kits-duolingo-native@latest.zip +0 -0
  205. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/_layout.tsx +45 -0
  206. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/asset-detail.tsx +3 -0
  207. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/notifications.tsx +3 -0
  208. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/receive.tsx +3 -0
  209. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/send.tsx +3 -0
  210. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/swap.tsx +3 -0
  211. package/recipes/screen-kits-finance/apps/native/src/app/screen-kits/finance/wallet.tsx +3 -0
  212. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/ActionButtons.tsx +78 -0
  213. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/AssetRow.tsx +94 -0
  214. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/components/BalanceCard.tsx +118 -0
  215. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/constants.ts +85 -0
  216. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/asset-detail.tsx +378 -0
  217. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/notifications.tsx +210 -0
  218. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/receive-modal.tsx +317 -0
  219. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/send-modal.tsx +420 -0
  220. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/swap-modal.tsx +363 -0
  221. package/recipes/screen-kits-finance/apps/native/src/features/screen-kits/finance/screens/wallet-dashboard.tsx +281 -0
  222. package/recipes/screen-kits-finance/recipe.json +46 -0
  223. package/recipes/screen-kits-finance-native@latest.zip +0 -0
  224. package/recipes/screen-kits-fitness/apps/native/assets/sounds/timer-beep.wav +0 -0
  225. package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/_layout.tsx +10 -0
  226. package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/index.tsx +6 -0
  227. package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/timer.tsx +3 -0
  228. package/recipes/screen-kits-fitness/apps/native/src/app/screen-kits/fitness/workout.tsx +3 -0
  229. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/timer-components.tsx +500 -0
  230. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/timer-settings-modal.tsx +352 -0
  231. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/components/workout-card.tsx +105 -0
  232. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/constants.ts +189 -0
  233. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/hooks/use-timer.ts +307 -0
  234. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/index.ts +1 -0
  235. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/screens/timer-screen.tsx +278 -0
  236. package/recipes/screen-kits-fitness/apps/native/src/features/screen-kits/fitness/screens/workout-dashboard.tsx +350 -0
  237. package/recipes/screen-kits-fitness/recipe.json +63 -0
  238. package/recipes/screen-kits-fitness-native@latest.zip +0 -0
  239. package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/habits.tsx +1 -0
  240. package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/kanban.tsx +1 -0
  241. package/recipes/screen-kits-habits/apps/native/src/app/screen-kits/productivity/routes.ts +4 -0
  242. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/AddTaskModal.tsx +246 -0
  243. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/DraggableTaskCard.tsx +92 -0
  244. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/KanbanColumn.tsx +238 -0
  245. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/TaskCard.tsx +144 -0
  246. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/components/add-habit-modal.tsx +271 -0
  247. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/constants.ts +295 -0
  248. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/kanban-utils.ts +62 -0
  249. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/screens/habit-tracker.tsx +1160 -0
  250. package/recipes/screen-kits-habits/apps/native/src/features/screen-kits/productivity/screens/kanban-board.tsx +432 -0
  251. package/recipes/screen-kits-habits/recipe.json +52 -0
  252. package/recipes/screen-kits-habits-native@latest.zip +0 -0
  253. package/recipes/screen-kits-native@latest.zip +0 -0
  254. package/recipes/sentry/apps/native/src/providers/sentry-provider.tsx +64 -0
  255. package/recipes/sentry/recipe.json +39 -0
  256. package/recipes/sentry-native@latest.zip +0 -0
  257. package/recipes/swipe-slider/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +1 -1
  258. package/recipes/swipe-slider/recipe.json +5 -2
  259. package/recipes/swipe-slider-native@latest.zip +0 -0
  260. package/recipes/swipe-slider@latest.zip +0 -0
  261. package/recipes/timeline/apps/native/src/components/advanced-ui/timeline/demo.tsx +2 -1
  262. package/recipes/timeline/recipe.json +5 -2
  263. package/recipes/timeline-native@latest.zip +0 -0
  264. package/recipes/timeline@latest.zip +0 -0
  265. package/recipes/tracker-app/apps/native/src/app/tracker-app/index.tsx +1 -0
  266. package/recipes/tracker-app/recipe.json +10 -7
  267. package/recipes/tracker-app-native@latest.zip +0 -0
  268. package/recipes/tracker-app@latest.zip +0 -0
  269. package/recipes/upload-all.sh +8 -31
  270. package/recipes/voice-bot/apps/native/src/app/voice-bot/index.tsx +56 -0
  271. package/recipes/voice-bot/recipe.json +31 -7
  272. package/recipes/voice-bot-native@latest.zip +0 -0
  273. package/recipes/voice-bot@latest.zip +0 -0
  274. package/recipes/wake-word/apps/native/src/app/{(root)/(protected)/test-wake-word.tsx → test-wake-word.tsx} +43 -4
  275. package/recipes/wake-word/recipe.json +16 -26
  276. package/recipes/wake-word-native@latest.zip +0 -0
  277. package/recipes/wake-word@latest.zip +0 -0
  278. package/scripts/create-advanced-ui-recipes.sh +46 -19
  279. package/scripts/create-recipes.mjs +471 -117
  280. package/scripts/package-recipes.mjs +76 -0
  281. package/scripts/publish-all.sh +6 -2
  282. package/CHANGELOG.md +0 -198
  283. package/docs/archive/AUTO-DETECT-DEPS.md +0 -607
  284. package/docs/archive/FINAL-PACKAGE-STRATEGY.md +0 -583
  285. package/docs/archive/FINAL-SIMPLE-PLAN.md +0 -487
  286. package/docs/archive/FINAL-STATUS.md +0 -144
  287. package/docs/archive/FLOW-DIAGRAM.md +0 -1629
  288. package/docs/archive/GOTCHAS-AND-RISKS.md +0 -801
  289. package/docs/archive/IMPLEMENTATION-PLAN.md +0 -1360
  290. package/docs/archive/PLAN.md +0 -453
  291. package/docs/archive/PRODUCTION-READINESS.md +0 -684
  292. package/docs/archive/PRODUCTION-TEST-RESULTS.md +0 -465
  293. package/docs/archive/SIMPLIFIED-PLAN.md +0 -578
  294. package/docs/archive/STATUS.md +0 -199
  295. package/docs/archive/SUCCESS.md +0 -259
  296. package/docs/archive/TEST-SUMMARY.md +0 -261
  297. package/docs/archive/TESTING-CHECKLIST.md +0 -450
  298. package/docs/archive/USER-MODIFICATIONS.md +0 -448
  299. package/docs/decisions.md +0 -55
  300. package/docs/manual-testing.md +0 -91
  301. package/docs/next-steps.md +0 -12
  302. package/recipes/README.md +0 -156
  303. package/recipes/audio-recorder-supabase/packages/backend/src/services/recordings.ts +0 -369
  304. package/recipes/chatbot/apps/native/src/api-client/chatbot.ts +0 -83
  305. package/recipes/chatbot/packages/backend/convex/agents.ts +0 -115
  306. package/recipes/chatbot/packages/backend/convex/tools/index.ts +0 -18
  307. package/recipes/chatbot/packages/backend/convex/tools/knowledgeRetrieval.ts +0 -97
  308. package/recipes/chatbot/packages/backend/convex/tools/tavilySearch.ts +0 -83
  309. package/recipes/chatbot/packages/backend/convex/tools/userProfile.ts +0 -72
  310. package/recipes/chatbot-supabase/apps/native/src/api-client/supabase/chatbot.ts +0 -515
  311. package/recipes/chatbot-supabase/packages/backend/src/services/conversations.ts +0 -243
  312. package/recipes/chatbot-supabase/packages/backend/src/services/messages.ts +0 -327
  313. package/recipes/image-analysis/apps/native/src/api-client/image-analyzer.ts +0 -62
  314. package/recipes/image-analysis-supabase/packages/backend/src/services/image-analyses.ts +0 -132
  315. package/recipes/image-generator/apps/native/src/api-client/image-generator.ts +0 -34
  316. package/recipes/payments/apps/native/src/api-client/payments.ts +0 -44
  317. package/recipes/payments-supabase/packages/backend/src/services/payments.ts +0 -201
  318. package/recipes/posthog.json +0 -47
  319. package/recipes/revenuecat.json +0 -43
  320. package/recipes/sentry.json +0 -47
  321. package/recipes/wake-word/apps/native/assets/vosk-model/README.md +0 -103
  322. package/recipes/wake-word/apps/native/scripts/download-vosk-model.mjs +0 -127
  323. /package/recipes/{audio-recorder/apps/native/src/app/(root)/(protected) → audio-recorder-supabase/apps/native/src/app}/audio-recorder/index.tsx +0 -0
  324. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/AppIntent.swift +0 -0
  325. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
  326. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
  327. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
  328. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
  329. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
  330. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
  331. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
  332. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
  333. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
  334. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
  335. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
  336. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
  337. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
  338. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
  339. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  340. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
  341. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/CalorieTrackerWidget.swift +0 -0
  342. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/HabitTrackerWidget.swift +0 -0
  343. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/Info.plist +0 -0
  344. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/WidgetLiveActivity.swift +0 -0
  345. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/expo-target.config.js +0 -0
  346. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/generated.entitlements +0 -0
  347. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/index.swift +0 -0
  348. /package/recipes/ios-widget/{targets → apps/native/targets}/widget/widgets.swift +0 -0
@@ -1,578 +0,0 @@
1
- # 🎯 Simplified Implementation Plan
2
-
3
- ## The Two Questions
4
-
5
- ### Question 1: Auto-install vs Manual Install?
6
-
7
- **Auto-install is the HARD part. Finding packages is EASY.**
8
-
9
- #### Easy Part: Show Required Packages ✅
10
- ```typescript
11
- // recipe.json (created by YOU when making the feature)
12
- {
13
- "name": "charts",
14
- "dependencies": {
15
- "npm": {
16
- "react-native-chart-kit": "^6.12.0",
17
- "react-native-svg": "^13.9.0"
18
- }
19
- }
20
- }
21
-
22
- // CLI just reads this and shows it:
23
- log.info('📦 This feature requires:');
24
- log.plain(' • react-native-chart-kit@^6.12.0');
25
- log.plain(' • react-native-svg@^13.9.0');
26
- log.plain('');
27
- log.info('Install with:');
28
- log.plain(' pnpm add react-native-chart-kit@^6.12.0 react-native-svg@^13.9.0');
29
- ```
30
-
31
- **Difficulty: TRIVIAL** - Just read JSON and display it
32
-
33
- #### Hard Part: Auto-install 🔴
34
- ```typescript
35
- // CLI tries to install automatically:
36
- await executeBash('pnpm add react-native-chart-kit@^6.12.0');
37
-
38
- // Problems:
39
- // 1. Which package manager? (pnpm/yarn/npm/bun)
40
- // 2. Monorepo workspace? (need --filter flag)
41
- // 3. Which directory to run in? (root vs workspace)
42
- // 4. What if it fails? (network, permissions, conflicts)
43
- // 5. Version conflicts? (breaks existing code)
44
- ```
45
-
46
- **Difficulty: HARD** - Many edge cases
47
-
48
- ---
49
-
50
- ## Recommendation: Start Simple
51
-
52
- ### Phase 1: Manual Install (Ship This First) ✅
53
-
54
- ```bash
55
- $ vf add charts
56
-
57
- ✓ charts installed successfully!
58
- ℹ Files added: 17
59
-
60
- 📦 This feature requires the following packages:
61
- • react-native-chart-kit@^6.12.0
62
- • react-native-svg@^13.9.0
63
-
64
- 📋 Install them with:
65
- pnpm add react-native-chart-kit@^6.12.0 react-native-svg@^13.9.0
66
-
67
- ⚠️ Don't forget to install these packages before running your app!
68
- ```
69
-
70
- **Advantages:**
71
- - ✅ Simple to implement (1 day)
72
- - ✅ No edge cases
73
- - ✅ Works for everyone
74
- - ✅ User has control
75
- - ✅ No risk of breaking things
76
-
77
- **Disadvantages:**
78
- - ❌ User has to run extra command
79
- - ❌ Less convenient
80
-
81
- ### Phase 2: Auto-install (Add Later) 🔄
82
-
83
- ```bash
84
- $ vf add charts
85
-
86
- ✓ charts installed successfully!
87
- ℹ Files added: 17
88
-
89
- 📦 This feature requires the following packages:
90
- • react-native-chart-kit@^6.12.0
91
- • react-native-svg@^13.9.0
92
-
93
- Install packages now? (Y/n): y
94
-
95
- 📦 Installing packages...
96
- ✓ Packages installed successfully!
97
- ```
98
-
99
- **Add this AFTER you've tested with real users and know the edge cases.**
100
-
101
- ---
102
-
103
- ## Question 2: What Else Can Be Added/Removed with CLI?
104
-
105
- ### Things That Work Well with CLI ✅
106
-
107
- #### 1. UI Components (Perfect for CLI)
108
- ```bash
109
- $ vf add charts
110
- $ vf add forms
111
- $ vf add cards
112
- $ vf add modals
113
- $ vf add bottom-sheets
114
- $ vf add image-gallery
115
- $ vf add calendar
116
- $ vf add data-tables
117
- ```
118
-
119
- **Why it works:**
120
- - Self-contained code
121
- - No external services
122
- - No API keys needed
123
- - Just copy files + install packages
124
-
125
- #### 2. Utility Features (Good for CLI)
126
- ```bash
127
- $ vf add qr-scanner
128
- $ vf add image-picker
129
- $ vf add pdf-viewer
130
- $ vf add audio-player
131
- $ vf add video-player
132
- $ vf add maps
133
- $ vf add camera
134
- ```
135
-
136
- **Why it works:**
137
- - Mostly self-contained
138
- - Minimal configuration
139
- - Standard packages
140
-
141
- #### 3. Standalone Screens (Good for CLI)
142
- ```bash
143
- $ vf add profile-screen
144
- $ vf add settings-screen
145
- $ vf add about-screen
146
- $ vf add help-screen
147
- $ vf add onboarding
148
- $ vf add splash-screen
149
- ```
150
-
151
- **Why it works:**
152
- - Complete screens
153
- - Drop-in ready
154
- - Minimal customization needed
155
-
156
- ---
157
-
158
- ### Things That Need Manual Steps ⚠️
159
-
160
- #### 4. Service Integrations (CLI + Manual)
161
-
162
- **Sentry (Error Tracking)**
163
- ```bash
164
- $ vf add sentry
165
-
166
- ✓ sentry installed successfully!
167
- ℹ Files added: 5
168
-
169
- 📦 Packages installed:
170
- ✓ @sentry/react-native@^5.15.0
171
-
172
- ⚠️ MANUAL STEPS REQUIRED:
173
-
174
- ┌─────────────────────────────────────────────────────────────┐
175
- │ Step 1: Create Sentry Project │
176
- │ │
177
- │ 1. Go to https://sentry.io/signup/ │
178
- │ 2. Create a new React Native project │
179
- │ 3. Copy your DSN │
180
- └─────────────────────────────────────────────────────────────┘
181
-
182
- ┌─────────────────────────────────────────────────────────────┐
183
- │ Step 2: Add DSN to .env │
184
- │ │
185
- │ Add this line to your .env file: │
186
- │ SENTRY_DSN=your-dsn-here │
187
- └─────────────────────────────────────────────────────────────┘
188
-
189
- 💡 Run 'vf checklist sentry' to see these steps again
190
- ```
191
-
192
- **PostHog (Analytics)**
193
- ```bash
194
- $ vf add posthog
195
-
196
- ✓ posthog installed successfully!
197
-
198
- ⚠️ MANUAL STEPS:
199
- 1. Sign up at posthog.com
200
- 2. Get your API key
201
- 3. Add to .env: POSTHOG_API_KEY=your-key
202
- ```
203
-
204
- **RevenueCat (In-App Purchases)**
205
- ```bash
206
- $ vf add revenuecat
207
-
208
- ✓ revenuecat installed successfully!
209
-
210
- ⚠️ MANUAL STEPS:
211
- 1. Create RevenueCat account
212
- 2. Configure products
213
- 3. Add API keys to .env
214
- 4. Configure app.json
215
- ```
216
-
217
- **Supabase (Backend)**
218
- ```bash
219
- $ vf add supabase
220
-
221
- ✓ supabase installed successfully!
222
-
223
- ⚠️ MANUAL STEPS:
224
- 1. Create Supabase project
225
- 2. Get URL and anon key
226
- 3. Add to .env:
227
- SUPABASE_URL=your-url
228
- SUPABASE_ANON_KEY=your-key
229
- ```
230
-
231
- **Firebase**
232
- ```bash
233
- $ vf add firebase
234
-
235
- ✓ firebase installed successfully!
236
-
237
- ⚠️ MANUAL STEPS:
238
- 1. Create Firebase project
239
- 2. Download google-services.json
240
- 3. Place in android/app/
241
- 4. Download GoogleService-Info.plist
242
- 5. Place in ios/
243
- ```
244
-
245
- ---
246
-
247
- ### Things That Should NOT Be CLI-Managed ❌
248
-
249
- #### 5. Complex Systems (Too Complex)
250
-
251
- **Authentication System**
252
- - Too many variations (email, social, phone, magic link)
253
- - Requires backend setup
254
- - User-specific flows
255
- - Security considerations
256
-
257
- **Better approach:** Provide documentation/guide
258
-
259
- **Payment Processing**
260
- - Requires merchant accounts
261
- - Legal compliance varies by country
262
- - Too many providers (Stripe, PayPal, etc.)
263
- - Complex integration
264
-
265
- **Better approach:** Provide integration guides
266
-
267
- **Custom Business Logic**
268
- - Every app is different
269
- - Can't be templated
270
- - Requires understanding of business rules
271
-
272
- **Better approach:** Provide examples/patterns
273
-
274
- ---
275
-
276
- ## Complete Feature List for CLI
277
-
278
- ### Tier 1: Fully Automated (No Manual Steps) ✅
279
-
280
- ```bash
281
- # UI Components
282
- vf add charts
283
- vf add forms
284
- vf add cards
285
- vf add modals
286
- vf add bottom-sheets
287
- vf add tabs
288
- vf add accordions
289
- vf add carousels
290
- vf add progress-bars
291
- vf add skeletons
292
- vf add badges
293
- vf add avatars
294
-
295
- # Utilities
296
- vf add qr-scanner
297
- vf add barcode-scanner
298
- vf add image-picker
299
- vf add camera
300
- vf add pdf-viewer
301
- vf add audio-player
302
- vf add video-player
303
- vf add file-picker
304
- vf add share
305
- vf add clipboard
306
-
307
- # Screens
308
- vf add profile-screen
309
- vf add settings-screen
310
- vf add about-screen
311
- vf add help-screen
312
- vf add faq-screen
313
- vf add contact-screen
314
- vf add feedback-screen
315
-
316
- # Navigation
317
- vf add drawer-navigation
318
- vf add tab-navigation
319
- vf add stack-navigation
320
-
321
- # Animations
322
- vf add loading-animations
323
- vf add page-transitions
324
- vf add micro-interactions
325
- ```
326
-
327
- ### Tier 2: Partial Automation (Manual Steps Required) ⚠️
328
-
329
- ```bash
330
- # Analytics & Monitoring
331
- vf add sentry # Need: DSN
332
- vf add posthog # Need: API key
333
- vf add mixpanel # Need: Token
334
- vf add amplitude # Need: API key
335
- vf add firebase-analytics # Need: config files
336
-
337
- # Backend Services
338
- vf add supabase # Need: URL + anon key
339
- vf add firebase # Need: config files
340
- vf add appwrite # Need: endpoint + project ID
341
-
342
- # Payments
343
- vf add revenuecat # Need: API keys + product config
344
- vf add stripe # Need: publishable key
345
-
346
- # Push Notifications
347
- vf add expo-notifications # Need: credentials
348
- vf add firebase-messaging # Need: config
349
-
350
- # Maps
351
- vf add google-maps # Need: API key
352
- vf add mapbox # Need: access token
353
-
354
- # Social
355
- vf add facebook-login # Need: app ID
356
- vf add google-login # Need: client ID
357
- vf add apple-login # Need: service ID
358
- ```
359
-
360
- ### Tier 3: Documentation Only (Too Complex) ❌
361
-
362
- ```
363
- # These get guides/docs, not CLI commands
364
- - Authentication system
365
- - Payment processing
366
- - Custom backend
367
- - State management setup
368
- - Testing setup
369
- - CI/CD pipeline
370
- ```
371
-
372
- ---
373
-
374
- ## Implementation Priority
375
-
376
- ### Week 1: Core Improvements (Must Have) 🔴
377
-
378
- 1. **Interactive confirmation for overwrites**
379
- ```bash
380
- $ vf add charts --force
381
- ⚠️ 3 files will be overwritten. Continue? (y/N):
382
- ```
383
-
384
- 2. **Show required packages (manual install)**
385
- ```bash
386
- 📦 This feature requires:
387
- • package-name@version
388
-
389
- Install with:
390
- pnpm add package-name@version
391
- ```
392
-
393
- 3. **Modification detection**
394
- ```bash
395
- $ vf remove charts
396
- ⚠️ 2 files were modified by you. Continue? (y/N):
397
- ```
398
-
399
- ### Week 2: Enhanced UX (Should Have) 🟡
400
-
401
- 4. **Manual steps display**
402
- ```bash
403
- ⚠️ MANUAL STEPS REQUIRED:
404
- Step 1: Get API key from service.com
405
- Step 2: Add to .env file
406
- ```
407
-
408
- 5. **Status command**
409
- ```bash
410
- $ vf status
411
- Installed features:
412
- ✓ charts (v1.0.0)
413
- ⚠️ sentry (v1.2.0) - Manual steps pending
414
- ```
415
-
416
- 6. **Checklist command**
417
- ```bash
418
- $ vf checklist sentry
419
- Manual setup steps for sentry:
420
- [ ] Step 1: Create account
421
- [ ] Step 2: Add DSN to .env
422
- ```
423
-
424
- ### Week 3: Advanced Features (Nice to Have) 🟢
425
-
426
- 7. **Auto-install packages** (with good error handling)
427
- 8. **Type checking** (with timeout)
428
- 9. **Update command**
429
- ```bash
430
- $ vf update charts
431
- ```
432
-
433
- ---
434
-
435
- ## Recipe.json Format (Final)
436
-
437
- ```json
438
- {
439
- "name": "charts",
440
- "version": "1.0.0",
441
- "description": "Beautiful data visualization",
442
- "target": "native",
443
-
444
- "copy": [
445
- {
446
- "from": "apps/native/src/app/charts",
447
- "to": "apps/native/src/app/(root)/(protected)/charts"
448
- },
449
- {
450
- "from": "apps/native/src/features/charts",
451
- "to": "apps/native/src/features/charts"
452
- }
453
- ],
454
-
455
- "nav": {
456
- "href": "/(root)/(protected)/charts",
457
- "label": "Charts",
458
- "icon": "📊",
459
- "color": "#6366F1"
460
- },
461
-
462
- "dependencies": {
463
- "npm": {
464
- "react-native-chart-kit": "^6.12.0",
465
- "react-native-svg": "^13.9.0"
466
- }
467
- },
468
-
469
- "postInstall": {
470
- "message": "Charts installed! Check the /charts route to see it in action."
471
- }
472
- }
473
- ```
474
-
475
- **For services with manual steps:**
476
-
477
- ```json
478
- {
479
- "name": "sentry",
480
- "version": "1.0.0",
481
- "description": "Error tracking with Sentry",
482
- "target": "native",
483
-
484
- "copy": [...],
485
-
486
- "dependencies": {
487
- "npm": {
488
- "@sentry/react-native": "^5.15.0"
489
- }
490
- },
491
-
492
- "env": {
493
- "required": [
494
- {
495
- "key": "SENTRY_DSN",
496
- "description": "Your Sentry DSN from sentry.io",
497
- "example": "https://xxx@xxx.ingest.sentry.io/xxx",
498
- "link": "https://sentry.io/settings/projects/"
499
- }
500
- ]
501
- },
502
-
503
- "manualSteps": [
504
- {
505
- "step": 1,
506
- "title": "Create Sentry Project",
507
- "description": "Go to sentry.io and create a new React Native project",
508
- "link": "https://sentry.io/signup/"
509
- },
510
- {
511
- "step": 2,
512
- "title": "Add DSN to .env",
513
- "description": "Copy your DSN and add it to .env file",
514
- "file": ".env",
515
- "content": "SENTRY_DSN=your-dsn-here"
516
- }
517
- ],
518
-
519
- "postInstall": {
520
- "message": "Sentry installed! Complete the manual steps above to finish setup.",
521
- "commands": [
522
- "npm run test:sentry"
523
- ]
524
- }
525
- }
526
- ```
527
-
528
- ---
529
-
530
- ## Summary
531
-
532
- ### Answer to Question 1: Auto-install vs Manual?
533
-
534
- **Start with MANUAL install:**
535
- - ✅ Easy to implement (1 day)
536
- - ✅ No edge cases
537
- - ✅ Works for everyone
538
- - Just show the command, user runs it
539
-
540
- **Add AUTO-install later:**
541
- - After testing with real users
542
- - After understanding monorepo patterns
543
- - With good error handling
544
-
545
- ### Answer to Question 2: What else can be added/removed?
546
-
547
- **Tier 1 (Fully automated):**
548
- - UI components (charts, forms, modals, etc.)
549
- - Utilities (QR scanner, image picker, etc.)
550
- - Screens (profile, settings, etc.)
551
-
552
- **Tier 2 (Partial automation):**
553
- - Services (Sentry, PostHog, Supabase, etc.)
554
- - CLI installs code + shows manual steps
555
- - User adds API keys/config
556
-
557
- **Tier 3 (Documentation only):**
558
- - Auth systems (too complex)
559
- - Payment processing (too complex)
560
- - Custom business logic (too specific)
561
-
562
- ---
563
-
564
- ## Final Recommendation
565
-
566
- **Ship v1 with:**
567
- 1. Interactive confirmation ✅
568
- 2. Manual package install (show command) ✅
569
- 3. Modification detection ✅
570
- 4. Manual steps display ✅
571
- 5. Status/checklist commands ✅
572
-
573
- **Add v2 later:**
574
- 6. Auto-install packages
575
- 7. Type checking
576
- 8. Update command
577
-
578
- This gets you to production in **1-2 weeks** instead of 3-4 weeks, with less risk.