@kensaurus/skills 0.0.0-stage → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/.claude-plugin/marketplace.json +53 -0
  2. package/.claude-plugin/plugin.json +40 -0
  3. package/.cursor-plugin/plugin.json +38 -0
  4. package/.mcp.json +28 -0
  5. package/CHANGELOG.md +1761 -0
  6. package/LICENSE +21 -0
  7. package/NOTICE +13 -0
  8. package/README.md +820 -2
  9. package/SECURITY.md +55 -0
  10. package/agents/code-reviewer.md +60 -0
  11. package/agents/completion-judge.md +89 -0
  12. package/agents/db-migrator.md +125 -0
  13. package/agents/debugger.md +47 -0
  14. package/agents/deploy-checker.md +100 -0
  15. package/agents/perf-monitor.md +74 -0
  16. package/assets/favicon.png +0 -0
  17. package/assets/logo-light.png +0 -0
  18. package/assets/logo.png +0 -0
  19. package/assets/logo.svg +6 -0
  20. package/assets/og.png +0 -0
  21. package/bin/install.mjs +1127 -0
  22. package/bin/kenji.js +2 -0
  23. package/commands/adr.md +17 -0
  24. package/commands/aeo-plan.md +18 -0
  25. package/commands/arch-boundaries.md +17 -0
  26. package/commands/aso-plan.md +18 -0
  27. package/commands/auth-flows.md +19 -0
  28. package/commands/backup-plan.md +17 -0
  29. package/commands/burndown-full.md +25 -0
  30. package/commands/capacitor-plan.md +18 -0
  31. package/commands/codemod-safety.md +22 -0
  32. package/commands/commit.md +18 -0
  33. package/commands/complete-everything.md +40 -0
  34. package/commands/cost-plan.md +19 -0
  35. package/commands/deadcode-plan.md +26 -0
  36. package/commands/deadcode.md +32 -0
  37. package/commands/debug-issue.md +17 -0
  38. package/commands/deps-plan.md +18 -0
  39. package/commands/docs-plan.md +17 -0
  40. package/commands/doctrine.md +19 -0
  41. package/commands/error-plan.md +19 -0
  42. package/commands/feedback-to-closure.md +36 -0
  43. package/commands/fix-issue.md +76 -0
  44. package/commands/gate-logic.md +26 -0
  45. package/commands/green-repo.md +36 -0
  46. package/commands/grill-me.md +19 -0
  47. package/commands/gtm-plan.md +21 -0
  48. package/commands/gtm-weekly.md +17 -0
  49. package/commands/gtm.md +22 -0
  50. package/commands/handoff.md +15 -0
  51. package/commands/housekeep-backlog.md +18 -0
  52. package/commands/housekeep-files.md +22 -0
  53. package/commands/housekeep-gates.md +18 -0
  54. package/commands/instant-nav.md +11 -0
  55. package/commands/integrity-plan.md +19 -0
  56. package/commands/launch-kit.md +16 -0
  57. package/commands/mcp-guide.md +40 -0
  58. package/commands/mobile-plan.md +19 -0
  59. package/commands/native-rn-monorepo/README.md +78 -0
  60. package/commands/native-rn-monorepo/android-build.md +26 -0
  61. package/commands/native-rn-monorepo/android-install.md +32 -0
  62. package/commands/native-rn-monorepo/android-logcat.md +37 -0
  63. package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
  64. package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
  65. package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
  66. package/commands/native-rn-monorepo/rn-reset.md +50 -0
  67. package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
  68. package/commands/native-rn-monorepo/rn-verify.md +53 -0
  69. package/commands/perf-plan.md +18 -0
  70. package/commands/plan-mode.md +74 -0
  71. package/commands/pr.md +16 -0
  72. package/commands/pricing-plan.md +20 -0
  73. package/commands/privacy-plan.md +18 -0
  74. package/commands/readability.md +12 -0
  75. package/commands/readme.md +15 -0
  76. package/commands/refactor.md +15 -0
  77. package/commands/release-prep.md +17 -0
  78. package/commands/research.md +25 -0
  79. package/commands/responsive-audit.md +21 -0
  80. package/commands/review-code.md +18 -0
  81. package/commands/rls-plan.md +18 -0
  82. package/commands/secrets-plan.md +18 -0
  83. package/commands/security-plan.md +19 -0
  84. package/commands/ship-and-observe.md +36 -0
  85. package/commands/skill-conflicts.md +19 -0
  86. package/commands/slop-plan.md +18 -0
  87. package/commands/stub-plan.md +18 -0
  88. package/commands/test-mutation.md +16 -0
  89. package/commands/test-plan.md +17 -0
  90. package/commands/test.md +29 -0
  91. package/commands/thirdparty-web-interface-guidelines.md +185 -0
  92. package/commands/uiux-plan.md +18 -0
  93. package/commands/uiux.md +45 -0
  94. package/commands/update-deps.md +21 -0
  95. package/commands/validation-plan.md +19 -0
  96. package/commands-portable/fix-issue.md +72 -0
  97. package/commands-portable/plan-mode.md +92 -0
  98. package/commands-portable/research.md +91 -0
  99. package/docs/screenshots/README.md +5 -0
  100. package/docs/screenshots/audit-dark.png +0 -0
  101. package/docs/screenshots/build-dark.png +0 -0
  102. package/docs/screenshots/grill-dark.png +0 -0
  103. package/docs/screenshots/hero-dark.png +0 -0
  104. package/docs/screenshots/hero-light.png +0 -0
  105. package/docs/screenshots/ship-dark.png +0 -0
  106. package/docs/screenshots/src/showcase.html +320 -0
  107. package/hooks/completion-gate.mjs +258 -0
  108. package/hooks/cursor-hooks.json +13 -0
  109. package/hooks/hooks.json +15 -0
  110. package/install.sh +21 -0
  111. package/llms.txt +40 -0
  112. package/mcp/README.md +266 -0
  113. package/mcp/VERSIONS.md +41 -0
  114. package/mcp/mcp-full.json.template +124 -0
  115. package/mcp/mcp.json.template +29 -0
  116. package/mcp/pinned-versions.json +27 -0
  117. package/package.json +93 -4
  118. package/rules/approved-plan-execution.mdc +65 -0
  119. package/rules/full-stack-ship-discipline.mdc +37 -0
  120. package/rules/native-rn-monorepo/README.md +63 -0
  121. package/rules/native-rn-monorepo/_project.mdc +69 -0
  122. package/rules/native-rn-monorepo/native-android.mdc +72 -0
  123. package/rules/native-rn-monorepo/native-ios.mdc +61 -0
  124. package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
  125. package/rules/native-rn-monorepo/web.mdc +60 -0
  126. package/rules/project-starter/components.mdc +54 -0
  127. package/rules/project-starter/data-fetching.mdc +77 -0
  128. package/rules/project-starter/git.mdc +41 -0
  129. package/rules/project-starter/supabase.mdc +37 -0
  130. package/rules/project-starter/tailwind.mdc +48 -0
  131. package/rules/project-starter/typescript.mdc +36 -0
  132. package/rules/project-starter/web-performance.mdc +42 -0
  133. package/rules/senior-engineer.mdc +30 -0
  134. package/rules/shell-first-search.mdc +19 -0
  135. package/rules/skill-workflows.mdc +35 -0
  136. package/rules/verification-before-completion.mdc +57 -0
  137. package/skills/audit-accessibility/SKILL.md +441 -0
  138. package/skills/audit-agent-speed/SKILL.md +181 -0
  139. package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
  140. package/skills/audit-analytics/SKILL.md +138 -0
  141. package/skills/audit-auth-flows/SKILL.md +267 -0
  142. package/skills/audit-backend-architecture/SKILL.md +266 -0
  143. package/skills/audit-backend-architecture/references/patterns.md +386 -0
  144. package/skills/audit-bundle-size/SKILL.md +296 -0
  145. package/skills/audit-cicd/SKILL.md +218 -0
  146. package/skills/audit-code-quality/SKILL.md +314 -0
  147. package/skills/audit-code-review/SKILL.md +289 -0
  148. package/skills/audit-codemod-safety/SKILL.md +159 -0
  149. package/skills/audit-db-schema/SKILL.md +465 -0
  150. package/skills/audit-db-schema/references/details.md +110 -0
  151. package/skills/audit-doctrine/SKILL.md +189 -0
  152. package/skills/audit-env-parity/SKILL.md +133 -0
  153. package/skills/audit-fe-api/SKILL.md +458 -0
  154. package/skills/audit-gate-logic/SKILL.md +219 -0
  155. package/skills/audit-i18n/SKILL.md +339 -0
  156. package/skills/audit-infra-cost/SKILL.md +142 -0
  157. package/skills/audit-langfuse-llm/SKILL.md +468 -0
  158. package/skills/audit-langfuse-llm/references/details.md +226 -0
  159. package/skills/audit-llm-security/SKILL.md +147 -0
  160. package/skills/audit-monetization-iap/SKILL.md +137 -0
  161. package/skills/audit-payment-system/SKILL.md +268 -0
  162. package/skills/audit-payment-system/references/checklist.md +283 -0
  163. package/skills/audit-performance/SKILL.md +383 -0
  164. package/skills/audit-performance/references/loading-priority-2026.md +81 -0
  165. package/skills/audit-realworld/SKILL.md +287 -0
  166. package/skills/audit-registry-listing/SKILL.md +122 -0
  167. package/skills/audit-resilience/SKILL.md +154 -0
  168. package/skills/audit-responsive/SKILL.md +221 -0
  169. package/skills/audit-responsive/references/checklist.md +166 -0
  170. package/skills/audit-security/SKILL.md +289 -0
  171. package/skills/audit-skill-conflicts/SKILL.md +178 -0
  172. package/skills/audit-ui-states/SKILL.md +146 -0
  173. package/skills/audit-uiux-design-system/SKILL.md +475 -0
  174. package/skills/audit-uiux-design-system/references/details.md +71 -0
  175. package/skills/audit-ux/SKILL.md +379 -0
  176. package/skills/audit-ux/references/details.md +245 -0
  177. package/skills/audit-ux-journeys/SKILL.md +215 -0
  178. package/skills/audit-ux-journeys/references/checklist.md +179 -0
  179. package/skills/backend-db-performance/SKILL.md +441 -0
  180. package/skills/backend-error-handling/SKILL.md +489 -0
  181. package/skills/backend-error-handling/references/details.md +58 -0
  182. package/skills/backend-observability/SKILL.md +88 -0
  183. package/skills/backend-patterns/SKILL.md +499 -0
  184. package/skills/backend-patterns/references/architecture-patterns.md +298 -0
  185. package/skills/backend-realtime/SKILL.md +403 -0
  186. package/skills/backend-realtime/references/patterns.md +74 -0
  187. package/skills/burndown-full/SKILL.md +174 -0
  188. package/skills/complete-everything/SKILL.md +295 -0
  189. package/skills/data-pipeline/SKILL.md +109 -0
  190. package/skills/data-visualization/SKILL.md +488 -0
  191. package/skills/debug-error/SKILL.md +322 -0
  192. package/skills/debug-fe-be-integration/SKILL.md +459 -0
  193. package/skills/debug-sentry-monitor/SKILL.md +497 -0
  194. package/skills/debug-sentry-monitor/references/details.md +165 -0
  195. package/skills/deploy-npm/SKILL.md +394 -0
  196. package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
  197. package/skills/deploy-verify/SKILL.md +489 -0
  198. package/skills/design-api/SKILL.md +379 -0
  199. package/skills/design-canvas/SKILL.md +155 -0
  200. package/skills/design-email/SKILL.md +370 -0
  201. package/skills/design-frontend/SKILL.md +143 -0
  202. package/skills/design-generative-art/SKILL.md +474 -0
  203. package/skills/design-mobile-first/SKILL.md +506 -0
  204. package/skills/design-motion/SKILL.md +333 -0
  205. package/skills/design-motion/references/delight-interactions.md +191 -0
  206. package/skills/design-prd/SKILL.md +443 -0
  207. package/skills/design-system/SKILL.md +457 -0
  208. package/skills/design-theme/SKILL.md +226 -0
  209. package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
  210. package/skills/docs-adr/SKILL.md +168 -0
  211. package/skills/docs-coauthor/SKILL.md +368 -0
  212. package/skills/docs-comparison-pages/SKILL.md +117 -0
  213. package/skills/docs-domain-modeling/SKILL.md +97 -0
  214. package/skills/docs-launch-kit/SKILL.md +139 -0
  215. package/skills/docs-writer/SKILL.md +469 -0
  216. package/skills/enhance-agent-guardrails/SKILL.md +164 -0
  217. package/skills/enhance-arch-boundaries/SKILL.md +154 -0
  218. package/skills/enhance-capacitor-ui/SKILL.md +463 -0
  219. package/skills/enhance-capacitor-ui/references/details.md +750 -0
  220. package/skills/enhance-email-deliverability/SKILL.md +143 -0
  221. package/skills/enhance-growth-loops/SKILL.md +122 -0
  222. package/skills/enhance-lifecycle-email/SKILL.md +130 -0
  223. package/skills/enhance-motion/SKILL.md +193 -0
  224. package/skills/enhance-onboarding/SKILL.md +148 -0
  225. package/skills/enhance-pwa/SKILL.md +304 -0
  226. package/skills/enhance-readability/SKILL.md +146 -0
  227. package/skills/enhance-readme/SKILL.md +496 -0
  228. package/skills/enhance-readme/package-lock.json +187 -0
  229. package/skills/enhance-readme/package.json +17 -0
  230. package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
  231. package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
  232. package/skills/enhance-skill-prompts/SKILL.md +167 -0
  233. package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
  234. package/skills/enhance-web-conversion/SKILL.md +155 -0
  235. package/skills/enhance-web-forms/SKILL.md +154 -0
  236. package/skills/enhance-web-instant-nav/SKILL.md +138 -0
  237. package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
  238. package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
  239. package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
  240. package/skills/enhance-web-landing/SKILL.md +459 -0
  241. package/skills/enhance-web-landing/references/details.md +773 -0
  242. package/skills/enhance-web-redesign/SKILL.md +228 -0
  243. package/skills/enhance-web-seo/SKILL.md +276 -0
  244. package/skills/enhance-web-ui/SKILL.md +473 -0
  245. package/skills/enhance-web-ui/references/details.md +674 -0
  246. package/skills/enhance-web-ux/HEURISTICS.md +242 -0
  247. package/skills/enhance-web-ux/PATTERNS.md +375 -0
  248. package/skills/enhance-web-ux/SKILL.md +464 -0
  249. package/skills/enhance-web-ux/examples.md +222 -0
  250. package/skills/enhance-web-ux/references/details.md +406 -0
  251. package/skills/enhance-web-web3d/SKILL.md +397 -0
  252. package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
  253. package/skills/handoff/SKILL.md +66 -0
  254. package/skills/housekeep-backlog/SKILL.md +149 -0
  255. package/skills/housekeep-dead-code/SKILL.md +387 -0
  256. package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
  257. package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
  258. package/skills/housekeep-design/SKILL.md +207 -0
  259. package/skills/housekeep-files/SKILL.md +220 -0
  260. package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
  261. package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
  262. package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
  263. package/skills/housekeep-gates/SKILL.md +174 -0
  264. package/skills/iterate-agent-harness/SKILL.md +137 -0
  265. package/skills/iterate-gtm-weekly/SKILL.md +103 -0
  266. package/skills/iterate-post-launch/SKILL.md +292 -0
  267. package/skills/meta-mcp-builder/SKILL.md +313 -0
  268. package/skills/meta-skill-creator/SKILL.md +304 -0
  269. package/skills/mobile-capacitor-platform/SKILL.md +104 -0
  270. package/skills/mobile-emulator-start/SKILL.md +296 -0
  271. package/skills/mobile-emulator-test/SKILL.md +491 -0
  272. package/skills/mobile-emulator-test/references/details.md +478 -0
  273. package/skills/mobile-rn-performance/SKILL.md +107 -0
  274. package/skills/mobile-rn-screen/SKILL.md +476 -0
  275. package/skills/mobile-rn-screen/references/details.md +785 -0
  276. package/skills/mushi-health/SKILL.md +206 -0
  277. package/skills/mushi-integration/SKILL.md +257 -0
  278. package/skills/plan-aeo-readiness/SKILL.md +166 -0
  279. package/skills/plan-antislop/SKILL.md +281 -0
  280. package/skills/plan-aso/SKILL.md +149 -0
  281. package/skills/plan-backup-dr/SKILL.md +131 -0
  282. package/skills/plan-capacitor-hardening/SKILL.md +217 -0
  283. package/skills/plan-data-integrity/SKILL.md +187 -0
  284. package/skills/plan-dead-code/SKILL.md +386 -0
  285. package/skills/plan-dead-code/references/knip-config.md +214 -0
  286. package/skills/plan-dead-code/references/output-templates.md +133 -0
  287. package/skills/plan-dead-code/references/preservation-contract.md +50 -0
  288. package/skills/plan-dead-code/references/residue-greps.md +84 -0
  289. package/skills/plan-dependency-provenance/SKILL.md +200 -0
  290. package/skills/plan-docs-sync/SKILL.md +143 -0
  291. package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
  292. package/skills/plan-docs-sync/references/output-templates.md +33 -0
  293. package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
  294. package/skills/plan-error-handling/SKILL.md +205 -0
  295. package/skills/plan-gtm/SKILL.md +276 -0
  296. package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
  297. package/skills/plan-input-validation/SKILL.md +179 -0
  298. package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
  299. package/skills/plan-mobile-readiness/SKILL.md +171 -0
  300. package/skills/plan-perf-audit/SKILL.md +145 -0
  301. package/skills/plan-perf-audit/references/audit-scope.md +51 -0
  302. package/skills/plan-perf-audit/references/output-templates.md +33 -0
  303. package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
  304. package/skills/plan-pricing/SKILL.md +173 -0
  305. package/skills/plan-privacy-compliance/SKILL.md +148 -0
  306. package/skills/plan-rls-audit/SKILL.md +231 -0
  307. package/skills/plan-secrets-audit/SKILL.md +181 -0
  308. package/skills/plan-security-audit/SKILL.md +168 -0
  309. package/skills/plan-security-audit/references/output-templates.md +36 -0
  310. package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
  311. package/skills/plan-security-audit/references/preservation-contract.md +18 -0
  312. package/skills/plan-stub-checker/SKILL.md +216 -0
  313. package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
  314. package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
  315. package/skills/plan-stub-checker/references/output-templates.md +63 -0
  316. package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
  317. package/skills/plan-test-coverage/SKILL.md +170 -0
  318. package/skills/plan-test-coverage/references/methodology.md +54 -0
  319. package/skills/plan-test-coverage/references/output-templates.md +34 -0
  320. package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
  321. package/skills/plan-uiux-unification/SKILL.md +230 -0
  322. package/skills/plan-uiux-unification/references/output-templates.md +67 -0
  323. package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
  324. package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
  325. package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
  326. package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
  327. package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
  328. package/skills/research/SKILL.md +422 -0
  329. package/skills/test-exploratory/SKILL.md +165 -0
  330. package/skills/test-exploratory/references/charter-template.md +29 -0
  331. package/skills/test-load/SKILL.md +126 -0
  332. package/skills/test-mutation/SKILL.md +160 -0
  333. package/skills/test-playwright/SKILL.md +354 -0
  334. package/skills/test-qa/SKILL.md +364 -0
  335. package/skills/test-qa/references/details.md +268 -0
  336. package/skills/test-red-team/SKILL.md +387 -0
  337. package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
  338. package/skills/test-unit/SKILL.md +259 -0
  339. package/skills/test-unit/references/details.md +267 -0
  340. package/skills/test-visual-regression/SKILL.md +132 -0
  341. package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
  342. package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
  343. package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
  344. package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
  345. package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
  346. package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
  347. package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
  348. package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
  349. package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
  350. package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
  351. package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
  352. package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
  353. package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  354. package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  355. package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  356. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  357. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  358. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  359. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  360. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
  361. package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  362. package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  363. package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  364. package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  365. package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
  366. package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
  367. package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  368. package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  369. package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
  370. package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
  371. package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
  372. package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
  373. package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
  374. package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
  375. package/skills/workflow-build-feature/SKILL.md +118 -0
  376. package/skills/workflow-coding-discipline/SKILL.md +140 -0
  377. package/skills/workflow-environment-ready/SKILL.md +128 -0
  378. package/skills/workflow-feature-flag/SKILL.md +262 -0
  379. package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
  380. package/skills/workflow-fix-and-ship/SKILL.md +136 -0
  381. package/skills/workflow-git-commit/SKILL.md +200 -0
  382. package/skills/workflow-green-repo/SKILL.md +166 -0
  383. package/skills/workflow-grilling/SKILL.md +73 -0
  384. package/skills/workflow-gtm/SKILL.md +153 -0
  385. package/skills/workflow-housekeep/SKILL.md +453 -0
  386. package/skills/workflow-housekeep/references/templates.md +109 -0
  387. package/skills/workflow-launch-ready/SKILL.md +145 -0
  388. package/skills/workflow-merge-conflicts/SKILL.md +62 -0
  389. package/skills/workflow-onboard/SKILL.md +99 -0
  390. package/skills/workflow-parallel-agents/SKILL.md +164 -0
  391. package/skills/workflow-pr/SKILL.md +197 -0
  392. package/skills/workflow-quality-gate/SKILL.md +147 -0
  393. package/skills/workflow-refactor/SKILL.md +274 -0
  394. package/skills/workflow-release-prep/SKILL.md +207 -0
  395. package/skills/workflow-ship-and-observe/SKILL.md +164 -0
  396. package/skills/workflow-spec-tdd/SKILL.md +141 -0
  397. package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
  398. package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
  399. package/skills-cursor/babysit/SKILL.md +17 -0
  400. package/skills-cursor/canvas/SKILL.md +142 -0
  401. package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
  402. package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
  403. package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
  404. package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
  405. package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
  406. package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
  407. package/skills-cursor/canvas/sdk/index.d.ts +47 -0
  408. package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
  409. package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
  410. package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
  411. package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
  412. package/skills-cursor/create-hook/SKILL.md +238 -0
  413. package/skills-cursor/create-rule/SKILL.md +185 -0
  414. package/skills-cursor/create-skill/SKILL.md +269 -0
  415. package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
  416. package/skills-cursor/create-subagent/SKILL.md +228 -0
  417. package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
  418. package/skills-cursor/shell/SKILL.md +22 -0
  419. package/skills-cursor/split-to-prs/SKILL.md +47 -0
  420. package/skills-cursor/statusline/SKILL.md +193 -0
  421. package/skills-cursor/update-cli-config/SKILL.md +85 -0
  422. package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
  423. package/skills.sh.json +296 -0
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: Require frontend changes and their DB/RPC/RLS/storage/secret dependencies to ship and be remotely verified together. Apply when implementing code that reads or writes backend state. Do not apply to plan-* or present-then-stop audits; production data mutation still requires confirmation.
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Full-Stack Ship Discipline
7
+
8
+ A feature is **not done** when the UI compiles — it is done when the flow
9
+ works end-to-end against the **remote** backend the user actually hits. The
10
+ recurring failure this prevents: a migration file authored beside a feature
11
+ is never deployed, the live API 404s, and the bug masquerades as a UI issue.
12
+
13
+ 1. **Inventory backend dependencies first.** Before editing components ask:
14
+ does this read/write data, call an RPC, or depend on a table / column /
15
+ function / policy / bucket / secret? Fix those in the same turn.
16
+ 2. **Deploy schema, don't just author it.** Supabase: `apply_migration` /
17
+ `execute_sql` on the confirmed `project_id`, then verify in the same turn
18
+ — re-query `information_schema` / `pg_proc` / `pg_policies`, exercise the
19
+ surface as `anon` / `authenticated`, check `query_logs` and `get_advisors`.
20
+ Other stacks: run the real deploy command (`prisma migrate deploy`,
21
+ `drizzle-kit push`, `rails db:migrate`, …) against the confirmed
22
+ environment before the turn ends.
23
+ 3. **Keep file and deploy in sync.** SQL applied via MCP also gets a matching
24
+ versioned file in the repo's migrations folder. Do not `git push` unless
25
+ the user asked in this turn.
26
+ 4. **Edge functions, secrets, RLS, buckets, and cron jobs count as schema** —
27
+ deploy and configure them with the UI change (`verify_jwt`, CORS, keys).
28
+ 5. **Schema vs data.** Deploy schema the user asked to ship without
29
+ re-asking — the request was the approval. Ask before mutating production
30
+ data (`DELETE` / `TRUNCATE` / `UPDATE` on real rows) — it is hard to reverse.
31
+ 6. **Do not attach during a present-then-stop pass.** If the active skill is
32
+ `plan-*` or a read-only `audit-*`, emit findings/plan only — do not
33
+ `apply_migration` or deploy until the user approves a phase.
34
+
35
+ Done means: remote objects verified to exist, anon + authenticated paths
36
+ exercised, migration file on disk, and the frontend observed hitting a 200 —
37
+ not a stale 404.
@@ -0,0 +1,63 @@
1
+ # Native RN-monorepo rules (Cursor)
2
+
3
+ Drop-in rules for a React Native + Web monorepo where the developer
4
+ is on **Linux/Windows (no Mac)** and iOS verification is **CI-only**.
5
+
6
+ ## What's here
7
+
8
+ | Rule | Auto-attaches when |
9
+ |---|---|
10
+ | `_project.mdc` | always (`alwaysApply: true`) — declares the no-Mac dev env |
11
+ | `native-android.mdc` | `android/**`, `*.kt`, `*.kts`, `*.gradle`, `AndroidManifest.xml` |
12
+ | `native-ios.mdc` | `ios/**`, `*.swift`, `*.m`, `*.mm`, `*.h`, `Podfile`, `Info.plist` |
13
+ | `react-native-js.mdc` | `src/**/*.{ts,tsx}`, `App.tsx`, `index.{js,ts}`, Metro/Babel configs |
14
+ | `web.mdc` | `web/**`, `packages/web/**` |
15
+
16
+ ## Install into a project
17
+
18
+ ```bash
19
+ mkdir -p <project>/.cursor/rules
20
+ cp ~/skills/rules/native-rn-monorepo/*.mdc <project>/.cursor/rules/
21
+ ```
22
+
23
+ Rename the files to match the project's existing naming if needed
24
+ (e.g. prefix `rn-monorepo-` to avoid collisions).
25
+ Claude Code reads `.claude/rules/*.md` instead of `.cursor/rules/`.
26
+ Copy the same files there with a `.md` extension; leave `_project`
27
+ without frontmatter so it loads at session start, and translate each
28
+ `globs:` line into `paths:` frontmatter so the target-specific rules
29
+ load only when a matching file is read.
30
+
31
+ ## Customisation required after install
32
+
33
+ Open each rule and:
34
+
35
+ 1. Replace path globs to match the actual repo layout (e.g.
36
+ `apps/mobile/android/` instead of `android/` if you use a
37
+ nested-package monorepo).
38
+ 2. Fill in `<FILL IN>` placeholders in `react-native-js.mdc` (state
39
+ library, networking client, styling approach) and `web.mdc`
40
+ (framework, styling, state).
41
+ 3. Adjust the iOS workflow filename references in any companion
42
+ commands you also install.
43
+
44
+ ## Why these rules?
45
+
46
+ Most RN agent guidance assumes the developer can build iOS locally.
47
+ This bundle inverts that assumption:
48
+
49
+ - iOS edits route through CI (`gh workflow run …`) instead of
50
+ Xcode.
51
+ - Verification happens via `/rn-verify` (TS + lint + Android Kotlin
52
+ compile) before triggering the expensive macOS runner.
53
+ - TestFlight is the install target for iOS — there's no simulator
54
+ in the dev loop.
55
+
56
+ This is the cheapest, fastest path for a solo / small-team RN
57
+ project that doesn't justify dedicated Mac hardware.
58
+
59
+ ## Companion commands
60
+
61
+ The matching slash-command bundle lives at
62
+ `~/skills/commands/native-rn-monorepo/`. Install both
63
+ together for the full workflow.
@@ -0,0 +1,69 @@
1
+ ---
2
+ description: Project-wide conventions and developer environment context (RN monorepo, no-Mac dev)
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Project conventions
7
+
8
+ ## Targets
9
+
10
+ - `android/` — native Android (Kotlin/Java/Gradle)
11
+ - `ios/` — native iOS (Swift/Obj-C/Xcode)
12
+ - `src/` — shared React Native JS/TS
13
+ - `web/` — web build (separate target)
14
+
15
+ > Adjust these paths if your monorepo uses a different layout
16
+ > (e.g. `apps/mobile/{android,ios,src}/` or `packages/web/`).
17
+
18
+ ## Developer environment (no Mac)
19
+
20
+ The developer works on Linux/Windows; there is no Mac. This means:
21
+
22
+ - iOS cannot be built or tested locally, so `xcodebuild`, `pod install`,
23
+ `xcrun simctl`, and Xcode are not options to hand the developer;
24
+ iOS work routes through CI.
25
+ - iOS verification happens entirely on **GitHub Actions CI** with
26
+ macOS runners.
27
+ - iOS distribution happens via **TestFlight** — the developer
28
+ installs builds on a real iPhone from TestFlight after CI uploads
29
+ them.
30
+ - Android local dev uses ADB + Android emulator + Metro for hot
31
+ reload.
32
+ - For iOS-affecting changes, the loop is: edit → verify TS / lint /
33
+ Android compile locally → push → CI builds iOS → TestFlight →
34
+ install on device.
35
+
36
+ When the developer reports an iOS issue, look in shared JS first —
37
+ most "iOS bugs" also reproduce on Android, the only place they can be
38
+ verified locally. If it is genuinely iOS-specific (native bridge,
39
+ `Podfile`, iOS-only code), edit the file and trigger CI instead of
40
+ asking the developer to run `pod install` or open Xcode;
41
+ `/ios-ci-logs` reads the failure.
42
+
43
+ ## Hard rules
44
+
45
+ - Identify the target before editing. The path tells you which.
46
+ - Each target's patterns stay in its own tree:
47
+ - No JSX/React in `android/` or `ios/`
48
+ - No native bridge code in `src/`
49
+ - No `react-native` imports in `web/` (unless `react-native-web`
50
+ is configured)
51
+ - No browser APIs (`window`, `document`, `localStorage`) in `src/`
52
+ - Never declare a task complete without running the verification
53
+ command for the affected target.
54
+ - For iOS-affecting changes: declare "ready to ship to CI" — never
55
+ claim "iOS verified" since you cannot.
56
+ - TypeScript strict; do not introduce `any` without an inline
57
+ justification comment.
58
+ - Never disable a lint rule inline without an explanatory comment.
59
+ - Never commit secrets, signing keys, `local.properties`, `.env`,
60
+ or `*.keystore`.
61
+
62
+ ## When unsure
63
+
64
+ If the request is ambiguous about which target it touches, read the
65
+ relevant trees first; ask before editing only if the paths still
66
+ don't settle it. A single feature may need parallel changes in
67
+ `src/` (JS) and `android/` + `ios/` (native bridge) — call this out
68
+ explicitly. For iOS native changes, also note that verification
69
+ will require a CI run and explain the wait time.
@@ -0,0 +1,72 @@
1
+ ---
2
+ description: Native Android (Kotlin/Java/Gradle) conventions
3
+ globs: android/**, **/*.kt, **/*.kts, **/*.gradle, **/AndroidManifest.xml
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Native Android
8
+
9
+ Stack: Kotlin first, Java only when required by RN bridge or
10
+ legacy code.
11
+ Build: Gradle (Kotlin DSL where present).
12
+ Min SDK / target SDK / compile SDK: read `android/build.gradle`;
13
+ change them only on explicit instruction — they cascade through AGP,
14
+ Gradle, and every native dependency.
15
+
16
+ > Adjust `android/` to your repo's actual path (e.g.
17
+ > `apps/mobile/android/`).
18
+
19
+ ## Conventions
20
+
21
+ - Package matches what's already declared in `AndroidManifest.xml`
22
+ and `build.gradle` `namespace`.
23
+ - Native modules for RN go under
24
+ `android/app/src/main/java/<package>/modules/`.
25
+ - Each native module = one `*Module.kt` (extends
26
+ `ReactContextBaseJavaModule`) + one `*Package.kt`.
27
+ - Register packages in `MainApplication.kt` unless RN autolinking
28
+ already picks them up.
29
+ - Async: Coroutines + Flow (`AsyncTask` is deprecated since API 30;
30
+ a raw `Thread` has no lifecycle scope). RxJava only if the project
31
+ already uses it.
32
+ - Logging: `android.util.Log` with tag = class name. Wrap verbose
33
+ logs in `BuildConfig.DEBUG` checks.
34
+ - Strings: `android/app/src/main/res/values/strings.xml`. No
35
+ hardcoded user-facing text.
36
+ - Permissions: declare in `AndroidManifest.xml` AND request at
37
+ runtime for dangerous permissions (camera, mic, location, storage
38
+ on older API levels, notifications on API 33+).
39
+ - Compose (if used): follow `MaterialTheme` tokens, no raw
40
+ `Color()` literals in screen code.
41
+
42
+ ## Build verification (after any change)
43
+
44
+ Run `/android-build` or directly:
45
+
46
+ ```
47
+ cd android && ./gradlew :app:assembleDebug --console=plain
48
+ ```
49
+
50
+ The change is verified only on `BUILD SUCCESSFUL`; on `BUILD FAILED`
51
+ the first error is usually the root cause and later ones cascade.
52
+
53
+ If you hit `OutOfMemoryError` or metaspace errors, add to
54
+ `android/gradle.properties`:
55
+
56
+ ```
57
+ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m
58
+ org.gradle.daemon=true
59
+ org.gradle.parallel=true
60
+ org.gradle.caching=true
61
+ ```
62
+
63
+ ## Boundaries
64
+
65
+ - Do not add a new native module if the JS-side library can do it.
66
+ - Do not edit `MainActivity.kt` ReactRootView wiring without
67
+ explicit instruction.
68
+ - Do not bump `compileSdk`, `targetSdk`, AGP, or Gradle wrapper
69
+ versions casually — these cascade.
70
+ - Do not commit `local.properties`, `*.keystore`, or
71
+ `google-services.json` if it's gitignored.
72
+ - Do not edit auto-generated files under `android/app/build/`.
@@ -0,0 +1,61 @@
1
+ ---
2
+ description: Native iOS conventions — verification is CI-only (no Mac locally)
3
+ globs: ios/**, **/*.swift, **/*.m, **/*.mm, **/*.h, **/Podfile, **/Podfile.lock, **/Info.plist
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Native iOS
8
+
9
+ The developer has no Mac: iOS code is written here and verified on CI,
10
+ so local Xcode, `pod install`, and `xcodebuild` are not options to
11
+ suggest.
12
+
13
+ > Adjust `ios/` to your repo's actual path (e.g.
14
+ > `apps/mobile/ios/`).
15
+
16
+ Stack: Swift first, Obj-C only for RN bridge boilerplate.
17
+ Build: Xcode + CocoaPods on the CI runner.
18
+ Deployment target: read `ios/Podfile` `platform :ios, 'X.Y'`; raise it
19
+ only after checking which RN libraries it breaks.
20
+
21
+ ## Conventions
22
+
23
+ - Native modules for RN: `*.swift` for logic + `*.m` bridge with
24
+ `RCT_EXTERN_METHOD` declarations.
25
+ - Async: Swift Concurrency (`async`/`await`, `Task`). Combine only
26
+ where the API requires it.
27
+ - No callback pyramids. No `DispatchQueue.main.async` wrapping
28
+ unless updating UIKit on a background queue.
29
+ - Logging: `os_log` or `Logger` with subsystem matching the bundle
30
+ ID.
31
+ - UI: SwiftUI for new screens; programmatic UIKit if existing
32
+ patterns require it.
33
+ - Strings: `Localizable.strings`. No hardcoded user-facing text.
34
+ - Permissions: usage descriptions in `Info.plist`
35
+ (NSCameraUsageDescription, NSMicrophoneUsageDescription, etc.)
36
+ AND runtime requests.
37
+
38
+ ## Verification (CI only)
39
+
40
+ After editing iOS files:
41
+
42
+ 1. Make the edit.
43
+ 2. Suggest `/rn-verify` to catch JS/Android-side issues.
44
+ 3. When ready, suggest `/rn-ship-ios` to push and trigger CI.
45
+ 4. If CI fails, use `/ios-ci-logs` to diagnose.
46
+
47
+ Special case: if the change is purely in `Info.plist` strings
48
+ (e.g., adding a permission description), it's worth flagging that
49
+ the change is low-risk but must still go through CI.
50
+
51
+ ## Boundaries
52
+
53
+ - Do not edit `*.pbxproj` by hand. The developer can't open Xcode
54
+ to fix a corrupted project file.
55
+ - Do not bump `Podfile.lock` unless that's the explicit task —
56
+ `pod install` runs on CI.
57
+ - Do not change `IPHONEOS_DEPLOYMENT_TARGET` without checking
58
+ which RN libs it breaks.
59
+ - Do not commit `.xcuserstate`, `xcuserdata/`, or `ios/build/`.
60
+ - Do not claim iOS changes are verified just because TS passed —
61
+ the developer must trigger CI.
@@ -0,0 +1,78 @@
1
+ ---
2
+ description: React Native JS/TS shared layer conventions
3
+ globs: src/**/*.{ts,tsx}, App.tsx, App.ts, index.js, index.ts, metro.config.js, babel.config.js
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # React Native (JS/TS layer)
8
+
9
+ Shared code that runs on both Android and iOS. Does NOT include
10
+ native module code (that lives in `android/` or `ios/`).
11
+
12
+ > Adjust `src/` to your repo's actual path (e.g.
13
+ > `apps/mobile/src/`).
14
+
15
+ ## Stack assumptions (verify against `package.json` before assuming)
16
+
17
+ - React Native — version per `package.json`
18
+ - TypeScript strict
19
+ - Navigation: React Navigation
20
+ - State: <FILL IN — Zustand / Redux Toolkit / Jotai / React Query /
21
+ Context>
22
+ - Networking: <FILL IN — fetch / axios / ky>
23
+ - Styling: <FILL IN — StyleSheet.create / styled-components /
24
+ NativeWind>
25
+
26
+ If unsure, grep the codebase before introducing a new pattern.
27
+
28
+ ## Conventions
29
+
30
+ - Components in `src/components/`, screens in `src/screens/`,
31
+ hooks in `src/hooks/`, utils in `src/utils/`.
32
+ - One component per file. Named export. File name matches the
33
+ component name (PascalCase.tsx).
34
+ - Hooks prefix `use`; custom hook files start with lowercase `use`.
35
+ - Platform-specific code:
36
+ - Small divergence: `Platform.OS === 'ios'` / `'android'` checks
37
+ at the top of a function
38
+ - Large divergence: `*.ios.tsx` / `*.android.tsx` files with
39
+ shared interface
40
+ - Persistence: `@react-native-async-storage/async-storage`. Never
41
+ `localStorage`.
42
+ - Environment vars: via `react-native-config` or `react-native-dotenv`
43
+ (whichever the repo uses). Never hardcoded.
44
+ - Imports: absolute imports if `tsconfig.json` paths is set up;
45
+ otherwise relative within a feature module.
46
+
47
+ ## Hard exclusions
48
+
49
+ - Never import from `react-native-web` in this layer.
50
+ - Never use browser globals (`window`, `document`,
51
+ `navigator.geolocation` directly — use the RN APIs).
52
+ - Never bypass the bridge with raw native calls; if you need native
53
+ behavior, add a typed native module under `android/` and `ios/`.
54
+
55
+ ## Verification
56
+
57
+ ```
58
+ npx tsc --noEmit
59
+ npm run lint # if a lint script exists
60
+ ```
61
+
62
+ For runtime sanity:
63
+
64
+ ```
65
+ npx react-native start --reset-cache
66
+ ```
67
+
68
+ ## Boundaries
69
+
70
+ - Do not commit `.env*` files unless they are the example/template
71
+ (`.env.example`).
72
+ - Do not pin RN to a non-stable version (`0.x.0-rc.x`) without
73
+ explicit instruction.
74
+ - Do not add new dependencies without checking they support both
75
+ iOS and Android and the current RN version.
76
+ - Do not run codegen scripts (`pod install`, `gradle sync`)
77
+ silently — flag them as side effects. Note: `pod install` is
78
+ CI-only here.
@@ -0,0 +1,60 @@
1
+ ---
2
+ description: Web build conventions (separate from native and RN JS)
3
+ globs: web/**, packages/web/**
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Web build
8
+
9
+ Web-only target; it shares no patterns with the RN/native side.
10
+ Shared logic comes in through an explicit shared package
11
+ (`packages/shared/`), not from the RN `src/` tree.
12
+
13
+ > Adjust the globs to your repo's actual web path (e.g. `app/**`,
14
+ > `components/**` for a Next.js root layout).
15
+
16
+ ## Stack assumptions (verify before assuming)
17
+
18
+ - Framework: <FILL IN — Next.js / Vite + React / RN Web>
19
+ - Routing: per the framework's convention
20
+ - Styling: <FILL IN — Tailwind / CSS Modules / styled-components>
21
+ - State: <FILL IN — React Query / Zustand / Redux Toolkit>
22
+
23
+ ## Conventions
24
+
25
+ - React + hooks, TypeScript strict.
26
+ - Web-only APIs are fine here: `window`, `document`, `localStorage`,
27
+ `IntersectionObserver`, etc.
28
+ - Server components / SSR (if Next.js): be deliberate about
29
+ `'use client'` boundaries.
30
+ - Images: optimized via the framework's image component, not raw
31
+ `<img>` for above-the-fold content.
32
+ - No `react-native` imports unless `react-native-web` is explicitly
33
+ configured.
34
+
35
+ ## Hard exclusions
36
+
37
+ - Never import from the RN `src/` tree unless there's an explicit
38
+ shared package (e.g., `packages/shared/`).
39
+ - Never assume mobile code runs here. RN-only libraries will break
40
+ the web build.
41
+ - Never use native bridge code or `Platform.OS` checks here.
42
+
43
+ ## Verification
44
+
45
+ ```
46
+ cd web && npm run build
47
+ ```
48
+
49
+ Or for a quick check without building:
50
+
51
+ ```
52
+ cd web && npm run typecheck
53
+ ```
54
+
55
+ ## Boundaries
56
+
57
+ - Do not duplicate logic that already exists in a shared package —
58
+ import it.
59
+ - Do not introduce a new state library if one is already in use.
60
+ - Do not commit `.next/`, `dist/`, or `build/` output.
@@ -0,0 +1,54 @@
1
+ ---
2
+ description: Component patterns and UI conventions
3
+ globs: "**/*.tsx"
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Component Conventions
8
+
9
+ Performance (LCP images, INP, bfcache) → `web-performance.mdc`.
10
+
11
+ ## Reuse First
12
+ - Check `@/components/ui/` before creating any UI element; a second Button or Dialog forks the design system
13
+ - Import existing primitives: Button, Card, Input, Dialog, etc.
14
+ - Use `cn()` from `@/lib/utils` for className composition
15
+ - Use CVA (class-variance-authority) for component variants
16
+
17
+ ## Component Structure
18
+ ```tsx
19
+ // 1. Imports
20
+ import { cn } from '@/lib/utils'
21
+
22
+ // 2. Types (or import from types.ts if >5 lines)
23
+ interface Props { ... }
24
+
25
+ // 3. Component (named export, not default)
26
+ export function ComponentName({ prop1, prop2, className }: Props) {
27
+ // hooks first
28
+ // derived state
29
+ // handlers
30
+ // render
31
+ }
32
+ ```
33
+
34
+ ## Rules
35
+ - Server Components by default — only add `'use client'` at leaf components
36
+ - Max 300 lines per component — extract sub-components if larger
37
+ - Props destructured in function signature
38
+ - No inline styles — use Tailwind classes
39
+ - No business logic in components — extract to hooks or utils
40
+ - All interactive elements need hover, focus, active, and disabled states
41
+ - All async UI needs loading, error, and empty states
42
+
43
+ ## Naming
44
+ - Components: `PascalCase.tsx`
45
+ - Hooks: `useCamelCase.ts`
46
+ - Utils: `camelCase.ts`
47
+ - Types: `types.ts` or `camelCase.types.ts`
48
+
49
+ ## Accessibility
50
+ - Semantic HTML elements (`<button>`, `<nav>`, `<main>`)
51
+ - All inputs have associated `<label>` or `aria-label`
52
+ - All images have descriptive `alt` text
53
+ - Focus indicators visible on keyboard navigation
54
+ - `aria-live` for dynamic content updates
@@ -0,0 +1,77 @@
1
+ ---
2
+ description: Data fetching patterns with TanStack Query, Server Components, and Supabase
3
+ globs: "**/*.ts,**/*.tsx"
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Data Fetching Conventions
8
+
9
+ ## Decision Matrix
10
+
11
+ | Context | Pattern |
12
+ |---------|---------|
13
+ | Server Component (initial load) | Direct Supabase/Prisma query |
14
+ | Client Component (read) | TanStack Query `useQuery` |
15
+ | Client Component (mutation) | TanStack Query `useMutation` or Server Action |
16
+ | Form submission | Server Action with `useActionState` |
17
+ | Real-time updates | Supabase Realtime subscription |
18
+ | URL-driven state | nuqs `useQueryStates` |
19
+
20
+ ## TanStack Query Patterns
21
+
22
+ ```tsx
23
+ // Query with proper key factory
24
+ const queryKeys = {
25
+ all: ['features'] as const,
26
+ lists: () => [...queryKeys.all, 'list'] as const,
27
+ list: (filters: Filters) => [...queryKeys.lists(), filters] as const,
28
+ details: () => [...queryKeys.all, 'detail'] as const,
29
+ detail: (id: string) => [...queryKeys.details(), id] as const,
30
+ }
31
+
32
+ // Hook
33
+ export function useFeatures(filters: Filters) {
34
+ return useQuery({
35
+ queryKey: queryKeys.list(filters),
36
+ queryFn: () => fetchFeatures(filters),
37
+ staleTime: 5 * 60 * 1000, // 5 minutes
38
+ })
39
+ }
40
+ ```
41
+
42
+ ## Next.js 16 caching
43
+
44
+ Caching is explicit: `'use cache'` + `cacheComponents` (static shell / dynamic
45
+ holes). Do not assume implicit `fetch` caching. Turbopack is default for
46
+ dev and build. React Compiler: `reactCompiler: true`.
47
+
48
+ ## Server Component Prefetching
49
+
50
+ ```tsx
51
+ // Prefetch in Server Component, hydrate in Client
52
+ import { HydrationBoundary, dehydrate } from '@tanstack/react-query'
53
+
54
+ export default async function Page() {
55
+ const queryClient = new QueryClient()
56
+ await queryClient.prefetchQuery({
57
+ queryKey: ['features'],
58
+ queryFn: fetchFeatures,
59
+ })
60
+
61
+ return (
62
+ <HydrationBoundary state={dehydrate(queryClient)}>
63
+ <FeatureList />
64
+ </HydrationBoundary>
65
+ )
66
+ }
67
+ ```
68
+
69
+ ## Error Handling
70
+ - Always handle `error` state from `useQuery`
71
+ - Show `<ErrorState>` component with retry button
72
+ - Mutations: use `onSuccess` for cache invalidation, `onError` for toast
73
+
74
+ ## Caching
75
+ - Set `staleTime` based on data freshness needs
76
+ - Use `queryClient.invalidateQueries` after mutations
77
+ - Use `revalidatePath` / `revalidateTag` in Server Actions
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: Git workflow and commit conventions
3
+ globs:
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Git Conventions
8
+
9
+ ## Branch Naming
10
+ ```
11
+ feature/description — New functionality
12
+ fix/description — Bug fixes
13
+ chore/description — Maintenance, deps, config
14
+ refactor/description — Code restructuring
15
+ docs/description — Documentation only
16
+ ```
17
+
18
+ ## Commit Messages
19
+ Conventional commit format:
20
+ ```
21
+ <type>(<scope>): <description>
22
+
23
+ [optional body with details]
24
+ ```
25
+
26
+ Types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `ci`
27
+
28
+ Examples:
29
+ - `feat(auth): add Google OAuth login`
30
+ - `fix(cart): prevent duplicate items on rapid clicks`
31
+ - `refactor(hooks): extract useDebounce from search component`
32
+
33
+ ## Rules
34
+
35
+ - Commit only what the task touched; scratch scripts, ad-hoc test files, and unrelated cleanup stay out (note pre-existing bugs as follow-ups instead)
36
+ - Atomic commits — one logical change per commit
37
+ - Never commit secrets, `.env` files, or API keys
38
+ - Never commit `node_modules/`, `.next/`, build artifacts
39
+ - Run `npm run build` before pushing to main
40
+ - Squash fixup commits before merging PRs
41
+ - Delete feature branches after merge
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: Supabase patterns and conventions for this project
3
+ globs: "**/*.ts,**/*.tsx"
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Supabase Conventions
8
+
9
+ ## Client Usage
10
+ - Use typed Supabase client from `@/lib/supabase`
11
+ - Always use `.select()` with specific columns (never `SELECT *`)
12
+ - Use `.single()` when expecting one row
13
+ - Handle errors: `const { data, error } = await supabase.from(...)`
14
+
15
+ ## RLS
16
+ - Enable RLS on every table; without it the publishable/anon key reads and writes every row
17
+ - Test policies after creation with Supabase MCP
18
+ - Use `auth.uid()` for user-scoped access
19
+ - Role-based access: `EXISTS` / `IN (select …)` subqueries against the membership table, or a `security definer` helper when the policy would otherwise recurse; wrap `auth.uid()` and helper functions as `(select auth.uid())` so Postgres evaluates them once per query, not per row
20
+
21
+ ## Migrations
22
+ - File naming: `YYYYMMDD_description.sql`
23
+ - Always include `created_at TIMESTAMPTZ DEFAULT now()`
24
+ - Always include `updated_at` with moddatetime trigger
25
+ - Always add indexes on foreign keys
26
+ - After migration: regenerate types with `supabase gen types typescript`
27
+
28
+ ## Edge Functions
29
+ - Verify JWT or API key in every function
30
+ - Handle CORS preflight OPTIONS requests
31
+ - Return proper status codes (401, 403, 400, 500)
32
+ - Use `Deno.env.get()` for secrets
33
+
34
+ ## Data Fetching
35
+ - Server Components: use Supabase server client directly
36
+ - Client Components: use TanStack Query with Supabase client
37
+ - Real-time: subscribe at component level, cleanup on unmount