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: 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,33 @@
1
+ # Platform wrapper: format + lint (agent-only)
2
+
3
+ **Agent-only.** Keep the codebase tidy — the builder never runs the linter or formatter.
4
+
5
+ ## When
6
+
7
+ After every substantive edit; once after first `pnpm install` during onboarding (quality smoke).
8
+
9
+ ## How
10
+
11
+ ```bash
12
+ pnpm format # biome check --write .
13
+ pnpm lint # biome check .
14
+ ```
15
+
16
+ Or the full loop:
17
+
18
+ ```bash
19
+ pnpm verify # format → lint → typecheck → test
20
+ ```
21
+
22
+ Optional agent wrapper: `node scripts/checkQuality.mjs`
23
+
24
+ ## Rules
25
+
26
+ 1. **Never ask the builder** to run lint or format — you do it silently.
27
+ 2. Biome **warn** rules (function length, complexity) are soft — fix obvious ones; don't block ship on style warnings unless egregious.
28
+ 3. If lint fails on a real error, fix it and re-run. Translate one plain fix if you must mention something to the builder (rare).
29
+ 4. **Pre-push only** — buyer templates ship an identical husky **pre-push** hook (not pre-commit). The builder never pushes; the agent does. The hook runs `pnpm verify` before push succeeds.
30
+
31
+ ## Verify
32
+
33
+ `pnpm lint` exits 0 (warnings OK). Full smoke: `pnpm verify`.
@@ -0,0 +1,47 @@
1
+ # Platform wrapper: GitHub backup (agent-only)
2
+
3
+ **Agent-only.** Save the builder's project on GitHub — invoked by buyer skill `back-up-my-code`, not by git jargon.
4
+
5
+ ## Prerequisites
6
+
7
+ - `gh` CLI installed (`vybekiit doctor` checks this)
8
+ - Builder has a **GitHub account** — `gh` does **not** create accounts. If they don't have one, walk them through signup at github.com one step at a time in plain language.
9
+
10
+ ## Sign in
11
+
12
+ If doctor reports not signed in:
13
+
14
+ ```bash
15
+ gh auth login --web
16
+ ```
17
+
18
+ Browser opens → builder clicks approve.
19
+
20
+ ## Backup flow
21
+
22
+ 1. `git init` (if no repo yet) — `.gitignore` already ships
23
+ 2. Stage all project files (never commit `.env` — it's gitignored)
24
+ 3. First commit with a plain message, e.g. "Initial save"
25
+ 4. Create **private** repo and push:
26
+
27
+ ```bash
28
+ gh repo create <repo-name> --private --source=. --remote=origin --push
29
+ ```
30
+
31
+ 5. Open `https://github.com/<user>/<repo>` and confirm files are there
32
+ 6. Give the builder the link in plain words — *"Your project is saved online here."*
33
+
34
+ ## Later saves (PR flow)
35
+
36
+ For ongoing work after the first backup, use `ship-via-pr-vybekiit.md` — branch, push, wait for the **online checker** on all three operating systems, then merge. The builder hears *"Your latest work is saved and checked."*
37
+
38
+ ## Rules
39
+
40
+ - Default to **private** repos unless the builder explicitly wants public
41
+ - Never paste secrets into commits or chat
42
+ - Never claim backup worked without verifying on github.com
43
+ - Do not run this in doctor by default — only when the builder asks or after meaningful progress (optional nudge in onboarding)
44
+
45
+ ## Verify
46
+
47
+ `gh repo view` shows the remote · latest commit visible on GitHub · builder has the URL
@@ -0,0 +1,41 @@
1
+ # Platform wrapper: i18n (mobile template)
2
+
3
+ **Agent-only.** Invoked by generic coding and the `add-language` buyer skill.
4
+
5
+ ## Official upstream
6
+
7
+ - expo-localization: https://docs.expo.dev/versions/latest/sdk/localization/
8
+ - i18n-js: https://github.com/fnando/i18n-js
9
+
10
+ ## Shared conventions
11
+
12
+ - **Never hardcode user-facing strings** — use `t('flat.dotted.key')` via `useTranslations()` or `@/lib/i18n`.
13
+ - **Flat-dotted keys** in `messages/en.json` (converted to nested scopes for i18n-js internally).
14
+ - **Default locale:** `en`; device locale detected via `expo-localization`, fallback `en`.
15
+ - **RTL:** `applyRtlForLocale()` in `src/lib/direction.ts` (I18nManager, per ADR-0004).
16
+
17
+ ## Mobile stack
18
+
19
+ | Piece | Location |
20
+ |---|---|
21
+ | Catalog | `messages/{locale}.json` |
22
+ | Init + `t()` | `src/lib/i18n.ts` — call `initI18n()` from `app/_layout.tsx` |
23
+ | Hook | `src/hooks/use-translations.ts` |
24
+ | RTL | `src/lib/direction.ts` |
25
+
26
+ ## Adding a locale
27
+
28
+ 1. Copy `messages/en.json` → `messages/{locale}.json`; translate values.
29
+ 2. Register in `src/lib/i18n.ts` via `registerLocale(locale, messages)`.
30
+ 3. Add to `flatCatalogs` / device resolution if needed.
31
+ 4. RTL locales: confirm layout mirrors after reload.
32
+ 5. Run `pnpm test` — `src/lib/__tests__/i18n.test.ts` green.
33
+
34
+ ## Cross-platform keys
35
+
36
+ Mirror web keys where surfaces match: `home.hero.*`, `auth.*`, `pricing.*`, `dashboard.*`.
37
+ Mobile-only: `navigation.screen.*`, `common.close`.
38
+
39
+ ## Verify-before-advance
40
+
41
+ `pnpm verify` green; reload app and confirm stack titles + one screen in the new language.
@@ -0,0 +1,26 @@
1
+ # Platform wrapper: launch-store (mobile publish)
2
+
3
+ **Agent-only.** Invoked by buyer skill `publish-app`.
4
+
5
+ ## Official upstream
6
+
7
+ - CLI: `launch-store` (global npm; `doctor` installs as `launch`)
8
+ - Build engine: EAS — prefer pinned `.agents/skills/expo-deployment` and `expo-cicd-workflows`
9
+ - Docs: https://docs.expo.dev/submit/introduction/
10
+
11
+ ## Kit wiring
12
+
13
+ 1. App identity in `app.json`; listing in `launch.config.ts` (`buildEngine: 'eas'`)
14
+ 2. Resolve `TODO(vybekiit): … — skill: publish-app` markers first
15
+ 3. `launch build <ios|android>` — cloud build + test track upload
16
+ 4. `launch release <ios|android>` — public store submit
17
+ 5. `launch status` — review state
18
+ 6. `launch ai screenshots` — installed Genshot companion prepares store pictures from real screens
19
+ 7. Mobile app talks to **backend API** for auth/data/payments — never direct DB keys in the app
20
+
21
+ ## Verify-before-advance
22
+
23
+ - `eas whoami` + `launch --version` via `doctor`
24
+ - Build completes green before submit
25
+ - `launch plan screenshots` shows approved store pictures before upload
26
+ - Store confirms submission received
@@ -0,0 +1,87 @@
1
+ # Platform wrapper: kit MCP tools
2
+
3
+ **Agent-only.** Catalog of every first-party MCP tool VybeKiit ships. Read this file locally or load via MCP `get_skill` / `list_platform_skills` (`mcp-tools-vybekiit` / `use-kit-mcp`).
4
+
5
+ Never name MCP, tool ids, or package paths to the builder. Prefer **search → get** (slim pages, then detail).
6
+
7
+ ## Server
8
+
9
+ | Server key | Package | Bin | Purpose |
10
+ |------------|---------|-----|---------|
11
+ | `vybekiit` | `@vybekiit/agent-mcp` | `vybekiit-agent-mcp` | Skills, CLI catalog, doctor tools, doc-fallback, browser automations, mirrored UI catalog |
12
+
13
+ Snippet: `.vybekiit/agent/mcp-agent.json`. Setup: `.vybekiit/agent/mcp-setup.md`.
14
+ Auto-discovered skill: `.agents/skills/use-kit-mcp/SKILL.md`.
15
+
16
+ ## Env
17
+
18
+ | Variable | Meaning |
19
+ |----------|---------|
20
+ | `VYBEKIIT_PROJECT_ROOT` | Project root for skill reads + automation cwd (default cwd) |
21
+ | `VYBEKIIT_UI_CATALOG_PATH` | Path to `ui-catalog-index.json` |
22
+ | `VYBEKIIT_AUTOMATE_BIN` | Optional absolute path to `vybekiit-automate` |
23
+
24
+ ## Context controls
25
+
26
+ - Cursor pagination: `limit` / `cursor` / response `nextCursor` + `hasMore` + `total`
27
+ - Prefer slim rows; request full detail only when needed (`fields=slim|full` on UI tools)
28
+ - Automations: `run_automation({ dryRun: true })` before a real browser session
29
+
30
+ ## Tools
31
+
32
+ | Tool | Description | Required | Optional | When to use |
33
+ |------|-------------|----------|----------|-------------|
34
+ | `search_skills` | Fuzzy-search buyer goals/skills (goal-index SSOT). Paginated slim rows. | query | template, limit, cursor | Before opening skill files; empty query lists all goals for the template. |
35
+ | `get_skill` | Load one skill by goal id or stem (excerpt by default). | id | template, excerptLines | After search_skills picks a row; also loads use-kit-mcp / platform wrappers. |
36
+ | `list_platform_skills` | List/search `.vybekiit/platform-skills/*` wrappers (paginated). | — | query, limit, cursor | Find provider wrappers (stripe, railway, mcp-tools-vybekiit, …). |
37
+ | `search_commands` | Fuzzy-search vybekiit CLI verbs. Returns usage — run via shell, not MCP. | query | limit, cursor | Discover CLI verbs (doctor, create app, automate, …). |
38
+ | `get_command` | Get one CLI command by exact name from the catalog. | name | — | After search_commands when you know the exact verb name. |
39
+ | `search_doctor_tools` | List doctor toolchain entries (`vybekiit doctor --ensure <name>`). Does not run doctor. | query | limit, cursor | Before ensuring CLIs (gh, wrangler, supabase, …). |
40
+ | `search_tech_ids` | Fuzzy-search known tech ids before doc_fallback. | query | limit, cursor | Pick a tech id for official docs after one failed MCP/debug attempt. |
41
+ | `doc_fallback` | Official docs + env key hints. Never name MCP to the builder — use builderMessage. | techId | — | MCP or first debug failed once; same as `vybekiit doc-fallback <tech-id>`. |
42
+ | `search_automations` | Fuzzy-search vybekiit-automate browser verbs (ls, cws, nc, …). Paginated. | query | limit, cursor | Before run_automation; empty query lists the catalog. |
43
+ | `get_automation` | Get one automation by domain (+ command) or id (`ls:setup`). | domain | command | Inspect usage string for a known domain/verb. |
44
+ | `run_automation` | Run vybekiit-automate from any project root (resolves bin). Always --json. Prefer dryRun first. Google redirect_uri_mismatch → domain=google command=oauth with --redirect incl. localhost. | domain, command | args, dryRun, yes, cdp, profile, timeoutMs | Execute browser automations anywhere; OAuth 400 redirect_uri_mismatch; dryRun=true to preview argv only. |
45
+ | `search_ui_components` | Fuzzy-search mirrored UI components. Page envelope; default fields=slim. | query | source, limit, cursor, fields | Find blocks by intent/name; slim first, then get_ui_component. |
46
+ | `get_ui_component` | Get one mirrored component by source namespace + slug. | source, name | — | Full detail after search_ui_components. |
47
+ | `suggest_ui_blend` | Ranked multi-source component suggestions for a natural-language UI intent. | intent | limit | Builder wants a composed look (hero + pricing + marquee, …). |
48
+ | `list_ui_sources` | List mirrored UI source namespaces and component counts. | — | — | See which registries are in the local catalog index. |
49
+
50
+ ## Browser automations (from any folder)
51
+
52
+ ```
53
+ search_automations({ query: "lemon squeezy" })
54
+ run_automation({ domain: "ls", command: "setup", dryRun: true })
55
+ run_automation({ domain: "ls", command: "standby" })
56
+ // Google Error 400 redirect_uri_mismatch / Auth.js localhost — args only, no Console babysitting:
57
+ search_automations({ query: "redirect_uri_mismatch" })
58
+ run_automation({ domain: "google", command: "oauth", args: [
59
+ "--project=my-app", "--app-name=MyApp", "--support-email=you@gmail.com",
60
+ "--app-url=https://example.com",
61
+ "--redirect=https://example.com/api/auth/callback/google",
62
+ "--redirect=http://localhost:3000/api/auth/callback/google",
63
+ ]})
64
+ ```
65
+
66
+ Shell equivalent:
67
+
68
+ ```
69
+ vybekiit-automate catalog --json
70
+ vybekiit-automate ls standby --json --yes
71
+ vybekiit-automate google oauth --project=... --app-name=... --support-email=... --app-url=... --redirect=... --json
72
+ ```
73
+
74
+ ## Wire-up (agents)
75
+
76
+ 1. `vybekiit setup` registers the `vybekiit` server once at Claude user scope and refreshes it on every rerun.
77
+ 2. Start a new Claude session after setup so Claude can approve and discover the global tools.
78
+ 3. Cursor receives project `.cursor/mcp.json` files because its setup path remains project-scoped.
79
+ 4. `create app` still ships `@vybekiit/agent-mcp` and `@vybekiit/browser-automation` under `packages/` for owned tooling and other MCP clients.
80
+ 5. Doctor may merge provider-specific third-party MCPs only when the project needs them.
81
+
82
+ ## Provider / third-party MCP snippets
83
+
84
+ Not first-party tools — merge only when the builder uses that provider (see `mcp-setup.md`):
85
+ `mcp-supabase`, `mcp-stripe`, `mcp-paypal`, `mcp-neon`, `mcp-firebase`, `mcp-mongodb`, `mcp-railway-*`, `mcp-twilio-*`, `mcp-sentry`, `mcp-posthog`.
86
+
87
+ If any MCP fails once → `doc_fallback` / `vybekiit doc-fallback <tech-id>`; tell the builder only the plain stuck phrase.
@@ -0,0 +1,36 @@
1
+ # Platform wrapper: observability (agent-only)
2
+
3
+ **Agent-only.** Logging and error tracking wiring — not a buyer goal skill.
4
+
5
+ ## Structured logging
6
+
7
+ - Import `log` from `src/lib/logger.ts` (wraps `@vybekiit/core` `createLogger`).
8
+ - **Development:** `debug` and `info` print automatically.
9
+ - **Production:** only `warn` and `error` print — no builder configuration needed.
10
+ - Optional override: `LOG_LEVEL` in `.env` (agent-only; never ask the builder to set it).
11
+ - API routes: `const routeLog = log.child({ requestId })` when correlating a request.
12
+
13
+ ```ts
14
+ import { log } from '@/lib/logger';
15
+
16
+ log.info('Contact form accepted', { email: parsed.data.email });
17
+ log.error('Checkout failed', err);
18
+ ```
19
+
20
+ Never use bare `console.log` in `app/` or `src/` (tests excluded).
21
+
22
+ ## Error tracking
23
+
24
+ - Buyer skill: `track-errors` — wires `@vybekiit/observability`.
25
+ - Server entry: `instrumentation.ts` calls `resolveObservabilityProvider`.
26
+ - App code: `import { observability } from '@/lib/observability'` then `observability.captureException(err)`.
27
+ - Platform wrapper: `sentry-vybekiit.md` for Sentry dashboard steps.
28
+
29
+ ## Pre-ship checks
30
+
31
+ ```bash
32
+ node scripts/checkNoConsole.mjs
33
+ rg "from '@/lib/logger'" app/api/
34
+ ```
35
+
36
+ See `check-safety` step 6 (code readiness) and `go-live` pre-flight.
@@ -0,0 +1,59 @@
1
+ # planning-vybekiit.md — agent-only planning mechanics
2
+
3
+ Used by `plan-my-idea.md`. The builder never sees this file or its vocabulary.
4
+
5
+ ## CONTEXT.md format
6
+
7
+ Single context at repo root (`CONTEXT.md`). Create lazily when the first term resolves.
8
+
9
+ ```md
10
+ # {App name or domain}
11
+
12
+ {One or two sentences: what this app is and who it's for.}
13
+
14
+ ## Language
15
+
16
+ **{Canonical term}**:
17
+ {A one or two sentence definition of what it IS, not what it does.}
18
+ _Avoid_: alias1, alias2
19
+ ```
20
+
21
+ ### Rules
22
+
23
+ - **Be opinionated.** Pick one canonical word; list alternatives under `_Avoid_`.
24
+ - **Keep definitions tight.** One or two sentences max.
25
+ - **App-specific only.** No general programming terms (API, timeout, cache, component).
26
+ - **Group under subheadings** when clusters emerge (e.g. `## People`, `## Money`).
27
+ - **Update inline** during the session — never batch at the end.
28
+ - **No implementation details** in `CONTEXT.md` — glossary only, not a spec.
29
+
30
+ ### No ADRs for buyers
31
+
32
+ Do not create `docs/adr/` or decision-record files. Capture agreed language in `CONTEXT.md` only.
33
+
34
+ ## During a planning session
35
+
36
+ ### Challenge against the glossary
37
+
38
+ When the builder uses a term that conflicts with `CONTEXT.md`, reconcile immediately: *"Last time we
39
+ said X means … — is that still right?"*
40
+
41
+ ### Sharpen fuzzy language
42
+
43
+ When they say "account", "user", "order", "save" without precision, propose a canonical term and ask
44
+ which they mean.
45
+
46
+ ### Cross-reference with code
47
+
48
+ When they state how something works, check the code. If it contradicts them, surface it plainly and
49
+ ask which is right before continuing.
50
+
51
+ ### Concrete scenarios
52
+
53
+ Once the shape emerges, invent one realistic edge-case scenario (*"Sarah tries to… what happens?"*) to
54
+ expose gaps before building.
55
+
56
+ ## After planning
57
+
58
+ Reference `CONTEXT.md` during later feature work so wording stays consistent. Do not overwrite buyer
59
+ entries during `update-kit` sync — `CONTEXT.md` is buyer-owned.
@@ -0,0 +1,42 @@
1
+ # Platform wrapper: Playwright UI tests (agent-only)
2
+
3
+ **Agent-only.** Walk through the app like a visitor — the builder hears *"I checked it on screen"*, not Playwright.
4
+
5
+ ## When
6
+
7
+ Before calling a page done (web/extension with UI); in pre-push when `PLAYWRIGHT_ENABLED=true`; on CI (ubuntu job).
8
+
9
+ ## Configure (`.env`)
10
+
11
+ ```env
12
+ PLAYWRIGHT_ENABLED="true" # turn on locally
13
+ PLAYWRIGHT_HEADLESS="true" # false to watch the browser
14
+ PLAYWRIGHT_BASE_URL="http://localhost:3000"
15
+ ```
16
+
17
+ ## Install browsers (once per machine)
18
+
19
+ ```bash
20
+ pnpm exec playwright install chromium
21
+ ```
22
+
23
+ Doctor/onboarding: agent runs this silently when enabling UI walkthrough tests.
24
+
25
+ ## Run
26
+
27
+ ```bash
28
+ pnpm test:e2e
29
+ # or: PLAYWRIGHT_ENABLED=true pnpm test:e2e
30
+ ```
31
+
32
+ Pre-push runs `pnpm test:e2e` automatically when `PLAYWRIGHT_ENABLED=true`.
33
+
34
+ ## Rules
35
+
36
+ 1. Never say "Playwright", "E2E", or "headless" to the builder — use `language.md`.
37
+ 2. Fix failing walkthrough tests before telling the builder the page works.
38
+ 3. Keep smoke tests short — one happy path per critical screen.
39
+
40
+ ## Verify
41
+
42
+ `pnpm test:e2e` green with dev server reachable at `PLAYWRIGHT_BASE_URL`.
@@ -0,0 +1,45 @@
1
+ # Platform wrapper: React patterns (agent-only)
2
+
3
+ **Agent-only.** Kit primitives and soft limits — the builder never hears "props" limits or "split the component."
4
+
5
+ ## Kit primitives (required)
6
+
7
+ | Concern | Use | Never |
8
+ |---|---|---|
9
+ | Server / API data | TanStack Query via `@vybekiit/client-state` (`useQuery`, `useMutation`) | Raw `fetch` + `useState` for server records |
10
+ | Async UI state | `useAsync` from `@/hooks/use-async` | Hand-rolled fetch for data that belongs in query cache |
11
+ | User / session | `useUser` from `@/hooks/use-user` | Duplicate session logic in pages |
12
+ | Client-only prefs | `useStorage` from `@/hooks/use-storage` | Zustand/MMKV for server data |
13
+ | Toasts | `useToast` from `@/hooks/use-toast` | `alert()` or ad-hoc snackbars |
14
+ | Forms | `FormField` + zod at submit boundary | Inline validation scattered in JSX |
15
+
16
+ Read `client-state-vybekiit.md` and `src/hooks/README.md` before adding hooks.
17
+
18
+ ## Soft limits (agent + Biome warn)
19
+
20
+ | Rule | Target | Enforcement |
21
+ |---|---|---|
22
+ | Function body length | ~5 lines ideal; split if longer | Agent convention + Biome warn |
23
+ | Component props | ~5 max; use composition or a small options object | Agent convention |
24
+ | Folders | See `src/README.md` | Required |
25
+
26
+ ## Forms
27
+
28
+ - Use `FormField` for labels, errors, and inputs.
29
+ - Validate with zod **once** at submit — not on every keystroke unless UX requires it.
30
+ - API routes validate again with zod at the boundary.
31
+
32
+ ## Folders
33
+
34
+ ```
35
+ app/ routes + API (Next.js App Router)
36
+ src/components/ui/ kit primitives — do not duplicate
37
+ src/components/ app-specific composed UI
38
+ src/hooks/ shared React hooks (see README)
39
+ src/lib/ headless clients + utils (see README)
40
+ ```
41
+
42
+ ## Verify
43
+
44
+ - New screens use kit hooks · forms use `FormField` · no duplicate helpers in `src/lib/`
45
+ - `pnpm test` green after changes
@@ -0,0 +1,33 @@
1
+ # Platform wrapper: Sentry (agent-only)
2
+
3
+ **Agent-only.** Invoked by buyer skill `track-errors` — not a buyer-facing name.
4
+
5
+ ## Official upstream
6
+
7
+ - Docs: https://docs.sentry.io/platforms/javascript/guides/nextjs/
8
+ - Package: `@vybekiit/observability` (Sentry adapter via `@sentry/core`)
9
+ - Pinned skills: `.agents/skills/sentry-sdk-setup/SKILL.md`, `.agents/skills/sentry-workflow/SKILL.md`
10
+
11
+ ## Kit wiring
12
+
13
+ 1. Set in `.env`:
14
+ - `OBSERVABILITY_PROVIDER="sentry"`
15
+ - `SENTRY_DSN="<from Sentry dashboard>"`
16
+ 2. Confirm `instrumentation.ts` exists (calls `resolveObservabilityProvider`).
17
+ 3. Confirm `src/lib/observability.ts` exports the provider.
18
+ 4. Add a dev-only test route or button that throws once; verify alert in Sentry dashboard.
19
+ 5. Wire `app/global-error.tsx` or route error boundaries to call `observability.captureException`.
20
+
21
+ ## Builder manual step (one at a time)
22
+
23
+ 1. Open the Sentry project the agent created (or have them sign up at sentry.io).
24
+ 2. Copy the **DSN** from Project Settings → Client Keys.
25
+ 3. Paste when the agent asks — never paste into chat.
26
+
27
+ ## Verify-before-advance
28
+
29
+ Trigger test error → Sentry shows the event → tell builder "You'll get an email when something breaks."
30
+
31
+ ## Mobile
32
+
33
+ Same `@vybekiit/observability` interface; Expo uses Sentry React Native SDK when the mobile track-errors skill runs — follow Expo Sentry docs for native init if needed beyond the headless provider.
@@ -0,0 +1,49 @@
1
+ # Platform wrapper: ship via PR (agent-only)
2
+
3
+ **Agent-only.** Save work through a safe branch + online checker — use when changes are large or the builder is waiting.
4
+
5
+ ## When
6
+
7
+ - After meaningful progress and `back-up-my-code` already created a remote
8
+ - Builder is impatient — use a **git worktree** so main stays runnable while you work in parallel
9
+ - Before merging to `main`, CI must be green on all three OS jobs (`ci-vybekiit.md`)
10
+
11
+ ## Flow
12
+
13
+ 1. **Worktree (optional, parallel work):**
14
+ ```bash
15
+ git worktree add ../my-app-feature feature/save-progress
16
+ cd ../my-app-feature
17
+ ```
18
+
19
+ 2. **Branch + commit:**
20
+ ```bash
21
+ git checkout -b feature/save-progress
22
+ git add -A
23
+ git commit -m "Save progress"
24
+ ```
25
+
26
+ 3. **Push + open PR:**
27
+ ```bash
28
+ git push -u origin HEAD
29
+ gh pr create --title "Save progress" --body "Agent checkpoint — checks running."
30
+ ```
31
+
32
+ 4. **Wait for CI** — all ubuntu/macOS/Windows jobs green (`gh pr checks --watch`).
33
+
34
+ 5. **Merge when green:**
35
+ ```bash
36
+ gh pr merge --squash --delete-branch
37
+ ```
38
+
39
+ 6. Tell the builder in plain words: *"Your latest work is saved and checked."*
40
+
41
+ ## Rules
42
+
43
+ - Never expose PR, worktree, or branch jargon — see `language.md`.
44
+ - Pre-push hook runs before push; fix locally first.
45
+ - Never merge red CI — fix and push again.
46
+
47
+ ## Verify
48
+
49
+ PR merged · `main` green on GitHub · builder hears one plain success line