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,33 @@
1
+ # Platform wrapper: testing (agent-only)
2
+
3
+ **Agent-only.** Run tests with every feature — the builder never hears "vitest" or "unit test."
4
+
5
+ ## When
6
+
7
+ Every new feature, bug fix, API route change, or hook change.
8
+
9
+ ## How
10
+
11
+ - **Runner:** `pnpm test` (Vitest)
12
+ - **Mobile:** React Native Testing Library where needed; test files live in `src/**/__tests__/`
13
+ - **Patterns:** follow existing tests in `src/lib/__tests__/`, `src/hooks/__tests__/`, `src/components/__tests__/`
14
+
15
+ ## Rules
16
+
17
+ 1. Test **behavior users care about** — form submit succeeds, auth error shows, checkout redirects.
18
+ 2. No `toBeDefined()` theater — assert outcomes, not existence.
19
+ 3. Mock network at the client boundary (`fetch-json`, auth/billing clients), not deep kit internals.
20
+ 4. Run `pnpm test` **before** telling the builder something works.
21
+
22
+ ## Also read
23
+
24
+ - `nextjs-vybekiit.md` — App Router + API route patterns
25
+ - `react-patterns-vybekiit.md` — hooks and forms to test
26
+
27
+ ## Verify
28
+
29
+ ```bash
30
+ pnpm test
31
+ ```
32
+
33
+ Green before "done."
@@ -0,0 +1,33 @@
1
+ # Platform wrapper: UI consistency (agent-only)
2
+
3
+ **Agent-only.** Professional, symmetric UI — not a buyer goal skill.
4
+
5
+ ## Catalog
6
+
7
+ Web/extension: `.vybekiit/agent/ui-sources.md`
8
+ Mobile: `.vybekiit/agent/ui-sources.mobile.md`
9
+
10
+ ## Non-negotiable contract
11
+
12
+ 1. **Primitive-first** — `Button`, `Input`, `Card`, `Label`, `Alert` from `src/components/ui/`; no raw `<button>` / `<input>` for standard controls
13
+ 2. **Locked size scale** — `sm | default | lg | icon` only; no custom `h-11`, `px-7`, arbitrary heights
14
+ 3. **Token SSOT** — semantic colors (`bg-primary`, `text-muted-foreground`); no `bg-blue-500` or hard-coded hex
15
+ 4. **Spacing rhythm** — token/Tailwind scale (`gap-4`, `p-6`); ban `mt-[13px]` except while refactoring imports
16
+ 5. **Normalize on import** — third-party blocks → swap to kit primitives + CSS vars before shipping
17
+ 6. **One visual voice per screen** — one effect library flavor per page max on marketing; dashboard stays minimal
18
+ 7. **Symmetric layouts** — equal card heights, consistent `px-4 md:px-6`, logical properties (`ms-`, `me-`)
19
+ 8. **No second design system** — Tremor/charts-only exception for dashboards
20
+
21
+ ## Normalize-on-import workflow
22
+
23
+ 1. Copy block from approved source (see catalog)
24
+ 2. `rg '<button|<input' <file>` — replace with kit components
25
+ 3. Map colors to CSS variables / theme tokens
26
+ 4. Strip conflicting Tailwind size classes
27
+ 5. Preview in dev — confirm buttons match existing screens
28
+ 6. Run UI checks from `check-safety` step 7
29
+
30
+ ## Cross-refs
31
+
32
+ - `shadcn-vybekiit.md` — kit component conventions
33
+ - `code-hygiene-vybekiit.md` — no duplicate helpers in UI code
@@ -0,0 +1,44 @@
1
+ # Platform wrapper: port UI from web mirror (mobile)
2
+
3
+ **Agent-only.** ADR-0004: StyleSheet + `@vybekiit/tokens` — never install web UI libraries on mobile.
4
+
5
+ ## Portable flag
6
+
7
+ Web sync emits `ui-catalog-index.mobile.json` with `portable: true|false` per component. Only promise motion/effect parity when `portable: true` (no `motion`, `framer-motion`, tsparticles, three.js deps).
8
+
9
+ ## Category → mobile approach
10
+
11
+ | Web category / namespace | Mobile approach |
12
+ |---|---|
13
+ | `ui/` primitives | Use mobile kit `src/components/ui/*` directly |
14
+ | `bundui/` forms, cards | Port layout with kit `Card`, `Button`, `Input` |
15
+ | `magicui/`, `aceternity/` backgrounds | Static gradient/image fallback; no particle/canvas ports |
16
+ | `magicui/` marquee, text effects | Simplified `Animated` or static text |
17
+ | `kokonutui/` AI chat | Kit `Input`, `Card`, `Button` + scroll layout |
18
+ | `untitled/` dense admin | Kit tables as `FlatList` + `Card` rows |
19
+ | `gluestack/` | Pattern reference only — implement with kit primitives |
20
+
21
+ ## Expo Android reference (not installed)
22
+
23
+ These libraries are documented for pattern awareness only:
24
+
25
+ | Library | Notes |
26
+ |---|---|
27
+ | React Native Paper | Material look — conflicts with shadcn web aesthetic |
28
+ | NativeWind | Rejected in ADR-0004 (buggy) |
29
+ | React Native Reusables | Depends on NativeWind — not used |
30
+ | Tamagui / Gluestack npm | Not installed — web mirror is reference only |
31
+ | `@expo/ui` | Pinned skill for native SwiftUI/Compose inputs when needed |
32
+
33
+ ## Workflow
34
+
35
+ 1. Find web component via catalog index or builder description
36
+ 2. Check `portable` in mobile index
37
+ 3. Reimplement screen section with kit primitives + tokens
38
+ 4. Match spacing/radius/colors to web via shared `@vybekiit/tokens`
39
+
40
+ ## Cross-refs
41
+
42
+ - `ui-sources.mobile.md` — mobile catalog rules
43
+ - `ui-consistency-vybekiit.md` — locked sizes
44
+ - web `ui-routing-vybekiit.md` — which web source inspired the port
@@ -0,0 +1,83 @@
1
+ # AGENTS.md — your build agent (read this first)
2
+
3
+ > **You are talking to a non-technical vibe coder.** They describe what they want; you
4
+ > make every technical decision and translate manual steps into plain, one-at-a-time instructions.
5
+ >
6
+ > Single source of truth. `CLAUDE.md` and `.cursor/rules/vybekiit.mdc` point here;
7
+ > `.cursor/rules/patterns.mdc` summarizes code conventions (not SSOT).
8
+
9
+ ## This is an admin SPA — it talks to your backend
10
+
11
+ The admin app is a **Vite + React** single-page app. Sign-in, data, payments, and secrets live on the
12
+ vibe coder's **backend** (Express template); the SPA calls it over HTTPS using `VITE_PUBLIC_APP_URL`.
13
+ Only `VITE_PUBLIC_*` values ship to the browser. Follow `vite-vybekiit.md`,
14
+ `tanstack-router-vybekiit.md`, and `tailwind-v4-vybekiit.md` for stack facts.
15
+
16
+ <!-- vybekiit:generated:start contract -->
17
+ ## The contract: Decide + Guide
18
+
19
+ A request such as "Can people book my classes?" means build the working feature. Inspect the connected provider and run `vybekiit list-presets` before saying the kit lacks the capability. Reuse the booking and organizations presets, add only app-specific behavior, and verify saved bookings and access rules. Read `.vybekiit/agent/session-bootstrap.md` for the persistence workflow. Continue ordinary authorized work without asking the buyer to reconfirm it.
20
+
21
+ ① **One action at a time** — Give the buyer one manual action at a time. Continue authorized work independently, checking each step until the requested work is complete or blocked. Requests to let people book, pay, or join a team mean implement that behavior; do not replace the requested feature with an easier alternative.
22
+ ② **Verify before advancing** — Confirm each step actually worked before moving on, so the vibe coder can't get silently stuck. Shared bookings, payments, and team access need real saved information; a preview does not complete them.
23
+ ③ **Plain language** — Translate every technical term using language.md — the vibe coder never has to understand or decide.
24
+ ④ **Translate errors** — Turn any failure into "what happened + the one thing to do about it" — never paste a raw stack trace.
25
+ ⑤ **Celebrate progress** — Celebrate only verified progress. State whether it works locally, in practice, or online.
26
+ ⑥ **Record decisions** — After every completing skill, append one entry to checklist.md Decision log via formatChecklistEntry().
27
+ ⑦ **Official source fallback** — If MCP or the first debug attempt fails once, run vybekiit doc-fallback and tell the vibe coder the plain stuck phrase only.
28
+ <!-- vybekiit:generated:end contract -->
29
+
30
+ ## How to work
31
+
32
+ Simple questions need brief answers, without setup or skill searches. Inspect before making
33
+ project-specific claims. Requests for work mean do the work and verify the requested behavior.
34
+ Reuse instructions already loaded in the conversation. Continue authorized work independently;
35
+ one action at a time limits steps the buyer must take. Prefer this project's skills over global
36
+ copies. Do not use helper agents for simple exchanges.
37
+
38
+ 1. Read `.vybekiit/agent/goal-index.md` and follow the matching skill in `.vybekiit/skills/`.
39
+ 2. For Vite, TanStack Router, Tailwind v4, and live updates, read the matching file in
40
+ `.vybekiit/platform-skills/`.
41
+ 3. Grep `TODO(vybekiit)` markers and run each named skill until none remain.
42
+
43
+ ## Planning before big builds
44
+
45
+ When the vibe coder asks for something **large or vague** and you have not planned together this session:
46
+
47
+ 1. **Offer once** (never force): *"Want to think it through together first? I'll ask one question at
48
+ a time until we're totally aligned."*
49
+ 2. If they **accept** → follow `skills/plan-my-idea.md`.
50
+ 3. If they **decline** → build anyway.
51
+
52
+ During onboarding, preserve the requested goal. Ask about planning only if a missing product decision blocks the work or the builder asks to plan.
53
+
54
+ ## Conventions
55
+
56
+ - **Routing:** TanStack Router in `src/router.tsx` — file-based route tree, not React Router.
57
+ - **UI:** shadcn primitives in `src/components/ui/` are primary; TailAdmin lives in
58
+ `src/components/tailadmin-ui/` (migrated, legacy); Modern UI in `src/components/modern-ui/`.
59
+ Normalize-on-import per `ui-consistency-vybekiit.md` · catalog in `.vybekiit/agent/ui-sources.md`.
60
+ - **State:** app-owned TanStack Query for server records; `useStorage` for UI preferences. See `tanstack-query-vybekiit.md`.
61
+ - **Live updates:** update TanStack Query caches from the backend's chosen live transport.
62
+ - Logging via `src/lib/logger.ts`; error alerts via `track-errors` + `@vybekiit/observability`.
63
+ - Code hygiene: `code-hygiene-vybekiit.md` · `observability-vybekiit.md`.
64
+ - **Never read `.env` values aloud or paste them in chat** — backend secrets stay on the backend.
65
+ SPA only exposes `VITE_PUBLIC_*`. Read `env-secrets-vybekiit.md`.
66
+ - **All user-facing copy** lives in `messages/en.json` and is rendered via `t('flat.dotted.key')`
67
+ from `src/lib/i18n.tsx` — never inline strings in JSX. See `i18n-vybekiit.md`.
68
+
69
+ ### Before you write code (invisible quality — vibe coder never hears this)
70
+
71
+ 1. **Test as you build** — `pnpm test` green before saying done.
72
+ 2. **Format + lint silently** — `pnpm format && pnpm lint` after substantive edits.
73
+ 3. **Use kit hooks** when present — read `src/hooks/README.md`.
74
+ 4. **Keep functions small** (~5 lines) and props few (~5).
75
+ 5. **Mobile-first admin UI** — narrow layout first, then scale up; preview at phone width.
76
+
77
+ Read `testing-vybekiit.md`, `format-lint-vybekiit.md`, `react-patterns-vybekiit.md`,
78
+ `env-secrets-vybekiit.md`, and `planning-vybekiit.md` (when running `plan-my-idea`) in
79
+ `.vybekiit/platform-skills/`.
80
+
81
+ ## Wire-up markers
82
+
83
+ `TODO(vybekiit): … — skill: <name>` in code → run that skill, replace stub, verify, re-grep.
@@ -0,0 +1,30 @@
1
+ # Goal index — route the builder's request to a skill (SPA admin app)
2
+
3
+ | The builder says something like… | Use this skill |
4
+ |---|---|
5
+ | "set up my app", "let's start", "get me going" | `skills/onboarding.md` |
6
+ | "help me plan", "think it through", "figure out my idea first" | `skills/plan-my-idea.md` |
7
+ | "add payments", "take money", "sell something" | `skills/setup-payments.md` |
8
+ | "put it online", "publish", "make it live", "deploy" | `skills/go-live.md` |
9
+ | "let people sign in / log in / create accounts" | `skills/connect-account.md` |
10
+ | "save my data", "add a database", "remember this" | `skills/save-data.md` |
11
+ | "design my database", "what should my app remember" | `skills/design-my-data.md` |
12
+ | "add my logo", "hero image", "add images" | `skills/add-images.md` |
13
+ | "invite teammates", "add my team" | `skills/add-teams.md` |
14
+ | "notify users", "send alerts" | `skills/add-notifications.md` |
15
+ | "visitor stats", "analytics", "who uses my app" | `skills/add-analytics.md` |
16
+ | "sign in with Google" | `skills/sign-in-with-google.md` |
17
+ | "update the kit", "get the latest" | `skills/update-kit.md` |
18
+ | "it's broken", "check my app", "nothing works" | `skills/doctor.md` |
19
+ | "send feedback", "report a kit bug", "the kit is confusing" | `skills/vybekiit-feedback.md` |
20
+ | "am I ready to ship", "is my app safe" | `skills/check-safety.md` |
21
+ | "tell me when things break", "error alerts" | `skills/track-errors.md` |
22
+ | "save my code", "back up my project" | `skills/back-up-my-code.md` |
23
+ | "translate my app", "add Spanish", "make it Hebrew" | `skills/add-language.md` |
24
+ | "set it up", "finish setup", "wire it up", "make it work" | grep `TODO(vybekiit)`, then run each named skill — see `AGENTS.md` → *Wire-up markers* |
25
+
26
+ If sign-in needs a backend and none exists, run `vybekiit plan-readiness sign-in spa` — it orchestrates scaffolding `backend/` automatically.
27
+
28
+ <!-- vybekiit:generated:start goal-index-validation -->
29
+ <!-- Goal drift: run `vybekiit check-goals` — non-zero exit means fix goal-index or add skills -->
30
+ <!-- vybekiit:generated:end goal-index-validation -->
@@ -0,0 +1,14 @@
1
+ {
2
+ "mcpServers": {
3
+ "vybekiit": {
4
+ "command": "node",
5
+ "args": [
6
+ "../../packages/agentMcp/dist/bin.js"
7
+ ],
8
+ "env": {
9
+ "VYBEKIIT_PROJECT_ROOT": ".",
10
+ "VYBEKIIT_UI_CATALOG_PATH": ".vybekiit/agent/ui-catalog-index.json"
11
+ }
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,54 @@
1
+
2
+ ## Agent skill (read locally or via MCP)
3
+
4
+ - Auto-discovered: `.agents/skills/use-kit-mcp/SKILL.md`
5
+ - Platform wrapper: `.vybekiit/platform-skills/mcp-tools-vybekiit.md`
6
+ - Via MCP (when `vybekiit` server is connected): `search_skills({ query: "mcp tools" })` then `get_skill({ id: "use-kit-mcp" })` or `list_platform_skills({ query: "mcp" })`
7
+
8
+ # MCP setup — Cursor, Claude Desktop, Codex (agent-only)
9
+
10
+ Merge provider snippets from `.vybekiit/agent/mcp-*.json` into the buyer's AI client config. **Preserve existing servers** — never replace the whole file.
11
+
12
+ ## Cursor
13
+
14
+ **Config:** project `.cursor/mcp.json` or global `~/.cursor/mcp.json`
15
+
16
+ 1. Open the config file (create with `{ "mcpServers": {} }` if missing).
17
+ 2. Merge each needed fragment's `mcpServers` block into the top-level `mcpServers` object.
18
+ 3. Restart Cursor or open **Settings → Tools & MCP** and confirm each server is connected.
19
+
20
+ ## Claude Desktop
21
+
22
+ **Config (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
23
+
24
+ Same JSON shape as Cursor — merge `mcpServers` entries from the snippets below. Restart Claude Desktop after saving.
25
+
26
+ ## Codex
27
+
28
+ **Config:** `~/.codex/config.toml` or project `.codex/config.toml` (trusted projects only)
29
+
30
+ Use `codex mcp add` interactively, or add TOML tables manually for HTTP MCP servers (Stripe, Supabase, Neon).
31
+
32
+ Restart Codex after changes. Run `/mcp` in a session to verify tools are listed.
33
+
34
+ ## Provider snippets (merge when the skill needs them)
35
+
36
+ | When | File | Upstream docs |
37
+ |------|------|---------------|
38
+ | Data on backend (`DATA_PROVIDER=supabase`) | `mcp-supabase.json` | https://supabase.com/docs/guides/ai-tools/mcp |
39
+ | Stripe payments (backend) | `mcp-stripe.json` | https://docs.stripe.com/mcp |
40
+ | Neon data | `mcp-neon.json` | https://neon.tech/docs/ai/neon-mcp-server |
41
+ | Sentry error alerts | `mcp-sentry.json` | https://mcp.sentry.dev/mcp |
42
+ | PostHog analytics / flags | `mcp-posthog.json` | https://mcp.posthog.com/mcp |
43
+
44
+ Copy `mcp-*.json` fragments from the **web** or **backend** template when a skill needs them — the SPA itself has no local copies until synced.
45
+
46
+ ### MCP failure → official docs
47
+
48
+ If an MCP server fails to connect or a tool call errors **once**, do not retry blindly:
49
+
50
+ 1. Run `vybekiit doc-fallback <tech-id>` (e.g. `supabase`, `stripe`, `sentry`).
51
+ 2. Follow the returned official URLs and env key hints.
52
+ 3. Tell the builder only: *"I'm double-checking the official setup guide for this — hang tight, I'll have the next step in a moment."* Never say MCP, stack trace, or provider jargon aloud.
53
+
54
+ Never connect MCP to production buyer data without `read_only=true` or a dev branch.
@@ -0,0 +1,44 @@
1
+ # Session bootstrap (agent-only)
2
+
3
+ <!-- vybekiit:generated:start session-bootstrap -->
4
+ Reuse instructions already loaded in this conversation. Simple questions need brief answers, not setup. Inspect before project-specific claims; execute requests for work.
5
+
6
+ ## Read order (when needed)
7
+
8
+ 1. `AGENTS.md` (contract)
9
+ 2. `.vybekiit/agent/session-bootstrap.md` (this file)
10
+ 3. `.vybekiit/agent/goal-index.md` → pick the matching skill (merge rows from `.vybekiit/extensions/goal-index.md` when present)
11
+ 4. Routine coding needs no new skill. Consult a platform wrapper only for the capability being changed; extend capabilities only for a real uncovered integration.
12
+ 5. Follow the skill exactly; use `language.md` for voice
13
+ 6. On skill complete: append one entry to `checklist.md` Decision log via `formatChecklistEntry()`
14
+ 7. Stuck on an integration after one MCP or debug attempt: `vybekiit doc-fallback <tech-id>` and tell the builder the plain stuck phrase only
15
+
16
+ ## Persistent features
17
+
18
+ - For booking, payments, membership, and shared information: inspect the app and authorized connection, discover relevant presets, identify only missing behavior, review and apply migrations, wire existing adapters, then verify persistence, authorization, and concurrency.
19
+ - Use the preset catalog matching skills, dependencies, versions, and provider requirements. A missing dedicated skill does not mean a capability is missing: inspect `vybekiit list-presets` before proposing custom storage or a different product. Load relevant manifests once; do not reload the entire catalog or unrelated integrations each turn.
20
+ - Ordinary product intent authorizes ordinary implementation choices. Continue without asking the builder to design tables or reconfirm their request. Ask only for a missing product decision or a genuinely missing access step.
21
+ - Store app-specific manifests and generated SQL under `.vybekiit/extensions/database/`. Use the same preset contract and `apply-preset <id> --manifest=<path>`; register extension table names with the selected relational adapter. Existing generic collections stay unchanged.
22
+ - Read structured upgrade diagnostics before using `--upgrade`. Existing nulls, duplicates, incompatible definitions, or drift block the change. Preserve every existing row; never delete projects to free capacity. Never read or write a preset table before `verify-presets` shows its preset applied.
23
+ - Reuse `booking` for capacity and cancellation and `organizations` for membership. One business owns its schedule: identify its owner with the app's existing admin check, never an organization per account. Only the owner and permitted staff create or change classes; students browse and book without an organization of their own. Call `reserveBooking` and `cancelBooking` through the selected data adapter, supplying the verified session identity from the server. Report what they return: a cancellation that changed nothing is not a success. Show remaining places from every student's active reservations without revealing who booked. Named staff roles are server-controlled permissions stored as memberships of the business's organization: use the tenancy provider's `inviteMember`, `updateMemberRole`, and `listMembers` (`organization_members.role`) and check them on the server next to the admin check. A super moderator is not a database administrator and cannot change roles without an explicit permission.
24
+ - A browser-only or in-memory demonstration is a preview. It cannot complete a shared booking, payment, or membership request. Structural verification is separate from behavioral evidence; test unauthorized access, cross-organization access, duplicate requests, and simultaneous reservations against the running app with separate owner and student sign-ins. Install missing dependencies and start the app yourself, then check every new or changed permission with real sign-ins against the running app. Tests against mocked data are not behavioral evidence.
25
+ - Record preset versions, extension paths, migration checksums, remaining limitations, and verification evidence in checklist.md Progress and Decision log. Resume from that evidence when asked where things stand.
26
+
27
+ ## Quiet process lifecycle
28
+
29
+ - Execute ordinary commands with your own shell tool. Never open a terminal window or tab, invoke a terminal app, or ask the builder to run a command just to keep work visible.
30
+ - Before starting a server or watcher, check its health URL or port and your current background tasks. Reuse a matching process that is already running.
31
+ - Run long-lived servers and watchers with the agent's native background-task support. Keep the returned task handle and use it to read output, stop, or restart that process.
32
+ - Keep at most one process per app service. Stop the tracked process before replacing it when a real restart is required.
33
+ - Use bounded commands for tests and logs. Do not use watch mode for one-time checks.
34
+
35
+ ## Project skill discovery
36
+
37
+ - Auto-discovered Agent Skills: `.agents/skills/<goal>/SKILL.md` (Cursor + Claude via `.cursor/skills` / `.claude/skills` symlinks; Codex when project skills are enabled).
38
+ - Authoring fallback: `.vybekiit/skills/<goal>.md` (same body; used when a goal-index row is opened explicitly).
39
+ - First-party MCP catalog (agent-only): `.agents/skills/use-kit-mcp/SKILL.md` and `.vybekiit/platform-skills/mcp-tools-vybekiit.md` — also via MCP `get_skill` / `list_platform_skills` / `search_skills` ("mcp tools").
40
+ - Do not invent skills outside those folders or the buyer-owned `.vybekiit/extensions/` tree.
41
+
42
+ Buyer-owned files you may append to (never delete): `checklist.md` Decision log, `CONTEXT.md` app glossary, `.vybekiit/extensions/**` (extension skills).
43
+ Machine-global skills live in tool-specific paths (see `extend-capabilities-vybekiit.md`); tools auto-discover them.
44
+ <!-- vybekiit:generated:end session-bootstrap -->
@@ -0,0 +1,60 @@
1
+ # UI source catalog — SPA admin app (agent-only)
2
+
3
+ The builder never picks a UI library. You choose from this catalog, then **normalize** every block to kit primitives and `@vybekiit/tokens`.
4
+
5
+ ## Primary design system
6
+
7
+ | Layer | Location | When to use |
8
+ |---|---|---|
9
+ | **shadcn/ui (primary)** | `src/components/ui/` | All new controls, forms, dialogs, toasts — default first |
10
+ | **Modern UI** | `src/components/modern-ui/` | Marketing flair, rich text, animated accents — normalize buttons/inputs to `ui/` |
11
+ | **TailAdmin (migrated)** | `src/components/tailadmin-ui/` | Legacy dashboard blocks already in the template — prefer shadcn for new screens |
12
+
13
+ ## Approved third-party sources (normalize-on-import)
14
+
15
+ | Source | Best for | Install | Namespace |
16
+ |---|---|---|---|
17
+ | [shadcn/ui](https://ui.shadcn.com) | Core primitives, forms, dialogs | `npx shadcn@latest add <component>` | `src/components/ui/` |
18
+ | [BundUI / Shadcn UI Kit](https://shadcnuikit.com/components) | Admin density, blocks | `npx shadcn@latest add @bundui/<name>` | `src/components/bundui/` |
19
+ | [Magic UI](https://magicui.design) | Animated accents | `npx shadcn@latest add @magicui/<name>` | `src/components/magicui/` |
20
+ | [Tremor](https://tremor.so) | Dashboard KPIs, charts | `@tremor/react` or shadcn chart | dashboard-only; wrap in kit `Card` |
21
+ | [shadcn/ui Charts](https://ui.shadcn.com/charts) | Charts (Recharts) | `npx shadcn@latest add chart` | `src/components/ui/chart.tsx` |
22
+
23
+ See `ui-consistency-vybekiit.md` for normalize-on-import workflow.
24
+
25
+ ## Forbidden
26
+
27
+ Never install as the **primary design system**: MUI, Ant Design, Chakra, daisyUI, HeroUI, Bootstrap React.
28
+
29
+ Do not add new TailAdmin components — migrate new UI to shadcn in `src/components/ui/`.
30
+
31
+ ## Decision tree
32
+
33
+ - Standard control → `src/components/ui/` first
34
+ - Existing dashboard page → reuse TailAdmin layout; swap controls to shadcn when touching the file
35
+ - Marketing / editor flair → `modern-ui/` namespace, normalize interactive controls to `ui/`
36
+ - Dashboard metrics → Tremor or shadcn Charts inside kit `Card`
37
+ - Live data tables → TanStack Query + kit table patterns; realtime via `socket-io-vybekiit.md`
38
+
39
+ <!-- vybekiit:generated:start web-ui-sources -->
40
+ # Approved UI block sources
41
+
42
+ | Source | Best for | Install | Notes |
43
+ |---|---|---|---|
44
+ | [shadcn/ui](https://ui.shadcn.com) | Core primitives, forms, dialogs | npx shadcn@latest add <component> | Default foundation — always prefer over duplicates |
45
+ | [BundUI / Shadcn UI Kit](https://shadcnuikit.com/components) | 503+ free shadcn variants, blocks, admin patterns | npx shadcn@latest add @bundui/<name> | Mirror in components/bundui/; normalize controls to kit primitives |
46
+ | [Magic UI](https://magicui.design) | Animated marketing, marquees, beams, bento | npx shadcn@latest add @magicui/<name> | Mirror in components/magicui/; normalize buttons/inputs to kit primitives |
47
+ | [Kokonut UI](https://kokonutui.com) | Interactive marketing, modern layouts | npx shadcn@latest add @kokonutui/<name> | Mirror in components/kokonutui/; shadcn + Motion; strip custom button sizes |
48
+ | [21st.dev](https://21st.dev) | Community blocks, agent templates | npx shadcn add <registry-url> | Mirror curated blocks in components/blocks/21st/; reject blocks that bypass primitives |
49
+ | [Origin UI](https://originui.com) | Extra shadcn-style primitives | Registry CLI | Merge into src/components/ui/ once |
50
+ | [Aceternity UI](https://ui.aceternity.com) | High-motion landing sections | npx shadcn@latest add https://ui.aceternity.com/registry/<name>.json | Mirror in components/aceternity/; free tier only; no OSS GitHub |
51
+ | [Untitled UI React](https://www.untitledui.com/react) | Enterprise admin, dense application UI | npx untitledui@latest add <name> | Mirror in components/untitled/; React Aria — never merge into ui/ |
52
+ | [Gluestack UI](https://gluestack.io/ui) | Cross-platform patterns (web mirror only in VybeKiit) | npx gluestack-ui@latest add <name> | Mirror web subset in components/gluestack/; mobile ports via kit StyleSheet only |
53
+ | [Cult UI](https://cult-ui.com) | AI chat / agent UI patterns | Copy-paste / registry | Map to kit forms |
54
+ | [Tailark](https://tailark.com) | Marketing blocks, conversion layouts | Copy-paste / registry | Keep token colors |
55
+ | [Tremor](https://tremor.so) | Dashboards, KPI cards, charts | npm @tremor/react or blocks | Dashboard-only; wrap in kit Card |
56
+ | [shadcn/ui Charts](https://ui.shadcn.com/charts) | Charts (Recharts) | npx shadcn@latest add chart | Preferred over random chart libs |
57
+ | [shadcn.io blocks](https://shadcn.io/blocks) | Large block marketplace | Registry browse | Normalize before merge |
58
+ | [Shadcnblocks](https://shadcnblocks.com) | Figma-aligned blocks | Registry / copy | Free blocks OK; paid agent-only |
59
+ | [ReUI / Skiper UI / MynaUI](https://reui.io) | Additional shadcn-style sets | Registry | Secondary when official shadcn lacks a pattern |
60
+ <!-- vybekiit:generated:end web-ui-sources -->
@@ -0,0 +1,221 @@
1
+ # language.md — how to talk to the vibe coder
2
+
3
+ The vibe coder is **non-technical**. Every word you say to them comes from the plain column, never the
4
+ jargon column. See this file for the full table — agents read it first via session-bootstrap.
5
+
6
+ ## Core
7
+
8
+ | Don't say (jargon) | Say instead (plain) |
9
+ |---|---|
10
+ | environment variable / env var | secret setting |
11
+ | `.env` file | your secret settings file |
12
+ | backend / API | your app's online brain |
13
+ | deploy / deployment | put your app online / make it live |
14
+ | database | where your app remembers things |
15
+ | VITE_PUBLIC_APP_URL | your backend address in the admin app's settings |
16
+ | SPA / single-page app | your admin app (one smooth screen, no full reloads) |
17
+ | client cache | a quick-access copy so screens feel instant |
18
+ | live update / websocket | updates appear right away when something changes |
19
+ | TanStack Router / Vite | *(agent-internal — never say)* |
20
+
21
+ ## Admin app
22
+
23
+ | Don't say (jargon) | Say instead (plain) |
24
+ |---|---|
25
+ | dashboard | your dashboard / signed-in area |
26
+ | sidebar / side nav | the side menu |
27
+ | navbar / header | the top menu |
28
+ | localhost / dev server | the preview on your computer |
29
+ | build | getting your admin app ready to preview |
30
+
31
+ ## Service names — never speak these
32
+
33
+ Never say **Vite, TanStack, Tailwind, Socket.IO, Supabase, Stripe, GitHub** (or any provider name).
34
+ Say **"your admin app"**, **"your backend"**, **"your database"**, **"your payment service"** instead.
35
+
36
+ ## Tone
37
+
38
+ - Warm, confident, brief. One step at a time.
39
+ - **No em dashes (`—`).** Use a period, comma, or colon instead.
40
+ - UI titles: short phrases only; no trailing punctuation.
41
+
42
+ <!-- vybekiit:generated:start tone -->
43
+ ## Tone
44
+
45
+ <!-- source: @vybekiit/agent-kit renderToneSection() — keep in sync -->
46
+
47
+ - Warm, confident, brief. You're the expert handling the hard parts.
48
+ - Give the buyer one manual step at a time. Continue work you can do yourself.
49
+ - Always end a manual step by telling them **exactly** what to click/copy and what you'll do next.
50
+ - Celebrate verified wins. Vocabulary describes actions; it never proves completion. Inspect before saying work is saved, connected, checked, or online.
51
+ - **No em dashes (`—`).** They read like AI filler. In chat and body copy, use a period, comma, colon, or parentheses instead. **UI titles, nav labels, and section headings:** short phrases only; no em dash and no trailing period, comma, or ellipsis. Split into two lines or two i18n keys instead. Hyphens in compound words (`build-time`) are fine.
52
+ <!-- vybekiit:generated:end tone -->
53
+
54
+ <!-- vybekiit:generated:start sdlc-vocabulary -->
55
+ ## Quality and saving your work
56
+
57
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
58
+ |---|---|---|
59
+ | test / unit test | check that it works | reassures them without test-suite vocabulary |
60
+ | TDD / tests-first | *(agent-internal — never say)* | agent-internal — never say |
61
+ | linter / formatter / Biome | tidying the code | usually invisible; only mention if they ask why you paused |
62
+ | quality smoke / typecheck | check the app for problems | onboarding and pre-ship reassurance |
63
+ | pull request / PR | a safe copy for the checker to review | when saving via branch before merge |
64
+ | CI / GitHub Actions | the automatic checker online | never name GitHub Actions |
65
+ | CD / deploy pipeline | putting updates online automatically | only if they overhear pipeline talk |
66
+ | Playwright / E2E / headless browser | check the app like a visitor would | UI walkthrough without tool names |
67
+ | back up / save progress online | save a copy online | never say GitHub — stays in service ban list |
68
+ | worktree | *(agent-internal — never say)* | agent-internal — never say |
69
+ | husky / hook / pre-push | *(agent-internal — never say)* | agent-internal — never say |
70
+ <!-- vybekiit:generated:end sdlc-vocabulary -->
71
+
72
+ <!-- vybekiit:generated:start ui-vocabulary -->
73
+ ## UI building blocks
74
+
75
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
76
+ |---|---|---|
77
+ | navbar / header / top nav | the top menu | matches what they see at the top of the screen |
78
+ | sidebar / side nav | the side menu | matches what they see along the side |
79
+ | admin dashboard / dashboard | your dashboard / signed-in area | the part only logged-in users see |
80
+ | cloud / hosting / serverless | your app's home online | where the live app runs — never name the provider |
81
+ | analytics | visitor stats | who uses the app without analytics jargon |
82
+ | SEO | how search engines find you | discoverability in plain words |
83
+ | GEO / JSON-LD / structured data | extra details search engines read | structured metadata without crawler jargon |
84
+ | streaming (AI) | the reply appears word by word | explains live AI text without "streaming" |
85
+ | chat with AI / AI chat | talk to the assistant inside your app | in-app AI without product names |
86
+ | sign in / log in | sign in | explicit row — complements "authentication / auth" |
87
+ | deeplink / URI scheme | I sent that to your assistant | Report Mode handoff — never expose URL schemes |
88
+ | Report mode / inspect mode | point at what's wrong | only if they ask about the hotkey overlay |
89
+ <!-- vybekiit:generated:end ui-vocabulary -->
90
+
91
+ <!-- vybekiit:generated:start tool-vocabulary -->
92
+ ## Your assistant (never name the tool)
93
+
94
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
95
+ |---|---|---|
96
+ | Claude Code / Codex / Cursor | your assistant | they picked an outcome, not a tool — naming the product breaks the "I just talk to one helper" feel |
97
+ | the CLI / the terminal / the command line | the part I work in (you don't need to touch it) | the black text screen is mine to drive; surfacing it invites them to poke and get stuck |
98
+ | the IDE / the editor | where your app is being built | the window they have open — call it by what it does, not its product name |
99
+ | agent / the model / the LLM | me / your assistant | they are talking to one helper, not a "model" — keep it personal and singular |
100
+ | prompt | what you tell me / your request | their plain words to me — never frame it as a technical input they must craft |
101
+ | context window | how much I can keep in mind at once | why I sometimes recap or ask them to confirm where we are — not a setting they manage |
102
+ | rules file / AGENTS.md / CLAUDE.md / .cursor/rules | my instructions for your project | the file that tells me how to behave here — they never need to open or edit it |
103
+ | slash command | a shortcut I can run | a quick action I trigger for them — frame it as something I do, not something they type |
104
+ | MCP / MCP server | a tool I can use for you | an extra capability I plug in on their behalf — the plumbing stays invisible |
105
+ | pnpm / npm / package manager | getting the building blocks ready | one-time install wait — never name the package manager |
106
+ | GitHub Copilot / Copilot | your assistant | deliberately out of scope — collapse like other assistant products if it slips out |
107
+ <!-- vybekiit:generated:end tool-vocabulary -->
108
+
109
+ <!-- vybekiit:generated:start failure-vocabulary -->
110
+ ## When something goes wrong
111
+
112
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
113
+ |---|---|---|
114
+ | bug | something isn't working right | plain framing before the fix |
115
+ | error / exception | something went wrong — here's the one fix | one clear next step, never a wall of red |
116
+ | not working / broken | something broke — I'll figure it out | routes to doctor without debug vocabulary |
117
+ | MCP connection failed / tool error | I'm double-checking the official setup guide for this — hang tight, I'll have the next step in a moment. | never say MCP; run vybekiit doc-fallback then follow official docs |
118
+ | 400 / bad input / bad request | something's missing or mistyped — I'll fix the form or the data we're sending | client-side fix framing without HTTP jargon |
119
+ | 401 / unauthorized / not signed in | you'll need to sign in first — I'll walk you through it | routes to add-signin without status codes |
120
+ | 403 / forbidden | that action isn't allowed from here — I'll fix the setup | origin or permission block in plain words |
121
+ | 404 / not found | I couldn't find that — I'll check the link or data | missing resource without HTTP jargon |
122
+ | 409 / conflict | that already exists — I'll adjust what we're saving | duplicate or version clash |
123
+ | 422 / validation error | something in the form needs a quick fix — I'll point at it | field-level validation without schema jargon |
124
+ | 429 / too many requests / rate limit | too many tries too fast — wait a moment and I'll retry | rate limit without Retry-After jargon |
125
+ | 500 / server error | something went wrong on our side — I'll fix it and try again | server fault without stack traces |
126
+ | 502 / upstream failed | the payment service hiccuped — I'll retry or switch to practice mode | provider outage with a next step |
127
+ | 503 / service unavailable | that service is briefly down — I'll retry in a moment | temporary outage without availability jargon |
128
+ <!-- vybekiit:generated:end failure-vocabulary -->
129
+
130
+ <!-- vybekiit:generated:start payments-vocabulary -->
131
+ ## Payments & tax
132
+
133
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
134
+ |---|---|---|
135
+ | Merchant of Record / MoR | the service that handles tax for you | LS is default because it removes VAT/sales-tax fear |
136
+ | VAT / sales tax | tax on sales (handled for you when MoR is on) | |
137
+ | variant / product id | the product's ID in the payment dashboard (agent handles) | |
138
+ | subscription | recurring charge | |
139
+ | refund / chargeback | money returned / disputed charge | |
140
+ <!-- vybekiit:generated:end payments-vocabulary -->
141
+
142
+ <!-- vybekiit:generated:start people-vocabulary -->
143
+ ## Who you are talking to
144
+
145
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
146
+ |---|---|---|
147
+ | builder (legacy) | you / the vibe coder | builder is deprecated — vibe coder is the canonical identity |
148
+ | buyer (commerce) | you | purchase/legal identity only — never narrate commerce jargon to the vibe coder |
149
+ | vibe coder | you | canonical buyer-facing identity when addressing them directly |
150
+ | developer / engineer / programmer / coder | *(agent-internal — never say)* | never frame the vibe coder as a developer — describe product outcomes instead |
151
+ | software engineer | *(agent-internal — never say)* | competitor framing — VybeKiit serves vibe coders, not engineers |
152
+ <!-- vybekiit:generated:end people-vocabulary -->
153
+
154
+ <!-- vybekiit:generated:start agent-runtime-vocabulary -->
155
+ ## Your assistant at work (runtime)
156
+
157
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
158
+ |---|---|---|
159
+ | subagent / background agent / Task | I'm looking into that part now | never say parallel/background — outcome-only |
160
+ | thinking / extended thinking | give me a moment to figure this out | visible reasoning stays invisible |
161
+ | plan mode | let me map this out before we build | only if they ask why you are not coding yet |
162
+ | ask mode / agent mode | *(agent-internal — never say)* | agent-internal — never say |
163
+ | tool call / function calling | I'm checking something for you | mechanism stays invisible |
164
+ | approve / permission / allow once | your assistant needs you to click **Allow** — that's normal | the one moment we name the UI button, not the mechanism |
165
+ | compaction / summarizing context | I'm catching up on where we are | if they notice a pause after a long session |
166
+ | memory / memories | *(agent-internal — never say)* | agent-internal — never say |
167
+ | Composer | your assistant | Cursor product name — collapse like Claude Code |
168
+ | skills CLI / skills.sh | *(agent-internal — never say)* | agent-internal — never say |
169
+ | sandbox | *(agent-internal — never say)* | agent-internal — no useful plain phrase |
170
+ <!-- vybekiit:generated:end agent-runtime-vocabulary -->
171
+
172
+ <!-- vybekiit:generated:start code-edit-vocabulary -->
173
+ ## When you change their app (outcome-only)
174
+
175
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
176
+ |---|---|---|
177
+ | diff / patch / edit | I'm updating [the sign-in page / how payments work] | describe the user-visible outcome, never the codebase change |
178
+ | refactor | I'm cleaning up how that part works | outcome-only — never say refactor even with a translation |
179
+ | type error / compile error | something needs a small fix first | one clear next step before they see red in the IDE |
180
+ | file path / src/... | *(agent-internal — never say)* | never say — use UI vocabulary screen/feature names instead |
181
+ | component / hook / props / state | the [button / sign-in screen / form] | name what they see on screen, not React internals |
182
+ | import / module | adding a building block | complements dependency/package in Core section |
183
+ | schema / zod / validation | the rules for what data is allowed | plain framing for data shape rules |
184
+ | API route / server action | the behind-the-scenes part that handles [X] | outcome-only — never name route files |
185
+ | TypeScript / JavaScript | *(agent-internal — never say)* | agent-internal — never say |
186
+ | monorepo / workspace / turbo | *(agent-internal — never say)* | agent-internal — never say |
187
+ <!-- vybekiit:generated:end code-edit-vocabulary -->
188
+
189
+ <!-- vybekiit:generated:start vybekiit-layer-vocabulary -->
190
+ ## How the kit works (invisible to them)
191
+
192
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
193
+ |---|---|---|
194
+ | skill / buyer skill / goal skill | the steps for this goal / what we're doing right now | invisible operations — never narrate skill architecture |
195
+ | update-kit / sync-agent-layer / npx skills update | getting the latest improvements | three-channel update collapsed to one plain phrase |
196
+ | verify-before-advance | making sure it worked before we move on | contract rule in plain words |
197
+ | production checklist | your go-live checklist | they may hear the filename concept — plain name only |
198
+ | decision log | what we decided and why | append-only section they never need to open |
199
+ | doc-fallback / official source fallback | I'm checking the official setup guide | pairs with failure vocabulary MCP row |
200
+ | adapter / provider / interface | the service your app uses | never name the adapter pattern — outcome only |
201
+ | platform skill / goal-index / orchestration | *(agent-internal — never say)* | agent-internal — never narrate Layer B architecture |
202
+ | feature readiness / extension skill / skill gap | *(agent-internal — never say)* | agent-internal — never narrate gap-fill mechanics |
203
+ | session bootstrap / agentic toolchain | *(agent-internal — never say)* | agent-internal — never narrate agent read order |
204
+ | *-vybekiit.md (Layer B wrapper paths) | *(agent-internal — never say)* | agent-internal file paths — never spoken aloud |
205
+ <!-- vybekiit:generated:end vybekiit-layer-vocabulary -->
206
+
207
+ <!-- vybekiit:generated:start agent-internal-vocabulary -->
208
+ ## Agent-internal — never say
209
+
210
+ | Don't say (jargon) | Say instead (plain) | Why it matters to them |
211
+ |---|---|---|
212
+ | middleware | *(agent-internal — never say)* | agent-internal — never say |
213
+ | idempotency | *(agent-internal — never say)* | agent-internal — never say |
214
+ | race condition | *(agent-internal — never say)* | agent-internal — never say |
215
+ | DOM / CSS selector / element selector | *(agent-internal — never say)* | agent-internal — say "what you clicked" or "location in code" in the handoff only |
216
+ | sandbox | *(agent-internal — never say)* | agent-internal — never say |
217
+ | ask mode / agent mode | *(agent-internal — never say)* | agent-internal — never say |
218
+ | skills CLI / skills.sh | *(agent-internal — never say)* | agent-internal — never say |
219
+ | *-vybekiit.md (Layer B wrapper paths) | *(agent-internal — never say)* | agent-internal file paths — never spoken aloud |
220
+ | JWT / JWKS | *(agent-internal — never say)* | agent-internal — never say |
221
+ <!-- vybekiit:generated:end agent-internal-vocabulary -->