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,394 @@
1
+ # Xani Agentic Starter Kit
2
+
3
+ Um starter kit orientado para produção que permite criar aplicações web com inteligência artificial através de um fluxo de desenvolvimento agêntico. Inclui uma aplicação Next.js funcional, autenticação, PostgreSQL, Drizzle ORM, integração com o AI SDK, componentes shadcn/ui e instruções de projeto que ajudam os agentes de programação a planear, dividir, implementar, rever e verificar alterações.
4
+
5
+ O objetivo é simples: instalar o starter, descrever o produto que pretende construir e deixar o seu agente de programação ajudar a transformar o boilerplate na sua POC, MVP ou ferramenta interna real.
6
+
7
+ ## O Que Recebe
8
+
9
+ - **Next.js 16 e React 19** com o App Router
10
+ - **TypeScript** e uma configuração de projeto rigorosa
11
+ - **Better Auth** com autenticação por email/palavra-passe ativada por predefinição
12
+ - **PostgreSQL e Drizzle ORM** para esquema e migrações
13
+ - **AI SDK e OpenRouter** para chat e funcionalidades de IA
14
+ - **shadcn/ui, Tailwind CSS e ícones Lucide** como base da interface
15
+ - **Armazenamento de ficheiros local ou Vercel Blob** através de uma única abstração de armazenamento
16
+ - **Instruções para agentes** através de `AGENTS.md` e `CLAUDE.md`
17
+ - **Skills para agentes** para especificações, implementação, revisões, análises de segurança, trabalho de interface e publicação
18
+
19
+ ## Início Rápido
20
+
21
+ Crie uma nova aplicação com a CLI:
22
+
23
+ ```bash
24
+ npx create-xani-agentic-app@latest my-app
25
+ cd my-app
26
+ ```
27
+
28
+ Ou crie a aplicação no diretório atual:
29
+
30
+ ```bash
31
+ npx create-xani-agentic-app@latest .
32
+ ```
33
+
34
+ De seguida, configure e execute a aplicação:
35
+
36
+ ```bash
37
+ cp env.example .env
38
+ docker compose up -d
39
+ pnpm db:migrate
40
+ pnpm dev
41
+ ```
42
+
43
+ Abra [http://localhost:3000](http://localhost:3000).
44
+
45
+ A CLI copia os ficheiros do starter, instala as dependências com o gestor de pacotes que selecionou e prepara o ficheiro de ambiente. Se utilizar o `npm`, substitua os comandos `pnpm` acima por `npm run`.
46
+
47
+ ## Configuração Guiada com o Claude Code (Opcional)
48
+
49
+ Se utilizar o Claude Code, pode instalar a skill `create-xani-agentic-app` e deixar o Claude conduzi-lo por toda a configuração — estratégia de pastas, gestor de pacotes, PostgreSQL (Docker / Neon / Vercel / próprio), configuração do `.env`, migrações, integrações opcionais (OpenRouter, Vercel Blob, Polar, email), verificação de build e validação do servidor de desenvolvimento — terminando num `http://localhost:3000` verificado.
50
+
51
+ Instale a skill:
52
+
53
+ ```bash
54
+ npx skills add AlexandreXavier/xani-agentic-starter-kit@create-xani-agentic-app --agent claude-code
55
+ ```
56
+
57
+ A flag `--agent claude-code` é obrigatória. Sem ela, o instalador coloca a skill em mais de 37 pastas de adaptadores de IDE na raiz do projeto.
58
+
59
+ Depois de instalada, peça algo ao Claude como:
60
+
61
+ ```text
62
+ Scaffold a new Xani Agentic Starter Kit project here.
63
+ ```
64
+
65
+ O Claude executará a skill de ponta a ponta e fará apenas as poucas decisões que realmente precisa de tomar.
66
+
67
+ ## Pré-requisitos
68
+
69
+ - Node.js 18 ou mais recente
70
+ - Git
71
+ - PostgreSQL, através do ficheiro Docker Compose incluído ou de um fornecedor alojado
72
+ - Um gestor de pacotes: `pnpm`, `npm` ou `yarn`
73
+ - Opcional: uma chave de API do OpenRouter para as funcionalidades de chat com IA
74
+ - Opcional: uma conta Vercel para implementação, Postgres alojado e armazenamento Blob
75
+
76
+ ## Variáveis de Ambiente
77
+
78
+ Comece a partir de `env.example` e atualize os valores para o seu ambiente:
79
+
80
+ ```env
81
+ # Database
82
+ POSTGRES_URL=postgresql://dev_user:dev_password@localhost:5432/postgres_dev
83
+
84
+ # Authentication - Better Auth
85
+ BETTER_AUTH_SECRET=your-random-secret
86
+
87
+ # AI Integration via OpenRouter
88
+ OPENROUTER_API_KEY=
89
+ OPENROUTER_MODEL="openai/gpt-5-mini"
90
+
91
+ # Optional - for vector search only
92
+ OPENAI_EMBEDDING_MODEL="text-embedding-3-large"
93
+
94
+ # App URL
95
+ NEXT_PUBLIC_APP_URL="http://localhost:3000"
96
+
97
+ # File storage
98
+ BLOB_READ_WRITE_TOKEN=
99
+
100
+ # Polar payment processing
101
+ POLAR_WEBHOOK_SECRET=polar_
102
+ POLAR_ACCESS_TOKEN=polar_
103
+ ```
104
+
105
+ Para desenvolvimento local, o URL de base de dados predefinido funciona com o `docker-compose.yml` incluído. Para produção, utilize o URL de base de dados do seu fornecedor de alojamento.
106
+
107
+ Gere um `BETTER_AUTH_SECRET` forte antes de implementar. O starter inclui apenas um valor de desenvolvimento para que possa começar rapidamente.
108
+
109
+ ## Autenticação Predefinida
110
+
111
+ O starter passa agora a utilizar por predefinição a **autenticação por email e palavra-passe** através do Better Auth. Isto mantém a primeira configuração simples e ajuda-o a começar a construir POCs e MVPs sem criar credenciais OAuth à partida.
112
+
113
+ A configuração de autenticação atual inclui:
114
+
115
+ - registo de utilizadores
116
+ - início de sessão por email/palavra-passe
117
+ - rotas protegidas
118
+ - fluxo de reposição de palavra-passe
119
+ - fluxo de verificação de email
120
+
121
+ Em desenvolvimento, as ligações de verificação e de reposição de palavra-passe são registadas no terminal em vez de serem enviadas através de um fornecedor de email. Quando estiver pronto para produção, peça ao seu agente de programação para ligar um serviço de email e atualizar os callbacks de email do Better Auth.
122
+
123
+ ### Adicionar o Google OAuth
124
+
125
+ O Google OAuth já não é a predefinição, mas voltar a adicioná-lo é simples. Peça ao seu agente de programação:
126
+
127
+ ```text
128
+ Add Google OAuth to this Better Auth setup. Keep email/password login enabled, add the Google provider, update the auth UI, and document the required Google environment variables.
129
+ ```
130
+
131
+ O seu agente deverá atualizar a configuração do Better Auth, adicionar as variáveis `GOOGLE_CLIENT_ID` e `GOOGLE_CLIENT_SECRET` necessárias e ajustar a interface de início de sessão.
132
+
133
+ ## Construir com um Agente
134
+
135
+ Este starter foi concebido para ser utilizado com agentes de programação. O projeto gerado inclui instruções que dizem aos agentes como planear, fazer perguntas, dividir o trabalho, utilizar sub-agentes quando útil, seguir o sistema de design e verificar as alterações.
136
+
137
+ - `AGENTS.md` é o ficheiro de instruções principal para o Codex, o Cursor e outras ferramentas compatíveis com agentes.
138
+ - `CLAUDE.md` encaminha os utilizadores do Claude para a mesma orientação de projeto.
139
+ - `.agents/skills/` e `.claude/skills/` incluem fluxos de trabalho opcionais para tarefas mais especializadas.
140
+ - `DESIGN.md` define o sistema de design da interface que os agentes devem seguir.
141
+
142
+ O fluxo de trabalho predefinido não requer comandos de barra (slash commands) nem um ficheiro de especificação separado.
143
+
144
+ ### Fluxo de Trabalho Predefinido Recomendado
145
+
146
+ 1. Instale o starter e abra o projeto no ambiente do seu agente de programação.
147
+ 2. Coloque a sua ferramenta de agente em modo de planeamento.
148
+ 3. Descreva a aplicação que pretende construir em linguagem simples.
149
+ 4. Deixe o agente fazer perguntas de esclarecimento e dar forma a um plano claro.
150
+ 5. Confirme o plano assim que o objetivo, o âmbito, as restrições e os critérios de sucesso estiverem claros.
151
+ 6. Coloque a sua ferramenta de agente em modo de edição.
152
+ 7. Peça ao agente para implementar o plano aprovado.
153
+ 8. O agente principal deve dividir o trabalho em fluxos paralelos, silos ou blocos de funcionalidades que caibam no contexto.
154
+ 9. O agente deve utilizar sub-agentes para implementar esses blocos em paralelo, quando útil, e depois coordenar os resultados.
155
+ 10. O agente deve executar verificações de qualidade como lint, typecheck e build.
156
+ 11. Reveja o resultado no navegador e itere.
157
+
158
+ Não necessita de um comando especial para este fluxo de trabalho predefinido. As instruções do projeto já dizem ao agente como planear, dividir o trabalho de implementação, utilizar sub-agentes e verificar o resultado.
159
+
160
+ ## Prompt Inicial
161
+
162
+ Utilize isto como primeira mensagem para o seu agente de programação após instalar o starter:
163
+
164
+ ```text
165
+ I am using the Xani Agentic Starter Kit. Treat the existing app as boilerplate that should be replaced by the product I describe.
166
+
167
+ Use the project instructions in AGENTS.md or CLAUDE.md. During planning, ask clarifying questions before making assumptions. During implementation, split the work into small chunks, use sub-agents where useful, follow DESIGN.md for UI, preserve the existing tech stack unless there is a good reason to change it, and run lint, typecheck, and build before finishing.
168
+
169
+ What I want to build:
170
+ [Describe your app here]
171
+ ```
172
+
173
+ Por exemplo:
174
+
175
+ ```text
176
+ What I want to build:
177
+ A lightweight CRM for solo consultants. It should let users manage clients, track deals, write notes, set follow-up reminders, and view a simple dashboard of open opportunities.
178
+ ```
179
+
180
+ ## Quando Utilizar Especificações
181
+
182
+ Para a maioria das POCs e MVPs, o fluxo de trabalho normal do agente é suficiente. Utilize uma especificação quando a funcionalidade for grande, de longa duração, arriscada ou tiver de ser dividida por várias sessões de implementação.
183
+
184
+ O starter inclui duas skills para esse fluxo de trabalho:
185
+
186
+ - `create-spec`: transforma uma conversa de planeamento em `specs/{feature}/` com requisitos, ficheiros de tarefas, ondas de dependências e notas de ações manuais.
187
+ - `implement-feature`: lê uma pasta de especificação e coordena a implementação onda a onda com pontos de controlo de revisão.
188
+
189
+ Utilize este fluxo de trabalho quando:
190
+
191
+ - a funcionalidade abrange muitos ficheiros ou módulos
192
+ - vários agentes devem trabalhar em paralelo
193
+ - a implementação pode demorar mais do que uma sessão
194
+ - precisa de acompanhamento de progresso retomável
195
+ - pretende um registo de implementação escrito antes de começar a programar
196
+
197
+ Exemplo de pedido ao agente:
198
+
199
+ ```text
200
+ Create a spec for the billing and subscriptions feature we just planned. Break it into parallel implementation waves and include any manual setup steps.
201
+ ```
202
+
203
+ Depois:
204
+
205
+ ```text
206
+ Implement the billing and subscriptions spec from specs/billing-subscriptions.
207
+ ```
208
+
209
+ ## Estrutura do Projeto
210
+
211
+ ```text
212
+ src/
213
+ ├── app/
214
+ │ ├── (auth)/
215
+ │ │ ├── forgot-password/
216
+ │ │ ├── login/
217
+ │ │ ├── register/
218
+ │ │ └── reset-password/
219
+ │ ├── api/
220
+ │ │ ├── auth/
221
+ │ │ ├── chat/
222
+ │ │ └── diagnostics/
223
+ │ ├── chat/
224
+ │ ├── dashboard/
225
+ │ ├── profile/
226
+ │ ├── layout.tsx
227
+ │ └── page.tsx
228
+ ├── components/
229
+ │ ├── auth/
230
+ │ ├── ui/
231
+ │ ├── site-footer.tsx
232
+ │ └── site-header.tsx
233
+ ├── hooks/
234
+ └── lib/
235
+ ├── auth.ts
236
+ ├── auth-client.ts
237
+ ├── db.ts
238
+ ├── env.ts
239
+ ├── schema.ts
240
+ ├── session.ts
241
+ ├── storage.ts
242
+ └── utils.ts
243
+ ```
244
+
245
+ Ficheiros importantes na raiz:
246
+
247
+ - `AGENTS.md`: regras de comportamento dos agentes de programação
248
+ - `CLAUDE.md`: ponto de entrada do Claude para a mesma orientação
249
+ - `DESIGN.md`: sistema de design da interface e orientação sobre componentes
250
+ - `drizzle.config.ts`: configuração das migrações do Drizzle
251
+ - `docker-compose.yml`: serviço PostgreSQL local
252
+ - `env.example`: modelo das variáveis de ambiente
253
+ - `components.json`: configuração do shadcn/ui
254
+
255
+ ## Scripts Disponíveis
256
+
257
+ ```bash
258
+ pnpm dev # Start the development server with Turbopack
259
+ pnpm build # Run migrations, then build for production
260
+ pnpm build:ci # Build without running migrations
261
+ pnpm start # Start the production server
262
+ pnpm lint # Run ESLint
263
+ pnpm typecheck # Run TypeScript without emitting files
264
+ pnpm check # Run lint and typecheck
265
+ pnpm format # Format the repository
266
+ pnpm format:check # Check formatting
267
+ pnpm setup # Run the setup script
268
+ pnpm db:generate # Generate Drizzle migrations
269
+ pnpm db:migrate # Run Drizzle migrations
270
+ pnpm db:studio # Open Drizzle Studio
271
+ ```
272
+
273
+ O repositório também contém scripts auxiliares de push/reset do Drizzle para experimentação local. Para alterações de esquema que pretenda manter, prefira:
274
+
275
+ ```bash
276
+ pnpm db:generate
277
+ pnpm db:migrate
278
+ ```
279
+
280
+ Não utilize o schema push como substituto das migrações em trabalho de projeto real.
281
+
282
+ ## Fluxo de Trabalho da Base de Dados
283
+
284
+ Para desenvolvimento local:
285
+
286
+ ```bash
287
+ docker compose up -d
288
+ pnpm db:migrate
289
+ ```
290
+
291
+ Quando a sua aplicação necessitar de alterações de esquema, peça ao seu agente para atualizar `src/lib/schema.ts`, gerar uma migração e executá-la:
292
+
293
+ ```bash
294
+ pnpm db:generate
295
+ pnpm db:migrate
296
+ ```
297
+
298
+ Se implementar na Vercel ou noutro ambiente alojado, defina `POSTGRES_URL` nesse ambiente antes de executar as migrações ou compilar a aplicação.
299
+
300
+ ## Funcionalidades de IA
301
+
302
+ O starter utiliza o Vercel AI SDK com o OpenRouter. Defina estas variáveis para ativar o chat com IA:
303
+
304
+ ```env
305
+ OPENROUTER_API_KEY=sk-or-v1-your-key
306
+ OPENROUTER_MODEL="openai/gpt-5-mini"
307
+ ```
308
+
309
+ O OpenRouter permite-lhe trocar de modelo sem alterar o código da aplicação. Atualize `OPENROUTER_MODEL` quando quiser experimentar um modelo diferente.
310
+
311
+ ## Armazenamento de Ficheiros
312
+
313
+ O starter inclui uma abstração de armazenamento que pode utilizar armazenamento local em desenvolvimento ou o Vercel Blob em produção.
314
+
315
+ Para desenvolvimento local, deixe `BLOB_READ_WRITE_TOKEN` vazio. Os ficheiros são guardados em `public/uploads/`.
316
+
317
+ Para o Vercel Blob:
318
+
319
+ 1. Crie um Blob store na Vercel.
320
+ 2. Copie o `BLOB_READ_WRITE_TOKEN`.
321
+ 3. Adicione-o às variáveis de ambiente de produção.
322
+
323
+ A aplicação escolhe o backend de armazenamento consoante o `BLOB_READ_WRITE_TOKEN` esteja ou não configurado.
324
+
325
+ ## Implementação
326
+
327
+ A Vercel é o destino de implementação recomendado.
328
+
329
+ ```bash
330
+ npm install -g vercel
331
+ vercel --prod
332
+ ```
333
+
334
+ Defina as variáveis de ambiente de produção necessárias:
335
+
336
+ - `POSTGRES_URL`
337
+ - `BETTER_AUTH_SECRET`
338
+ - `NEXT_PUBLIC_APP_URL`
339
+ - `OPENROUTER_API_KEY`, se utilizar funcionalidades de IA
340
+ - `OPENROUTER_MODEL`, se utilizar funcionalidades de IA
341
+ - `BLOB_READ_WRITE_TOKEN`, se utilizar o Vercel Blob
342
+ - `POLAR_WEBHOOK_SECRET` e `POLAR_ACCESS_TOKEN`, se utilizar pagamentos Polar
343
+
344
+ O script `pnpm build` predefinido executa as migrações da base de dados antes do `next build`. Se a sua CI ou alojamento não deve executar migrações durante o build, utilize `pnpm build:ci` e execute as migrações como um passo de implementação separado.
345
+
346
+ ## Resolução de Problemas
347
+
348
+ ### A aplicação não consegue ligar-se ao Postgres
349
+
350
+ Confirme que o Docker está a correr e inicie a base de dados:
351
+
352
+ ```bash
353
+ docker compose up -d
354
+ ```
355
+
356
+ Depois verifique que o `POSTGRES_URL` no `.env` corresponde à string de ligação da base de dados.
357
+
358
+ ### Os emails de reposição ou verificação de autenticação não chegam
359
+
360
+ Em desenvolvimento, as ligações são registadas no terminal. Isto é intencional. Ligue um fornecedor de email antes de utilizar a reposição de palavra-passe ou a verificação em produção.
361
+
362
+ ### O chat com IA não funciona
363
+
364
+ Defina `OPENROUTER_API_KEY` e reinicie o servidor de desenvolvimento. Confirme também que `OPENROUTER_MODEL` é um modelo disponível na sua conta OpenRouter.
365
+
366
+ ### O meu agente está a preservar demasiado boilerplate
367
+
368
+ Diga ao agente diretamente que a interface do starter é andaime (scaffolding) e deve ser substituída:
369
+
370
+ ```text
371
+ Replace the starter UI with the actual product UI. Do not keep setup checklists, placeholder navigation, demo content, or boilerplate copy unless I explicitly ask for it.
372
+ ```
373
+
374
+ ### Preciso de início de sessão com a Google
375
+
376
+ Peça ao seu agente para adicionar o Google OAuth através do Better Auth, mantendo o email/palavra-passe ativado. Vai precisar de credenciais OAuth da Google e de URLs de callback de produção.
377
+
378
+ ## Contribuir
379
+
380
+ 1. Faça fork deste repositório.
381
+ 2. Crie um branch de funcionalidade.
382
+ 3. Faça as suas alterações.
383
+ 4. Execute as verificações relevantes.
384
+ 5. Abra um pull request.
385
+
386
+ ## Licença
387
+
388
+ Este projeto está licenciado sob a Licença MIT.
389
+
390
+ ## Precisa de Ajuda?
391
+
392
+ - Consulte os issues do repositório: [github.com/AlexandreXavier/xani-agentic-starter-kit/issues](https://github.com/AlexandreXavier/xani-agentic-starter-kit/issues)
393
+ - Reveja `AGENTS.md`, `CLAUDE.md` e `DESIGN.md`
394
+ - Abra um novo issue com os passos exatos de configuração, o output do erro e os detalhes do ambiente
@@ -0,0 +1,48 @@
1
+ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ /node_modules
5
+ /.pnp
6
+ .pnp.*
7
+ .yarn/*
8
+ !.yarn/patches
9
+ !.yarn/plugins
10
+ !.yarn/releases
11
+ !.yarn/versions
12
+ .pnpm-lock.yaml
13
+
14
+ # testing
15
+ /coverage
16
+ /.playwright-mcp
17
+
18
+ # next.js
19
+ /.next/
20
+ /out/
21
+
22
+ # production
23
+ /build
24
+
25
+ # misc
26
+ .DS_Store
27
+ *.pem
28
+
29
+ # debug
30
+ npm-debug.log*
31
+ yarn-debug.log*
32
+ yarn-error.log*
33
+ .pnpm-debug.log*
34
+
35
+ # env files (can opt-in for committing if needed)
36
+ .env*
37
+
38
+ # vercel
39
+ .vercel
40
+
41
+ # typescript
42
+ *.tsbuildinfo
43
+ next-env.d.ts
44
+
45
+ # uploads
46
+ public/uploads
47
+
48
+ nul
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "new-york",
4
+ "rsc": true,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "",
8
+ "css": "src/app/globals.css",
9
+ "baseColor": "neutral",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ },
20
+ "iconLibrary": "lucide"
21
+ }
@@ -0,0 +1,9 @@
1
+ services:
2
+ postgres:
3
+ image: pgvector/pgvector:pg18
4
+ environment:
5
+ POSTGRES_DB: postgres_dev
6
+ POSTGRES_USER: dev_user
7
+ POSTGRES_PASSWORD: dev_password
8
+ ports:
9
+ - "5432:5432"
@@ -0,0 +1,94 @@
1
+ I'm working with an agentic coding boilerplate project that includes authentication, database integration, and AI capabilities. Here's what's already set up:
2
+
3
+ ## Current Xani Agentic Starter Kit Structure
4
+
5
+ - **Authentication**: Better Auth with Google OAuth integration
6
+ - **Database**: Drizzle ORM with PostgreSQL setup
7
+ - **AI Integration**: Vercel AI SDK with OpenAI integration
8
+ - **UI**: shadcn/ui components with Tailwind CSS
9
+ - **Current Routes**:
10
+ - `/` - Home page with setup instructions and feature overview
11
+ - `/dashboard` - Protected dashboard page (requires authentication)
12
+ - `/chat` - AI chat interface (requires OpenAI API key)
13
+
14
+ ## Important Context
15
+
16
+ This is an **agentic coding boilerplate/starter template** - all existing pages and components are meant to be examples and should be **completely replaced** to build the actual AI-powered application.
17
+
18
+ ### CRITICAL: You MUST Override All Boilerplate Content
19
+
20
+ **DO NOT keep any boilerplate components, text, or UI elements unless explicitly requested.** This includes:
21
+
22
+ - **Remove all placeholder/demo content** (setup checklists, welcome messages, boilerplate text)
23
+ - **Replace the entire navigation structure** - don't keep the existing site header or nav items
24
+ - **Override all page content completely** - don't append to existing pages, replace them entirely
25
+ - **Remove or replace all example components** (setup-checklist, starter-prompt-modal, etc.)
26
+ - **Replace placeholder routes and pages** with the actual application functionality
27
+
28
+ ### Required Actions:
29
+
30
+ 1. **Start Fresh**: Treat existing components as temporary scaffolding to be removed
31
+ 2. **Complete Replacement**: Build the new application from scratch using the existing tech stack
32
+ 3. **No Hybrid Approach**: Don't try to integrate new features alongside existing boilerplate content
33
+ 4. **Clean Slate**: The final application should have NO trace of the original boilerplate UI or content
34
+
35
+ The only things to preserve are:
36
+
37
+ - **All installed libraries and dependencies** (DO NOT uninstall or remove any packages from package.json)
38
+ - **Authentication system** (but customize the UI/flow as needed)
39
+ - **Database setup and schema** (but modify schema as needed for your use case)
40
+ - **Core configuration files** (next.config.ts, tsconfig.json, tailwind.config.ts, etc.)
41
+ - **Build and development scripts** (keep all npm/pnpm scripts in package.json)
42
+
43
+ ## Tech Stack
44
+
45
+ - Next.js 16 with App Router
46
+ - TypeScript
47
+ - Tailwind CSS
48
+ - Better Auth for authentication
49
+ - Drizzle ORM + PostgreSQL
50
+ - Vercel AI SDK
51
+ - shadcn/ui components
52
+ - Lucide React icons
53
+
54
+ ## Component Development Guidelines
55
+
56
+ **Always prioritize shadcn/ui components** when building the application:
57
+
58
+ 1. **First Choice**: Use existing shadcn/ui components from the project
59
+ 2. **Second Choice**: Install additional shadcn/ui components using `pnpm dlx shadcn@latest add <component-name>`
60
+ 3. **Last Resort**: Only create custom components or use other libraries if shadcn/ui doesn't provide a suitable option
61
+
62
+ The project already includes several shadcn/ui components (button, dialog, avatar, etc.) and follows their design system. Always check the [shadcn/ui documentation](https://ui.shadcn.com/docs/components) for available components before implementing alternatives.
63
+
64
+ ## What I Want to Build
65
+
66
+ Basic todo list app with the ability for users to add, remove, update, complete and view todos.
67
+
68
+ ## Request
69
+
70
+ Please help me transform this boilerplate into my actual application. **You MUST completely replace all existing boilerplate code** to match my project requirements. The current implementation is just temporary scaffolding that should be entirely removed and replaced.
71
+
72
+ ## Final Reminder: COMPLETE REPLACEMENT REQUIRED
73
+
74
+ 🚨 **IMPORTANT**: Do not preserve any of the existing boilerplate UI, components, or content. The user expects a completely fresh application that implements their requirements from scratch. Any remnants of the original boilerplate (like setup checklists, welcome screens, demo content, or placeholder navigation) indicate incomplete implementation.
75
+
76
+ **Success Criteria**: The final application should look and function as if it was built from scratch for the specific use case, with no evidence of the original boilerplate template.
77
+
78
+ ## Post-Implementation Documentation
79
+
80
+ After completing the implementation, you MUST document any new features or significant changes in the `/docs/features/` directory:
81
+
82
+ 1. **Create Feature Documentation**: For each major feature implemented, create a markdown file in `/docs/features/` that explains:
83
+
84
+ - What the feature does
85
+ - How it works
86
+ - Key components and files involved
87
+ - Usage examples
88
+ - Any configuration or setup required
89
+
90
+ 2. **Update Existing Documentation**: If you modify existing functionality, update the relevant documentation files to reflect the changes.
91
+
92
+ 3. **Document Design Decisions**: Include any important architectural or design decisions made during implementation.
93
+
94
+ This documentation helps maintain the project and assists future developers working with the codebase.