vibefast-cli 0.2.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.wrangler/state/v3/r2/miniflare-R2BucketObject/d1cc388a1a0ef44dd5669fd1a165d168b61362136c8b5fa50aefd96c72688e54.sqlite +0 -0
- package/.wrangler/state/v3/r2/miniflare-R2BucketObject/d1cc388a1a0ef44dd5669fd1a165d168b61362136c8b5fa50aefd96c72688e54.sqlite-shm +0 -0
- package/.wrangler/state/v3/r2/miniflare-R2BucketObject/d1cc388a1a0ef44dd5669fd1a165d168b61362136c8b5fa50aefd96c72688e54.sqlite-wal +0 -0
- package/.wrangler/state/v3/r2/vibefast-recipes/blobs/177b5d7279681c1bec396cafe63779a2d89eaf538109e55733147727276e2b9f0000019a81f04ba2 +0 -0
- package/.wrangler/state/v3/r2/vibefast-recipes/blobs/4fe398bba6e2d5f13b569bc1be4244e696d86caa04c323db2d9fb0b9381c508f0000019a81f0503f +0 -0
- package/.wrangler/state/v3/r2/vibefast-recipes/blobs/f68f19a655380ac7fb575eb49c0623cde74046261ed89c498ba5107b8aacde9d0000019a81f05484 +0 -0
- package/2/.claude/agents/architect.md +74 -0
- package/2/.claude/agents/convex-reviewer.md +267 -0
- package/2/.claude/agents/debug-detective.md +62 -0
- package/2/.claude/agents/learner.md +64 -0
- package/2/.claude/agents/perf-optimizer.md +71 -0
- package/2/.claude/agents/security-researcher.md +42 -0
- package/2/.claude/agents/tech-researcher.md +46 -0
- package/2/.claude/agents/ux-designer.md +45 -0
- package/2/.claude/commands/create-app-design.md +279 -0
- package/2/.claude/commands/create-prd-interactive.md +113 -0
- package/2/.claude/commands/create-prd.md +111 -0
- package/2/.claude/commands/create-tech-stack.md +345 -0
- package/2/.claude/commands/update-app-design.md +298 -0
- package/2/.claude/commands/update-project-structure.md +14 -0
- package/2/.claude/commands/update-tech-stack.md +325 -0
- package/2/.claude/docs/CONVEX_FEATURES_PLAN.md +249 -0
- package/2/.claude/docs/app-design-document.md +0 -0
- package/2/.claude/docs/project-status.md +25 -0
- package/2/.claude/docs/project-structure.md +7 -0
- package/2/.claude/docs/tech-stack.md +157 -0
- package/2/.claude/scripts/tree.sh +70 -0
- package/2/.claude/settings.json +30 -0
- package/2/.cursor/commands/code-review-high.md +190 -0
- package/2/.cursorignore +3 -0
- package/2/.github/ISSUE_TEMPLATE.md +13 -0
- package/2/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- package/2/.github/actions/eas-build/action.yml +85 -0
- package/2/.github/actions/setup-jdk-generate-apk/action.yml +48 -0
- package/2/.github/actions/setup-node-pnpm-install/action.yml +29 -0
- package/2/.github/scripts/expo-doctor.sh +26 -0
- package/2/.github/workflows/compress-images.yml +48 -0
- package/2/.github/workflows/e2e-android-eas-build.yml +111 -0
- package/2/.github/workflows/e2e-android-maestro.yml +52 -0
- package/2/.github/workflows/e2e-android.yml +119 -0
- package/2/.github/workflows/eas-build-prod.yml +43 -0
- package/2/.github/workflows/eas-build-qa.yml +47 -0
- package/2/.github/workflows/expo-doctor.yml +61 -0
- package/2/.github/workflows/lint-ts.yml +49 -0
- package/2/.github/workflows/new-app-version.yml +65 -0
- package/2/.github/workflows/new-github-release.yml +34 -0
- package/2/.github/workflows/stale.yml +24 -0
- package/2/.github/workflows/test.yml +50 -0
- package/2/.github/workflows/type-check.yml +54 -0
- package/2/.husky/commit-msg +1 -0
- package/2/.husky/common.sh +8 -0
- package/2/.husky/post-merge +18 -0
- package/2/.husky/pre-commit +24 -0
- package/2/.prettierignore +14 -0
- package/2/.prettierrc.json +10 -0
- package/2/.vibefast/README.md +59 -0
- package/2/.vibefast/config.json +4 -0
- package/2/.vibefast/journal.json +234 -0
- package/2/.vibefast/starter.json +5 -0
- package/2/AGENTS.md +48 -0
- package/2/LICENSE +21 -0
- package/2/README.md +127 -0
- package/2/apps/native/__mocks__/bottom-sheet.js +6 -0
- package/2/apps/native/__mocks__/expo-router.js +16 -0
- package/2/apps/native/__mocks__/react-native-gesture-handler.ts +17 -0
- package/2/apps/native/app-env.d.ts +2 -0
- package/2/apps/native/app.config.ts +167 -0
- package/2/apps/native/assets/adaptive-icon.png +0 -0
- package/2/apps/native/assets/favicon.png +0 -0
- package/2/apps/native/assets/features/image-analyzer/front.jpg +0 -0
- package/2/apps/native/assets/features/image-analyzer/side.jpg +0 -0
- package/2/apps/native/assets/features/image-analyzer/threeQuarter.jpg +0 -0
- package/2/apps/native/assets/fonts/Inter.ttf +0 -0
- package/2/apps/native/assets/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/2/apps/native/assets/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/2/apps/native/assets/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/2/apps/native/assets/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/2/apps/native/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/2/apps/native/assets/icon.png +0 -0
- package/2/apps/native/assets/images/cover-image.png +0 -0
- package/2/apps/native/assets/lottie-animations/onboarding-1.json +6504 -0
- package/2/apps/native/assets/lottie-animations/onboarding-2.json +1993 -0
- package/2/apps/native/assets/lottie-animations/onboarding-3.json +50159 -0
- package/2/apps/native/assets/lottie-animations/onboarding-4.json +735 -0
- package/2/apps/native/assets/lottie-animations/onboarding-6.json +2167 -0
- package/2/apps/native/assets/splash-icon.png +0 -0
- package/2/apps/native/babel.config.js +39 -0
- package/2/apps/native/eas.json +75 -0
- package/2/apps/native/env.js +196 -0
- package/2/apps/native/global.css +51 -0
- package/2/apps/native/index.ts +5 -0
- package/2/apps/native/jest-setup.ts +7 -0
- package/2/apps/native/jest.config.js +72 -0
- package/2/apps/native/metro.config.js +85 -0
- package/2/apps/native/nativewind-env.d.ts +1 -0
- package/2/apps/native/package.json +232 -0
- package/2/apps/native/scripts/DRY_RUN_REPORT.md +0 -0
- package/2/apps/native/scripts/QUICK_START.md +76 -0
- package/2/apps/native/scripts/README.md +187 -0
- package/2/apps/native/scripts/convex-setup.js +48 -0
- package/2/apps/native/scripts/download-vosk-model.mjs +121 -0
- package/2/apps/native/scripts/genrate-apk-and-install +39 -0
- package/2/apps/native/scripts/i18next-syntax-validation.js +23 -0
- package/2/apps/native/scripts/starter-setup.mjs +246 -0
- package/2/apps/native/src/api-client/auth.ts +68 -0
- package/2/apps/native/src/api-client/chatbot.ts +83 -0
- package/2/apps/native/src/api-client/client.ts +4 -0
- package/2/apps/native/src/api-client/image-analyzer.ts +62 -0
- package/2/apps/native/src/api-client/image-generator.ts +34 -0
- package/2/apps/native/src/api-client/index.ts +27 -0
- package/2/apps/native/src/api-client/payments.ts +44 -0
- package/2/apps/native/src/api-client/reporting.ts +29 -0
- package/2/apps/native/src/api-client/shared.ts +43 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/_layout.tsx +166 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/index.tsx +174 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/profile.tsx +320 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/settings.tsx +344 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/_layout.tsx +198 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/accordion.tsx +60 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/advanced.tsx +24 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/avatar.tsx +154 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/badge-chips-toggle.tsx +81 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/buttons.tsx +24 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/charts.tsx +3 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/date-picker.tsx +120 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/file-picker.tsx +133 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/gallery-video.tsx +119 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/index.tsx +69 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/inputs-stepper.tsx +78 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/picker-dropdown.tsx +56 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/popover-bottomsheet.tsx +229 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/progress.tsx +38 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/searchbar.tsx +70 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/sliders.tsx +93 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/spinner.tsx +80 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/switch.tsx +47 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/table.tsx +352 -0
- package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/tabs-timeline.tsx +122 -0
- package/2/apps/native/src/app/(root)/(protected)/_layout.tsx +143 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/_layout.tsx +5 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/analysis-options.tsx +50 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/camera.tsx +2 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/index.tsx +50 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/loading.tsx +50 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/results.tsx +2 -0
- package/2/apps/native/src/app/(root)/(protected)/analysis/[type]/trait-details.tsx +3 -0
- package/2/apps/native/src/app/(root)/(protected)/audio-recorder/index.tsx +5 -0
- package/2/apps/native/src/app/(root)/(protected)/charts/index.tsx +6 -0
- package/2/apps/native/src/app/(root)/(protected)/chatbot/index.tsx +2 -0
- package/2/apps/native/src/app/(root)/(protected)/image-generator/gallery.tsx +3 -0
- package/2/apps/native/src/app/(root)/(protected)/image-generator/index.tsx +3 -0
- package/2/apps/native/src/app/(root)/(protected)/paywall/index.tsx +74 -0
- package/2/apps/native/src/app/(root)/(protected)/paywall/local.tsx +25 -0
- package/2/apps/native/src/app/(root)/(protected)/paywall/remote.tsx +23 -0
- package/2/apps/native/src/app/(root)/(protected)/quick-actions-demo/index.tsx +32 -0
- package/2/apps/native/src/app/(root)/(protected)/quiz/index.tsx +47 -0
- package/2/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +214 -0
- package/2/apps/native/src/app/(root)/(protected)/tracker-app/index.tsx +1 -0
- package/2/apps/native/src/app/(root)/(protected)/voice-bot/index.tsx +27 -0
- package/2/apps/native/src/app/(root)/(public)/(auth)/_layout.tsx +44 -0
- package/2/apps/native/src/app/(root)/(public)/(auth)/forgot-password.tsx +185 -0
- package/2/apps/native/src/app/(root)/(public)/(auth)/login.tsx +219 -0
- package/2/apps/native/src/app/(root)/(public)/(auth)/otp-verification.tsx +369 -0
- package/2/apps/native/src/app/(root)/(public)/(auth)/reset-password.tsx +247 -0
- package/2/apps/native/src/app/(root)/(public)/(auth)/signup.tsx +207 -0
- package/2/apps/native/src/app/(root)/(public)/_layout.tsx +60 -0
- package/2/apps/native/src/app/(root)/(public)/onboarding/demo-one.tsx +5 -0
- package/2/apps/native/src/app/(root)/(public)/onboarding/demo-two.tsx +52 -0
- package/2/apps/native/src/app/(root)/(public)/onboarding/index.tsx +82 -0
- package/2/apps/native/src/app/(root)/_layout.tsx +30 -0
- package/2/apps/native/src/app/+html.tsx +46 -0
- package/2/apps/native/src/app/[...messing].tsx +24 -0
- package/2/apps/native/src/app/_layout.tsx +56 -0
- package/2/apps/native/src/app/tsconfig.json +3 -0
- package/2/apps/native/src/components/advanced-ui/buttons/demo.tsx +19 -0
- package/2/apps/native/src/components/advanced-ui/buttons/glowing-button.tsx +366 -0
- package/2/apps/native/src/components/advanced-ui/chip/animated-chip.tsx +118 -0
- package/2/apps/native/src/components/advanced-ui/chip/chip.tsx +49 -0
- package/2/apps/native/src/components/advanced-ui/chip/demo.tsx +191 -0
- package/2/apps/native/src/components/advanced-ui/chip/types.ts +21 -0
- package/2/apps/native/src/components/advanced-ui/progress-bars/animated-progress-bar.tsx +182 -0
- package/2/apps/native/src/components/advanced-ui/progress-bars/dropdown-picker-page.tsx +124 -0
- package/2/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +111 -0
- package/2/apps/native/src/components/advanced-ui/progress-bars/progress-circle.tsx +223 -0
- package/2/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +203 -0
- package/2/apps/native/src/components/advanced-ui/sliders/swipe-slider.tsx +266 -0
- package/2/apps/native/src/components/advanced-ui/stepper/children/button/stepper-button.tsx +96 -0
- package/2/apps/native/src/components/advanced-ui/stepper/children/button/types.ts +16 -0
- package/2/apps/native/src/components/advanced-ui/stepper/children/content/stepper-content.tsx +19 -0
- package/2/apps/native/src/components/advanced-ui/stepper/children/content/types.ts +6 -0
- package/2/apps/native/src/components/advanced-ui/stepper/children/value/stepper-value.tsx +43 -0
- package/2/apps/native/src/components/advanced-ui/stepper/children/value/types.ts +25 -0
- package/2/apps/native/src/components/advanced-ui/stepper/context/stepper-context.ts +19 -0
- package/2/apps/native/src/components/advanced-ui/stepper/context/types.ts +9 -0
- package/2/apps/native/src/components/advanced-ui/stepper/demo.tsx +346 -0
- package/2/apps/native/src/components/advanced-ui/stepper/index.ts +4 -0
- package/2/apps/native/src/components/advanced-ui/stepper/stepper.tsx +96 -0
- package/2/apps/native/src/components/advanced-ui/stepper/types.ts +13 -0
- package/2/apps/native/src/components/advanced-ui/switch/animated-switch.tsx +312 -0
- package/2/apps/native/src/components/advanced-ui/switch/demo.tsx +851 -0
- package/2/apps/native/src/components/advanced-ui/switch/types.ts +32 -0
- package/2/apps/native/src/components/advanced-ui/timeline/demo.tsx +444 -0
- package/2/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +355 -0
- package/2/apps/native/src/components/advanced-ui/timeline/types.ts +31 -0
- package/2/apps/native/src/components/analytics/navigation-tracker.tsx +10 -0
- package/2/apps/native/src/components/demo/advanced-ui-components.tsx +46 -0
- package/2/apps/native/src/components/demo/buttons-demo.tsx +56 -0
- package/2/apps/native/src/components/demo/colors-demo.tsx +52 -0
- package/2/apps/native/src/components/demo/dropdown-picker-demo.tsx +274 -0
- package/2/apps/native/src/components/demo/inputs-demo.tsx +99 -0
- package/2/apps/native/src/components/demo/notification-demo.tsx +434 -0
- package/2/apps/native/src/components/demo/title-demo.tsx +16 -0
- package/2/apps/native/src/components/demo/toast-demo.tsx +81 -0
- package/2/apps/native/src/components/demo/typography-demo.tsx +28 -0
- package/2/apps/native/src/components/performance/render-performance-monitor.tsx +36 -0
- package/2/apps/native/src/components/ui/accordion.tsx +138 -0
- package/2/apps/native/src/components/ui/avatar.tsx +66 -0
- package/2/apps/native/src/components/ui/badge.tsx +68 -0
- package/2/apps/native/src/components/ui/bottom-sheet.tsx +61 -0
- package/2/apps/native/src/components/ui/colors.js +290 -0
- package/2/apps/native/src/components/ui/core/button.tsx +317 -0
- package/2/apps/native/src/components/ui/core/card.tsx +40 -0
- package/2/apps/native/src/components/ui/core/checkbox.tsx +264 -0
- package/2/apps/native/src/components/ui/core/feature-button.tsx +162 -0
- package/2/apps/native/src/components/ui/core/focus-aware-status-bar.tsx +21 -0
- package/2/apps/native/src/components/ui/core/image.tsx +30 -0
- package/2/apps/native/src/components/ui/core/inputs/floating-text-input.tsx +369 -0
- package/2/apps/native/src/components/ui/core/inputs/input-otp.tsx +304 -0
- package/2/apps/native/src/components/ui/core/inputs/input.tsx +373 -0
- package/2/apps/native/src/components/ui/core/list.tsx +60 -0
- package/2/apps/native/src/components/ui/core/navigation/animated-header.tsx +87 -0
- package/2/apps/native/src/components/ui/core/navigation/screen-footer.tsx +67 -0
- package/2/apps/native/src/components/ui/core/overlays/dropdown.tsx +290 -0
- package/2/apps/native/src/components/ui/core/overlays/full-screen-loading.tsx +15 -0
- package/2/apps/native/src/components/ui/core/overlays/modal-keyboard-aware-scroll-view.tsx +46 -0
- package/2/apps/native/src/components/ui/core/overlays/modal.tsx +247 -0
- package/2/apps/native/src/components/ui/core/pagination-dots.tsx +231 -0
- package/2/apps/native/src/components/ui/core/pressable.tsx +48 -0
- package/2/apps/native/src/components/ui/core/progress-bar.tsx +47 -0
- package/2/apps/native/src/components/ui/core/progress.tsx +149 -0
- package/2/apps/native/src/components/ui/core/select.tsx +261 -0
- package/2/apps/native/src/components/ui/core/spinner.tsx +387 -0
- package/2/apps/native/src/components/ui/core/text.tsx +45 -0
- package/2/apps/native/src/components/ui/core/toast.tsx +190 -0
- package/2/apps/native/src/components/ui/custom-switch.tsx +90 -0
- package/2/apps/native/src/components/ui/date-time-picker.tsx +268 -0
- package/2/apps/native/src/components/ui/debug.ts +2 -0
- package/2/apps/native/src/components/ui/extras/debug-credit-tester.tsx +107 -0
- package/2/apps/native/src/components/ui/extras/debug-mmkv-state.tsx +53 -0
- package/2/apps/native/src/components/ui/extras/handle-error.ts +191 -0
- package/2/apps/native/src/components/ui/extras/hello-wave.tsx +70 -0
- package/2/apps/native/src/components/ui/extras/icon.tsx +36 -0
- package/2/apps/native/src/components/ui/extras/network-connectivity-wrapper.tsx +36 -0
- package/2/apps/native/src/components/ui/extras/offline-indicator.tsx +55 -0
- package/2/apps/native/src/components/ui/extras/social-login-buttons.tsx +296 -0
- package/2/apps/native/src/components/ui/file-picker.tsx +177 -0
- package/2/apps/native/src/components/ui/gallery.tsx +79 -0
- package/2/apps/native/src/components/ui/icons/apple.tsx +19 -0
- package/2/apps/native/src/components/ui/icons/arrow-right.tsx +26 -0
- package/2/apps/native/src/components/ui/icons/camera.tsx +26 -0
- package/2/apps/native/src/components/ui/icons/caret-down.tsx +20 -0
- package/2/apps/native/src/components/ui/icons/chevron-up.tsx +21 -0
- package/2/apps/native/src/components/ui/icons/claude.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/copy.tsx +27 -0
- package/2/apps/native/src/components/ui/icons/deepseek.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/download.tsx +32 -0
- package/2/apps/native/src/components/ui/icons/feed.tsx +12 -0
- package/2/apps/native/src/components/ui/icons/gemini.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/github.tsx +30 -0
- package/2/apps/native/src/components/ui/icons/google.tsx +24 -0
- package/2/apps/native/src/components/ui/icons/groq.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/home.tsx +19 -0
- package/2/apps/native/src/components/ui/icons/index.tsx +26 -0
- package/2/apps/native/src/components/ui/icons/language.tsx +33 -0
- package/2/apps/native/src/components/ui/icons/llama.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/microphone.tsx +20 -0
- package/2/apps/native/src/components/ui/icons/mistral.tsx +22 -0
- package/2/apps/native/src/components/ui/icons/nutrition.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/openai.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/perplexity.tsx +22 -0
- package/2/apps/native/src/components/ui/icons/qwen.tsx +15 -0
- package/2/apps/native/src/components/ui/icons/rate.tsx +24 -0
- package/2/apps/native/src/components/ui/icons/report.tsx +20 -0
- package/2/apps/native/src/components/ui/icons/send-horizontal.tsx +26 -0
- package/2/apps/native/src/components/ui/icons/settings.tsx +12 -0
- package/2/apps/native/src/components/ui/icons/share.tsx +16 -0
- package/2/apps/native/src/components/ui/icons/square.tsx +9 -0
- package/2/apps/native/src/components/ui/icons/style.tsx +22 -0
- package/2/apps/native/src/components/ui/icons/support.tsx +27 -0
- package/2/apps/native/src/components/ui/icons/trash2.tsx +42 -0
- package/2/apps/native/src/components/ui/icons/user.tsx +12 -0
- package/2/apps/native/src/components/ui/icons/website.tsx +28 -0
- package/2/apps/native/src/components/ui/icons/wifi-off.tsx +17 -0
- package/2/apps/native/src/components/ui/index.tsx +14 -0
- package/2/apps/native/src/components/ui/nav-item.tsx +42 -0
- package/2/apps/native/src/components/ui/patterns/index.ts +16 -0
- package/2/apps/native/src/components/ui/picker.tsx +244 -0
- package/2/apps/native/src/components/ui/popover.tsx +313 -0
- package/2/apps/native/src/components/ui/primitives/index.ts +38 -0
- package/2/apps/native/src/components/ui/radio-group.tsx +47 -0
- package/2/apps/native/src/components/ui/searchbar.tsx +118 -0
- package/2/apps/native/src/components/ui/sheet.tsx +93 -0
- package/2/apps/native/src/components/ui/switch.tsx +37 -0
- package/2/apps/native/src/components/ui/table.tsx +296 -0
- package/2/apps/native/src/components/ui/tabs.tsx +115 -0
- package/2/apps/native/src/components/ui/toggle.tsx +50 -0
- package/2/apps/native/src/components/ui/utils.tsx +34 -0
- package/2/apps/native/src/components/ui/video.tsx +39 -0
- package/2/apps/native/src/core/analytics/analytics-service.ts +94 -0
- package/2/apps/native/src/core/analytics/index.ts +2 -0
- package/2/apps/native/src/core/analytics/posthog-analytics-adapter.ts +192 -0
- package/2/apps/native/src/core/auth/auth-service.ts +33 -0
- package/2/apps/native/src/core/auth/index.ts +1 -0
- package/2/apps/native/src/core/cache/__tests__/cache-service.test.ts +599 -0
- package/2/apps/native/src/core/cache/cache-service.ts +89 -0
- package/2/apps/native/src/core/cache/index.ts +45 -0
- package/2/apps/native/src/core/config/config.service.ts +153 -0
- package/2/apps/native/src/core/config/index.ts +2 -0
- package/2/apps/native/src/core/config/telemetry.ts +38 -0
- package/2/apps/native/src/core/local-notifications/local-notification-manager.ts +409 -0
- package/2/apps/native/src/core/logging/custom-transports.ts +126 -0
- package/2/apps/native/src/core/logging/index.ts +1 -0
- package/2/apps/native/src/core/logging/logger.ts +182 -0
- package/2/apps/native/src/core/navigation/deep-link-handler.ts +295 -0
- package/2/apps/native/src/core/navigation/navigation-types.ts +53 -0
- package/2/apps/native/src/core/payments/index.ts +1 -0
- package/2/apps/native/src/core/payments/payment-service.ts +32 -0
- package/2/apps/native/src/core/quick-actions/index.ts +2 -0
- package/2/apps/native/src/core/quick-actions/quick-actions-adapter.ts +54 -0
- package/2/apps/native/src/core/quick-actions/types.ts +29 -0
- package/2/apps/native/src/core/storage/index.ts +1 -0
- package/2/apps/native/src/core/storage/mmkv.ts +62 -0
- package/2/apps/native/src/core/storage/notification-storage.ts +312 -0
- package/2/apps/native/src/core/types/common.ts +0 -0
- package/2/apps/native/src/core/utils/convex-http-api.ts +30 -0
- package/2/apps/native/src/features/audio-recorder/components/audio-player.tsx +301 -0
- package/2/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +373 -0
- package/2/apps/native/src/features/audio-recorder/components/audio-waveform.tsx +270 -0
- package/2/apps/native/src/features/audio-recorder/components/index.ts +4 -0
- package/2/apps/native/src/features/audio-recorder/components/recording-list.tsx +89 -0
- package/2/apps/native/src/features/audio-recorder/demo/audio-player-demo.tsx +66 -0
- package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-cloud.tsx +68 -0
- package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-interview.tsx +102 -0
- package/2/apps/native/src/features/audio-recorder/demo/basic.tsx +27 -0
- package/2/apps/native/src/features/audio-recorder/demo/index.ts +5 -0
- package/2/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +82 -0
- package/2/apps/native/src/features/authentication/components/auth-watcher.tsx +115 -0
- package/2/apps/native/src/features/authentication/components/login-form.tsx +85 -0
- package/2/apps/native/src/features/authentication/services/__tests__/convex-auth.adapter.test.ts +399 -0
- package/2/apps/native/src/features/authentication/services/convex-auth.adapter.ts +497 -0
- package/2/apps/native/src/features/authentication/services/index.ts +2 -0
- package/2/apps/native/src/features/charts/README.md +185 -0
- package/2/apps/native/src/features/charts/app/preview.tsx +226 -0
- package/2/apps/native/src/features/charts/components/area-chart.tsx +43 -0
- package/2/apps/native/src/features/charts/components/bar-chart.tsx +146 -0
- package/2/apps/native/src/features/charts/components/candlestick-chart.tsx +199 -0
- package/2/apps/native/src/features/charts/components/chart-card.tsx +68 -0
- package/2/apps/native/src/features/charts/components/column-chart.tsx +146 -0
- package/2/apps/native/src/features/charts/components/doughnut-chart.tsx +260 -0
- package/2/apps/native/src/features/charts/components/index.ts +13 -0
- package/2/apps/native/src/features/charts/components/line-chart.tsx +311 -0
- package/2/apps/native/src/features/charts/components/radar-chart.tsx +183 -0
- package/2/apps/native/src/features/charts/components/radial-bar-chart.tsx +191 -0
- package/2/apps/native/src/features/charts/components/stacked-area-chart.tsx +268 -0
- package/2/apps/native/src/features/charts/components/stacked-bar-chart.tsx +325 -0
- package/2/apps/native/src/features/charts/data/mock-data.ts +186 -0
- package/2/apps/native/src/features/charts/types/index.ts +69 -0
- package/2/apps/native/src/features/chatbot/app/index.tsx +303 -0
- package/2/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +60 -0
- package/2/apps/native/src/features/chatbot/components/chat-input-bar.tsx +470 -0
- package/2/apps/native/src/features/chatbot/components/chat-markdown.tsx +576 -0
- package/2/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +247 -0
- package/2/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +162 -0
- package/2/apps/native/src/features/chatbot/components/image-preview-list.tsx +116 -0
- package/2/apps/native/src/features/chatbot/components/markdown/code-block.tsx +166 -0
- package/2/apps/native/src/features/chatbot/components/markdown/index.ts +11 -0
- package/2/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +130 -0
- package/2/apps/native/src/features/chatbot/components/message-error-boundary.tsx +79 -0
- package/2/apps/native/src/features/chatbot/components/message-list.tsx +174 -0
- package/2/apps/native/src/features/chatbot/components/model-selector.tsx +284 -0
- package/2/apps/native/src/features/chatbot/components/report-content-modal.tsx +189 -0
- package/2/apps/native/src/features/chatbot/components/suggested-messages.tsx +68 -0
- package/2/apps/native/src/features/chatbot/constants/models.ts +21 -0
- package/2/apps/native/src/features/chatbot/constants/report-reasons.ts +10 -0
- package/2/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +144 -0
- package/2/apps/native/src/features/chatbot/hooks/use-chat-config.ts +665 -0
- package/2/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +360 -0
- package/2/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +90 -0
- package/2/apps/native/src/features/chatbot/hooks/use-conversation.ts +80 -0
- package/2/apps/native/src/features/chatbot/hooks/use-image-picker.ts +123 -0
- package/2/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +162 -0
- package/2/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +214 -0
- package/2/apps/native/src/features/chatbot/models/index.ts +87 -0
- package/2/apps/native/src/features/chatbot/models/models.ts +163 -0
- package/2/apps/native/src/features/chatbot/models/providers.ts +63 -0
- package/2/apps/native/src/features/chatbot/models/types.ts +41 -0
- package/2/apps/native/src/features/chatbot/services/file-uploader.ts +239 -0
- package/2/apps/native/src/features/chatbot/services/message-handler-service.ts +181 -0
- package/2/apps/native/src/features/chatbot/types/index.ts +61 -0
- package/2/apps/native/src/features/chatbot/utils/chat-telemetry.ts +92 -0
- package/2/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +304 -0
- package/2/apps/native/src/features/image-analyzer/app/camera.tsx +221 -0
- package/2/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +333 -0
- package/2/apps/native/src/features/image-analyzer/app/loading-screen.tsx +217 -0
- package/2/apps/native/src/features/image-analyzer/app/loading.tsx +194 -0
- package/2/apps/native/src/features/image-analyzer/app/results.tsx +137 -0
- package/2/apps/native/src/features/image-analyzer/app/trait-details.tsx +172 -0
- package/2/apps/native/src/features/image-analyzer/app/use-analysis-data.ts +143 -0
- package/2/apps/native/src/features/image-analyzer/app/use-results-screen.ts +151 -0
- package/2/apps/native/src/features/image-analyzer/components/results/achievement-badge.tsx +77 -0
- package/2/apps/native/src/features/image-analyzer/components/results/achievement-card.tsx +75 -0
- package/2/apps/native/src/features/image-analyzer/components/results/achievement-unlocked-modal.tsx +162 -0
- package/2/apps/native/src/features/image-analyzer/components/results/achievements-section.tsx +44 -0
- package/2/apps/native/src/features/image-analyzer/components/results/advice-list.tsx +42 -0
- package/2/apps/native/src/features/image-analyzer/components/results/circular-progress.tsx +233 -0
- package/2/apps/native/src/features/image-analyzer/components/results/content-card.tsx +38 -0
- package/2/apps/native/src/features/image-analyzer/components/results/error-state.tsx +42 -0
- package/2/apps/native/src/features/image-analyzer/components/results/index.ts +9 -0
- package/2/apps/native/src/features/image-analyzer/components/results/loading-state.tsx +26 -0
- package/2/apps/native/src/features/image-analyzer/components/results/profile-image.tsx +60 -0
- package/2/apps/native/src/features/image-analyzer/components/results/results-header.tsx +62 -0
- package/2/apps/native/src/features/image-analyzer/components/results/score-display.tsx +54 -0
- package/2/apps/native/src/features/image-analyzer/components/results/share-options-modal.tsx +110 -0
- package/2/apps/native/src/features/image-analyzer/components/results/traits-grid.tsx +74 -0
- package/2/apps/native/src/features/image-analyzer/config/analysis-config.ts +80 -0
- package/2/apps/native/src/features/image-analyzer/config/master-analysis-config.ts +157 -0
- package/2/apps/native/src/features/image-analyzer/hooks/index.ts +1 -0
- package/2/apps/native/src/features/image-analyzer/hooks/use-analysis.ts +37 -0
- package/2/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +202 -0
- package/2/apps/native/src/features/image-analyzer/services/analysis-service.ts +262 -0
- package/2/apps/native/src/features/image-analyzer/services/share-service.ts +176 -0
- package/2/apps/native/src/features/image-analyzer/services/trait-details-service.ts +289 -0
- package/2/apps/native/src/features/image-generator/app/_layout.tsx +26 -0
- package/2/apps/native/src/features/image-generator/app/gallery.tsx +217 -0
- package/2/apps/native/src/features/image-generator/app/index.tsx +237 -0
- package/2/apps/native/src/features/image-generator/components/gallery-image.tsx +25 -0
- package/2/apps/native/src/features/image-generator/components/image-detail-modal.tsx +215 -0
- package/2/apps/native/src/features/image-generator/components/image-model-selector.tsx +210 -0
- package/2/apps/native/src/features/image-generator/components/image-placeholder.tsx +26 -0
- package/2/apps/native/src/features/image-generator/hooks/use-image-gallery.ts +71 -0
- package/2/apps/native/src/features/image-generator/hooks/use-image-generator-settings.ts +152 -0
- package/2/apps/native/src/features/image-generator/hooks/use-image-generator.ts +93 -0
- package/2/apps/native/src/features/image-generator/models/models.ts +66 -0
- package/2/apps/native/src/features/image-generator/services/image-gallery-service.ts +98 -0
- package/2/apps/native/src/features/image-generator/services/image-save-service.ts +121 -0
- package/2/apps/native/src/features/onboarding/analytics/index.ts +9 -0
- package/2/apps/native/src/features/onboarding/components/onboarding-with-analytics.tsx +141 -0
- package/2/apps/native/src/features/onboarding/components/onboarding.tsx +173 -0
- package/2/apps/native/src/features/onboarding/config/onboarding-flow-config.ts +189 -0
- package/2/apps/native/src/features/onboarding/demo-one/app/index.tsx +43 -0
- package/2/apps/native/src/features/onboarding/demo-one/data.ts +32 -0
- package/2/apps/native/src/features/onboarding/hooks/use-onboarding-analytics.ts +323 -0
- package/2/apps/native/src/features/onboarding/services/onboarding-analytics.ts +432 -0
- package/2/apps/native/src/features/payments/README.md +200 -0
- package/2/apps/native/src/features/payments/app/local-paywall.tsx +194 -0
- package/2/apps/native/src/features/payments/app/remote-paywall.tsx +79 -0
- package/2/apps/native/src/features/payments/components/payment-initializer.tsx +95 -0
- package/2/apps/native/src/features/payments/components/paywall-error-state.tsx +60 -0
- package/2/apps/native/src/features/payments/components/paywall-local-mode.tsx +116 -0
- package/2/apps/native/src/features/payments/components/paywall-product-card.tsx +133 -0
- package/2/apps/native/src/features/payments/components/paywall-remote-mode.tsx +146 -0
- package/2/apps/native/src/features/payments/hooks/use-entitlement.ts +63 -0
- package/2/apps/native/src/features/payments/index.ts +8 -0
- package/2/apps/native/src/features/payments/services/revenuecat-adapter.ts +407 -0
- package/2/apps/native/src/features/quick-actions/components/quick-actions-demo.tsx +139 -0
- package/2/apps/native/src/features/quick-actions/config/default-actions.ts +83 -0
- package/2/apps/native/src/features/quick-actions/hooks/use-quick-actions.ts +45 -0
- package/2/apps/native/src/features/quick-actions/index.ts +4 -0
- package/2/apps/native/src/features/quick-actions/utils/quick-actions-manager.ts +105 -0
- package/2/apps/native/src/features/quiz/components/question.tsx +67 -0
- package/2/apps/native/src/features/quiz/config.ts +11 -0
- package/2/apps/native/src/features/quiz/index.tsx +133 -0
- package/2/apps/native/src/features/settings/ui/debug-info.tsx +75 -0
- package/2/apps/native/src/features/settings/ui/dev-tools.tsx +1 -0
- package/2/apps/native/src/features/settings/ui/item.tsx +45 -0
- package/2/apps/native/src/features/settings/ui/items-container.tsx +23 -0
- package/2/apps/native/src/features/settings/ui/language-item.tsx +52 -0
- package/2/apps/native/src/features/settings/ui/notification-item.tsx +59 -0
- package/2/apps/native/src/features/settings/ui/theme-item.tsx +45 -0
- package/2/apps/native/src/features/tracker-app/app/index.tsx +108 -0
- package/2/apps/native/src/features/tracker-app/components/animated-number.tsx +102 -0
- package/2/apps/native/src/features/tracker-app/components/calorie-card.tsx +66 -0
- package/2/apps/native/src/features/tracker-app/components/circular-progress.tsx +97 -0
- package/2/apps/native/src/features/tracker-app/components/floating-add-button.tsx +27 -0
- package/2/apps/native/src/features/tracker-app/components/macro-card.tsx +80 -0
- package/2/apps/native/src/features/tracker-app/components/promo-banner.tsx +98 -0
- package/2/apps/native/src/features/tracker-app/components/recently-logged.tsx +64 -0
- package/2/apps/native/src/features/tracker-app/components/week-calendar.tsx +68 -0
- package/2/apps/native/src/features/vibefast-features.ts +42 -0
- package/2/apps/native/src/features/voice-bot/README.md +185 -0
- package/2/apps/native/src/features/voice-bot/components/conversation-status.tsx +76 -0
- package/2/apps/native/src/features/voice-bot/components/index.ts +4 -0
- package/2/apps/native/src/features/voice-bot/components/message-input.tsx +98 -0
- package/2/apps/native/src/features/voice-bot/components/voice-bot-screen.tsx +173 -0
- package/2/apps/native/src/features/voice-bot/components/voice-controls.tsx +73 -0
- package/2/apps/native/src/features/voice-bot/index.ts +3 -0
- package/2/apps/native/src/features/voice-bot/services/index.ts +1 -0
- package/2/apps/native/src/features/voice-bot/services/use-voice-bot.ts +161 -0
- package/2/apps/native/src/features/voice-bot/types.ts +29 -0
- package/2/apps/native/src/features/wake-word/components/index.ts +1 -0
- package/2/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +61 -0
- package/2/apps/native/src/features/wake-word/constants.ts +10 -0
- package/2/apps/native/src/features/wake-word/hooks/use-wake-word.ts +181 -0
- package/2/apps/native/src/features/wake-word/index.ts +22 -0
- package/2/apps/native/src/features/wake-word/services/audio-session.ts +40 -0
- package/2/apps/native/src/features/wake-word/services/event-bus.ts +31 -0
- package/2/apps/native/src/features/wake-word/services/keywords.ts +88 -0
- package/2/apps/native/src/features/wake-word/services/wake-word-manager.ts +249 -0
- package/2/apps/native/src/features/wake-word/types.ts +22 -0
- package/2/apps/native/src/lib/env.js +13 -0
- package/2/apps/native/src/lib/hooks/index.tsx +6 -0
- package/2/apps/native/src/lib/hooks/use-device-identifier.tsx +80 -0
- package/2/apps/native/src/lib/hooks/use-gradual-animation.ts +28 -0
- package/2/apps/native/src/lib/hooks/use-is-first-time.tsx +25 -0
- package/2/apps/native/src/lib/hooks/use-navigation-analytics.ts +44 -0
- package/2/apps/native/src/lib/hooks/use-navigation-options.tsx +87 -0
- package/2/apps/native/src/lib/hooks/use-push-notifications.ts +250 -0
- package/2/apps/native/src/lib/hooks/use-responsive-size.tsx +37 -0
- package/2/apps/native/src/lib/hooks/use-selected-theme.tsx +38 -0
- package/2/apps/native/src/lib/hooks/use-viewport-lazy-loading.tsx +124 -0
- package/2/apps/native/src/lib/i18n/index.tsx +30 -0
- package/2/apps/native/src/lib/i18n/react-i18next.d.ts +9 -0
- package/2/apps/native/src/lib/i18n/resources.ts +25 -0
- package/2/apps/native/src/lib/i18n/types.ts +23 -0
- package/2/apps/native/src/lib/i18n/utils.tsx +112 -0
- package/2/apps/native/src/lib/index.tsx +3 -0
- package/2/apps/native/src/lib/state/auth-client-slice.ts +34 -0
- package/2/apps/native/src/lib/state/index.ts +1 -0
- package/2/apps/native/src/lib/storage.tsx +7 -0
- package/2/apps/native/src/lib/test-utils.tsx +43 -0
- package/2/apps/native/src/lib/use-theme-config.tsx +108 -0
- package/2/apps/native/src/lib/utils.ts +29 -0
- package/2/apps/native/src/polyfills.ts +61 -0
- package/2/apps/native/src/providers/convex-provider.tsx +31 -0
- package/2/apps/native/src/providers/index.tsx +6 -0
- package/2/apps/native/src/providers/notification-provider.tsx +168 -0
- package/2/apps/native/src/providers/posthog-provider.tsx +47 -0
- package/2/apps/native/src/providers/root-providers.tsx +46 -0
- package/2/apps/native/src/providers/sentry-provider.tsx +62 -0
- package/2/apps/native/src/providers/splash-screen-provider.tsx +122 -0
- package/2/apps/native/src/providers/theme-provider.tsx +67 -0
- package/2/apps/native/src/translations/ar.json +394 -0
- package/2/apps/native/src/translations/de.json +394 -0
- package/2/apps/native/src/translations/en.json +394 -0
- package/2/apps/native/src/translations/es.json +394 -0
- package/2/apps/native/src/translations/fr.json +394 -0
- package/2/apps/native/src/types/flash-list.d.ts +3 -0
- package/2/apps/native/src/types/index.ts +3 -0
- package/2/apps/native/src/types/react-native-reanimated.d.ts +5 -0
- package/2/apps/native/tailwind.config.js +57 -0
- package/2/apps/native/targets/widget/AppIntent.swift +46 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +122 -0
- package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
- package/2/apps/native/targets/widget/CalorieTrackerWidget.swift +424 -0
- package/2/apps/native/targets/widget/HabitTrackerWidget.swift +305 -0
- package/2/apps/native/targets/widget/Info.plist +11 -0
- package/2/apps/native/targets/widget/WidgetLiveActivity.swift +75 -0
- package/2/apps/native/targets/widget/expo-target.config.js +10 -0
- package/2/apps/native/targets/widget/generated.entitlements +5 -0
- package/2/apps/native/targets/widget/index.swift +18 -0
- package/2/apps/native/targets/widget/widgets.swift +96 -0
- package/2/apps/native/tsconfig.json +88 -0
- package/2/apps/native/vitest.config.mts +14 -0
- package/2/apps/web/README.md +36 -0
- package/2/apps/web/app/favicon.ico +0 -0
- package/2/apps/web/app/globals.css +122 -0
- package/2/apps/web/app/layout.tsx +38 -0
- package/2/apps/web/app/page.tsx +35 -0
- package/2/apps/web/app/users/page.tsx +301 -0
- package/2/apps/web/components/AdminDashboard.tsx +336 -0
- package/2/apps/web/components/AppleLogo.tsx +15 -0
- package/2/apps/web/components/GitHubLogo.tsx +11 -0
- package/2/apps/web/components/GoogleLogo.tsx +23 -0
- package/2/apps/web/components/Layout.tsx +77 -0
- package/2/apps/web/components/ThemeToggle.tsx +23 -0
- package/2/apps/web/components/UserMenu.tsx +66 -0
- package/2/apps/web/components/auth/CodeInput.tsx +24 -0
- package/2/apps/web/components/auth/ResetPasswordWithEmailCode.tsx +85 -0
- package/2/apps/web/components/auth/SignInFormEmailCode.tsx +72 -0
- package/2/apps/web/components/auth/SignInFormEmailLink.tsx +81 -0
- package/2/apps/web/components/auth/SignInFormPassword.tsx +17 -0
- package/2/apps/web/components/auth/SignInFormPasswordAndCustomField.tsx +42 -0
- package/2/apps/web/components/auth/SignInFormPasswordAndResetViaCode.tsx +32 -0
- package/2/apps/web/components/auth/SignInFormPasswordAndVerifyViaCode.tsx +86 -0
- package/2/apps/web/components/auth/SignInFormPhoneCode.tsx +89 -0
- package/2/apps/web/components/auth/SignInFormsShowcase.tsx +64 -0
- package/2/apps/web/components/auth/SignInMethodDivider.tsx +17 -0
- package/2/apps/web/components/auth/SignInWithEmailCode.tsx +49 -0
- package/2/apps/web/components/auth/SignInWithOAuth.tsx +16 -0
- package/2/apps/web/components/auth/SignInWithPassword.tsx +100 -0
- package/2/apps/web/components/auth/oauth/SignInWithApple.tsx +27 -0
- package/2/apps/web/components/auth/oauth/SignInWithGitHub.tsx +27 -0
- package/2/apps/web/components/auth/oauth/SignInWithGoogle.tsx +27 -0
- package/2/apps/web/components/ui/button.tsx +60 -0
- package/2/apps/web/components/ui/card.tsx +92 -0
- package/2/apps/web/components/ui/dialog.tsx +143 -0
- package/2/apps/web/components/ui/dropdown-menu.tsx +257 -0
- package/2/apps/web/components/ui/input-otp.tsx +77 -0
- package/2/apps/web/components/ui/input.tsx +21 -0
- package/2/apps/web/components/ui/skeleton.tsx +13 -0
- package/2/apps/web/components/ui/tabs.tsx +66 -0
- package/2/apps/web/components/ui/toast.tsx +130 -0
- package/2/apps/web/components/ui/toaster.tsx +36 -0
- package/2/apps/web/components/ui/toggle-group.tsx +83 -0
- package/2/apps/web/components/ui/toggle.tsx +47 -0
- package/2/apps/web/components/ui/use-toast.ts +192 -0
- package/2/apps/web/components.json +22 -0
- package/2/apps/web/eslint.config.mjs +18 -0
- package/2/apps/web/lib/convex-provider.tsx +18 -0
- package/2/apps/web/lib/utils.ts +6 -0
- package/2/apps/web/next.config.ts +7 -0
- package/2/apps/web/package.json +46 -0
- package/2/apps/web/postcss.config.mjs +7 -0
- package/2/apps/web/public/file.svg +1 -0
- package/2/apps/web/public/globe.svg +1 -0
- package/2/apps/web/public/next.svg +1 -0
- package/2/apps/web/public/vercel.svg +1 -0
- package/2/apps/web/public/window.svg +1 -0
- package/2/apps/web/tsconfig.json +34 -0
- package/2/bts.jsonc +21 -0
- package/2/commitlint.config.js +1 -0
- package/2/eslint.config.mjs +182 -0
- package/2/lint-staged.config.js +16 -0
- package/2/package.json +64 -0
- package/2/packages/backend/.env.example +20 -0
- package/2/packages/backend/convex/README.md +90 -0
- package/2/packages/backend/convex/_generated/api.d.ts +2599 -0
- package/2/packages/backend/convex/_generated/api.js +23 -0
- package/2/packages/backend/convex/_generated/dataModel.d.ts +60 -0
- package/2/packages/backend/convex/_generated/server.d.ts +149 -0
- package/2/packages/backend/convex/_generated/server.js +90 -0
- package/2/packages/backend/convex/agents.ts +116 -0
- package/2/packages/backend/convex/auth.config.ts +8 -0
- package/2/packages/backend/convex/auth.ts +103 -0
- package/2/packages/backend/convex/authCustomEmailOtpProvider.ts +175 -0
- package/2/packages/backend/convex/authOtp.ts +144 -0
- package/2/packages/backend/convex/authPasswordReset.ts +367 -0
- package/2/packages/backend/convex/authPasswordResetActions.ts +150 -0
- package/2/packages/backend/convex/chatbot/index.ts +30 -0
- package/2/packages/backend/convex/chatbotAgent.ts +1085 -0
- package/2/packages/backend/convex/chatbotHistory.ts +307 -0
- package/2/packages/backend/convex/convex.config.ts +13 -0
- package/2/packages/backend/convex/deviceGrants.ts +58 -0
- package/2/packages/backend/convex/grantFunctions.ts +444 -0
- package/2/packages/backend/convex/http.ts +8 -0
- package/2/packages/backend/convex/imageAnalysis/index.ts +18 -0
- package/2/packages/backend/convex/imageAnalysisFunctions.ts +325 -0
- package/2/packages/backend/convex/imageGeneration/index.ts +12 -0
- package/2/packages/backend/convex/imageGeneratorFunctions.ts +290 -0
- package/2/packages/backend/convex/lib/ai/analysisConfigs.ts +257 -0
- package/2/packages/backend/convex/lib/ai/config.ts +71 -0
- package/2/packages/backend/convex/lib/ai/geminiAdapter.ts +43 -0
- package/2/packages/backend/convex/lib/ai/imageAnalysisAdapter.ts +200 -0
- package/2/packages/backend/convex/lib/ai/openaiAdapter.ts +43 -0
- package/2/packages/backend/convex/lib/ai/schemas.ts +79 -0
- package/2/packages/backend/convex/lib/config.ts +111 -0
- package/2/packages/backend/convex/lib/rateLimit.ts +100 -0
- package/2/packages/backend/convex/lib/telemetry.ts +29 -0
- package/2/packages/backend/convex/paymentFunctions.ts +119 -0
- package/2/packages/backend/convex/payments/index.ts +13 -0
- package/2/packages/backend/convex/pushNotificationFunctions.ts +342 -0
- package/2/packages/backend/convex/ragKnowledge.ts +714 -0
- package/2/packages/backend/convex/rateLimit.ts +13 -0
- package/2/packages/backend/convex/recordingFunctions.ts +98 -0
- package/2/packages/backend/convex/reportFunctions.ts +344 -0
- package/2/packages/backend/convex/reporting/index.ts +9 -0
- package/2/packages/backend/convex/router.ts +81 -0
- package/2/packages/backend/convex/schema.ts +237 -0
- package/2/packages/backend/convex/shared/email.ts +172 -0
- package/2/packages/backend/convex/shared/files.ts +96 -0
- package/2/packages/backend/convex/shared/index.ts +17 -0
- package/2/packages/backend/convex/shared/templates/PasswordResetEmail.tsx +72 -0
- package/2/packages/backend/convex/shared/templates/VerificationCodeEmail.tsx +65 -0
- package/2/packages/backend/convex/sharedUsers.ts +48 -0
- package/2/packages/backend/convex/tools/index.ts +18 -0
- package/2/packages/backend/convex/tools/knowledgeRetrieval.ts +92 -0
- package/2/packages/backend/convex/tools/tavilySearch.ts +83 -0
- package/2/packages/backend/convex/tools/userProfile.ts +72 -0
- package/2/packages/backend/convex/tsconfig.json +25 -0
- package/2/packages/backend/convex/users.ts +54 -0
- package/2/packages/backend/index.ts +20 -0
- package/2/packages/backend/package.json +32 -0
- package/2/packages/ui/README.md +63 -0
- package/2/packages/ui/index.ts +1 -0
- package/2/packages/ui/package.json +21 -0
- package/2/packages/ui/src/components/SharedButton.tsx +31 -0
- package/2/packages/ui/src/components/SharedCard.tsx +48 -0
- package/2/packages/ui/src/components/index.ts +2 -0
- package/2/packages/ui/tsconfig.json +10 -0
- package/2/pnpm-lock.yaml +23292 -0
- package/2/pnpm-workspace.yaml +3 -0
- package/2/scripts/i18next-syntax-validation.js +1 -0
- package/2/tsconfig.json +43 -0
- package/2/turbo.json +33 -0
- package/2/vercel.json +6 -0
- package/2/vf-agent/agent-teams/team-vibefast.yaml +14 -0
- package/2/vf-agent/agents/analyst.md +53 -0
- package/2/vf-agent/agents/architect.md +105 -0
- package/2/vf-agent/agents/dev.md +40 -0
- package/2/vf-agent/agents/orchestrator.md +181 -0
- package/2/vf-agent/agents/pm.md +48 -0
- package/2/vf-agent/agents/po.md +38 -0
- package/2/vf-agent/agents/qa.md +30 -0
- package/2/vf-agent/agents/sm.md +38 -0
- package/2/vf-agent/agents/ux-expert.md +33 -0
- package/2/vf-agent/checklists/po-master-checklist.md +73 -0
- package/2/vf-agent/checklists/story-dod-checklist.md +37 -0
- package/2/vf-agent/core-config.yaml +43 -0
- package/2/vf-agent/data/knowledge_base/backend/convex-advanced.md +43 -0
- package/2/vf-agent/data/knowledge_base/backend/convex-database.md +53 -0
- package/2/vf-agent/data/knowledge_base/backend/convex-main.md +65 -0
- package/2/vf-agent/data/knowledge_base/backend/full-guidelines.md +795 -0
- package/2/vf-agent/data/knowledge_base/coding-standards.md +253 -0
- package/2/vf-agent/data/knowledge_base/frontend/full-guidelines.md +254 -0
- package/2/vf-agent/data/knowledge_base/frontend/image-handling.md +48 -0
- package/2/vf-agent/data/knowledge_base/frontend/react-native-main.md +24 -0
- package/2/vf-agent/data/knowledge_base/frontend/ui-and-styling.md +169 -0
- package/2/vf-agent/data/knowledge_base/general-principles.md +26 -0
- package/2/vf-agent/data/knowledge_base/master-rulebook.md +42 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/audio-recorder-reference.md +98 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/authentication-reference.md +155 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/charts-reference.md +149 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/chatbot-reference.md +123 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/feature-reference-index.md +211 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/features-overview.md +221 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/image-analyzer-reference.md +118 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/image-generator-reference.md +110 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/index.md +28 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/onboarding-reference.md +96 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/payments-reference.md +148 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/prd.md +82 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/push-notifications-reference.md +453 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/quick-actions-reference.md +253 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/quiz-reference.md +169 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/settings-reference.md +146 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/tech-stack.md +159 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/tracker-app-reference.md +150 -0
- package/2/vf-agent/data/knowledge_base/starter-docs/unified-project-structure.md +98 -0
- package/2/vf-agent/data/knowledge_base/testing/backend-testing.md +54 -0
- package/2/vf-agent/data/knowledge_base/testing/frontend-testing.md +71 -0
- package/2/vf-agent/data/knowledge_base/testing/testing-strategy.md +31 -0
- package/2/vf-agent/tasks/advanced-elicitation.md +117 -0
- package/2/vf-agent/tasks/brownfield-create-epic.md +160 -0
- package/2/vf-agent/tasks/create-deep-research-prompt.md +278 -0
- package/2/vf-agent/tasks/create-doc.md +42 -0
- package/2/vf-agent/tasks/create-story.md +43 -0
- package/2/vf-agent/tasks/document-project.md +343 -0
- package/2/vf-agent/tasks/facilitate-brainstorming-session.md +136 -0
- package/2/vf-agent/tasks/index-docs.md +173 -0
- package/2/vf-agent/tasks/kb-mode-interaction.md +75 -0
- package/2/vf-agent/tasks/review-story.md +154 -0
- package/2/vf-agent/tasks/shard-doc.md +185 -0
- package/2/vf-agent/tasks/troubleshoot-issue.md +65 -0
- package/2/vf-agent/tasks/validate-next-story.md +47 -0
- package/2/vf-agent/templates/brainstorming-output-tmpl.yaml +156 -0
- package/2/vf-agent/templates/brownfield-architecture-tmpl.yaml +111 -0
- package/2/vf-agent/templates/brownfield-prd-tmpl.yaml +247 -0
- package/2/vf-agent/templates/competitor-analysis-tmpl.yaml +293 -0
- package/2/vf-agent/templates/market-research-tmpl.yaml +252 -0
- package/2/vf-agent/templates/project-brief-tmpl.yaml +221 -0
- package/2/vf-agent/templates/story-tmpl.yaml +143 -0
- package/BEFORE-AFTER.md +327 -0
- package/CHANGELOG.md +73 -0
- package/CLI-ROADMAP.md +415 -0
- package/COMMAND-REFERENCE.md +341 -0
- package/IMPLEMENTATION-STATUS.md +316 -0
- package/MANUAL-TEST-CHECKLIST.md +264 -0
- package/OPTIONS-GLOSSARY.md +308 -0
- package/PHASE-1-2-3-COMPLETE.md +435 -0
- package/PHASE-1-2-IMPLEMENTATION.md +280 -0
- package/PHASE-1-2-SUMMARY.md +183 -0
- package/QUICK-START.md +352 -0
- package/RECIPES-GUIDE.md +325 -0
- package/RELEASE-CHECKLIST.md +269 -0
- package/VF-INIT-FLOW.md +446 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +328 -66
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/checklist.d.ts.map +1 -1
- package/dist/commands/checklist.js +69 -5
- package/dist/commands/checklist.js.map +1 -1
- package/dist/commands/env.d.ts +3 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +130 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +214 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +310 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +36 -16
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +5 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +11 -0
- package/dist/commands/remove.js.map +1 -1
- package/dist/core/__tests__/detect.test.d.ts +2 -0
- package/dist/core/__tests__/detect.test.d.ts.map +1 -0
- package/dist/core/__tests__/detect.test.js +73 -0
- package/dist/core/__tests__/detect.test.js.map +1 -0
- package/dist/core/detect.d.ts +10 -0
- package/dist/core/detect.d.ts.map +1 -0
- package/dist/core/detect.js +58 -0
- package/dist/core/detect.js.map +1 -0
- package/dist/core/env.d.ts +24 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +83 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/errors.d.ts +13 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +111 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/prompt.d.ts +46 -2
- package/dist/core/prompt.d.ts.map +1 -1
- package/dist/core/prompt.js +179 -15
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/prompts.d.ts +23 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +85 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/recipes.d.ts +31 -0
- package/dist/core/recipes.d.ts.map +1 -0
- package/dist/core/recipes.js +138 -0
- package/dist/core/recipes.js.map +1 -0
- package/dist/core/spinner.d.ts +20 -0
- package/dist/core/spinner.d.ts.map +1 -0
- package/dist/core/spinner.js +72 -0
- package/dist/core/spinner.js.map +1 -0
- package/dist/core/vosk.d.ts +7 -0
- package/dist/core/vosk.d.ts.map +1 -0
- package/dist/core/vosk.js +94 -0
- package/dist/core/vosk.js.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
- package/recipes/README.md +156 -0
- package/recipes/chatbot/packages/backend/convex/agents.ts +116 -0
- package/recipes/chatbot/packages/backend/convex/chatbotAgent.ts +1085 -0
- package/recipes/chatbot/packages/backend/convex/chatbotHistory.ts +307 -0
- package/recipes/chatbot/packages/backend/convex/lib/rateLimit.ts +100 -0
- package/recipes/chatbot/packages/backend/convex/lib/telemetry.ts +29 -0
- package/recipes/chatbot/packages/backend/convex/ragKnowledge.ts +714 -0
- package/recipes/chatbot/packages/backend/convex/tools/index.ts +18 -0
- package/recipes/chatbot/packages/backend/convex/tools/knowledgeRetrieval.ts +92 -0
- package/recipes/chatbot/packages/backend/convex/tools/tavilySearch.ts +83 -0
- package/recipes/chatbot/packages/backend/convex/tools/userProfile.ts +72 -0
- package/recipes/chatbot/recipe.json +89 -1
- package/recipes/chatbot@latest.zip +0 -0
- package/recipes/image-analysis/recipe.json +61 -0
- package/recipes/image-analysis@latest.zip +0 -0
- package/recipes/image-generator/packages/backend/convex/imageGeneration/index.ts +12 -0
- package/recipes/image-generator/packages/backend/convex/imageGeneratorFunctions.ts +290 -0
- package/recipes/image-generator/recipe.json +36 -1
- package/recipes/image-generator@latest.zip +0 -0
- package/recipes/posthog.json +46 -0
- package/recipes/revenuecat.json +43 -0
- package/recipes/sentry.json +46 -0
- package/recipes/voice-bot/packages/backend/convex/router.ts +81 -0
- package/recipes/voice-bot/recipe.json +51 -1
- package/recipes/voice-bot@latest.zip +0 -0
- package/recipes/wake-word/apps/native/assets/vosk-model/README.md +103 -0
- package/recipes/wake-word/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +216 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/components/index.ts +1 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +61 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/constants.ts +10 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/hooks/use-wake-word.ts +181 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/index.ts +22 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/services/audio-session.ts +40 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/services/event-bus.ts +31 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/services/keywords.ts +88 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/services/wake-word-manager.ts +249 -0
- package/recipes/wake-word/apps/native/src/features/wake-word/types.ts +22 -0
- package/recipes/wake-word/recipe.json +50 -0
- package/recipes/wake-word/scripts/download-vosk-model.mjs +121 -0
- package/recipes/wake-word@latest.zip +0 -0
- package/scripts/sync-recipes.js +93 -0
- package/src/commands/add.ts +401 -68
- package/src/commands/checklist.ts +81 -6
- package/src/commands/env.ts +163 -0
- package/src/commands/health.ts +225 -0
- package/src/commands/init.ts +390 -0
- package/src/commands/list.ts +42 -16
- package/src/commands/login.ts +6 -0
- package/src/commands/remove.ts +12 -0
- package/src/core/__tests__/detect.test.ts +91 -0
- package/src/core/detect.ts +60 -0
- package/src/core/env.ts +109 -0
- package/src/core/errors.ts +122 -0
- package/src/core/prompt.ts +227 -16
- package/src/core/prompts.ts +115 -0
- package/src/core/recipes.ts +152 -0
- package/src/core/spinner.ts +87 -0
- package/src/core/vosk.ts +111 -0
- package/src/index.ts +50 -0
- package/test-locally.sh +145 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
template:
|
|
2
|
+
id: brownfield-prd-template-v2
|
|
3
|
+
name: Product Requirements Document
|
|
4
|
+
version: 2.0
|
|
5
|
+
output:
|
|
6
|
+
format: markdown
|
|
7
|
+
filename: docs/prd.md
|
|
8
|
+
title: '{{project_name}} Product Requirements Document (PRD)'
|
|
9
|
+
|
|
10
|
+
workflow:
|
|
11
|
+
mode: interactive
|
|
12
|
+
elicitation: advanced-elicitation
|
|
13
|
+
|
|
14
|
+
sections:
|
|
15
|
+
- id: goals-context
|
|
16
|
+
title: Goals and Background Context
|
|
17
|
+
instruction: |
|
|
18
|
+
Ask if Project Brief document is available. If NO Project Brief exists, STRONGLY recommend creating one first using project-brief-tmpl (it provides essential foundation: problem statement, target users, success metrics, MVP scope, constraints). If user insists on PRD without brief, gather this information during Goals section. If Project Brief exists, review and use it to populate Goals (bullet list of desired outcomes) and Background Context (1-2 paragraphs on what this solves and why) so we can determine what is and is not in scope for PRD mvp. Either way this is critical to determine the requirements. Include Change Log table.
|
|
19
|
+
sections:
|
|
20
|
+
- id: goals
|
|
21
|
+
title: Goals
|
|
22
|
+
type: bullet-list
|
|
23
|
+
instruction: Bullet list of 1 line desired outcomes the PRD will deliver if successful - user and project desires
|
|
24
|
+
- id: background
|
|
25
|
+
title: Background Context
|
|
26
|
+
type: paragraphs
|
|
27
|
+
instruction: 1-2 short paragraphs summarizing the background context, such as what we learned in the brief without being redundant with the goals, what and why this solves a problem, what the current landscape or need is
|
|
28
|
+
- id: changelog
|
|
29
|
+
title: Change Log
|
|
30
|
+
type: table
|
|
31
|
+
columns: [Date, Version, Description, Author]
|
|
32
|
+
instruction: Track document versions and changes
|
|
33
|
+
|
|
34
|
+
- id: existing-feature-integration
|
|
35
|
+
title: Existing Feature Integration
|
|
36
|
+
instruction: |
|
|
37
|
+
CRITICAL: Before defining new requirements, you must first analyze the VibeFast starter kit's built-in features. Consult `starter-docs/feature-reference-index.md`. In this section, create a list of all existing features (e.g., Authentication, Payments, AI Chatbot) that will be used, configured, or leveraged to meet the goals of this PRD. This prevents re-planning work that is already done.
|
|
38
|
+
elicit: true
|
|
39
|
+
type: bullet-list
|
|
40
|
+
template: "- **{{feature_name}}:** {{how_it_will_be_used}}"
|
|
41
|
+
|
|
42
|
+
- id: requirements
|
|
43
|
+
title: Requirements
|
|
44
|
+
instruction: Draft the list of functional and non functional requirements under the two child sections
|
|
45
|
+
elicit: true
|
|
46
|
+
sections:
|
|
47
|
+
- id: functional
|
|
48
|
+
title: Functional
|
|
49
|
+
type: numbered-list
|
|
50
|
+
prefix: FR
|
|
51
|
+
instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with FR
|
|
52
|
+
examples:
|
|
53
|
+
- 'FR6: The Todo List uses AI to detect and warn against potentially duplicate todo items that are worded differently.'
|
|
54
|
+
- id: non-functional
|
|
55
|
+
title: Non Functional
|
|
56
|
+
type: numbered-list
|
|
57
|
+
prefix: NFR
|
|
58
|
+
instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with NFR
|
|
59
|
+
examples:
|
|
60
|
+
- 'NFR1: AWS service usage must aim to stay within free-tier limits where feasible.'
|
|
61
|
+
|
|
62
|
+
- id: ui-goals
|
|
63
|
+
title: User Interface Design Goals
|
|
64
|
+
condition: PRD has UX/UI requirements
|
|
65
|
+
instruction: |
|
|
66
|
+
Capture high-level UI/UX vision to guide Design Architect and to inform story creation. Steps:
|
|
67
|
+
|
|
68
|
+
1. Pre-fill all subsections with educated guesses based on project context
|
|
69
|
+
2. Present the complete rendered section to user
|
|
70
|
+
3. Clearly let the user know where assumptions were made
|
|
71
|
+
4. Ask targeted questions for unclear/missing elements or areas needing more specification
|
|
72
|
+
5. This is NOT detailed UI spec - focus on product vision and user goals
|
|
73
|
+
elicit: true
|
|
74
|
+
choices:
|
|
75
|
+
accessibility: [None, WCAG AA, WCAG AAA]
|
|
76
|
+
platforms: [Web Responsive, Mobile Only, Desktop Only, Cross-Platform]
|
|
77
|
+
sections:
|
|
78
|
+
- id: ux-vision
|
|
79
|
+
title: Overall UX Vision
|
|
80
|
+
- id: interaction-paradigms
|
|
81
|
+
title: Key Interaction Paradigms
|
|
82
|
+
- id: core-screens
|
|
83
|
+
title: Core Screens and Views
|
|
84
|
+
instruction: From a product perspective, what are the most critical screens or views necessary to deliver the the PRD values and goals? This is meant to be Conceptual High Level to Drive Rough Epic or User Stories
|
|
85
|
+
examples:
|
|
86
|
+
- 'Login Screen'
|
|
87
|
+
- 'Main Dashboard'
|
|
88
|
+
- 'Item Detail Page'
|
|
89
|
+
- 'Settings Page'
|
|
90
|
+
- id: accessibility
|
|
91
|
+
title: 'Accessibility: {None|WCAG AA|WCAG AAA|Custom Requirements}'
|
|
92
|
+
- id: branding
|
|
93
|
+
title: Branding
|
|
94
|
+
instruction: Any known branding elements or style guides that must be incorporated?
|
|
95
|
+
examples:
|
|
96
|
+
- 'Replicate the look and feel of early 1900s black and white cinema, including animated effects replicating film damage or projector glitches during page or state transitions.'
|
|
97
|
+
- 'Attached is the full color pallet and tokens for our corporate branding.'
|
|
98
|
+
- id: target-platforms
|
|
99
|
+
title: 'Target Device and Platforms: {Web Responsive|Mobile Only|Desktop Only|Cross-Platform}'
|
|
100
|
+
examples:
|
|
101
|
+
- 'Web Responsive, and all mobile platforms'
|
|
102
|
+
- 'iPhone Only'
|
|
103
|
+
- 'ASCII Windows Desktop'
|
|
104
|
+
|
|
105
|
+
- id: technical-assumptions
|
|
106
|
+
title: Technical Assumptions
|
|
107
|
+
instruction: |
|
|
108
|
+
Gather technical decisions that will guide the Architect. Steps:
|
|
109
|
+
|
|
110
|
+
1. Check if {root}/data/technical-preferences.yaml or an attached technical-preferences file exists - use it to pre-populate choices
|
|
111
|
+
2. Ask user about: languages, frameworks, starter templates, libraries, APIs, deployment targets
|
|
112
|
+
3. For unknowns, offer guidance based on project goals and MVP scope
|
|
113
|
+
4. Document ALL technical choices with rationale (why this choice fits the project)
|
|
114
|
+
5. These become constraints for the Architect - be specific and complete
|
|
115
|
+
elicit: true
|
|
116
|
+
choices:
|
|
117
|
+
repository: [Monorepo, Polyrepo]
|
|
118
|
+
architecture: [Monolith, Microservices, Serverless]
|
|
119
|
+
testing: [Unit Only, Unit + Integration, Full Testing Pyramid]
|
|
120
|
+
sections:
|
|
121
|
+
- id: repository-structure
|
|
122
|
+
title: 'Repository Structure: {Monorepo|Polyrepo|Multi-repo}'
|
|
123
|
+
- id: service-architecture
|
|
124
|
+
title: Service Architecture
|
|
125
|
+
instruction: 'CRITICAL DECISION - Document the high-level service architecture (e.g., Monolith, Microservices, Serverless functions within a Monorepo).'
|
|
126
|
+
- id: testing-requirements
|
|
127
|
+
title: Testing Requirements
|
|
128
|
+
instruction: 'CRITICAL DECISION - Document the testing requirements, unit only, integration, e2e, manual, need for manual testing convenience methods).'
|
|
129
|
+
- id: additional-assumptions
|
|
130
|
+
title: Additional Technical Assumptions and Requests
|
|
131
|
+
instruction: Throughout the entire process of drafting this document, if any other technical assumptions are raised or discovered appropriate for the architect, add them here as additional bulleted items
|
|
132
|
+
|
|
133
|
+
- id: core-app-structure
|
|
134
|
+
title: Core Application Structure
|
|
135
|
+
instruction: |
|
|
136
|
+
CRITICAL FOR SCAFFOLDING: Define the foundational structure of your new application. This will be used to automatically clean up the starter kit and set up your project.
|
|
137
|
+
1. **Primary Navigation Tabs:** List the main tabs for your app's bottom navigation bar.
|
|
138
|
+
2. **Core Features:** List the names of the main new features you will be building. These will become the top-level folders in `src/features/`.
|
|
139
|
+
3. **Starter Features to Keep:** List any of the VibeFast demo features (e.g., "Chatbot", "Image Generator") that you want to KEEP in your final application. Any feature not listed here will be deleted.
|
|
140
|
+
elicit: true
|
|
141
|
+
sections:
|
|
142
|
+
- id: primary-navigation
|
|
143
|
+
title: Primary Navigation Tabs
|
|
144
|
+
type: numbered-list
|
|
145
|
+
instruction: List the primary tabs for the bottom navigator (e.g., "Dashboard", "Log Food", "Profile").
|
|
146
|
+
examples:
|
|
147
|
+
- 'Dashboard'
|
|
148
|
+
- 'Log Food'
|
|
149
|
+
- 'History'
|
|
150
|
+
- 'Profile'
|
|
151
|
+
- id: core-features
|
|
152
|
+
title: Core App Features
|
|
153
|
+
type: numbered-list
|
|
154
|
+
instruction: List the main feature domains of your new app (e.g., "food-logging", "user-dashboard", "recipe-browser").
|
|
155
|
+
examples:
|
|
156
|
+
- 'dashboard'
|
|
157
|
+
- 'food-logging'
|
|
158
|
+
- 'user-profile'
|
|
159
|
+
- 'recipe-browser'
|
|
160
|
+
- id: starter-features-to-keep
|
|
161
|
+
title: Starter Features to Keep
|
|
162
|
+
type: numbered-list
|
|
163
|
+
instruction: List ONLY the VibeFast demo features you want to keep (e.g., "Chatbot"). If none, leave blank.
|
|
164
|
+
examples:
|
|
165
|
+
- 'Chatbot'
|
|
166
|
+
- 'Image Analyzer'
|
|
167
|
+
|
|
168
|
+
- id: epic-list
|
|
169
|
+
title: Epic List
|
|
170
|
+
instruction: |
|
|
171
|
+
Present a high-level list of all epics for user approval. Each epic should have a title and a short (1 sentence) goal statement. This allows the user to review the overall structure before diving into details.
|
|
172
|
+
|
|
173
|
+
CRITICAL: Epics MUST be logically sequential following agile best practices:
|
|
174
|
+
|
|
175
|
+
- **Epic 1 (Foundation & Application Transformation):** This first epic is non-negotiable. It MUST include stories to:
|
|
176
|
+
1. Establish foundational project infrastructure (CI/CD, etc.).
|
|
177
|
+
2. **Decommission and remove the starter kit's demo home screen.**
|
|
178
|
+
3. **Create the new, application-specific home screen** that provides immediate value to the end-user (e.g., a dashboard, a primary call-to-action).
|
|
179
|
+
4. Implement the core authentication flow for the new app.
|
|
180
|
+
- Each subsequent epic builds upon this new foundation...
|
|
181
|
+
- Not every project needs multiple epics, an epic needs to deliver value. For example, an API completed can deliver value even if a UI is not complete and planned for a separate epic.
|
|
182
|
+
- Err on the side of less epics, but let the user know your rationale and offer options for splitting them if it seems some are too large or focused on disparate things.
|
|
183
|
+
- Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
|
|
184
|
+
elicit: true
|
|
185
|
+
examples:
|
|
186
|
+
- 'Epic 1: Foundation & App Rebranding: Establish project setup, replace demo home screen, and implement basic user authentication.'
|
|
187
|
+
- 'Epic 2: Core Feature - [Feature Name]: Implement the primary business logic and UI for the core feature.'
|
|
188
|
+
- 'Epic 3: User Workflows & Interactions: Enable key user journeys and business processes.'
|
|
189
|
+
|
|
190
|
+
- id: epic-details
|
|
191
|
+
title: Epic {{epic_number}} {{epic_title}}
|
|
192
|
+
repeatable: true
|
|
193
|
+
instruction: |
|
|
194
|
+
After the epic list is approved, present each epic with all its stories and acceptance criteria as a complete review unit.
|
|
195
|
+
|
|
196
|
+
For each epic provide expanded goal (2-3 sentences describing the objective and value all the stories will achieve).
|
|
197
|
+
|
|
198
|
+
CRITICAL STORY SEQUENCING REQUIREMENTS:
|
|
199
|
+
|
|
200
|
+
- Stories within each epic MUST be logically sequential
|
|
201
|
+
- Each story should be a "vertical slice" delivering complete functionality aside from early enabler stories for project foundation
|
|
202
|
+
- No story should depend on work from a later story or epic
|
|
203
|
+
- Identify and note any direct prerequisite stories
|
|
204
|
+
- Focus on "what" and "why" not "how" (leave technical implementation to Architect) yet be precise enough to support a logical sequential order of operations from story to story.
|
|
205
|
+
- Ensure each story delivers clear user or business value, try to avoid enablers and build them into stories that deliver value.
|
|
206
|
+
- Size stories for AI agent execution: Each story must be completable by a single AI agent in one focused session without context overflow
|
|
207
|
+
- Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
|
|
208
|
+
- If a story seems complex, break it down further as long as it can deliver a vertical slice
|
|
209
|
+
elicit: true
|
|
210
|
+
template: '{{epic_goal}}'
|
|
211
|
+
sections:
|
|
212
|
+
- id: story
|
|
213
|
+
title: Story {{epic_number}}.{{story_number}} {{story_title}}
|
|
214
|
+
repeatable: true
|
|
215
|
+
template: |
|
|
216
|
+
As a {{user_type}},
|
|
217
|
+
I want {{action}},
|
|
218
|
+
so that {{benefit}}.
|
|
219
|
+
sections:
|
|
220
|
+
- id: acceptance-criteria
|
|
221
|
+
title: Acceptance Criteria
|
|
222
|
+
type: numbered-list
|
|
223
|
+
item_template: '{{criterion_number}}: {{criteria}}'
|
|
224
|
+
repeatable: true
|
|
225
|
+
instruction: |
|
|
226
|
+
Define clear, comprehensive, and testable acceptance criteria that:
|
|
227
|
+
|
|
228
|
+
- Precisely define what "done" means from a functional perspective
|
|
229
|
+
- Are unambiguous and serve as basis for verification
|
|
230
|
+
- Include any critical non-functional requirements from the PRD
|
|
231
|
+
- Consider local testability for backend/data components
|
|
232
|
+
- Specify UI/UX requirements and framework adherence where applicable
|
|
233
|
+
- Avoid cross-cutting concerns that should be in other stories or PRD sections
|
|
234
|
+
|
|
235
|
+
- id: checklist-results
|
|
236
|
+
title: Checklist Results Report
|
|
237
|
+
instruction: Before running the checklist and drafting the prompts, offer to output the full updated PRD. If outputting it, confirm with the user that you will be proceeding to run the checklist and produce the report. Once the user confirms, execute the pm-checklist and populate the results in this section.
|
|
238
|
+
|
|
239
|
+
- id: next-steps
|
|
240
|
+
title: Next Steps
|
|
241
|
+
sections:
|
|
242
|
+
- id: ux-expert-prompt
|
|
243
|
+
title: UX Expert Prompt
|
|
244
|
+
instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
|
|
245
|
+
- id: architect-prompt
|
|
246
|
+
title: Architect Prompt
|
|
247
|
+
instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
template:
|
|
2
|
+
id: competitor-analysis-template-v2
|
|
3
|
+
name: Competitive Analysis Report
|
|
4
|
+
version: 2.0
|
|
5
|
+
output:
|
|
6
|
+
format: markdown
|
|
7
|
+
filename: docs/competitor-analysis.md
|
|
8
|
+
title: "Competitive Analysis Report: {{project_product_name}}"
|
|
9
|
+
|
|
10
|
+
workflow:
|
|
11
|
+
mode: interactive
|
|
12
|
+
elicitation: advanced-elicitation
|
|
13
|
+
custom_elicitation:
|
|
14
|
+
title: "Competitive Analysis Elicitation Actions"
|
|
15
|
+
options:
|
|
16
|
+
- "Deep dive on a specific competitor's strategy"
|
|
17
|
+
- "Analyze competitive dynamics in a specific segment"
|
|
18
|
+
- "War game competitive responses to your moves"
|
|
19
|
+
- "Explore partnership vs. competition scenarios"
|
|
20
|
+
- "Stress test differentiation claims"
|
|
21
|
+
- "Analyze disruption potential (yours or theirs)"
|
|
22
|
+
- "Compare to competition in adjacent markets"
|
|
23
|
+
- "Generate win/loss analysis insights"
|
|
24
|
+
- "If only we had known about [competitor X's plan]..."
|
|
25
|
+
- "Proceed to next section"
|
|
26
|
+
|
|
27
|
+
sections:
|
|
28
|
+
- id: executive-summary
|
|
29
|
+
title: Executive Summary
|
|
30
|
+
instruction: Provide high-level competitive insights, main threats and opportunities, and recommended strategic actions. Write this section LAST after completing all analysis.
|
|
31
|
+
|
|
32
|
+
- id: analysis-scope
|
|
33
|
+
title: Analysis Scope & Methodology
|
|
34
|
+
instruction: This template guides comprehensive competitor analysis. Start by understanding the user's competitive intelligence needs and strategic objectives. Help them identify and prioritize competitors before diving into detailed analysis.
|
|
35
|
+
sections:
|
|
36
|
+
- id: analysis-purpose
|
|
37
|
+
title: Analysis Purpose
|
|
38
|
+
instruction: |
|
|
39
|
+
Define the primary purpose:
|
|
40
|
+
- New market entry assessment
|
|
41
|
+
- Product positioning strategy
|
|
42
|
+
- Feature gap analysis
|
|
43
|
+
- Pricing strategy development
|
|
44
|
+
- Partnership/acquisition targets
|
|
45
|
+
- Competitive threat assessment
|
|
46
|
+
- id: competitor-categories
|
|
47
|
+
title: Competitor Categories Analyzed
|
|
48
|
+
instruction: |
|
|
49
|
+
List categories included:
|
|
50
|
+
- Direct Competitors: Same product/service, same target market
|
|
51
|
+
- Indirect Competitors: Different product, same need/problem
|
|
52
|
+
- Potential Competitors: Could enter market easily
|
|
53
|
+
- Substitute Products: Alternative solutions
|
|
54
|
+
- Aspirational Competitors: Best-in-class examples
|
|
55
|
+
- id: research-methodology
|
|
56
|
+
title: Research Methodology
|
|
57
|
+
instruction: |
|
|
58
|
+
Describe approach:
|
|
59
|
+
- Information sources used
|
|
60
|
+
- Analysis timeframe
|
|
61
|
+
- Confidence levels
|
|
62
|
+
- Limitations
|
|
63
|
+
|
|
64
|
+
- id: competitive-landscape
|
|
65
|
+
title: Competitive Landscape Overview
|
|
66
|
+
sections:
|
|
67
|
+
- id: market-structure
|
|
68
|
+
title: Market Structure
|
|
69
|
+
instruction: |
|
|
70
|
+
Describe the competitive environment:
|
|
71
|
+
- Number of active competitors
|
|
72
|
+
- Market concentration (fragmented/consolidated)
|
|
73
|
+
- Competitive dynamics
|
|
74
|
+
- Recent market entries/exits
|
|
75
|
+
- id: prioritization-matrix
|
|
76
|
+
title: Competitor Prioritization Matrix
|
|
77
|
+
instruction: |
|
|
78
|
+
Help categorize competitors by market share and strategic threat level
|
|
79
|
+
|
|
80
|
+
Create a 2x2 matrix:
|
|
81
|
+
- Priority 1 (Core Competitors): High Market Share + High Threat
|
|
82
|
+
- Priority 2 (Emerging Threats): Low Market Share + High Threat
|
|
83
|
+
- Priority 3 (Established Players): High Market Share + Low Threat
|
|
84
|
+
- Priority 4 (Monitor Only): Low Market Share + Low Threat
|
|
85
|
+
|
|
86
|
+
- id: competitor-profiles
|
|
87
|
+
title: Individual Competitor Profiles
|
|
88
|
+
instruction: Create detailed profiles for each Priority 1 and Priority 2 competitor. For Priority 3 and 4, create condensed profiles.
|
|
89
|
+
repeatable: true
|
|
90
|
+
sections:
|
|
91
|
+
- id: competitor
|
|
92
|
+
title: "{{competitor_name}} - Priority {{priority_level}}"
|
|
93
|
+
sections:
|
|
94
|
+
- id: company-overview
|
|
95
|
+
title: Company Overview
|
|
96
|
+
template: |
|
|
97
|
+
- **Founded:** {{year_founders}}
|
|
98
|
+
- **Headquarters:** {{location}}
|
|
99
|
+
- **Company Size:** {{employees_revenue}}
|
|
100
|
+
- **Funding:** {{total_raised_investors}}
|
|
101
|
+
- **Leadership:** {{key_executives}}
|
|
102
|
+
- id: business-model
|
|
103
|
+
title: Business Model & Strategy
|
|
104
|
+
template: |
|
|
105
|
+
- **Revenue Model:** {{revenue_model}}
|
|
106
|
+
- **Target Market:** {{customer_segments}}
|
|
107
|
+
- **Value Proposition:** {{value_promise}}
|
|
108
|
+
- **Go-to-Market Strategy:** {{gtm_approach}}
|
|
109
|
+
- **Strategic Focus:** {{current_priorities}}
|
|
110
|
+
- id: product-analysis
|
|
111
|
+
title: Product/Service Analysis
|
|
112
|
+
template: |
|
|
113
|
+
- **Core Offerings:** {{main_products}}
|
|
114
|
+
- **Key Features:** {{standout_capabilities}}
|
|
115
|
+
- **User Experience:** {{ux_assessment}}
|
|
116
|
+
- **Technology Stack:** {{tech_stack}}
|
|
117
|
+
- **Pricing:** {{pricing_model}}
|
|
118
|
+
- id: strengths-weaknesses
|
|
119
|
+
title: Strengths & Weaknesses
|
|
120
|
+
sections:
|
|
121
|
+
- id: strengths
|
|
122
|
+
title: Strengths
|
|
123
|
+
type: bullet-list
|
|
124
|
+
template: "- {{strength}}"
|
|
125
|
+
- id: weaknesses
|
|
126
|
+
title: Weaknesses
|
|
127
|
+
type: bullet-list
|
|
128
|
+
template: "- {{weakness}}"
|
|
129
|
+
- id: market-position
|
|
130
|
+
title: Market Position & Performance
|
|
131
|
+
template: |
|
|
132
|
+
- **Market Share:** {{market_share_estimate}}
|
|
133
|
+
- **Customer Base:** {{customer_size_notables}}
|
|
134
|
+
- **Growth Trajectory:** {{growth_trend}}
|
|
135
|
+
- **Recent Developments:** {{key_news}}
|
|
136
|
+
|
|
137
|
+
- id: comparative-analysis
|
|
138
|
+
title: Comparative Analysis
|
|
139
|
+
sections:
|
|
140
|
+
- id: feature-comparison
|
|
141
|
+
title: Feature Comparison Matrix
|
|
142
|
+
instruction: Create a detailed comparison table of key features across competitors
|
|
143
|
+
type: table
|
|
144
|
+
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"]
|
|
145
|
+
rows:
|
|
146
|
+
- category: "Core Functionality"
|
|
147
|
+
items:
|
|
148
|
+
- ["Feature A", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
|
|
149
|
+
- ["Feature B", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
|
|
150
|
+
- category: "User Experience"
|
|
151
|
+
items:
|
|
152
|
+
- ["Mobile App", "{{rating}}", "{{rating}}", "{{rating}}", "{{rating}}"]
|
|
153
|
+
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
|
|
154
|
+
- category: "Integration & Ecosystem"
|
|
155
|
+
items:
|
|
156
|
+
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"]
|
|
157
|
+
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
|
|
158
|
+
- category: "Pricing & Plans"
|
|
159
|
+
items:
|
|
160
|
+
- ["Starting Price", "{{price}}", "{{price}}", "{{price}}", "{{price}}"]
|
|
161
|
+
- ["Free Tier", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}"]
|
|
162
|
+
- id: swot-comparison
|
|
163
|
+
title: SWOT Comparison
|
|
164
|
+
instruction: Create SWOT analysis for your solution vs. top competitors
|
|
165
|
+
sections:
|
|
166
|
+
- id: your-solution
|
|
167
|
+
title: Your Solution
|
|
168
|
+
template: |
|
|
169
|
+
- **Strengths:** {{strengths}}
|
|
170
|
+
- **Weaknesses:** {{weaknesses}}
|
|
171
|
+
- **Opportunities:** {{opportunities}}
|
|
172
|
+
- **Threats:** {{threats}}
|
|
173
|
+
- id: vs-competitor
|
|
174
|
+
title: "vs. {{main_competitor}}"
|
|
175
|
+
template: |
|
|
176
|
+
- **Competitive Advantages:** {{your_advantages}}
|
|
177
|
+
- **Competitive Disadvantages:** {{their_advantages}}
|
|
178
|
+
- **Differentiation Opportunities:** {{differentiation}}
|
|
179
|
+
- id: positioning-map
|
|
180
|
+
title: Positioning Map
|
|
181
|
+
instruction: |
|
|
182
|
+
Describe competitor positions on key dimensions
|
|
183
|
+
|
|
184
|
+
Create a positioning description using 2 key dimensions relevant to the market, such as:
|
|
185
|
+
- Price vs. Features
|
|
186
|
+
- Ease of Use vs. Power
|
|
187
|
+
- Specialization vs. Breadth
|
|
188
|
+
- Self-Serve vs. High-Touch
|
|
189
|
+
|
|
190
|
+
- id: strategic-analysis
|
|
191
|
+
title: Strategic Analysis
|
|
192
|
+
sections:
|
|
193
|
+
- id: competitive-advantages
|
|
194
|
+
title: Competitive Advantages Assessment
|
|
195
|
+
sections:
|
|
196
|
+
- id: sustainable-advantages
|
|
197
|
+
title: Sustainable Advantages
|
|
198
|
+
instruction: |
|
|
199
|
+
Identify moats and defensible positions:
|
|
200
|
+
- Network effects
|
|
201
|
+
- Switching costs
|
|
202
|
+
- Brand strength
|
|
203
|
+
- Technology barriers
|
|
204
|
+
- Regulatory advantages
|
|
205
|
+
- id: vulnerable-points
|
|
206
|
+
title: Vulnerable Points
|
|
207
|
+
instruction: |
|
|
208
|
+
Where competitors could be challenged:
|
|
209
|
+
- Weak customer segments
|
|
210
|
+
- Missing features
|
|
211
|
+
- Poor user experience
|
|
212
|
+
- High prices
|
|
213
|
+
- Limited geographic presence
|
|
214
|
+
- id: blue-ocean
|
|
215
|
+
title: Blue Ocean Opportunities
|
|
216
|
+
instruction: |
|
|
217
|
+
Identify uncontested market spaces
|
|
218
|
+
|
|
219
|
+
List opportunities to create new market space:
|
|
220
|
+
- Underserved segments
|
|
221
|
+
- Unaddressed use cases
|
|
222
|
+
- New business models
|
|
223
|
+
- Geographic expansion
|
|
224
|
+
- Different value propositions
|
|
225
|
+
|
|
226
|
+
- id: strategic-recommendations
|
|
227
|
+
title: Strategic Recommendations
|
|
228
|
+
sections:
|
|
229
|
+
- id: differentiation-strategy
|
|
230
|
+
title: Differentiation Strategy
|
|
231
|
+
instruction: |
|
|
232
|
+
How to position against competitors:
|
|
233
|
+
- Unique value propositions to emphasize
|
|
234
|
+
- Features to prioritize
|
|
235
|
+
- Segments to target
|
|
236
|
+
- Messaging and positioning
|
|
237
|
+
- id: competitive-response
|
|
238
|
+
title: Competitive Response Planning
|
|
239
|
+
sections:
|
|
240
|
+
- id: offensive-strategies
|
|
241
|
+
title: Offensive Strategies
|
|
242
|
+
instruction: |
|
|
243
|
+
How to gain market share:
|
|
244
|
+
- Target competitor weaknesses
|
|
245
|
+
- Win competitive deals
|
|
246
|
+
- Capture their customers
|
|
247
|
+
- id: defensive-strategies
|
|
248
|
+
title: Defensive Strategies
|
|
249
|
+
instruction: |
|
|
250
|
+
How to protect your position:
|
|
251
|
+
- Strengthen vulnerable areas
|
|
252
|
+
- Build switching costs
|
|
253
|
+
- Deepen customer relationships
|
|
254
|
+
- id: partnership-ecosystem
|
|
255
|
+
title: Partnership & Ecosystem Strategy
|
|
256
|
+
instruction: |
|
|
257
|
+
Potential collaboration opportunities:
|
|
258
|
+
- Complementary players
|
|
259
|
+
- Channel partners
|
|
260
|
+
- Technology integrations
|
|
261
|
+
- Strategic alliances
|
|
262
|
+
|
|
263
|
+
- id: monitoring-plan
|
|
264
|
+
title: Monitoring & Intelligence Plan
|
|
265
|
+
sections:
|
|
266
|
+
- id: key-competitors
|
|
267
|
+
title: Key Competitors to Track
|
|
268
|
+
instruction: Priority list with rationale
|
|
269
|
+
- id: monitoring-metrics
|
|
270
|
+
title: Monitoring Metrics
|
|
271
|
+
instruction: |
|
|
272
|
+
What to track:
|
|
273
|
+
- Product updates
|
|
274
|
+
- Pricing changes
|
|
275
|
+
- Customer wins/losses
|
|
276
|
+
- Funding/M&A activity
|
|
277
|
+
- Market messaging
|
|
278
|
+
- id: intelligence-sources
|
|
279
|
+
title: Intelligence Sources
|
|
280
|
+
instruction: |
|
|
281
|
+
Where to gather ongoing intelligence:
|
|
282
|
+
- Company websites/blogs
|
|
283
|
+
- Customer reviews
|
|
284
|
+
- Industry reports
|
|
285
|
+
- Social media
|
|
286
|
+
- Patent filings
|
|
287
|
+
- id: update-cadence
|
|
288
|
+
title: Update Cadence
|
|
289
|
+
instruction: |
|
|
290
|
+
Recommended review schedule:
|
|
291
|
+
- Weekly: {{weekly_items}}
|
|
292
|
+
- Monthly: {{monthly_items}}
|
|
293
|
+
- Quarterly: {{quarterly_analysis}}
|