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.
Files changed (230) hide show
  1. package/dist/bin.js +14424 -15104
  2. package/dist/global-guidance/language.md +443 -0
  3. package/dist/global-skills/add-ai/SKILL.md +7 -1
  4. package/dist/global-skills/add-analytics/SKILL.md +7 -1
  5. package/dist/global-skills/add-blog/SKILL.md +7 -1
  6. package/dist/global-skills/add-crud/SKILL.md +9 -1
  7. package/dist/global-skills/add-files/SKILL.md +7 -1
  8. package/dist/global-skills/add-images/SKILL.md +7 -1
  9. package/dist/global-skills/add-language/SKILL.md +7 -1
  10. package/dist/global-skills/add-notifications/SKILL.md +7 -1
  11. package/dist/global-skills/add-realtime/SKILL.md +7 -1
  12. package/dist/global-skills/add-route/SKILL.md +7 -1
  13. package/dist/global-skills/add-search/SKILL.md +7 -1
  14. package/dist/global-skills/add-signin/SKILL.md +7 -1
  15. package/dist/global-skills/add-teams/SKILL.md +11 -4
  16. package/dist/global-skills/add-upload/SKILL.md +7 -1
  17. package/dist/global-skills/back-up-my-code/SKILL.md +16 -5
  18. package/dist/global-skills/buy-domain/SKILL.md +7 -1
  19. package/dist/global-skills/check-safety/SKILL.md +7 -1
  20. package/dist/global-skills/configure-capabilities/SKILL.md +7 -1
  21. package/dist/global-skills/connect-account/SKILL.md +7 -1
  22. package/dist/global-skills/connect-account-backend/SKILL.md +7 -1
  23. package/dist/global-skills/design-my-data/SKILL.md +13 -6
  24. package/dist/global-skills/doctor/SKILL.md +17 -10
  25. package/dist/global-skills/go-live/SKILL.md +7 -1
  26. package/dist/global-skills/harden/SKILL.md +9 -1
  27. package/dist/global-skills/manifest.json +3 -0
  28. package/dist/global-skills/onboarding/SKILL.md +36 -20
  29. package/dist/global-skills/plan-my-idea/SKILL.md +7 -1
  30. package/dist/global-skills/publish-app/SKILL.md +7 -1
  31. package/dist/global-skills/publish-extension/SKILL.md +7 -1
  32. package/dist/global-skills/reset-password/SKILL.md +7 -1
  33. package/dist/global-skills/save-data/SKILL.md +48 -16
  34. package/dist/global-skills/setup-email/SKILL.md +7 -1
  35. package/dist/global-skills/setup-payments/SKILL.md +10 -4
  36. package/dist/global-skills/setup-sms/SKILL.md +7 -1
  37. package/dist/global-skills/sign-in-with-email-link/SKILL.md +7 -1
  38. package/dist/global-skills/sign-in-with-google/SKILL.md +7 -1
  39. package/dist/global-skills/sign-in-with-phone/SKILL.md +7 -1
  40. package/dist/global-skills/track-errors/SKILL.md +7 -1
  41. package/dist/global-skills/update-kit/SKILL.md +7 -1
  42. package/dist/global-skills/validate-my-idea/SKILL.md +7 -1
  43. package/dist/global-skills/vybekiit-feedback/SKILL.md +7 -1
  44. package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +42 -0
  45. package/dist/global-skills/vybekiitReferences/backend/agent/goal-index.md +17 -0
  46. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-agent.json +12 -0
  47. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-firebase.json +8 -0
  48. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-mongodb.json +12 -0
  49. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-neon.json +8 -0
  50. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-paypal.json +8 -0
  51. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-posthog.json +17 -0
  52. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-railway-local.json +8 -0
  53. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-railway-remote.json +7 -0
  54. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-sentry.json +7 -0
  55. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-setup.md +131 -0
  56. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-supabase.json +7 -0
  57. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-twilio-alpha.json +8 -0
  58. package/dist/global-skills/vybekiitReferences/backend/agent/mcp-twilio-docs.json +7 -0
  59. package/dist/global-skills/vybekiitReferences/backend/agent/session-bootstrap.md +44 -0
  60. package/dist/global-skills/vybekiitReferences/backend/agent/tech-references.md +28 -0
  61. package/dist/global-skills/vybekiitReferences/backend/language.md +440 -0
  62. package/dist/global-skills/vybekiitReferences/backend/platform-skills/deploy-railway-vybekiit.md +26 -0
  63. package/dist/global-skills/vybekiitReferences/backend/platform-skills/extend-capabilities-vybekiit.md +127 -0
  64. package/dist/global-skills/vybekiitReferences/backend/platform-skills/mcp-tools-vybekiit.md +87 -0
  65. package/dist/global-skills/vybekiitReferences/backend/platform-skills/mongodb-vybekiit.md +34 -0
  66. package/dist/global-skills/vybekiitReferences/backend/platform-skills/railway-postgres-vybekiit.md +24 -0
  67. package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +80 -0
  68. package/dist/global-skills/vybekiitReferences/extension/agent/goal-index.md +27 -0
  69. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-agent.json +14 -0
  70. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-posthog.json +17 -0
  71. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-sentry.json +7 -0
  72. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-setup.md +102 -0
  73. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-twilio-alpha.json +13 -0
  74. package/dist/global-skills/vybekiitReferences/extension/agent/mcp-twilio-docs.json +7 -0
  75. package/dist/global-skills/vybekiitReferences/extension/agent/session-bootstrap.md +44 -0
  76. package/dist/global-skills/vybekiitReferences/extension/agent/tech-references.md +28 -0
  77. package/dist/global-skills/vybekiitReferences/extension/agent/ui-sources.md +30 -0
  78. package/dist/global-skills/vybekiitReferences/extension/language.md +433 -0
  79. package/dist/global-skills/vybekiitReferences/extension/platform-skills/README.md +32 -0
  80. package/dist/global-skills/vybekiitReferences/extension/platform-skills/browser-automation-vybekiit.md +36 -0
  81. package/dist/global-skills/vybekiitReferences/extension/platform-skills/chrome-extension-vybekiit.md +28 -0
  82. package/dist/global-skills/vybekiitReferences/extension/platform-skills/ci-vybekiit.md +26 -0
  83. package/dist/global-skills/vybekiitReferences/extension/platform-skills/client-state-vybekiit.md +25 -0
  84. package/dist/global-skills/vybekiitReferences/extension/platform-skills/code-hygiene-vybekiit.md +38 -0
  85. package/dist/global-skills/vybekiitReferences/extension/platform-skills/data-model-vybekiit.md +29 -0
  86. package/dist/global-skills/vybekiitReferences/extension/platform-skills/env-secrets-vybekiit.md +20 -0
  87. package/dist/global-skills/vybekiitReferences/extension/platform-skills/extend-capabilities-vybekiit.md +127 -0
  88. package/dist/global-skills/vybekiitReferences/extension/platform-skills/format-lint-vybekiit.md +33 -0
  89. package/dist/global-skills/vybekiitReferences/extension/platform-skills/github-vybekiit.md +47 -0
  90. package/dist/global-skills/vybekiitReferences/extension/platform-skills/i18n-vybekiit.md +39 -0
  91. package/dist/global-skills/vybekiitReferences/extension/platform-skills/mcp-tools-vybekiit.md +87 -0
  92. package/dist/global-skills/vybekiitReferences/extension/platform-skills/observability-vybekiit.md +36 -0
  93. package/dist/global-skills/vybekiitReferences/extension/platform-skills/planning-vybekiit.md +59 -0
  94. package/dist/global-skills/vybekiitReferences/extension/platform-skills/playwright-vybekiit.md +42 -0
  95. package/dist/global-skills/vybekiitReferences/extension/platform-skills/react-patterns-vybekiit.md +45 -0
  96. package/dist/global-skills/vybekiitReferences/extension/platform-skills/responsive-vybekiit.md +27 -0
  97. package/dist/global-skills/vybekiitReferences/extension/platform-skills/sentry-vybekiit.md +33 -0
  98. package/dist/global-skills/vybekiitReferences/extension/platform-skills/ship-via-pr-vybekiit.md +49 -0
  99. package/dist/global-skills/vybekiitReferences/extension/platform-skills/testing-vybekiit.md +33 -0
  100. package/dist/global-skills/vybekiitReferences/extension/platform-skills/ui-consistency-vybekiit.md +33 -0
  101. package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +460 -0
  102. package/dist/global-skills/vybekiitReferences/mobile/agent/goal-index.md +32 -0
  103. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-agent.json +14 -0
  104. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-firebase.json +8 -0
  105. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-neon.json +8 -0
  106. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-paypal.json +8 -0
  107. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-posthog.json +17 -0
  108. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-sentry.json +7 -0
  109. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-setup.md +103 -0
  110. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-stripe.json +7 -0
  111. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-supabase.json +7 -0
  112. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-twilio-alpha.json +13 -0
  113. package/dist/global-skills/vybekiitReferences/mobile/agent/mcp-twilio-docs.json +7 -0
  114. package/dist/global-skills/vybekiitReferences/mobile/agent/session-bootstrap.md +44 -0
  115. package/dist/global-skills/vybekiitReferences/mobile/agent/tech-references.md +28 -0
  116. package/dist/global-skills/vybekiitReferences/mobile/agent/ui-catalog-index.mobile.json +36294 -0
  117. package/dist/global-skills/vybekiitReferences/mobile/agent/ui-sources.mobile.md +36 -0
  118. package/dist/global-skills/vybekiitReferences/mobile/language.md +438 -0
  119. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/README.md +43 -0
  120. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ci-vybekiit.md +26 -0
  121. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/client-state-vybekiit.md +25 -0
  122. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/code-hygiene-vybekiit.md +38 -0
  123. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/data-model-vybekiit.md +29 -0
  124. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/env-secrets-vybekiit.md +20 -0
  125. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/extend-capabilities-vybekiit.md +127 -0
  126. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/format-lint-vybekiit.md +33 -0
  127. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/github-vybekiit.md +47 -0
  128. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/i18n-vybekiit.md +41 -0
  129. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/launch-store-vybekiit.md +26 -0
  130. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/mcp-tools-vybekiit.md +87 -0
  131. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/observability-vybekiit.md +36 -0
  132. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/planning-vybekiit.md +59 -0
  133. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/playwright-vybekiit.md +42 -0
  134. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/react-patterns-vybekiit.md +45 -0
  135. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/sentry-vybekiit.md +33 -0
  136. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ship-via-pr-vybekiit.md +49 -0
  137. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/testing-vybekiit.md +33 -0
  138. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-consistency-vybekiit.md +33 -0
  139. package/dist/global-skills/vybekiitReferences/mobile/platform-skills/ui-port-from-web-vybekiit.md +44 -0
  140. package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +83 -0
  141. package/dist/global-skills/vybekiitReferences/spa/agent/goal-index.md +30 -0
  142. package/dist/global-skills/vybekiitReferences/spa/agent/mcp-agent.json +14 -0
  143. package/dist/global-skills/vybekiitReferences/spa/agent/mcp-setup.md +54 -0
  144. package/dist/global-skills/vybekiitReferences/spa/agent/session-bootstrap.md +44 -0
  145. package/dist/global-skills/vybekiitReferences/spa/agent/ui-sources.md +60 -0
  146. package/dist/global-skills/vybekiitReferences/spa/language.md +221 -0
  147. package/dist/global-skills/vybekiitReferences/spa/platform-skills/mcp-tools-vybekiit.md +87 -0
  148. package/dist/global-skills/vybekiitReferences/web/AGENTS.md +153 -0
  149. package/dist/global-skills/vybekiitReferences/web/agent/goal-index.md +54 -0
  150. package/dist/global-skills/vybekiitReferences/web/agent/mcp-agent.json +14 -0
  151. package/dist/global-skills/vybekiitReferences/web/agent/mcp-firebase.json +8 -0
  152. package/dist/global-skills/vybekiitReferences/web/agent/mcp-mongodb.json +12 -0
  153. package/dist/global-skills/vybekiitReferences/web/agent/mcp-neon.json +8 -0
  154. package/dist/global-skills/vybekiitReferences/web/agent/mcp-paypal.json +8 -0
  155. package/dist/global-skills/vybekiitReferences/web/agent/mcp-posthog.json +17 -0
  156. package/dist/global-skills/vybekiitReferences/web/agent/mcp-railway-local.json +8 -0
  157. package/dist/global-skills/vybekiitReferences/web/agent/mcp-railway-remote.json +7 -0
  158. package/dist/global-skills/vybekiitReferences/web/agent/mcp-sentry.json +7 -0
  159. package/dist/global-skills/vybekiitReferences/web/agent/mcp-setup.md +165 -0
  160. package/dist/global-skills/vybekiitReferences/web/agent/mcp-stripe.json +7 -0
  161. package/dist/global-skills/vybekiitReferences/web/agent/mcp-supabase.json +7 -0
  162. package/dist/global-skills/vybekiitReferences/web/agent/mcp-twilio-alpha.json +13 -0
  163. package/dist/global-skills/vybekiitReferences/web/agent/mcp-twilio-docs.json +7 -0
  164. package/dist/global-skills/vybekiitReferences/web/agent/session-bootstrap.md +44 -0
  165. package/dist/global-skills/vybekiitReferences/web/agent/tech-references.md +28 -0
  166. package/dist/global-skills/vybekiitReferences/web/agent/ui-catalog-index.json +36294 -0
  167. package/dist/global-skills/vybekiitReferences/web/agent/ui-catalog-index.mobile.json +36294 -0
  168. package/dist/global-skills/vybekiitReferences/web/agent/ui-sources.md +104 -0
  169. package/dist/global-skills/vybekiitReferences/web/language.md +443 -0
  170. package/dist/global-skills/vybekiitReferences/web/platform-skills/README.md +66 -0
  171. package/dist/global-skills/vybekiitReferences/web/platform-skills/ai-vybekiit.md +3 -0
  172. package/dist/global-skills/vybekiitReferences/web/platform-skills/analytics-vybekiit.md +20 -0
  173. package/dist/global-skills/vybekiitReferences/web/platform-skills/assets-vybekiit.md +31 -0
  174. package/dist/global-skills/vybekiitReferences/web/platform-skills/aws-vybekiit.md +25 -0
  175. package/dist/global-skills/vybekiitReferences/web/platform-skills/better-auth-vybekiit.md +21 -0
  176. package/dist/global-skills/vybekiitReferences/web/platform-skills/browser-automation-vybekiit.md +40 -0
  177. package/dist/global-skills/vybekiitReferences/web/platform-skills/ci-vybekiit.md +26 -0
  178. package/dist/global-skills/vybekiitReferences/web/platform-skills/client-state-vybekiit.md +25 -0
  179. package/dist/global-skills/vybekiitReferences/web/platform-skills/cloudflare-email-vybekiit.md +42 -0
  180. package/dist/global-skills/vybekiitReferences/web/platform-skills/cms-vybekiit.md +3 -0
  181. package/dist/global-skills/vybekiitReferences/web/platform-skills/code-hygiene-vybekiit.md +38 -0
  182. package/dist/global-skills/vybekiitReferences/web/platform-skills/compliance-vybekiit.md +3 -0
  183. package/dist/global-skills/vybekiitReferences/web/platform-skills/data-model-vybekiit.md +29 -0
  184. package/dist/global-skills/vybekiitReferences/web/platform-skills/db-presets-vybekiit.md +46 -0
  185. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-cloudflare-vybekiit.md +22 -0
  186. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-github-pages-vybekiit.md +25 -0
  187. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-railway-vybekiit.md +26 -0
  188. package/dist/global-skills/vybekiitReferences/web/platform-skills/deploy-vercel-vybekiit.md +23 -0
  189. package/dist/global-skills/vybekiitReferences/web/platform-skills/env-secrets-vybekiit.md +20 -0
  190. package/dist/global-skills/vybekiitReferences/web/platform-skills/extend-capabilities-vybekiit.md +127 -0
  191. package/dist/global-skills/vybekiitReferences/web/platform-skills/firebase-vybekiit.md +27 -0
  192. package/dist/global-skills/vybekiitReferences/web/platform-skills/format-lint-vybekiit.md +33 -0
  193. package/dist/global-skills/vybekiitReferences/web/platform-skills/github-vybekiit.md +47 -0
  194. package/dist/global-skills/vybekiitReferences/web/platform-skills/i18n-vybekiit.md +3 -0
  195. package/dist/global-skills/vybekiitReferences/web/platform-skills/jobs-vybekiit.md +3 -0
  196. package/dist/global-skills/vybekiitReferences/web/platform-skills/kv-vybekiit.md +3 -0
  197. package/dist/global-skills/vybekiitReferences/web/platform-skills/lemon-squeezy-vybekiit.md +30 -0
  198. package/dist/global-skills/vybekiitReferences/web/platform-skills/mcp-tools-vybekiit.md +87 -0
  199. package/dist/global-skills/vybekiitReferences/web/platform-skills/mongodb-vybekiit.md +39 -0
  200. package/dist/global-skills/vybekiitReferences/web/platform-skills/neon-vybekiit.md +33 -0
  201. package/dist/global-skills/vybekiitReferences/web/platform-skills/nextjs-vybekiit.md +20 -0
  202. package/dist/global-skills/vybekiitReferences/web/platform-skills/notifications-vybekiit.md +3 -0
  203. package/dist/global-skills/vybekiitReferences/web/platform-skills/observability-vybekiit.md +36 -0
  204. package/dist/global-skills/vybekiitReferences/web/platform-skills/paypal-vybekiit.md +25 -0
  205. package/dist/global-skills/vybekiitReferences/web/platform-skills/planning-vybekiit.md +59 -0
  206. package/dist/global-skills/vybekiitReferences/web/platform-skills/playwright-vybekiit.md +42 -0
  207. package/dist/global-skills/vybekiitReferences/web/platform-skills/railway-postgres-vybekiit.md +24 -0
  208. package/dist/global-skills/vybekiitReferences/web/platform-skills/react-patterns-vybekiit.md +45 -0
  209. package/dist/global-skills/vybekiitReferences/web/platform-skills/realtime-vybekiit.md +3 -0
  210. package/dist/global-skills/vybekiitReferences/web/platform-skills/registrar-vybekiit.md +36 -0
  211. package/dist/global-skills/vybekiitReferences/web/platform-skills/resend-vybekiit.md +20 -0
  212. package/dist/global-skills/vybekiitReferences/web/platform-skills/responsive-vybekiit.md +27 -0
  213. package/dist/global-skills/vybekiitReferences/web/platform-skills/search-vybekiit.md +3 -0
  214. package/dist/global-skills/vybekiitReferences/web/platform-skills/sentry-vybekiit.md +33 -0
  215. package/dist/global-skills/vybekiitReferences/web/platform-skills/seo-vybekiit.md +31 -0
  216. package/dist/global-skills/vybekiitReferences/web/platform-skills/ses-vybekiit.md +19 -0
  217. package/dist/global-skills/vybekiitReferences/web/platform-skills/shadcn-vybekiit.md +25 -0
  218. package/dist/global-skills/vybekiitReferences/web/platform-skills/ship-via-pr-vybekiit.md +49 -0
  219. package/dist/global-skills/vybekiitReferences/web/platform-skills/stripe-vybekiit.md +26 -0
  220. package/dist/global-skills/vybekiitReferences/web/platform-skills/supabase-vybekiit.md +31 -0
  221. package/dist/global-skills/vybekiitReferences/web/platform-skills/tenancy-vybekiit.md +3 -0
  222. package/dist/global-skills/vybekiitReferences/web/platform-skills/testing-vybekiit.md +33 -0
  223. package/dist/global-skills/vybekiitReferences/web/platform-skills/ui-consistency-vybekiit.md +34 -0
  224. package/dist/global-skills/vybekiitReferences/web/platform-skills/ui-routing-vybekiit.md +41 -0
  225. package/dist/global-skills/watch-my-app/SKILL.md +7 -1
  226. package/dist/global-skills/wire-auth/SKILL.md +7 -1
  227. package/dist/global-skills/wire-database/SKILL.md +15 -1
  228. package/dist/global-skills/wire-email/SKILL.md +7 -1
  229. package/dist/global-skills/wire-payments/SKILL.md +7 -1
  230. 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
@@ -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`.
@@ -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,3 @@
1
+ # cms-vybekiit
2
+
3
+ Use `resolve*Provider()` from `@vybekiit/cms` — see package README and ADR-0012.
@@ -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,3 @@
1
+ # compliance-vybekiit
2
+
3
+ Use `resolve*Provider()` from `@vybekiit/compliance` — see package README and ADR-0012.
@@ -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.
@@ -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
@@ -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
@@ -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`)