create-xani-agentic-app 1.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 (563) hide show
  1. package/README.md +237 -0
  2. package/index.js +219 -0
  3. package/package.json +46 -0
  4. package/template/.agents/skills/ai-sdk/SKILL.md +78 -0
  5. package/template/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
  6. package/template/.agents/skills/ai-sdk/references/common-errors.md +443 -0
  7. package/template/.agents/skills/ai-sdk/references/devtools.md +52 -0
  8. package/template/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
  9. package/template/.agents/skills/better-auth-best-practices/SKILL.md +175 -0
  10. package/template/.agents/skills/checkpoint/SKILL.md +82 -0
  11. package/template/.agents/skills/create-spec/SKILL.md +132 -0
  12. package/template/.agents/skills/create-spec/references/action-required-template.md +53 -0
  13. package/template/.agents/skills/create-spec/references/readme-template.md +53 -0
  14. package/template/.agents/skills/create-spec/references/requirements-template.md +54 -0
  15. package/template/.agents/skills/create-spec/references/task-template.md +79 -0
  16. package/template/.agents/skills/find-skills/SKILL.md +142 -0
  17. package/template/.agents/skills/frontend-design/LICENSE.txt +177 -0
  18. package/template/.agents/skills/frontend-design/SKILL.md +42 -0
  19. package/template/.agents/skills/implement-feature/SKILL.md +189 -0
  20. package/template/.agents/skills/implement-feature/references/coder-prompt-template.md +46 -0
  21. package/template/.agents/skills/implement-feature/references/fix-prompt-template.md +38 -0
  22. package/template/.agents/skills/implement-feature/references/review-prompt-template.md +50 -0
  23. package/template/.agents/skills/mcp-builder/LICENSE.txt +202 -0
  24. package/template/.agents/skills/mcp-builder/SKILL.md +236 -0
  25. package/template/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
  26. package/template/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  27. package/template/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  28. package/template/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  29. package/template/.agents/skills/mcp-builder/scripts/connections.py +151 -0
  30. package/template/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
  31. package/template/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  32. package/template/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
  33. package/template/.agents/skills/nextjs/SKILL.md +434 -0
  34. package/template/.agents/skills/nextjs/overlay.yaml +284 -0
  35. package/template/.agents/skills/nextjs/references/app-router-files.md +94 -0
  36. package/template/.agents/skills/nextjs/references/async-patterns.md +87 -0
  37. package/template/.agents/skills/nextjs/references/bundling.md +180 -0
  38. package/template/.agents/skills/nextjs/references/data-patterns.md +297 -0
  39. package/template/.agents/skills/nextjs/references/debug-tricks.md +105 -0
  40. package/template/.agents/skills/nextjs/references/directives.md +73 -0
  41. package/template/.agents/skills/nextjs/references/error-handling.md +227 -0
  42. package/template/.agents/skills/nextjs/references/file-conventions.md +140 -0
  43. package/template/.agents/skills/nextjs/references/font.md +245 -0
  44. package/template/.agents/skills/nextjs/references/functions.md +108 -0
  45. package/template/.agents/skills/nextjs/references/hydration-error.md +91 -0
  46. package/template/.agents/skills/nextjs/references/image.md +173 -0
  47. package/template/.agents/skills/nextjs/references/metadata.md +301 -0
  48. package/template/.agents/skills/nextjs/references/parallel-routes.md +287 -0
  49. package/template/.agents/skills/nextjs/references/route-handlers.md +146 -0
  50. package/template/.agents/skills/nextjs/references/rsc-boundaries.md +159 -0
  51. package/template/.agents/skills/nextjs/references/runtime-selection.md +39 -0
  52. package/template/.agents/skills/nextjs/references/scripts.md +141 -0
  53. package/template/.agents/skills/nextjs/references/self-hosting.md +371 -0
  54. package/template/.agents/skills/nextjs/references/suspense-boundaries.md +67 -0
  55. package/template/.agents/skills/nextjs/upstream/SKILL.md +153 -0
  56. package/template/.agents/skills/nextjs/upstream/references/app-router-files.md +94 -0
  57. package/template/.agents/skills/nextjs/upstream/references/async-patterns.md +87 -0
  58. package/template/.agents/skills/nextjs/upstream/references/bundling.md +180 -0
  59. package/template/.agents/skills/nextjs/upstream/references/data-patterns.md +297 -0
  60. package/template/.agents/skills/nextjs/upstream/references/debug-tricks.md +105 -0
  61. package/template/.agents/skills/nextjs/upstream/references/directives.md +73 -0
  62. package/template/.agents/skills/nextjs/upstream/references/error-handling.md +227 -0
  63. package/template/.agents/skills/nextjs/upstream/references/file-conventions.md +140 -0
  64. package/template/.agents/skills/nextjs/upstream/references/font.md +245 -0
  65. package/template/.agents/skills/nextjs/upstream/references/functions.md +108 -0
  66. package/template/.agents/skills/nextjs/upstream/references/hydration-error.md +91 -0
  67. package/template/.agents/skills/nextjs/upstream/references/image.md +173 -0
  68. package/template/.agents/skills/nextjs/upstream/references/metadata.md +301 -0
  69. package/template/.agents/skills/nextjs/upstream/references/parallel-routes.md +287 -0
  70. package/template/.agents/skills/nextjs/upstream/references/route-handlers.md +146 -0
  71. package/template/.agents/skills/nextjs/upstream/references/rsc-boundaries.md +159 -0
  72. package/template/.agents/skills/nextjs/upstream/references/runtime-selection.md +39 -0
  73. package/template/.agents/skills/nextjs/upstream/references/scripts.md +141 -0
  74. package/template/.agents/skills/nextjs/upstream/references/self-hosting.md +371 -0
  75. package/template/.agents/skills/nextjs/upstream/references/suspense-boundaries.md +67 -0
  76. package/template/.agents/skills/playwright-cli/SKILL.md +344 -0
  77. package/template/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
  78. package/template/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
  79. package/template/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
  80. package/template/.agents/skills/playwright-cli/references/running-code.md +231 -0
  81. package/template/.agents/skills/playwright-cli/references/session-management.md +169 -0
  82. package/template/.agents/skills/playwright-cli/references/storage-state.md +275 -0
  83. package/template/.agents/skills/playwright-cli/references/test-generation.md +88 -0
  84. package/template/.agents/skills/playwright-cli/references/tracing.md +139 -0
  85. package/template/.agents/skills/playwright-cli/references/video-recording.md +143 -0
  86. package/template/.agents/skills/review-pr/SKILL.md +97 -0
  87. package/template/.agents/skills/security-scanner/SKILL.md +157 -0
  88. package/template/.agents/skills/security-scanner/references/A01-broken-access-control.md +136 -0
  89. package/template/.agents/skills/security-scanner/references/A02-security-misconfiguration.md +130 -0
  90. package/template/.agents/skills/security-scanner/references/A03-software-supply-chain-failures.md +117 -0
  91. package/template/.agents/skills/security-scanner/references/A04-cryptographic-failures.md +141 -0
  92. package/template/.agents/skills/security-scanner/references/A05-injection.md +155 -0
  93. package/template/.agents/skills/security-scanner/references/A06-insecure-design.md +145 -0
  94. package/template/.agents/skills/security-scanner/references/A07-authentication-failures.md +150 -0
  95. package/template/.agents/skills/security-scanner/references/A08-software-data-integrity-failures.md +132 -0
  96. package/template/.agents/skills/security-scanner/references/A09-security-logging-alerting-failures.md +130 -0
  97. package/template/.agents/skills/security-scanner/references/A10-mishandling-exceptional-conditions.md +154 -0
  98. package/template/.agents/skills/security-scanner/references/report-template.md +148 -0
  99. package/template/.agents/skills/shadcn/SKILL.md +246 -0
  100. package/template/.agents/skills/shadcn/agents/openai.yml +5 -0
  101. package/template/.agents/skills/shadcn/assets/shadcn-small.png +0 -0
  102. package/template/.agents/skills/shadcn/assets/shadcn.png +0 -0
  103. package/template/.agents/skills/shadcn/cli.md +276 -0
  104. package/template/.agents/skills/shadcn/customization.md +209 -0
  105. package/template/.agents/skills/shadcn/evals/evals.json +47 -0
  106. package/template/.agents/skills/shadcn/mcp.md +94 -0
  107. package/template/.agents/skills/shadcn/rules/base-vs-radix.md +306 -0
  108. package/template/.agents/skills/shadcn/rules/composition.md +195 -0
  109. package/template/.agents/skills/shadcn/rules/forms.md +192 -0
  110. package/template/.agents/skills/shadcn/rules/icons.md +101 -0
  111. package/template/.agents/skills/shadcn/rules/styling.md +162 -0
  112. package/template/.agents/skills/ship-it/SKILL.md +174 -0
  113. package/template/.agents/skills/skill-creator/LICENSE.txt +202 -0
  114. package/template/.agents/skills/skill-creator/SKILL.md +485 -0
  115. package/template/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  116. package/template/.agents/skills/skill-creator/agents/comparator.md +202 -0
  117. package/template/.agents/skills/skill-creator/agents/grader.md +223 -0
  118. package/template/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  119. package/template/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  120. package/template/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  121. package/template/.agents/skills/skill-creator/references/schemas.md +430 -0
  122. package/template/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  123. package/template/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  124. package/template/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  125. package/template/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  126. package/template/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  127. package/template/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  128. package/template/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  129. package/template/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  130. package/template/.agents/skills/skill-creator/scripts/utils.py +47 -0
  131. package/template/.agents/skills/vercel-react-best-practices/AGENTS.md +3750 -0
  132. package/template/.agents/skills/vercel-react-best-practices/README.md +123 -0
  133. package/template/.agents/skills/vercel-react-best-practices/SKILL.md +148 -0
  134. package/template/.agents/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  135. package/template/.agents/skills/vercel-react-best-practices/rules/_template.md +28 -0
  136. package/template/.agents/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  137. package/template/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  138. package/template/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  139. package/template/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  140. package/template/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  141. package/template/.agents/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  142. package/template/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  143. package/template/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  144. package/template/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  145. package/template/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  146. package/template/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  147. package/template/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  148. package/template/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  149. package/template/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  150. package/template/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  151. package/template/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  152. package/template/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  153. package/template/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  154. package/template/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  155. package/template/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  156. package/template/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  157. package/template/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  158. package/template/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  159. package/template/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  160. package/template/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  161. package/template/.agents/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  162. package/template/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  163. package/template/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  164. package/template/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  165. package/template/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  166. package/template/.agents/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  167. package/template/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  168. package/template/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  169. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  170. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  171. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  172. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  173. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  174. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  175. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  176. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  177. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  178. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  179. package/template/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  180. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  181. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  182. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  183. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  184. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  185. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  186. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  187. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  188. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  189. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  190. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  191. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  192. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  193. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  194. package/template/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  195. package/template/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  196. package/template/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  197. package/template/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  198. package/template/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  199. package/template/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  200. package/template/.agents/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  201. package/template/.agents/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  202. package/template/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  203. package/template/.agents/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  204. package/template/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  205. package/template/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  206. package/template/.claude/agents/better-auth-expert.md +189 -0
  207. package/template/.claude/agents/code-review.md +147 -0
  208. package/template/.claude/agents/coder.md +139 -0
  209. package/template/.claude/agents/deep-dive.md +133 -0
  210. package/template/.claude/agents/polar-payments-expert.md +140 -0
  211. package/template/.claude/agents/security-scanner.md +214 -0
  212. package/template/.claude/settings.local.json +15 -0
  213. package/template/.claude/skills/ai-sdk/SKILL.md +78 -0
  214. package/template/.claude/skills/ai-sdk/references/ai-gateway.md +66 -0
  215. package/template/.claude/skills/ai-sdk/references/common-errors.md +443 -0
  216. package/template/.claude/skills/ai-sdk/references/devtools.md +52 -0
  217. package/template/.claude/skills/ai-sdk/references/type-safe-agents.md +204 -0
  218. package/template/.claude/skills/better-auth-best-practices/SKILL.md +175 -0
  219. package/template/.claude/skills/caveman/SKILL.md +49 -0
  220. package/template/.claude/skills/checkpoint/SKILL.md +82 -0
  221. package/template/.claude/skills/create-spec/SKILL.md +132 -0
  222. package/template/.claude/skills/create-spec/references/action-required-template.md +53 -0
  223. package/template/.claude/skills/create-spec/references/readme-template.md +53 -0
  224. package/template/.claude/skills/create-spec/references/requirements-template.md +54 -0
  225. package/template/.claude/skills/create-spec/references/task-template.md +79 -0
  226. package/template/.claude/skills/d3-visualization/SKILL.md +62 -0
  227. package/template/.claude/skills/find-skills/SKILL.md +142 -0
  228. package/template/.claude/skills/frontend-design/LICENSE.txt +177 -0
  229. package/template/.claude/skills/frontend-design/SKILL.md +42 -0
  230. package/template/.claude/skills/grill-me/SKILL.md +10 -0
  231. package/template/.claude/skills/grill-with-docs/ADR-FORMAT.md +47 -0
  232. package/template/.claude/skills/grill-with-docs/CONTEXT-FORMAT.md +63 -0
  233. package/template/.claude/skills/grill-with-docs/SKILL.md +88 -0
  234. package/template/.claude/skills/gsap-core/SKILL.md +267 -0
  235. package/template/.claude/skills/implement-feature/SKILL.md +189 -0
  236. package/template/.claude/skills/implement-feature/references/coder-prompt-template.md +46 -0
  237. package/template/.claude/skills/implement-feature/references/fix-prompt-template.md +38 -0
  238. package/template/.claude/skills/implement-feature/references/review-prompt-template.md +50 -0
  239. package/template/.claude/skills/mcp-builder/LICENSE.txt +202 -0
  240. package/template/.claude/skills/mcp-builder/SKILL.md +236 -0
  241. package/template/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
  242. package/template/.claude/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  243. package/template/.claude/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  244. package/template/.claude/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  245. package/template/.claude/skills/mcp-builder/scripts/connections.py +151 -0
  246. package/template/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
  247. package/template/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  248. package/template/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
  249. package/template/.claude/skills/nextjs/SKILL.md +434 -0
  250. package/template/.claude/skills/nextjs/overlay.yaml +284 -0
  251. package/template/.claude/skills/nextjs/references/app-router-files.md +94 -0
  252. package/template/.claude/skills/nextjs/references/async-patterns.md +87 -0
  253. package/template/.claude/skills/nextjs/references/bundling.md +180 -0
  254. package/template/.claude/skills/nextjs/references/data-patterns.md +297 -0
  255. package/template/.claude/skills/nextjs/references/debug-tricks.md +105 -0
  256. package/template/.claude/skills/nextjs/references/directives.md +73 -0
  257. package/template/.claude/skills/nextjs/references/error-handling.md +227 -0
  258. package/template/.claude/skills/nextjs/references/file-conventions.md +140 -0
  259. package/template/.claude/skills/nextjs/references/font.md +245 -0
  260. package/template/.claude/skills/nextjs/references/functions.md +108 -0
  261. package/template/.claude/skills/nextjs/references/hydration-error.md +91 -0
  262. package/template/.claude/skills/nextjs/references/image.md +173 -0
  263. package/template/.claude/skills/nextjs/references/metadata.md +301 -0
  264. package/template/.claude/skills/nextjs/references/parallel-routes.md +287 -0
  265. package/template/.claude/skills/nextjs/references/route-handlers.md +146 -0
  266. package/template/.claude/skills/nextjs/references/rsc-boundaries.md +159 -0
  267. package/template/.claude/skills/nextjs/references/runtime-selection.md +39 -0
  268. package/template/.claude/skills/nextjs/references/scripts.md +141 -0
  269. package/template/.claude/skills/nextjs/references/self-hosting.md +371 -0
  270. package/template/.claude/skills/nextjs/references/suspense-boundaries.md +67 -0
  271. package/template/.claude/skills/nextjs/upstream/SKILL.md +153 -0
  272. package/template/.claude/skills/nextjs/upstream/references/app-router-files.md +94 -0
  273. package/template/.claude/skills/nextjs/upstream/references/async-patterns.md +87 -0
  274. package/template/.claude/skills/nextjs/upstream/references/bundling.md +180 -0
  275. package/template/.claude/skills/nextjs/upstream/references/data-patterns.md +297 -0
  276. package/template/.claude/skills/nextjs/upstream/references/debug-tricks.md +105 -0
  277. package/template/.claude/skills/nextjs/upstream/references/directives.md +73 -0
  278. package/template/.claude/skills/nextjs/upstream/references/error-handling.md +227 -0
  279. package/template/.claude/skills/nextjs/upstream/references/file-conventions.md +140 -0
  280. package/template/.claude/skills/nextjs/upstream/references/font.md +245 -0
  281. package/template/.claude/skills/nextjs/upstream/references/functions.md +108 -0
  282. package/template/.claude/skills/nextjs/upstream/references/hydration-error.md +91 -0
  283. package/template/.claude/skills/nextjs/upstream/references/image.md +173 -0
  284. package/template/.claude/skills/nextjs/upstream/references/metadata.md +301 -0
  285. package/template/.claude/skills/nextjs/upstream/references/parallel-routes.md +287 -0
  286. package/template/.claude/skills/nextjs/upstream/references/route-handlers.md +146 -0
  287. package/template/.claude/skills/nextjs/upstream/references/rsc-boundaries.md +159 -0
  288. package/template/.claude/skills/nextjs/upstream/references/runtime-selection.md +39 -0
  289. package/template/.claude/skills/nextjs/upstream/references/scripts.md +141 -0
  290. package/template/.claude/skills/nextjs/upstream/references/self-hosting.md +371 -0
  291. package/template/.claude/skills/nextjs/upstream/references/suspense-boundaries.md +67 -0
  292. package/template/.claude/skills/playwright-cli/SKILL.md +344 -0
  293. package/template/.claude/skills/playwright-cli/references/element-attributes.md +23 -0
  294. package/template/.claude/skills/playwright-cli/references/playwright-tests.md +39 -0
  295. package/template/.claude/skills/playwright-cli/references/request-mocking.md +87 -0
  296. package/template/.claude/skills/playwright-cli/references/running-code.md +231 -0
  297. package/template/.claude/skills/playwright-cli/references/session-management.md +169 -0
  298. package/template/.claude/skills/playwright-cli/references/storage-state.md +275 -0
  299. package/template/.claude/skills/playwright-cli/references/test-generation.md +88 -0
  300. package/template/.claude/skills/playwright-cli/references/tracing.md +139 -0
  301. package/template/.claude/skills/playwright-cli/references/video-recording.md +143 -0
  302. package/template/.claude/skills/react-three-fiber/SKILL.md +180 -0
  303. package/template/.claude/skills/remotion/SKILL.md +43 -0
  304. package/template/.claude/skills/review-pr/SKILL.md +97 -0
  305. package/template/.claude/skills/security-scanner/SKILL.md +157 -0
  306. package/template/.claude/skills/security-scanner/references/A01-broken-access-control.md +136 -0
  307. package/template/.claude/skills/security-scanner/references/A02-security-misconfiguration.md +130 -0
  308. package/template/.claude/skills/security-scanner/references/A03-software-supply-chain-failures.md +117 -0
  309. package/template/.claude/skills/security-scanner/references/A04-cryptographic-failures.md +141 -0
  310. package/template/.claude/skills/security-scanner/references/A05-injection.md +155 -0
  311. package/template/.claude/skills/security-scanner/references/A06-insecure-design.md +145 -0
  312. package/template/.claude/skills/security-scanner/references/A07-authentication-failures.md +150 -0
  313. package/template/.claude/skills/security-scanner/references/A08-software-data-integrity-failures.md +132 -0
  314. package/template/.claude/skills/security-scanner/references/A09-security-logging-alerting-failures.md +130 -0
  315. package/template/.claude/skills/security-scanner/references/A10-mishandling-exceptional-conditions.md +154 -0
  316. package/template/.claude/skills/security-scanner/references/report-template.md +148 -0
  317. package/template/.claude/skills/shadcn/SKILL.md +246 -0
  318. package/template/.claude/skills/shadcn/agents/openai.yml +5 -0
  319. package/template/.claude/skills/shadcn/assets/shadcn-small.png +0 -0
  320. package/template/.claude/skills/shadcn/assets/shadcn.png +0 -0
  321. package/template/.claude/skills/shadcn/cli.md +276 -0
  322. package/template/.claude/skills/shadcn/customization.md +209 -0
  323. package/template/.claude/skills/shadcn/evals/evals.json +47 -0
  324. package/template/.claude/skills/shadcn/mcp.md +94 -0
  325. package/template/.claude/skills/shadcn/rules/base-vs-radix.md +306 -0
  326. package/template/.claude/skills/shadcn/rules/composition.md +195 -0
  327. package/template/.claude/skills/shadcn/rules/forms.md +192 -0
  328. package/template/.claude/skills/shadcn/rules/icons.md +101 -0
  329. package/template/.claude/skills/shadcn/rules/styling.md +162 -0
  330. package/template/.claude/skills/ship-it/SKILL.md +174 -0
  331. package/template/.claude/skills/skill-creator/LICENSE.txt +202 -0
  332. package/template/.claude/skills/skill-creator/SKILL.md +485 -0
  333. package/template/.claude/skills/skill-creator/agents/analyzer.md +274 -0
  334. package/template/.claude/skills/skill-creator/agents/comparator.md +202 -0
  335. package/template/.claude/skills/skill-creator/agents/grader.md +223 -0
  336. package/template/.claude/skills/skill-creator/assets/eval_review.html +146 -0
  337. package/template/.claude/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  338. package/template/.claude/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  339. package/template/.claude/skills/skill-creator/references/schemas.md +430 -0
  340. package/template/.claude/skills/skill-creator/scripts/__init__.py +0 -0
  341. package/template/.claude/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  342. package/template/.claude/skills/skill-creator/scripts/generate_report.py +326 -0
  343. package/template/.claude/skills/skill-creator/scripts/improve_description.py +247 -0
  344. package/template/.claude/skills/skill-creator/scripts/package_skill.py +136 -0
  345. package/template/.claude/skills/skill-creator/scripts/quick_validate.py +103 -0
  346. package/template/.claude/skills/skill-creator/scripts/run_eval.py +310 -0
  347. package/template/.claude/skills/skill-creator/scripts/run_loop.py +328 -0
  348. package/template/.claude/skills/skill-creator/scripts/utils.py +47 -0
  349. package/template/.claude/skills/svelte/SKILL.md +284 -0
  350. package/template/.claude/skills/tdd/SKILL.md +109 -0
  351. package/template/.claude/skills/tdd/deep-modules.md +33 -0
  352. package/template/.claude/skills/tdd/interface-design.md +31 -0
  353. package/template/.claude/skills/tdd/mocking.md +59 -0
  354. package/template/.claude/skills/tdd/refactoring.md +10 -0
  355. package/template/.claude/skills/tdd/tests.md +61 -0
  356. package/template/.claude/skills/threejs/SKILL.md +43 -0
  357. package/template/.claude/skills/to-issues/SKILL.md +83 -0
  358. package/template/.claude/skills/to-prd/SKILL.md +76 -0
  359. package/template/.claude/skills/vercel-react-best-practices/AGENTS.md +3750 -0
  360. package/template/.claude/skills/vercel-react-best-practices/README.md +123 -0
  361. package/template/.claude/skills/vercel-react-best-practices/SKILL.md +148 -0
  362. package/template/.claude/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  363. package/template/.claude/skills/vercel-react-best-practices/rules/_template.md +28 -0
  364. package/template/.claude/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +56 -0
  365. package/template/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  366. package/template/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  367. package/template/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  368. package/template/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  369. package/template/.claude/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +37 -0
  370. package/template/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +82 -0
  371. package/template/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  372. package/template/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  373. package/template/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  374. package/template/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +60 -0
  375. package/template/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  376. package/template/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  377. package/template/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  378. package/template/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  379. package/template/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  380. package/template/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  381. package/template/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  382. package/template/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  383. package/template/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  384. package/template/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  385. package/template/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  386. package/template/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  387. package/template/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  388. package/template/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  389. package/template/.claude/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  390. package/template/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  391. package/template/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  392. package/template/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  393. package/template/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  394. package/template/.claude/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +105 -0
  395. package/template/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  396. package/template/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  397. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  398. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  399. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  400. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  401. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  402. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  403. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  404. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  405. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  406. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  407. package/template/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  408. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  409. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  410. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  411. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  412. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  413. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  414. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  415. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  416. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  417. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  418. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  419. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +64 -0
  420. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  421. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +59 -0
  422. package/template/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  423. package/template/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  424. package/template/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  425. package/template/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  426. package/template/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  427. package/template/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  428. package/template/.claude/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +149 -0
  429. package/template/.claude/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +50 -0
  430. package/template/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  431. package/template/.claude/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +34 -0
  432. package/template/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  433. package/template/.claude/skills/video-downloader/SKILL.md +42 -0
  434. package/template/.claude/skills/web-design-guidelines/SKILL.md +39 -0
  435. package/template/.claude/skills/webgpu-threejs-tsl/REFERENCE.md +371 -0
  436. package/template/.claude/skills/webgpu-threejs-tsl/SKILL.md +93 -0
  437. package/template/.claude/skills/webgpu-threejs-tsl/docs/compute-shaders.md +578 -0
  438. package/template/.claude/skills/webgpu-threejs-tsl/docs/core-concepts.md +497 -0
  439. package/template/.claude/skills/webgpu-threejs-tsl/docs/device-loss.md +359 -0
  440. package/template/.claude/skills/webgpu-threejs-tsl/docs/limits-and-features.md +133 -0
  441. package/template/.claude/skills/webgpu-threejs-tsl/docs/materials.md +353 -0
  442. package/template/.claude/skills/webgpu-threejs-tsl/docs/post-processing.md +515 -0
  443. package/template/.claude/skills/webgpu-threejs-tsl/docs/wgsl-integration.md +324 -0
  444. package/template/.claude/skills/webgpu-threejs-tsl/examples/basic-setup.js +87 -0
  445. package/template/.claude/skills/webgpu-threejs-tsl/examples/custom-material.js +170 -0
  446. package/template/.claude/skills/webgpu-threejs-tsl/examples/earth-shader.js +292 -0
  447. package/template/.claude/skills/webgpu-threejs-tsl/examples/particle-system.js +259 -0
  448. package/template/.claude/skills/webgpu-threejs-tsl/examples/post-processing.js +199 -0
  449. package/template/.claude/skills/webgpu-threejs-tsl/templates/compute-shader.js +343 -0
  450. package/template/.claude/skills/webgpu-threejs-tsl/templates/webgpu-project.js +276 -0
  451. package/template/.claude/skills/zoom-out/SKILL.md +7 -0
  452. package/template/.mcp.json +5 -0
  453. package/template/.nvmrc +1 -0
  454. package/template/.prettierignore +25 -0
  455. package/template/.prettierrc +11 -0
  456. package/template/.vscode/settings.json +1 -0
  457. package/template/.vscode/tasks.json.example +85 -0
  458. package/template/AGENTS.md +37 -0
  459. package/template/CLAUDE.md +75 -0
  460. package/template/CONTEXT.md +29 -0
  461. package/template/DESIGN.md +451 -0
  462. package/template/README.md +394 -0
  463. package/template/_gitignore +48 -0
  464. package/template/components.json +21 -0
  465. package/template/docker-compose.yml +9 -0
  466. package/template/docs/business/starter-prompt.md +94 -0
  467. package/template/docs/technical/ai/streaming.md +520 -0
  468. package/template/docs/technical/ai/structured-data.md +409 -0
  469. package/template/docs/technical/betterauth/polar.md +476 -0
  470. package/template/docs/technical/react-markdown.md +123 -0
  471. package/template/drizzle/0000_chilly_the_phantom.sql +50 -0
  472. package/template/drizzle/0001_last_warpath.sql +5 -0
  473. package/template/drizzle/meta/0000_snapshot.json +326 -0
  474. package/template/drizzle/meta/0001_snapshot.json +410 -0
  475. package/template/drizzle/meta/_journal.json +20 -0
  476. package/template/drizzle.config.ts +10 -0
  477. package/template/env.example +26 -0
  478. package/template/eslint.config.mjs +75 -0
  479. package/template/next-env.d.ts +6 -0
  480. package/template/next.config.ts +57 -0
  481. package/template/package.json +79 -0
  482. package/template/postcss.config.mjs +5 -0
  483. package/template/public/file.svg +1 -0
  484. package/template/public/globe.svg +1 -0
  485. package/template/public/next.svg +1 -0
  486. package/template/public/vercel.svg +1 -0
  487. package/template/public/window.svg +1 -0
  488. package/template/scripts/setup.ts +277 -0
  489. package/template/skills-lock.json +61 -0
  490. package/template/specs/ui-polish-responsive/README.md +59 -0
  491. package/template/specs/ui-polish-responsive/action-required.md +3 -0
  492. package/template/specs/ui-polish-responsive/requirements.md +53 -0
  493. package/template/specs/ui-polish-responsive/tasks/task-01-globals-css.md +144 -0
  494. package/template/specs/ui-polish-responsive/tasks/task-02-layout.md +66 -0
  495. package/template/specs/ui-polish-responsive/tasks/task-03-site-header.md +79 -0
  496. package/template/specs/ui-polish-responsive/tasks/task-04-site-footer.md +63 -0
  497. package/template/specs/ui-polish-responsive/tasks/task-05-home-page.md +215 -0
  498. package/template/specs/ui-polish-responsive/tasks/task-06-dashboard.md +222 -0
  499. package/template/specs/ui-polish-responsive/tasks/task-07-chat-page.md +225 -0
  500. package/template/specs/ui-polish-responsive/tasks/task-08-profile-page.md +192 -0
  501. package/template/specs/ui-polish-responsive/tasks/task-09-auth-pages.md +97 -0
  502. package/template/specs/ui-polish-responsive/tasks/task-10-setup-checklist.md +120 -0
  503. package/template/specs/ui-polish-responsive/tasks/task-11-starter-prompt-modal.md +87 -0
  504. package/template/src/app/(auth)/forgot-password/page.tsx +35 -0
  505. package/template/src/app/(auth)/layout.tsx +7 -0
  506. package/template/src/app/(auth)/login/page.tsx +44 -0
  507. package/template/src/app/(auth)/register/page.tsx +33 -0
  508. package/template/src/app/(auth)/reset-password/page.tsx +36 -0
  509. package/template/src/app/api/auth/[...all]/route.ts +4 -0
  510. package/template/src/app/api/chat/route.ts +80 -0
  511. package/template/src/app/api/diagnostics/route.ts +162 -0
  512. package/template/src/app/chat/error.tsx +46 -0
  513. package/template/src/app/chat/loading.tsx +42 -0
  514. package/template/src/app/chat/page.tsx +348 -0
  515. package/template/src/app/dashboard/loading.tsx +63 -0
  516. package/template/src/app/dashboard/page.tsx +79 -0
  517. package/template/src/app/error.tsx +44 -0
  518. package/template/src/app/favicon.ico +0 -0
  519. package/template/src/app/globals.css +175 -0
  520. package/template/src/app/layout.tsx +108 -0
  521. package/template/src/app/manifest.ts +21 -0
  522. package/template/src/app/not-found.tsx +28 -0
  523. package/template/src/app/page.tsx +152 -0
  524. package/template/src/app/profile/page.tsx +416 -0
  525. package/template/src/app/robots.ts +16 -0
  526. package/template/src/app/sitemap.ts +26 -0
  527. package/template/src/components/auth/forgot-password-form.tsx +83 -0
  528. package/template/src/components/auth/reset-password-form.tsx +107 -0
  529. package/template/src/components/auth/sign-in-button.tsx +97 -0
  530. package/template/src/components/auth/sign-out-button.tsx +31 -0
  531. package/template/src/components/auth/sign-up-form.tsx +121 -0
  532. package/template/src/components/auth/user-profile.tsx +91 -0
  533. package/template/src/components/setup-checklist.tsx +180 -0
  534. package/template/src/components/site-footer.tsx +24 -0
  535. package/template/src/components/site-header.tsx +46 -0
  536. package/template/src/components/starter-prompt-modal.tsx +202 -0
  537. package/template/src/components/theme-provider.tsx +11 -0
  538. package/template/src/components/ui/avatar.tsx +52 -0
  539. package/template/src/components/ui/badge.tsx +35 -0
  540. package/template/src/components/ui/button.tsx +58 -0
  541. package/template/src/components/ui/card.tsx +78 -0
  542. package/template/src/components/ui/dialog.tsx +142 -0
  543. package/template/src/components/ui/dropdown-menu.tsx +256 -0
  544. package/template/src/components/ui/github-stars.tsx +53 -0
  545. package/template/src/components/ui/input.tsx +20 -0
  546. package/template/src/components/ui/label.tsx +23 -0
  547. package/template/src/components/ui/mode-toggle.tsx +38 -0
  548. package/template/src/components/ui/separator.tsx +23 -0
  549. package/template/src/components/ui/skeleton.tsx +13 -0
  550. package/template/src/components/ui/sonner.tsx +42 -0
  551. package/template/src/components/ui/spinner.tsx +21 -0
  552. package/template/src/components/ui/textarea.tsx +17 -0
  553. package/template/src/hooks/use-diagnostics.ts +86 -0
  554. package/template/src/lib/auth-client.ts +16 -0
  555. package/template/src/lib/auth.ts +25 -0
  556. package/template/src/lib/db.ts +12 -0
  557. package/template/src/lib/env.ts +117 -0
  558. package/template/src/lib/schema.ts +82 -0
  559. package/template/src/lib/session.ts +48 -0
  560. package/template/src/lib/storage.ts +225 -0
  561. package/template/src/lib/utils.ts +6 -0
  562. package/template/src/proxy.ts +25 -0
  563. package/template/tsconfig.json +48 -0
@@ -0,0 +1,175 @@
1
+ ---
2
+ name: better-auth-best-practices
3
+ description: Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables. Use when users mention Better Auth, betterauth, auth.ts, or need to set up TypeScript authentication with email/password, OAuth, or plugin configuration.
4
+ ---
5
+
6
+ # Better Auth Integration Guide
7
+
8
+ **Always consult [better-auth.com/docs](https://better-auth.com/docs) for code examples and latest API.**
9
+
10
+ ---
11
+
12
+ ## Setup Workflow
13
+
14
+ 1. Install: `npm install better-auth`
15
+ 2. Set env vars: `BETTER_AUTH_SECRET` and `BETTER_AUTH_URL`
16
+ 3. Create `auth.ts` with database + config
17
+ 4. Create route handler for your framework
18
+ 5. Run `npx @better-auth/cli@latest migrate`
19
+ 6. Verify: call `GET /api/auth/ok` — should return `{ status: "ok" }`
20
+
21
+ ---
22
+
23
+ ## Quick Reference
24
+
25
+ ### Environment Variables
26
+ - `BETTER_AUTH_SECRET` - Encryption secret (min 32 chars). Generate: `openssl rand -base64 32`
27
+ - `BETTER_AUTH_URL` - Base URL (e.g., `https://example.com`)
28
+
29
+ Only define `baseURL`/`secret` in config if env vars are NOT set.
30
+
31
+ ### File Location
32
+ CLI looks for `auth.ts` in: `./`, `./lib`, `./utils`, or under `./src`. Use `--config` for custom path.
33
+
34
+ ### CLI Commands
35
+ - `npx @better-auth/cli@latest migrate` - Apply schema (built-in adapter)
36
+ - `npx @better-auth/cli@latest generate` - Generate schema for Prisma/Drizzle
37
+ - `npx @better-auth/cli mcp --cursor` - Add MCP to AI tools
38
+
39
+ **Re-run after adding/changing plugins.**
40
+
41
+ ---
42
+
43
+ ## Core Config Options
44
+
45
+ | Option | Notes |
46
+ |--------|-------|
47
+ | `appName` | Optional display name |
48
+ | `baseURL` | Only if `BETTER_AUTH_URL` not set |
49
+ | `basePath` | Default `/api/auth`. Set `/` for root. |
50
+ | `secret` | Only if `BETTER_AUTH_SECRET` not set |
51
+ | `database` | Required for most features. See adapters docs. |
52
+ | `secondaryStorage` | Redis/KV for sessions & rate limits |
53
+ | `emailAndPassword` | `{ enabled: true }` to activate |
54
+ | `socialProviders` | `{ google: { clientId, clientSecret }, ... }` |
55
+ | `plugins` | Array of plugins |
56
+ | `trustedOrigins` | CSRF whitelist |
57
+
58
+ ---
59
+
60
+ ## Database
61
+
62
+ **Direct connections:** Pass `pg.Pool`, `mysql2` pool, `better-sqlite3`, or `bun:sqlite` instance.
63
+
64
+ **ORM adapters:** Import from `better-auth/adapters/drizzle`, `better-auth/adapters/prisma`, `better-auth/adapters/mongodb`.
65
+
66
+ **Critical:** Better Auth uses adapter model names, NOT underlying table names. If Prisma model is `User` mapping to table `users`, use `modelName: "user"` (Prisma reference), not `"users"`.
67
+
68
+ ---
69
+
70
+ ## Session Management
71
+
72
+ **Storage priority:**
73
+ 1. If `secondaryStorage` defined → sessions go there (not DB)
74
+ 2. Set `session.storeSessionInDatabase: true` to also persist to DB
75
+ 3. No database + `cookieCache` → fully stateless mode
76
+
77
+ **Cookie cache strategies:**
78
+ - `compact` (default) - Base64url + HMAC. Smallest.
79
+ - `jwt` - Standard JWT. Readable but signed.
80
+ - `jwe` - Encrypted. Maximum security.
81
+
82
+ **Key options:** `session.expiresIn` (default 7 days), `session.updateAge` (refresh interval), `session.cookieCache.maxAge`, `session.cookieCache.version` (change to invalidate all sessions).
83
+
84
+ ---
85
+
86
+ ## User & Account Config
87
+
88
+ **User:** `user.modelName`, `user.fields` (column mapping), `user.additionalFields`, `user.changeEmail.enabled` (disabled by default), `user.deleteUser.enabled` (disabled by default).
89
+
90
+ **Account:** `account.modelName`, `account.accountLinking.enabled`, `account.storeAccountCookie` (for stateless OAuth).
91
+
92
+ **Required for registration:** `email` and `name` fields.
93
+
94
+ ---
95
+
96
+ ## Email Flows
97
+
98
+ - `emailVerification.sendVerificationEmail` - Must be defined for verification to work
99
+ - `emailVerification.sendOnSignUp` / `sendOnSignIn` - Auto-send triggers
100
+ - `emailAndPassword.sendResetPassword` - Password reset email handler
101
+
102
+ ---
103
+
104
+ ## Security
105
+
106
+ **In `advanced`:**
107
+ - `useSecureCookies` - Force HTTPS cookies
108
+ - `disableCSRFCheck` - ⚠️ Security risk
109
+ - `disableOriginCheck` - ⚠️ Security risk
110
+ - `crossSubDomainCookies.enabled` - Share cookies across subdomains
111
+ - `ipAddress.ipAddressHeaders` - Custom IP headers for proxies
112
+ - `database.generateId` - Custom ID generation or `"serial"`/`"uuid"`/`false`
113
+
114
+ **Rate limiting:** `rateLimit.enabled`, `rateLimit.window`, `rateLimit.max`, `rateLimit.storage` ("memory" | "database" | "secondary-storage").
115
+
116
+ ---
117
+
118
+ ## Hooks
119
+
120
+ **Endpoint hooks:** `hooks.before` / `hooks.after` - Array of `{ matcher, handler }`. Use `createAuthMiddleware`. Access `ctx.path`, `ctx.context.returned` (after), `ctx.context.session`.
121
+
122
+ **Database hooks:** `databaseHooks.user.create.before/after`, same for `session`, `account`. Useful for adding default values or post-creation actions.
123
+
124
+ **Hook context (`ctx.context`):** `session`, `secret`, `authCookies`, `password.hash()`/`verify()`, `adapter`, `internalAdapter`, `generateId()`, `tables`, `baseURL`.
125
+
126
+ ---
127
+
128
+ ## Plugins
129
+
130
+ **Import from dedicated paths for tree-shaking:**
131
+ ```
132
+ import { twoFactor } from "better-auth/plugins/two-factor"
133
+ ```
134
+ NOT `from "better-auth/plugins"`.
135
+
136
+ **Popular plugins:** `twoFactor`, `organization`, `passkey`, `magicLink`, `emailOtp`, `username`, `phoneNumber`, `admin`, `apiKey`, `bearer`, `jwt`, `multiSession`, `sso`, `oauthProvider`, `oidcProvider`, `openAPI`, `genericOAuth`.
137
+
138
+ Client plugins go in `createAuthClient({ plugins: [...] })`.
139
+
140
+ ---
141
+
142
+ ## Client
143
+
144
+ Import from: `better-auth/client` (vanilla), `better-auth/react`, `better-auth/vue`, `better-auth/svelte`, `better-auth/solid`.
145
+
146
+ Key methods: `signUp.email()`, `signIn.email()`, `signIn.social()`, `signOut()`, `useSession()`, `getSession()`, `revokeSession()`, `revokeSessions()`.
147
+
148
+ ---
149
+
150
+ ## Type Safety
151
+
152
+ Infer types: `typeof auth.$Infer.Session`, `typeof auth.$Infer.Session.user`.
153
+
154
+ For separate client/server projects: `createAuthClient<typeof auth>()`.
155
+
156
+ ---
157
+
158
+ ## Common Gotchas
159
+
160
+ 1. **Model vs table name** - Config uses ORM model name, not DB table name
161
+ 2. **Plugin schema** - Re-run CLI after adding plugins
162
+ 3. **Secondary storage** - Sessions go there by default, not DB
163
+ 4. **Cookie cache** - Custom session fields NOT cached, always re-fetched
164
+ 5. **Stateless mode** - No DB = session in cookie only, logout on cache expiry
165
+ 6. **Change email flow** - Sends to current email first, then new email
166
+
167
+ ---
168
+
169
+ ## Resources
170
+
171
+ - [Docs](https://better-auth.com/docs)
172
+ - [Options Reference](https://better-auth.com/docs/reference/options)
173
+ - [LLMs.txt](https://better-auth.com/llms.txt)
174
+ - [GitHub](https://github.com/better-auth/better-auth)
175
+ - [Init Options Source](https://github.com/better-auth/better-auth/blob/main/packages/core/src/types/init-options.ts)
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: checkpoint
3
+ description: >
4
+ Create a comprehensive checkpoint commit with detailed analysis of all changes. Use this skill
5
+ when the user says "checkpoint", "commit everything", "save my progress", "create a commit",
6
+ or wants to stage and commit all current changes with a well-crafted message. Also use when
7
+ the user says "/checkpoint" or asks to snapshot current work. This skill stages all changes
8
+ and creates a descriptive commit — it does not push.
9
+ ---
10
+
11
+ # Checkpoint Commit
12
+
13
+ Create a checkpoint commit that captures all current changes — but only after the code passes lint, type check, and build.
14
+
15
+ ## Instructions
16
+
17
+ ### Step 1: Analyze Changes
18
+
19
+ Run these commands to understand the full picture:
20
+
21
+ 1. `git status` — see all tracked and untracked files
22
+ 2. `git diff` — see detailed changes in tracked files
23
+ 3. `git diff --cached` — see already-staged changes
24
+ 4. `git log -5 --oneline` — understand this repo's commit message style
25
+
26
+ ### Step 2: Quality Checks
27
+
28
+ Run all three checks. If any fail, fix the issues before proceeding — do not skip or ignore failures.
29
+
30
+ 1. `npm run lint` — fix any lint errors
31
+ 2. `npm run type-check` — fix any type errors (if the script doesn't exist, try `npx tsc --noEmit`)
32
+ 3. `npm run build` — fix any build errors
33
+
34
+ Iterate until all three pass cleanly. Only then move to the next step.
35
+
36
+ ### Step 3: Stage Everything
37
+
38
+ Stage all changes — tracked modifications, deletions, and new untracked files:
39
+
40
+ ```bash
41
+ git add -A
42
+ ```
43
+
44
+ ### Step 4: Craft the Commit Message
45
+
46
+ Write a commit message following the project's existing conventions (observed from `git log`). Structure:
47
+
48
+ - **First line**: clear, concise summary in imperative mood (50-72 chars)
49
+ - Use conventional commit prefixes where the project uses them: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`, etc.
50
+ - **Body** (separated by blank line): a short TL;DR of the changes — 1-3 sentences max. No bullet lists, no file-by-file breakdowns, no lengthy explanations.
51
+ - **Footer**: co-author attribution
52
+
53
+ ### Step 5: Commit
54
+
55
+ Create the commit using a heredoc for proper formatting:
56
+
57
+ ```bash
58
+ git commit -m "$(cat <<'EOF'
59
+ {first line}
60
+
61
+ {tldr}
62
+
63
+ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64
+ EOF
65
+ )"
66
+ ```
67
+
68
+ ### Step 6: Report
69
+
70
+ Display:
71
+ - The commit hash and message summary
72
+ - Files changed count
73
+ - Insertions/deletions summary
74
+
75
+ ## Important
76
+
77
+ - Stage and commit everything — do not skip files unless they are clearly sensitive (`.env`, credentials)
78
+ - If the repo has no git history, run `git init` first
79
+ - All quality checks (lint, type-check, build) MUST pass before committing — fix issues, don't skip them
80
+ - Keep the commit body short — a TL;DR, not an essay
81
+ - Follow the project's existing commit conventions (check the log first)
82
+ - Do not push — only commit locally
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: create-spec
3
+ description: >
4
+ Create a structured feature specification with self-contained task files organized into
5
+ parallel execution waves. Use this skill when the user says "create a spec", "plan this feature",
6
+ "write up an implementation plan", "break this into tasks", or after any planning conversation
7
+ where the user wants to capture decisions as actionable spec files. Also use when the user
8
+ says "/create-spec" or wants to decompose a feature into work items that agents can implement
9
+ independently. This skill produces local spec files under specs/{feature}/ — no GitHub integration.
10
+ ---
11
+
12
+ # Create Feature Specification
13
+
14
+ Transform a planning conversation into a structured spec folder that enables parallel agent implementation. The spec breaks a feature into self-contained task files — each one detailed enough that a coder agent can pick it up cold and implement it without reading anything else.
15
+
16
+ The key insight: implementation plans that live in a single file are either too large for a context window or too shallow for independent execution. By splitting into one file per task with full context in each, we enable multiple agents to work in parallel while keeping each agent's context focused.
17
+
18
+ ## When to Use
19
+
20
+ - After a planning conversation where requirements and technical details have been discussed
21
+ - When the user asks to create a spec, plan a feature, or break work into tasks
22
+ - When the user wants to prepare work for parallel agent implementation
23
+
24
+ ## Instructions
25
+
26
+ ### Step 1: Gather Requirements
27
+
28
+ If the conversation already contains planning context (requirements discussed, technical decisions made, architecture outlined), extract all of it. Review the entire conversation to ensure nothing is lost — the spec is the single source of truth, and anything not captured here disappears.
29
+
30
+ If no planning conversation exists, interview the user:
31
+ - What does this feature do and why does it matter?
32
+ - What are the acceptance criteria?
33
+ - What technical constraints or decisions have been made?
34
+ - What files, APIs, schemas, or patterns are involved?
35
+
36
+ ### Step 2: Name the Feature
37
+
38
+ Choose a kebab-case name that clearly identifies the feature (e.g., `add-user-auth`, `migrate-to-postgres`, `dashboard-redesign`). This becomes the folder name under `specs/`.
39
+
40
+ ### Step 3: Decompose into Tasks
41
+
42
+ Break the implementation into atomic tasks. Each task should:
43
+ - Be completable in a single coding session by one agent
44
+ - Have a clear, specific scope (one concern per task)
45
+ - Produce working, testable code when complete
46
+ - Not overlap in files modified with other tasks in the same wave
47
+
48
+ Think carefully about granularity. Too coarse and agents can't work in parallel. Too fine and the overhead of context-switching between tasks dominates. A good task typically creates or modifies 1-5 files around a single concern.
49
+
50
+ Do NOT include testing tasks (unit tests, e2e tests) unless the user explicitly asks for them.
51
+
52
+ ### Step 4: Build the Dependency Graph
53
+
54
+ For each task, identify:
55
+ - **What it depends on**: which tasks must complete before this one can start
56
+ - **What depends on it**: which tasks are blocked until this one finishes
57
+
58
+ Tasks with no dependencies form Wave 1. Tasks whose dependencies are all in Wave 1 form Wave 2. And so on. All tasks within a wave can execute in parallel.
59
+
60
+ When assigning waves, verify that tasks within the same wave do not modify overlapping files. If two tasks in the same wave would touch the same file, move one to a later wave — parallel agents on the same branch cannot safely modify the same file.
61
+
62
+ ### Step 5: Create the Spec Folder
63
+
64
+ Create the following structure at `specs/{feature-name}/`:
65
+
66
+ ```
67
+ specs/{feature-name}/
68
+ ├── README.md
69
+ ├── requirements.md
70
+ ├── action-required.md
71
+ └── tasks/
72
+ ├── task-01-{name}.md
73
+ ├── task-02-{name}.md
74
+ └── ...
75
+ ```
76
+
77
+ Read the templates in `references/` before writing each file:
78
+ - `references/readme-template.md` — for the README (dependency graph, wave table, status tracking)
79
+ - `references/task-template.md` — for each task file (self-contained with all context)
80
+ - `references/requirements-template.md` — for the requirements document
81
+ - `references/action-required-template.md` — for manual human steps
82
+
83
+ Task files are numbered with zero-padded two-digit prefixes in topological order: Wave 1 tasks first, then Wave 2, etc. Within a wave, order is arbitrary but stable.
84
+
85
+ ### Step 6: Write Self-Contained Task Files
86
+
87
+ This is the most important step. Each task file is the **only thing** a coder agent will read before implementing. It must contain everything the agent needs:
88
+
89
+ - **Description**: what to build and why it matters in context
90
+ - **Dependency context**: what prior tasks produce that this task needs (summarized in prose, not just filenames). The agent should not need to read other task files.
91
+ - **Technical details**: CLI commands, code snippets, schemas, file paths, env vars, API endpoints — every implementation-specific detail from the planning conversation
92
+ - **Files to create/modify**: explicit list with purpose for each
93
+ - **Acceptance criteria**: specific, verifiable conditions
94
+
95
+ Review each task file with fresh eyes: could an agent who has never seen the planning conversation implement this correctly using only this file? If not, add what's missing.
96
+
97
+ ### Step 7: Extract Manual Actions
98
+
99
+ Identify any steps that require human action (account creation, API key setup, DNS configuration, environment variables, third-party service registration, etc.). Write these to `action-required.md` grouped by timing (Before/During/After implementation). If none exist, note "No manual steps required."
100
+
101
+ ### Step 8: Report to User
102
+
103
+ After creating the spec, display:
104
+
105
+ ```
106
+ Feature specification created at specs/{feature-name}/
107
+
108
+ Files created:
109
+ - README.md (dependency graph, {N} waves, {T} tasks)
110
+ - requirements.md
111
+ - action-required.md
112
+ - tasks/ ({T} task files)
113
+
114
+ Wave breakdown:
115
+ - Wave 1: {count} tasks (parallel) — {brief description}
116
+ - Wave 2: {count} tasks (parallel) — {brief description}
117
+ - ...
118
+
119
+ Next steps:
120
+ 1. Review action-required.md for tasks you need to complete manually
121
+ 2. Review the requirements and task files
122
+ 3. Use /implement-feature to start parallel implementation
123
+ ```
124
+
125
+ ## Critical Rules
126
+
127
+ - Every task file must be fully self-contained — this is the entire point of the spec structure. A coder agent reading only that file must know exactly what to do.
128
+ - Capture ALL technical details from the planning conversation. The spec is the single source of truth — CLI commands, schemas, code snippets, file paths, env vars, API endpoints. Anything not captured here is lost.
129
+ - Tasks within the same wave must not modify overlapping files. Parallel agents on the same branch cannot safely touch the same files.
130
+ - Keep tasks atomic — one concern per task. If a task has more than 5-7 files to modify, consider splitting it.
131
+ - Do not create testing tasks unless the user explicitly asks for them.
132
+ - Number task files in topological order (wave 1 first, then wave 2, etc.) for easy scanning.
@@ -0,0 +1,53 @@
1
+ # Action Required Template
2
+
3
+ Use this structure for the action-required.md at the root of each spec folder. This file captures manual steps that require human action and cannot be automated by agents.
4
+
5
+ ## Template (when manual steps exist)
6
+
7
+ ```markdown
8
+ # Action Required: {Feature Name}
9
+
10
+ Manual steps that must be completed by a human. These cannot be automated.
11
+
12
+ ## Before Implementation
13
+
14
+ - [ ] **{Action}** — {Brief reason why this is needed}
15
+ - [ ] **{Action}** — {Brief reason}
16
+
17
+ ## During Implementation
18
+
19
+ - [ ] **{Action}** — {Brief reason}
20
+
21
+ ## After Implementation
22
+
23
+ - [ ] **{Action}** — {Brief reason}
24
+
25
+ ---
26
+
27
+ > These tasks are also referenced in context within the relevant task files.
28
+ ```
29
+
30
+ ## Template (when no manual steps exist)
31
+
32
+ ```markdown
33
+ # Action Required: {Feature Name}
34
+
35
+ No manual steps required for this feature. All tasks can be implemented automatically.
36
+ ```
37
+
38
+ ## Common Manual Steps
39
+
40
+ - Account creation (third-party services, OAuth apps)
41
+ - API key generation and setup
42
+ - Environment variable configuration
43
+ - DNS or domain settings
44
+ - Billing or subscription setup
45
+ - Third-party service registration (webhooks, integrations)
46
+ - Certificate provisioning
47
+ - Access permissions or IAM roles
48
+
49
+ ## Key Points
50
+
51
+ - Group actions by timing: before, during, and after implementation. This helps the user know when they need to act.
52
+ - Keep descriptions brief — one line explaining what to do and why.
53
+ - Also reference these manual steps in the relevant task files so agents know to pause or skip that part.
@@ -0,0 +1,53 @@
1
+ # README Template
2
+
3
+ Use this structure for the README.md at the root of each spec folder. The README serves as the orchestration index — the `implement-feature` skill reads it to determine wave order, task assignments, and completion status.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # {Feature Name}
9
+
10
+ ## Overview
11
+
12
+ {One paragraph summary of what the feature does and why it exists.}
13
+
14
+ ## Quick Links
15
+
16
+ - [Requirements](./requirements.md) — full requirements and acceptance criteria
17
+ - [Action Required](./action-required.md) — manual steps needing human action
18
+
19
+ ## Dependency Graph
20
+
21
+ ​```mermaid
22
+ graph TD
23
+ task-01-name["01: Task Title"]
24
+ task-02-name["02: Task Title"]
25
+ task-03-name["03: Task Title"]
26
+ task-01-name --> task-03-name
27
+ task-02-name --> task-03-name
28
+ ​```
29
+
30
+ ## Waves
31
+
32
+ | Wave | Tasks | Description |
33
+ |------|-------|-------------|
34
+ | 1 | task-01, task-02 | {Brief description of what this wave accomplishes} |
35
+ | 2 | task-03 | {Brief description} |
36
+
37
+ ## Task Status
38
+
39
+ ### Wave 1
40
+ - [ ] [task-01-{name}](./tasks/task-01-{name}.md) — {One-line title}
41
+ - [ ] [task-02-{name}](./tasks/task-02-{name}.md) — {One-line title}
42
+
43
+ ### Wave 2
44
+ - [ ] [task-03-{name}](./tasks/task-03-{name}.md) — {One-line title}
45
+ ```
46
+
47
+ ## Key Points
48
+
49
+ - The **Dependency Graph** uses Mermaid syntax (widely rendered in GitHub, VS Code, etc.). Each node shows the task number and title for quick reference.
50
+ - The **Waves** table provides a scannable overview of what runs in parallel.
51
+ - The **Task Status** section uses markdown checkboxes that the `implement-feature` skill updates as tasks complete. The orchestrator parses these to determine which wave to resume from.
52
+ - Links to task files use relative paths pointing into the `tasks/` subfolder.
53
+ - Tasks without dependencies have no incoming arrows in the graph — these form Wave 1.
@@ -0,0 +1,54 @@
1
+ # Requirements Template
2
+
3
+ Use this structure for the requirements.md at the root of each spec folder.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # Requirements: {Feature Name}
9
+
10
+ ## Summary
11
+
12
+ {What the feature does and why it exists — 2-3 paragraphs covering the problem, the solution, and the expected outcome.}
13
+
14
+ ## Goals
15
+
16
+ - {Goal 1}
17
+ - {Goal 2}
18
+ - {Goal 3}
19
+
20
+ ## Non-Goals
21
+
22
+ {Explicitly out of scope — things that might seem related but are not part of this feature.}
23
+
24
+ - {Non-goal 1}
25
+ - {Non-goal 2}
26
+
27
+ ## Acceptance Criteria
28
+
29
+ {High-level criteria for the entire feature. Individual task files have their own granular criteria.}
30
+
31
+ - [ ] {Criterion 1}
32
+ - [ ] {Criterion 2}
33
+ - [ ] {Criterion 3}
34
+
35
+ ## Assumptions
36
+
37
+ {Things assumed to be true that could affect implementation if they turn out to be false.}
38
+
39
+ - {Assumption 1}
40
+ - {Assumption 2}
41
+
42
+ ## Technical Constraints
43
+
44
+ {Architecture decisions, technology choices, or constraints that affect all tasks.}
45
+
46
+ - {Constraint 1}
47
+ - {Constraint 2}
48
+ ```
49
+
50
+ ## Key Points
51
+
52
+ - The requirements doc provides **overall feature context** that each coder agent receives alongside its task file. Keep it focused on the "what" and "why" — individual task files handle the "how."
53
+ - Non-goals are important: they prevent agents from over-building. If search functionality is out of scope, say so — otherwise a well-meaning agent might add it.
54
+ - Acceptance criteria here are feature-level (the whole thing works end-to-end). Task-level criteria live in each task file.
@@ -0,0 +1,79 @@
1
+ # Task File Template
2
+
3
+ Use this structure for each task file in the `tasks/` subfolder. Each task file must be **fully self-contained** — a coder agent reading only this file should know exactly what to implement, why, and how.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # Task {nn}: {Title}
9
+
10
+ ## Status
11
+
12
+ pending
13
+
14
+ ## Wave
15
+
16
+ {N}
17
+
18
+ ## Description
19
+
20
+ {2-5 sentences describing what this task accomplishes and why it matters in the context of the overall feature. Include enough context that an agent unfamiliar with the planning conversation understands the purpose.}
21
+
22
+ ## Dependencies
23
+
24
+ **Depends on:** {Comma-separated list of task filenames, or "None (Wave 1)"}
25
+ **Blocks:** {Comma-separated list of task filenames, or "None"}
26
+
27
+ **Context from dependencies:** {Prose summary of what the dependency tasks produce that this task needs. For example: "task-01-setup-database.md creates the PostgreSQL schema with users and sessions tables. This task builds the API routes that query those tables." This is what makes each file self-contained — the agent does not need to read other task files to understand its inputs.}
28
+
29
+ ## Files to Create
30
+
31
+ - `path/to/new-file.ts` — {Brief purpose}
32
+ - `path/to/another-file.ts` — {Brief purpose}
33
+
34
+ ## Files to Modify
35
+
36
+ - `path/to/existing-file.ts` — {What changes and why}
37
+
38
+ ## Technical Details
39
+
40
+ {All implementation-specific details from the planning conversation. This section is the single source of truth. Include:}
41
+
42
+ ### Implementation Steps
43
+
44
+ 1. {Step-by-step instructions with enough detail for independent implementation}
45
+ 2. {Include CLI commands where relevant: `pnpm add package-name`}
46
+ 3. {Include code snippets for non-obvious patterns}
47
+
48
+ ### Code Snippets
49
+
50
+ {Key type definitions, schemas, configuration blocks, or patterns that the implementer needs. Use fenced code blocks with language tags.}
51
+
52
+ ### Environment Variables
53
+
54
+ {If applicable:}
55
+ - `VAR_NAME` — {Purpose and example value}
56
+
57
+ ### API Endpoints
58
+
59
+ {If applicable:}
60
+ - `METHOD /path` — {Request/response shape}
61
+
62
+ ## Acceptance Criteria
63
+
64
+ - [ ] {Criterion 1 — specific and verifiable}
65
+ - [ ] {Criterion 2}
66
+ - [ ] {Criterion 3}
67
+
68
+ ## Notes
69
+
70
+ {Any additional context, edge cases, warnings, or architectural decisions relevant to this task. Omit this section if there's nothing to add.}
71
+ ```
72
+
73
+ ## Key Points
74
+
75
+ - The **Status** field is updated by the `implement-feature` skill: `pending` → `in-progress` → `complete`.
76
+ - The **Dependencies** section includes prose context (not just filenames) so the agent understands its inputs without reading other files. This is the most important part of making task files self-contained.
77
+ - **Files to Create** and **Files to Modify** make the task's scope explicit. Tasks in the same wave should not overlap on these lists.
78
+ - **Technical Details** captures everything from the planning conversation — CLI commands, schemas, code snippets, file paths, env vars, API endpoints. If it was discussed during planning and is relevant to this task, it belongs here.
79
+ - **Acceptance Criteria** should be specific enough that completion can be verified objectively (by a code review agent or a human).