vybekiit 0.7.27 → 0.7.29
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/dist/bin.js +14424 -15104
- package/dist/global-guidance/language.md +443 -0
- package/dist/global-skills/add-ai/SKILL.md +7 -1
- package/dist/global-skills/add-analytics/SKILL.md +7 -1
- package/dist/global-skills/add-blog/SKILL.md +7 -1
- package/dist/global-skills/add-crud/SKILL.md +9 -1
- package/dist/global-skills/add-files/SKILL.md +7 -1
- package/dist/global-skills/add-images/SKILL.md +7 -1
- package/dist/global-skills/add-language/SKILL.md +7 -1
- package/dist/global-skills/add-notifications/SKILL.md +7 -1
- package/dist/global-skills/add-realtime/SKILL.md +7 -1
- package/dist/global-skills/add-route/SKILL.md +7 -1
- package/dist/global-skills/add-search/SKILL.md +7 -1
- package/dist/global-skills/add-signin/SKILL.md +7 -1
- package/dist/global-skills/add-teams/SKILL.md +11 -4
- package/dist/global-skills/add-upload/SKILL.md +7 -1
- package/dist/global-skills/back-up-my-code/SKILL.md +16 -5
- package/dist/global-skills/buy-domain/SKILL.md +7 -1
- package/dist/global-skills/check-safety/SKILL.md +7 -1
- package/dist/global-skills/configure-capabilities/SKILL.md +7 -1
- package/dist/global-skills/connect-account/SKILL.md +7 -1
- package/dist/global-skills/connect-account-backend/SKILL.md +7 -1
- package/dist/global-skills/design-my-data/SKILL.md +13 -6
- package/dist/global-skills/doctor/SKILL.md +17 -10
- package/dist/global-skills/go-live/SKILL.md +7 -1
- package/dist/global-skills/harden/SKILL.md +9 -1
- package/dist/global-skills/manifest.json +3 -0
- package/dist/global-skills/onboarding/SKILL.md +36 -20
- package/dist/global-skills/plan-my-idea/SKILL.md +7 -1
- package/dist/global-skills/publish-app/SKILL.md +7 -1
- package/dist/global-skills/publish-extension/SKILL.md +7 -1
- package/dist/global-skills/reset-password/SKILL.md +7 -1
- package/dist/global-skills/save-data/SKILL.md +48 -16
- package/dist/global-skills/setup-email/SKILL.md +7 -1
- package/dist/global-skills/setup-payments/SKILL.md +10 -4
- package/dist/global-skills/setup-sms/SKILL.md +7 -1
- package/dist/global-skills/sign-in-with-email-link/SKILL.md +7 -1
- package/dist/global-skills/sign-in-with-google/SKILL.md +7 -1
- package/dist/global-skills/sign-in-with-phone/SKILL.md +7 -1
- package/dist/global-skills/track-errors/SKILL.md +7 -1
- package/dist/global-skills/update-kit/SKILL.md +7 -1
- package/dist/global-skills/validate-my-idea/SKILL.md +7 -1
- package/dist/global-skills/vybekiit-feedback/SKILL.md +7 -1
- package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +42 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-index.md +17 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-agent.json +12 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-firebase.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-mongodb.json +12 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-neon.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-paypal.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-railway-local.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-railway-remote.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-setup.md +131 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-supabase.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-twilio-alpha.json +8 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/backend/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/backend/language.md +440 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/deploy-railway-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/mongodb-vybekiit.md +34 -0
- package/dist/global-skills/vybekiitReferences/backend/platform-skills/railway-postgres-vybekiit.md +24 -0
- package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +80 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-index.md +27 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-setup.md +102 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-twilio-alpha.json +13 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/extension/agent/ui-sources.md +30 -0
- package/dist/global-skills/vybekiitReferences/extension/language.md +433 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/README.md +32 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/browser-automation-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/chrome-extension-vybekiit.md +28 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/ci-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/client-state-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/code-hygiene-vybekiit.md +38 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/data-model-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/env-secrets-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/format-lint-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/github-vybekiit.md +47 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/i18n-vybekiit.md +39 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/observability-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/planning-vybekiit.md +59 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/playwright-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/react-patterns-vybekiit.md +45 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/responsive-vybekiit.md +27 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/sentry-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/ship-via-pr-vybekiit.md +49 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/testing-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/extension/platform-skills/ui-consistency-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +460 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-index.md +32 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-firebase.json +8 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-neon.json +8 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-paypal.json +8 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-setup.md +103 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-stripe.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-supabase.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-twilio-alpha.json +13 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/ui-catalog-index.mobile.json +36294 -0
- package/dist/global-skills/vybekiitReferences/mobile/agent/ui-sources.mobile.md +36 -0
- package/dist/global-skills/vybekiitReferences/mobile/language.md +438 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/README.md +43 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ci-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/client-state-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/code-hygiene-vybekiit.md +38 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/data-model-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/env-secrets-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/format-lint-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/github-vybekiit.md +47 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/i18n-vybekiit.md +41 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/launch-store-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/observability-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/planning-vybekiit.md +59 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/playwright-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/react-patterns-vybekiit.md +45 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/sentry-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ship-via-pr-vybekiit.md +49 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/testing-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-consistency-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-port-from-web-vybekiit.md +44 -0
- package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +83 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-index.md +30 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/mcp-setup.md +54 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/spa/agent/ui-sources.md +60 -0
- package/dist/global-skills/vybekiitReferences/spa/language.md +221 -0
- package/dist/global-skills/vybekiitReferences/spa/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/web/AGENTS.md +153 -0
- package/dist/global-skills/vybekiitReferences/web/agent/goal-index.md +54 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-agent.json +14 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-firebase.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-mongodb.json +12 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-neon.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-paypal.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-posthog.json +17 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-railway-local.json +8 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-railway-remote.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-sentry.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-setup.md +165 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-stripe.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-supabase.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-twilio-alpha.json +13 -0
- package/dist/global-skills/vybekiitReferences/web/agent/mcp-twilio-docs.json +7 -0
- package/dist/global-skills/vybekiitReferences/web/agent/session-bootstrap.md +44 -0
- package/dist/global-skills/vybekiitReferences/web/agent/tech-references.md +28 -0
- package/dist/global-skills/vybekiitReferences/web/agent/ui-catalog-index.json +36294 -0
- package/dist/global-skills/vybekiitReferences/web/agent/ui-catalog-index.mobile.json +36294 -0
- package/dist/global-skills/vybekiitReferences/web/agent/ui-sources.md +104 -0
- package/dist/global-skills/vybekiitReferences/web/language.md +443 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/README.md +66 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ai-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/analytics-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/assets-vybekiit.md +31 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/aws-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/better-auth-vybekiit.md +21 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md +40 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ci-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/client-state-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/cloudflare-email-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/cms-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/code-hygiene-vybekiit.md +38 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/compliance-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/data-model-vybekiit.md +29 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/db-presets-vybekiit.md +46 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-cloudflare-vybekiit.md +22 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-railway-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-vercel-vybekiit.md +23 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/env-secrets-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md +127 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/firebase-vybekiit.md +27 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/format-lint-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/github-vybekiit.md +47 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/i18n-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/jobs-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/kv-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/lemon-squeezy-vybekiit.md +30 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/mcp-tools-vybekiit.md +87 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/mongodb-vybekiit.md +39 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/neon-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/nextjs-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/notifications-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/observability-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/paypal-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/planning-vybekiit.md +59 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/playwright-vybekiit.md +42 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/railway-postgres-vybekiit.md +24 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/react-patterns-vybekiit.md +45 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/realtime-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/registrar-vybekiit.md +36 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/resend-vybekiit.md +20 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/responsive-vybekiit.md +27 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/search-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/sentry-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/seo-vybekiit.md +31 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ses-vybekiit.md +19 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/shadcn-vybekiit.md +25 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ship-via-pr-vybekiit.md +49 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/stripe-vybekiit.md +26 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/supabase-vybekiit.md +31 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/tenancy-vybekiit.md +3 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/testing-vybekiit.md +33 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ui-consistency-vybekiit.md +34 -0
- package/dist/global-skills/vybekiitReferences/web/platform-skills/ui-routing-vybekiit.md +41 -0
- package/dist/global-skills/watch-my-app/SKILL.md +7 -1
- package/dist/global-skills/wire-auth/SKILL.md +7 -1
- package/dist/global-skills/wire-database/SKILL.md +15 -1
- package/dist/global-skills/wire-email/SKILL.md +7 -1
- package/dist/global-skills/wire-payments/SKILL.md +7 -1
- package/package.json +10 -9
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Platform wrapper: Analytics (PostHog / Plausible opt-in)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked when `ANALYTICS_PROVIDER` is set.
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- PostHog docs: https://posthog.com/docs
|
|
8
|
+
- PostHog MCP: merge `agent/mcp-posthog.json` when `ANALYTICS_PROVIDER=posthog`
|
|
9
|
+
- Pinned skills (PostHog): `.agents/skills/instrument-product-analytics/SKILL.md`, `.agents/skills/instrument-feature-flags/SKILL.md`
|
|
10
|
+
- Plausible: docs-only — https://plausible.io/docs (no vendor skills.sh repo)
|
|
11
|
+
|
|
12
|
+
## Kit wiring
|
|
13
|
+
|
|
14
|
+
1. Analytics via `@vybekiit/analytics` → `resolveAnalyticsProvider()`
|
|
15
|
+
2. PostHog: set `POSTHOG_API_KEY`, `POSTHOG_HOST` in `.env`; use pinned skills + MCP for instrumentation
|
|
16
|
+
3. Plausible: script tag / API per docs; no pinned upstream skills
|
|
17
|
+
|
|
18
|
+
## Verify-before-advance
|
|
19
|
+
|
|
20
|
+
- Test event appears in dashboard (PostHog live events or Plausible realtime)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Platform wrapper: asset optimization + CDN (ADR-0010)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Used by `add-images`, `add-files`, build hooks, and `VybeImage`.
|
|
4
|
+
|
|
5
|
+
## Kit wiring
|
|
6
|
+
|
|
7
|
+
1. **Build-time:** `resolveAssetDelivery().optimizeForBuild({ sourceDir })` — sharp + SVGO
|
|
8
|
+
2. **Runtime URLs:** `resolveAssetDelivery().url(src, { width, format })` — CDN transforms
|
|
9
|
+
3. **Display:** `VybeImage` in `src/components/vybe-image.tsx`
|
|
10
|
+
4. **Storage:** `resolveStorageProvider()` for uploads; doctor provisions R2 on Cloudflare default
|
|
11
|
+
|
|
12
|
+
## Provider derivation (no new env knob)
|
|
13
|
+
|
|
14
|
+
| HOSTING | STORAGE | Delivery |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| cloudflare | r2 | CF Pages + R2 + Image Resizing |
|
|
17
|
+
| cloudflare | supabase | CF Pages + Supabase URL + CF resize |
|
|
18
|
+
| vercel | any | Vercel Image Optimization |
|
|
19
|
+
| aws | s3 | CloudFront + S3 URLs |
|
|
20
|
+
|
|
21
|
+
## Cloudflare R2
|
|
22
|
+
|
|
23
|
+
- Doctor: `vybekiit doctor` creates bucket + API token, writes `.env`
|
|
24
|
+
- Docs: https://developers.cloudflare.com/r2/
|
|
25
|
+
- Image Resizing: https://developers.cloudflare.com/images/image-resizing/
|
|
26
|
+
|
|
27
|
+
## Verify
|
|
28
|
+
|
|
29
|
+
- `node scripts/optimizeAssets.mjs` succeeds
|
|
30
|
+
- Upload test file → `url()` returns CDN transform URL
|
|
31
|
+
- Images load fast in browser / on device
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Platform wrapper: AWS (Agent Toolkit + existing adapters)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Supports `@vybekiit/db` (`DATA_PROVIDER=aws` DynamoDB) and `@vybekiit/deploy` AWS hosting.
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Agent Toolkit skills: https://docs.aws.amazon.com/agent-toolkit/latest/userguide/skills.html
|
|
8
|
+
- Install: `npx skills add aws/agent-toolkit-for-aws/skills`
|
|
9
|
+
- AWS MCP Server: authenticated API access + runtime skill retrieval
|
|
10
|
+
|
|
11
|
+
## Kit wiring
|
|
12
|
+
|
|
13
|
+
1. Data: `DATA_PROVIDER=aws` with `AWS_REGION` (+ optional keys or instance role)
|
|
14
|
+
2. Hosting: `HOSTING_PROVIDER=aws` with Amplify app id when provisioned
|
|
15
|
+
3. Skills assist console/API work the agent absorbs — builder never sees AWS console
|
|
16
|
+
|
|
17
|
+
## Verify-before-advance
|
|
18
|
+
|
|
19
|
+
- Ask: "What AWS skills do you have available?"
|
|
20
|
+
- Run `vybekiit doctor` — platform-skills report lists pinned AWS toolkit skills
|
|
21
|
+
- Local AWS credentials profile for MCP (never commit keys)
|
|
22
|
+
|
|
23
|
+
## Security
|
|
24
|
+
|
|
25
|
+
MCP uses the developer's local AWS profile only. No AWS secrets in the repo.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Platform wrapper: better-auth (default auth)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skill `add-signin`.
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Docs: https://www.better-auth.com/docs
|
|
8
|
+
- Pinned skills: `.agents/skills/better-auth-best-practices/SKILL.md`, `.agents/skills/create-auth-skill/SKILL.md`, `.agents/skills/better-auth-security-best-practices/SKILL.md`
|
|
9
|
+
|
|
10
|
+
## Kit wiring
|
|
11
|
+
|
|
12
|
+
1. Requires database first — run `save-data` / `supabase-vybekiit.md` if not ready
|
|
13
|
+
2. Auth via `@vybekiit/auth` → `resolveAuthProvider()` (better-auth when `AUTH_PROVIDER` default)
|
|
14
|
+
3. Set `BETTER_AUTH_SECRET`, `BETTER_AUTH_URL`, `DATABASE_URL` in `.env` (agent generates secrets)
|
|
15
|
+
4. Mount handler at `app/api/auth/[...all]/route.ts`
|
|
16
|
+
5. Wire `src/lib/auth-client.ts` stubs marked `TODO(vybekiit): … — skill: add-signin`
|
|
17
|
+
|
|
18
|
+
## Verify-before-advance
|
|
19
|
+
|
|
20
|
+
- Sign-up → verify (OTP) → dashboard path works in browser
|
|
21
|
+
- Tests for auth client green
|
package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Platform wrapper: browser automation
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Dashboard Playwright CLI for providers without API or MCP coverage.
|
|
4
|
+
|
|
5
|
+
## Package
|
|
6
|
+
|
|
7
|
+
`@vybekiit/browser-automation` — bin: **`vybekiit-automate`**
|
|
8
|
+
|
|
9
|
+
| Target | Profile | Purpose |
|
|
10
|
+
|--------|---------|---------|
|
|
11
|
+
| `ls` | `$HOME/.ls-chrome-profile` | Lemon Squeezy (fresh-squeezy) |
|
|
12
|
+
| `cws` | `$HOME/.cws-chrome-profile` | Chrome Web Store extension publish |
|
|
13
|
+
| `nc` | `$HOME/.nc-chrome-profile` | Namecheap API key setup |
|
|
14
|
+
| `gd` | `$HOME/.gd-chrome-profile` | GoDaddy API key setup |
|
|
15
|
+
|
|
16
|
+
## CLI modes
|
|
17
|
+
|
|
18
|
+
**Agent mode** — non-interactive, structured stdout:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
vybekiit-automate ls setup --json --name "Pro" --price-cents 2900 --mode test --webhook-url "https://…"
|
|
22
|
+
vybekiit-automate ls standby --json
|
|
23
|
+
vybekiit-automate nc setup --json
|
|
24
|
+
vybekiit-automate gd setup --json
|
|
25
|
+
vybekiit-automate cws publish --json # CWS verbs also exported programmatically
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Flags: `--json` (never prompt), `--yes` (skip confirms), `CI=1` or non-TTY requires all flags.
|
|
29
|
+
|
|
30
|
+
**Wizard mode** — TTY + missing flags → `@clack/prompts` interactive flow.
|
|
31
|
+
|
|
32
|
+
## Rules
|
|
33
|
+
|
|
34
|
+
- **Blind navigation only** — selectors/DOM; never send dashboard screenshots to the model
|
|
35
|
+
- Builder **signs in only** for LS; agent runs all other steps
|
|
36
|
+
- Never say "Playwright", "DOM", "browser automation", or "fresh-squeezy" to the builder
|
|
37
|
+
|
|
38
|
+
## Legacy
|
|
39
|
+
|
|
40
|
+
None — `@vybekiit/browser-automation` is the sole SSOT.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Platform wrapper: online checker / CI (agent-only)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** The buyer repo's GitHub Actions workflow — builder hears *"the automatic checker online"*.
|
|
4
|
+
|
|
5
|
+
## What runs
|
|
6
|
+
|
|
7
|
+
File: `.github/workflows/ci.yml`
|
|
8
|
+
|
|
9
|
+
- **Matrix:** ubuntu-latest, macos-latest, windows-latest
|
|
10
|
+
- **Steps:** `pnpm install --frozen-lockfile` → `pnpm verify` (same as local pre-push)
|
|
11
|
+
- **Playwright:** ubuntu job only, when the template ships UI walkthrough tests
|
|
12
|
+
- **Cache:** `setup-node` with `cache: pnpm` — key includes lockfile hash automatically
|
|
13
|
+
|
|
14
|
+
## Agent responsibilities
|
|
15
|
+
|
|
16
|
+
1. Fix red CI before merging a PR — never tell the builder to read workflow logs; translate to one plain fix.
|
|
17
|
+
2. When opening PRs (`ship-via-pr-vybekiit.md`), wait for all three OS jobs green before `gh pr merge`.
|
|
18
|
+
3. Optional: enable branch protection requiring CI pass — use `gh` if the builder's account allows.
|
|
19
|
+
|
|
20
|
+
## Pre-push alignment
|
|
21
|
+
|
|
22
|
+
Local `.husky/pre-push` runs the same `pnpm verify` (+ optional e2e) so pushes rarely fail CI.
|
|
23
|
+
|
|
24
|
+
## Verify
|
|
25
|
+
|
|
26
|
+
All matrix jobs green on the PR before merge.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Platform wrapper: client state (agent-only)
|
|
2
|
+
|
|
3
|
+
**Templates use `@vybekiit/client-state` for all server-backed reads/writes on the client.**
|
|
4
|
+
|
|
5
|
+
## Surfaces
|
|
6
|
+
|
|
7
|
+
| Surface | API cache | UI-only prefs |
|
|
8
|
+
|---------|-----------|---------------|
|
|
9
|
+
| web | TanStack Query | Zustand via `createUiStore()` |
|
|
10
|
+
| mobile | TanStack Query + optional MMKV persist | MMKV via `useStorage` |
|
|
11
|
+
| extension | TanStack Query | Zustand / localStorage |
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
- **Do:** `useQuery` / `useMutation` for API data; `useStorage` for wizard step, sidebar, drafts
|
|
16
|
+
- **Don't:** raw `fetch` + `useState` for server records; Zustand/MMKV for server data
|
|
17
|
+
- **Don't:** Redis or server-side cache for buyers — client cache handles UX
|
|
18
|
+
|
|
19
|
+
## Config (agent-only)
|
|
20
|
+
|
|
21
|
+
`CLIENT_STATE_PERSIST=on|off`, `CLIENT_STATE_QUERY_STALE_SECONDS` — read silently from `.env`.
|
|
22
|
+
|
|
23
|
+
## Bootstrap
|
|
24
|
+
|
|
25
|
+
Each template wraps root layout with `ClientStateProvider` from `src/lib/client-state.tsx`.
|
package/dist/global-skills/vybekiitReferences/web/platform-skills/cloudflare-email-vybekiit.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Platform wrapper: Cloudflare email (default sender)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skill `setup-email` when `EMAIL_PROVIDER=cloudflare` (default).
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Docs: https://developers.cloudflare.com/email-service/
|
|
8
|
+
- Pinned skills: `.agents/skills/wrangler/SKILL.md`, `.agents/skills/cloudflare-email-service/SKILL.md`
|
|
9
|
+
|
|
10
|
+
## Kit wiring
|
|
11
|
+
|
|
12
|
+
1. Email via `@vybekiit/email` → `resolveEmailProvider()` when `EMAIL_PROVIDER=cloudflare`
|
|
13
|
+
2. Deploy the Cloudflare email worker (a small `fetch` handler that receives the POST from
|
|
14
|
+
`createCloudflareEmail` and calls the Email Sending binding); point `CLOUDFLARE_EMAIL_ENDPOINT` at it
|
|
15
|
+
3. Root `.env` keys:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
EMAIL_WORKER_SECRET= # wrangler secret on the worker
|
|
19
|
+
CLOUDFLARE_EMAIL_ENDPOINT= # https://<worker>.workers.dev/send
|
|
20
|
+
EMAIL_FROM=hello@yourdomain.com
|
|
21
|
+
EMAIL_FROM_NAME=Your App
|
|
22
|
+
CLOUDFLARE_ACCOUNT_ID=
|
|
23
|
+
CLOUDFLARE_API_TOKEN= # deploy + zone provisioning only
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
4. Optional Namecheap automation (registrar NS update):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
NAMECHEAP_API_USER=
|
|
30
|
+
NAMECHEAP_API_KEY=
|
|
31
|
+
NAMECHEAP_CLIENT_IP=
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
5. Domain provisioning: `DOMAIN=yourdomain.com node infra/scripts/provisionDomain.mjs`
|
|
35
|
+
6. Enable sending: `npx wrangler email sending enable yourdomain.com`
|
|
36
|
+
7. Test: trigger a real send from the app (e.g. a sign-in email) and confirm it arrives
|
|
37
|
+
|
|
38
|
+
## Verify-before-advance
|
|
39
|
+
|
|
40
|
+
- `vybekiit doctor` — Namecheap + email worker health when configured
|
|
41
|
+
- Test email arrives (check spam)
|
|
42
|
+
- Apps call `resolveEmailProvider()` — never POST to the worker directly
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Platform wrapper: code hygiene (agent-only)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invisible guardrails for every coding task — not a buyer goal skill.
|
|
4
|
+
|
|
5
|
+
## Before you write code
|
|
6
|
+
|
|
7
|
+
1. **Check before create** — search `src/lib/` and `@vybekiit/*` before adding a helper; extend existing code if ≥80% overlap.
|
|
8
|
+
2. **One home per concern** — auth → `auth-client.ts`, billing → `billing-client.ts`, HTTP → `fetch-json.ts`, logging → `logger.ts`. Never add `utils-foo.ts`.
|
|
9
|
+
3. **Use the kit logger** — `import { log } from '@/lib/logger'` (web) or `@/lib/logger` (mobile). Never `console.log` in app/API code (tests may use console).
|
|
10
|
+
4. **KISS** — no one-off wrappers around kit packages; validate API bodies with zod at the route boundary only.
|
|
11
|
+
5. **SSOT** — secrets in `.env` only; business constants in one file per domain (e.g. `plans.ts`).
|
|
12
|
+
|
|
13
|
+
Read `src/lib/README.md` for the utility registry.
|
|
14
|
+
|
|
15
|
+
## Duplicate detection
|
|
16
|
+
|
|
17
|
+
Before adding a function:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
rg "function <name>" src/lib/ app/
|
|
21
|
+
rg "export (async )?function" src/lib/
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Flag and merge when the same name or a 10+ line block appears twice. Consolidate validation into shared zod schemas, not copy-pasted checks in routes.
|
|
25
|
+
|
|
26
|
+
## Forbidden
|
|
27
|
+
|
|
28
|
+
- Second auth/billing/fetch wrapper
|
|
29
|
+
- Inline date/currency formatters in components (add to an existing lib file)
|
|
30
|
+
- Raw SQL or string-built queries (use `@vybekiit/db`)
|
|
31
|
+
|
|
32
|
+
## React-specific
|
|
33
|
+
|
|
34
|
+
Follow pinned `vercel-react-best-practices` for event-listener dedup, RSC prop dedup, and effect placement.
|
|
35
|
+
|
|
36
|
+
## Verify
|
|
37
|
+
|
|
38
|
+
After refactors: tests green · `node scripts/checkNoConsole.mjs` (web) · no duplicate function names in `src/lib/`.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Platform wrapper: data modeling (agent-only)
|
|
2
|
+
|
|
3
|
+
**Invoked by:** `design-my-data` buyer skill · inline from `save-data` for trivial cases.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
| Situation | Action |
|
|
8
|
+
|-----------|--------|
|
|
9
|
+
| Multiple entities or relationships | Run `design-my-data` first |
|
|
10
|
+
| Single simple list/table | Inline `planDataModel()` in `save-data` |
|
|
11
|
+
| Builder already agreed on shape | Jump to `save-data` |
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
1. Infer entities from product language (customers, orders, posts, etc.)
|
|
16
|
+
2. `planDataModel(entities, DATA_PROVIDER)` — PK/FK stay in agent output only
|
|
17
|
+
3. Read `buyerSummary` to builder; confirm
|
|
18
|
+
4. `save-data` provisions via MCP path for active provider (merge via `agent/mcp-setup.md`):
|
|
19
|
+
- Supabase → `mcp-supabase.json` + Supabase CLI
|
|
20
|
+
- Neon → `mcp-neon.json`
|
|
21
|
+
- Firebase → `mcp-firebase.json`
|
|
22
|
+
|
|
23
|
+
## Never say to builder
|
|
24
|
+
|
|
25
|
+
primary key, foreign key, migration, schema, normalization, SQL, NoSQL
|
|
26
|
+
|
|
27
|
+
## MCP tier
|
|
28
|
+
|
|
29
|
+
Document login-once paths in `onboarding.md`. Supabase, Neon, and Firebase are buyer-facing MCP tiers. MongoDB: agent-only via `mongodb-vybekiit.md` when `DATA_PROVIDER=mongodb` (not buyer-facing). AWS remains advanced (maintainer docs only).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Platform: DB feature presets
|
|
2
|
+
|
|
3
|
+
Agent-only. Applies composable SaaS table bundles from `@vybekiit/db` presets.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- A buyer skill needs kit-owned tables (orders, teams, search, AI, audit).
|
|
8
|
+
- `vybekiit doctor` reports missing DB presets.
|
|
9
|
+
- Before wiring `@vybekiit/*` package code that expects preset collections.
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
vybekiit list-presets
|
|
15
|
+
vybekiit apply-preset <feature> [--provider=supabase|neon|railway] [--dry-run]
|
|
16
|
+
vybekiit verify-presets [--fix]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Skill → preset map
|
|
20
|
+
|
|
21
|
+
| Skill | Presets |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `add-signin` | `auth-bridge` |
|
|
24
|
+
| `setup-payments` | `orders`, `webhook_events` |
|
|
25
|
+
| `add-teams` | `organizations` |
|
|
26
|
+
| `add-search` | `search_documents` |
|
|
27
|
+
| `add-ai` | `embeddings`, `ai_conversations` |
|
|
28
|
+
| `add-realtime` | `realtime_publications` |
|
|
29
|
+
| `add-notifications` | `notifications_log` |
|
|
30
|
+
| `add-files` | `file_metadata` |
|
|
31
|
+
| `harden` | `audit_log` |
|
|
32
|
+
| `go-live` | `job_runs` |
|
|
33
|
+
|
|
34
|
+
## Verify-before-advance
|
|
35
|
+
|
|
36
|
+
After each `apply-preset`, run `vybekiit verify-presets <feature>` (or `--fix` from doctor).
|
|
37
|
+
Translate errors to plain language — never say "migration" or "RLS" to the builder.
|
|
38
|
+
|
|
39
|
+
## Postgres providers
|
|
40
|
+
|
|
41
|
+
Full SQL + indexes for `supabase`, `neon`, `railway`. Requires `DATABASE_URL`.
|
|
42
|
+
|
|
43
|
+
## NoSQL (v1.1)
|
|
44
|
+
|
|
45
|
+
`renderPreset` emits collection/index notes for `mongodb`, `firebase`, `aws` — apply manually
|
|
46
|
+
via provider CLI until v1.1 renderers ship.
|
package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-cloudflare-vybekiit.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Platform wrapper: Cloudflare deploy (default host)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skill `go-live` when `HOSTING_PROVIDER=cloudflare` (default).
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Docs: https://developers.cloudflare.com
|
|
8
|
+
- CLI: `wrangler` (installed + probed by `vybekiit doctor`)
|
|
9
|
+
- Pinned skills: `.agents/skills/wrangler/SKILL.md`, `.agents/skills/workers-best-practices/SKILL.md`
|
|
10
|
+
|
|
11
|
+
## Kit wiring
|
|
12
|
+
|
|
13
|
+
1. Call `resolveHosting()` from `@vybekiit/deploy` — returns Cloudflare adapter
|
|
14
|
+
2. Supply a `CloudflareRunner` that executes the adapter's wrangler action (go-live skill owns the shell)
|
|
15
|
+
3. Secret settings: `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_API_TOKEN` in `.env`
|
|
16
|
+
4. CLI auth: `wrangler login` (browser once) — probed by `doctor`, not stored in `.env`
|
|
17
|
+
|
|
18
|
+
## Verify-before-advance
|
|
19
|
+
|
|
20
|
+
- `wrangler whoami` succeeds
|
|
21
|
+
- `resolveHosting().deploy({ outputDir, projectName })` returns a live URL
|
|
22
|
+
- Open the URL in browser before celebrating
|
package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Platform wrapper: GitHub Pages deploy (free static host)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skill `go-live` when `HOSTING_PROVIDER=github-pages` (ADR-0040).
|
|
4
|
+
The free, zero-cold-start static host tied to the buyer's own repo — best for the spa, extension
|
|
5
|
+
popup, and static web targets. Static only: no SSR/backend (use cloudflare or deno-deploy for those).
|
|
6
|
+
|
|
7
|
+
## Official upstream
|
|
8
|
+
|
|
9
|
+
- Docs: https://docs.github.com/en/pages
|
|
10
|
+
- CLI: `gh` (installed + probed by `vybekiit doctor`) — GitHub Pages needs no extra host CLI
|
|
11
|
+
- Auth: `gh auth login` (browser once) or `GITHUB_TOKEN`/`GH_TOKEN` in CI — never stored in `.env` (ADR-0001)
|
|
12
|
+
|
|
13
|
+
## Kit wiring
|
|
14
|
+
|
|
15
|
+
1. Call `resolveHosting()` from `@vybekiit/deploy` — returns the GitHub Pages adapter
|
|
16
|
+
2. `deploy({ outputDir, projectName })` publishes a public repo + enables Pages and returns the live
|
|
17
|
+
URL (delegates to the shared Live-work provision path — one code path for buyer + dogfood)
|
|
18
|
+
3. Optional setting: `GITHUB_PAGES_OWNER` — owner/org login; defaults to the authenticated GitHub login
|
|
19
|
+
4. Token: from `gh auth token` / `GITHUB_TOKEN`, read at deploy time and never printed
|
|
20
|
+
|
|
21
|
+
## Verify-before-advance
|
|
22
|
+
|
|
23
|
+
- `gh auth status` succeeds
|
|
24
|
+
- `resolveHosting().deploy({ outputDir, projectName })` returns a live `*.github.io` URL
|
|
25
|
+
- Open the URL in the browser before celebrating (the first Pages build can take a moment)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Platform wrapper: Railway deploy (opt-in host)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skill `go-live` when `HOSTING_PROVIDER=railway`.
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Docs: https://docs.railway.com
|
|
8
|
+
- CLI: `railway` (installed + probed by `vybekiit doctor` when Railway hosting is selected)
|
|
9
|
+
- Agent skill: `use-railway` in `.agents/skills/` (pinned from railwayapp/railway-skills)
|
|
10
|
+
- MCP: merge `mcp-railway-local.json` or `mcp-railway-remote.json` per task
|
|
11
|
+
|
|
12
|
+
## Kit wiring
|
|
13
|
+
|
|
14
|
+
1. Set **coupled stack** in `.env`: `HOSTING_PROVIDER=railway` and `DATA_PROVIDER=railway` (agent decides — builder never picks hosts)
|
|
15
|
+
2. Run `vybekiit doctor` — installs `railway`, runs `railway setup agent -y`, checks auth
|
|
16
|
+
3. Call `resolveHosting()` from `@vybekiit/deploy` — returns Railway adapter
|
|
17
|
+
4. Supply a `RailwayRunner` that executes the adapter's railway action (go-live skill owns the shell)
|
|
18
|
+
5. Optional secret settings after link: `RAILWAY_PROJECT_ID`, `RAILWAY_SERVICE_ID`
|
|
19
|
+
6. CLI auth: `railway login` (browser flow) — no token in `.env` (ADR-0001)
|
|
20
|
+
|
|
21
|
+
## Verify-before-advance
|
|
22
|
+
|
|
23
|
+
- `railway whoami` succeeds
|
|
24
|
+
- `railway link` completed in project directory
|
|
25
|
+
- Deploy returns live service URL
|
|
26
|
+
- Open URL before celebrating
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Platform wrapper: Vercel deploy (opt-in host)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skill `go-live` when `HOSTING_PROVIDER=vercel`.
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Docs: https://vercel.com/docs
|
|
8
|
+
- CLI: `vercel` (installed + probed by `vybekiit doctor` when Vercel hosting is selected)
|
|
9
|
+
- Pinned Next.js skills in `.agents/skills/` cover App Router patterns (not deploy CLI details)
|
|
10
|
+
|
|
11
|
+
## Kit wiring
|
|
12
|
+
|
|
13
|
+
1. Set `HOSTING_PROVIDER=vercel` in `.env` (agent decides — builder never picks hosts)
|
|
14
|
+
2. Call `resolveHosting()` from `@vybekiit/deploy` — returns Vercel adapter
|
|
15
|
+
3. Supply a `VercelRunner` that executes the adapter's vercel action (go-live skill owns the shell)
|
|
16
|
+
4. Secret settings: `VERCEL_TOKEN` in `.env`; optional `VERCEL_ORG_ID`, `VERCEL_PROJECT_ID` after link
|
|
17
|
+
5. CLI auth: token-based (`VERCEL_TOKEN`) or `vercel login` for interactive link — see ADR-0006
|
|
18
|
+
|
|
19
|
+
## Verify-before-advance
|
|
20
|
+
|
|
21
|
+
- `vercel whoami` succeeds (or token validates)
|
|
22
|
+
- Deploy returns production URL
|
|
23
|
+
- Open URL before celebrating
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Platform wrapper: secret settings / `.env` (agent-only)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Keep secret values invisible — the builder never hears key names as passwords in chat.
|
|
4
|
+
|
|
5
|
+
## Hard rules
|
|
6
|
+
|
|
7
|
+
1. **Never read `.env` aloud** or paste its values into chat, commits, or PR descriptions.
|
|
8
|
+
2. **Reference keys from `.env.example` only** — say *"the payment key in your secret settings file"* using the plain label from `.env.example` comments, not the raw value.
|
|
9
|
+
3. **If the builder pastes a secret in chat**, warn once: *"Don't paste secrets here — paste it into your secret settings file on your machine instead."* Then guide them to open `.env` locally.
|
|
10
|
+
4. **Doctor must pass** `.cursorignore` listing `.env` — run `vybekiit doctor` if unsure.
|
|
11
|
+
|
|
12
|
+
## What agents can see
|
|
13
|
+
|
|
14
|
+
Cursor, Claude Code, and Codex may still read `.env` if ignore rules fail — treat every value as redacted even when visible. Never reproduce secret strings; use `••••••` or *"already set"* when confirming.
|
|
15
|
+
|
|
16
|
+
## Verify
|
|
17
|
+
|
|
18
|
+
- `.cursorignore` includes `.env`
|
|
19
|
+
- `.gitignore` includes `.env`
|
|
20
|
+
- `git status` never shows `.env` staged
|
package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Platform wrapper: extend-capabilities (agent-only)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked silently when no `goal-index.md` row and no platform wrapper covers the builder's request. The builder never hears "skill gap" or "extension."
|
|
4
|
+
|
|
5
|
+
## When to run
|
|
6
|
+
|
|
7
|
+
1. Read `.vybekiit/agent/goal-index.md` (and `.vybekiit/extensions/goal-index.md` if present).
|
|
8
|
+
2. If a row matches → follow that skill; **stop here**.
|
|
9
|
+
3. If the request is tech-specific → check `@vybekiit/*` `resolve*Provider()` adapters and `.vybekiit/platform-skills/*-vybekiit.md` plus `.vybekiit/extensions/platform-skills/`.
|
|
10
|
+
4. If an existing goal skill can absorb the tech (e.g. new database → `save-data`) → follow that goal skill; **stop here**.
|
|
11
|
+
5. Otherwise → run this workflow.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
### 1. Classify the gap
|
|
16
|
+
|
|
17
|
+
| Kind | Signal | Output |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| **New builder goal** | Feature or outcome with no goal-index match | Layer A buyer skill |
|
|
20
|
+
| **New tech / provider** | Named framework, DB, language, or tool | Layer B wrapper (+ upstream pin when available) |
|
|
21
|
+
|
|
22
|
+
Pick a **goal stem** (kebab-case, goal-named for Layer A) or **tech stem** (kebab-case for Layer B).
|
|
23
|
+
|
|
24
|
+
### 2. Research (tech gaps only)
|
|
25
|
+
|
|
26
|
+
1. Search skills.sh: `npx skills search <query>`
|
|
27
|
+
2. When an official skill exists: `npx skills add <repo> --skill <name> -y` into project `.agents/skills/`
|
|
28
|
+
3. Note official docs URL for the wrapper header
|
|
29
|
+
4. Check `@vybekiit/*` for an existing provider interface to wire behind
|
|
30
|
+
|
|
31
|
+
### 3. Draft
|
|
32
|
+
|
|
33
|
+
Use these shapes (or `vybekiit` templates from `@vybekiit/agent-kit`):
|
|
34
|
+
|
|
35
|
+
**Layer A (buyer goal)** — mirror `skills/save-data.md`:
|
|
36
|
+
|
|
37
|
+
- `**Goal:**` one plain sentence
|
|
38
|
+
- `**Contract:**` five rules + `language.md`
|
|
39
|
+
- `## Steps` with `**Verify:**` on each step
|
|
40
|
+
- `## Definition of done`
|
|
41
|
+
- `## After completing this skill`
|
|
42
|
+
|
|
43
|
+
**Layer B (platform wrapper)** — mirror `platform-skills/mongodb-vybekiit.md`:
|
|
44
|
+
|
|
45
|
+
- Official docs links
|
|
46
|
+
- `## Kit wiring` (prefer `resolve*Provider()`)
|
|
47
|
+
- `## Verify-before-advance`
|
|
48
|
+
- `## Never say to builder`
|
|
49
|
+
- `## TODO(vybekiit)` when no npm adapter exists yet
|
|
50
|
+
|
|
51
|
+
**Machine-global** — Agent Skills `SKILL.md` with YAML frontmatter (`name`, `description`).
|
|
52
|
+
|
|
53
|
+
### 4. Lint (agent-only)
|
|
54
|
+
|
|
55
|
+
Before saving, run:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
vybekiit lint-extension-skill <draft-path> --kind=buyer-goal
|
|
59
|
+
# or --kind=platform-wrapper
|
|
60
|
+
# or --kind=agent-skills-global
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Fix all issues. Exit code must be `0`. Builder never sees this step.
|
|
64
|
+
|
|
65
|
+
### 5. Ask scope (plain language only)
|
|
66
|
+
|
|
67
|
+
Ask exactly once:
|
|
68
|
+
|
|
69
|
+
> "Should I save this guide just for this project, or for all your projects on this computer?"
|
|
70
|
+
|
|
71
|
+
| Answer | Persist to |
|
|
72
|
+
|---|---|
|
|
73
|
+
| **This project** | Layer A: `.vybekiit/extensions/skills/<goal>.md` · Layer B: `.vybekiit/extensions/platform-skills/<tech>-vybekiit.md` |
|
|
74
|
+
| **All my projects** | Tool-aware global path (detect active tool first) |
|
|
75
|
+
|
|
76
|
+
### Tool-aware global paths
|
|
77
|
+
|
|
78
|
+
| Active tool | Global skill path | skills.sh agent |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| **Cursor** | `~/.cursor/skills-cursor/<name>/SKILL.md` | `--agent cursor` |
|
|
81
|
+
| **Claude Code** | `~/.claude/skills/<name>/SKILL.md` | `--agent claude-code` |
|
|
82
|
+
| **Codex** | `~/.agents/skills/<name>/SKILL.md` | `--agent codex` |
|
|
83
|
+
| **Fallback** | `~/.agents/skills/<name>/SKILL.md` | omit `--agent` |
|
|
84
|
+
|
|
85
|
+
Detect tool: Cursor if `.cursor/rules/vybekiit.mdc` exists; else Claude if `CLAUDE.md` session; else Codex via `AGENTS.md`.
|
|
86
|
+
|
|
87
|
+
Global install via skills.sh when upstream exists:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx skills add <repo> --skill <name> --global --agent <agent> -y
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 6. Persist
|
|
94
|
+
|
|
95
|
+
**Project-local:**
|
|
96
|
+
|
|
97
|
+
- Create directories if missing: `.vybekiit/extensions/skills/`, `.vybekiit/extensions/platform-skills/`
|
|
98
|
+
- Write the drafted file
|
|
99
|
+
- **Layer A only:** append a row to `.vybekiit/agent/goal-index.md`:
|
|
100
|
+
|
|
101
|
+
`| "<builder phrase>" | \`extensions/skills/<goal>.md\` |`
|
|
102
|
+
|
|
103
|
+
Optionally mirror the row in `.vybekiit/extensions/goal-index.md` for backup.
|
|
104
|
+
|
|
105
|
+
**Machine-global:**
|
|
106
|
+
|
|
107
|
+
- Write `SKILL.md` to the tool path above
|
|
108
|
+
- Do not edit project `goal-index.md` for global-only skills
|
|
109
|
+
|
|
110
|
+
### 7. Resume
|
|
111
|
+
|
|
112
|
+
Immediately follow the new skill as if it always existed. Never tell the builder you "created a skill."
|
|
113
|
+
|
|
114
|
+
## Verify-before-advance
|
|
115
|
+
|
|
116
|
+
- Lint passed (`vybekiit lint-extension-skill` exit 0)
|
|
117
|
+
- File exists at chosen path
|
|
118
|
+
- For Layer A: goal-index row present
|
|
119
|
+
- For tech: upstream pin in `.agents/skills/` when available
|
|
120
|
+
|
|
121
|
+
## Never say to builder
|
|
122
|
+
|
|
123
|
+
skill gap, extension, Layer A, Layer B, platform wrapper, goal-index, skills.sh, Agent Skills, YAML frontmatter
|
|
124
|
+
|
|
125
|
+
## Owned vs maintained
|
|
126
|
+
|
|
127
|
+
`.vybekiit/extensions/**` is **buyer-owned** — `sync-agent-layer` never overwrites it. Extension rows in `goal-index.md` are preserved on kit updates.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Platform wrapper: Firebase (Firestore)
|
|
2
|
+
|
|
3
|
+
**Agent-only.** Invoked by buyer skills `save-data` and `doctor`.
|
|
4
|
+
|
|
5
|
+
## Official upstream
|
|
6
|
+
|
|
7
|
+
- Agent skills: https://firebase.google.com/docs/ai-assistance/agent-skills
|
|
8
|
+
- MCP server: `npx -y firebase-tools@latest mcp`
|
|
9
|
+
- Install skills: `npx skills add firebase/agent-skills --agent=cursor`
|
|
10
|
+
|
|
11
|
+
## Kit wiring
|
|
12
|
+
|
|
13
|
+
1. Set `DATA_PROVIDER=firebase`, `FIREBASE_PROJECT_ID`, and credentials (`FIREBASE_SERVICE_ACCOUNT_JSON` or `GOOGLE_APPLICATION_CREDENTIALS`)
|
|
14
|
+
2. Data via `@vybekiit/db` → `resolveDataProvider()` — never raw Firestore in UI
|
|
15
|
+
3. Firebase Auth is a follow-up skill; default auth remains `better-auth` unless agent wires Firebase Auth
|
|
16
|
+
4. Storage stays on `STORAGE_PROVIDER=supabase|r2|s3` (Firebase Storage not in v1)
|
|
17
|
+
|
|
18
|
+
## MCP
|
|
19
|
+
|
|
20
|
+
Merge `.vybekiit/agent/mcp-firebase.json` alongside `mcp-agent.json` in `.cursor/mcp.json`.
|
|
21
|
+
|
|
22
|
+
Skills + MCP are complementary: skills teach how; MCP executes.
|
|
23
|
+
|
|
24
|
+
## Verify-before-advance
|
|
25
|
+
|
|
26
|
+
- `pingFirebaseDatabase()` green via doctor
|
|
27
|
+
- Firebase CLI authenticated locally for MCP (`firebase login`)
|