opencode-agent-kit 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 (361) hide show
  1. package/README.md +796 -0
  2. package/bin/commands/init.mjs +221 -0
  3. package/bin/init.mjs +21 -0
  4. package/package.json +22 -0
  5. package/template/.opencode/agent-docs/backend/README.md +0 -0
  6. package/template/.opencode/agent-docs/backend/node/BACKEND_PATTERNS.md +82 -0
  7. package/template/.opencode/agent-docs/backend/node/BACKEND_QUICK_START.md +49 -0
  8. package/template/.opencode/agent-docs/frontend/next/README.md +0 -0
  9. package/template/.opencode/agent-docs/frontend/nuxt/API_PATTERNS.md +807 -0
  10. package/template/.opencode/agent-docs/frontend/nuxt/CHEATSHEET.md +676 -0
  11. package/template/.opencode/agent-docs/frontend/nuxt/COMPLETION_REPORT.md +613 -0
  12. package/template/.opencode/agent-docs/frontend/nuxt/EXAMPLES.md +956 -0
  13. package/template/.opencode/agent-docs/frontend/nuxt/INDEX.md +596 -0
  14. package/template/.opencode/agent-docs/frontend/nuxt/MCP_GUIDE.md +881 -0
  15. package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_CURRICULUM_30_DAYS.md +256 -0
  16. package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_CURRICULUM_CHECKLIST.md +156 -0
  17. package/template/.opencode/agent-docs/frontend/nuxt/MENTOR_WEEKLY_ASSIGNMENTS.md +191 -0
  18. package/template/.opencode/agent-docs/frontend/nuxt/QUICK_START.md +509 -0
  19. package/template/.opencode/agent-docs/frontend/nuxt/README.md +506 -0
  20. package/template/.opencode/agent-docs/frontend/nuxt/README_AGENTS.md +140 -0
  21. package/template/.opencode/agent-docs/frontend/nuxt/README_DOCS.md +65 -0
  22. package/template/.opencode/agent-docs/frontend/nuxt/SUMMARY.md +474 -0
  23. package/template/.opencode/agent-docs/frontend/nuxt/TEAM_OPERATING_GUIDE.md +54 -0
  24. package/template/.opencode/agent-docs/frontend/nuxt/TESTING_GUIDE.md +904 -0
  25. package/template/.opencode/agent-docs/frontend/nuxt/WORKFLOWS.md +758 -0
  26. package/template/.opencode/agent-docs/frontend/react/API_PATTERNS.md +187 -0
  27. package/template/.opencode/agent-docs/frontend/react/CHEATSHEET.md +87 -0
  28. package/template/.opencode/agent-docs/frontend/react/INDEX.md +45 -0
  29. package/template/.opencode/agent-docs/frontend/react/QUICK_START.md +43 -0
  30. package/template/.opencode/agent-docs/frontend/react/README.md +159 -0
  31. package/template/.opencode/agent-docs/frontend/vue/README.md +0 -0
  32. package/template/.opencode/agent-docs/mobile/android/README.md +45 -0
  33. package/template/.opencode/agent-docs/mobile/flutter/README.md +44 -0
  34. package/template/.opencode/agents/android-developer.md +418 -0
  35. package/template/.opencode/agents/code-igniter-3-fullstack.md +345 -0
  36. package/template/.opencode/agents/code-reviewer.md +517 -0
  37. package/template/.opencode/agents/database-specialist.md +455 -0
  38. package/template/.opencode/agents/devops-specialist.md +562 -0
  39. package/template/.opencode/agents/flutter-developer.md +556 -0
  40. package/template/.opencode/agents/it-leader.md +911 -0
  41. package/template/.opencode/agents/laravel-advanced.md +691 -0
  42. package/template/.opencode/agents/node-backend-developer.md +343 -0
  43. package/template/.opencode/agents/nuxt-frontend-developer-mentor.md +402 -0
  44. package/template/.opencode/agents/nuxt-frontend-developer.md +1573 -0
  45. package/template/.opencode/agents/react-frontend-developer.md +1017 -0
  46. package/template/.opencode/agents/seo-specialist.md +681 -0
  47. package/template/.opencode/agents/ui-ux-designer.md +783 -0
  48. package/template/.opencode/commands/android-build/command.md +25 -0
  49. package/template/.opencode/commands/android-test/command.md +23 -0
  50. package/template/.opencode/commands/build-fix.md +29 -0
  51. package/template/.opencode/commands/checkpoint.md +74 -0
  52. package/template/.opencode/commands/code-review.md +40 -0
  53. package/template/.opencode/commands/e2e.md +363 -0
  54. package/template/.opencode/commands/eval.md +120 -0
  55. package/template/.opencode/commands/evolve.md +193 -0
  56. package/template/.opencode/commands/flutter-build/command.md +25 -0
  57. package/template/.opencode/commands/flutter-test/command.md +24 -0
  58. package/template/.opencode/commands/go-build.md +183 -0
  59. package/template/.opencode/commands/go-review.md +148 -0
  60. package/template/.opencode/commands/go-test.md +268 -0
  61. package/template/.opencode/commands/gpc-release/command.md +30 -0
  62. package/template/.opencode/commands/instinct-export.md +91 -0
  63. package/template/.opencode/commands/instinct-import.md +142 -0
  64. package/template/.opencode/commands/instinct-status.md +86 -0
  65. package/template/.opencode/commands/learn.md +70 -0
  66. package/template/.opencode/commands/multi-backend.md +158 -0
  67. package/template/.opencode/commands/multi-execute.md +310 -0
  68. package/template/.opencode/commands/multi-frontend.md +158 -0
  69. package/template/.opencode/commands/multi-plan.md +261 -0
  70. package/template/.opencode/commands/multi-workflow.md +183 -0
  71. package/template/.opencode/commands/orchestrate.md +172 -0
  72. package/template/.opencode/commands/plan.md +113 -0
  73. package/template/.opencode/commands/pm2.md +271 -0
  74. package/template/.opencode/commands/python-review.md +297 -0
  75. package/template/.opencode/commands/refactor-clean.md +28 -0
  76. package/template/.opencode/commands/sessions.md +305 -0
  77. package/template/.opencode/commands/setup-pm.md +80 -0
  78. package/template/.opencode/commands/skill-create.md +174 -0
  79. package/template/.opencode/commands/tdd.md +326 -0
  80. package/template/.opencode/commands/test-coverage.md +27 -0
  81. package/template/.opencode/commands/update-codemaps.md +17 -0
  82. package/template/.opencode/commands/update-docs.md +31 -0
  83. package/template/.opencode/commands/verify.md +59 -0
  84. package/template/.opencode/config.example.json +309 -0
  85. package/template/.opencode/config.json +341 -0
  86. package/template/.opencode/contexts/dev.md +20 -0
  87. package/template/.opencode/contexts/research.md +26 -0
  88. package/template/.opencode/contexts/review.md +22 -0
  89. package/template/.opencode/hooks/hooks.json +169 -0
  90. package/template/.opencode/instructions/INSTRUCTIONS.md +388 -0
  91. package/template/.opencode/package.json +5 -0
  92. package/template/.opencode/rules/README.md +82 -0
  93. package/template/.opencode/rules/android/gradle.md +62 -0
  94. package/template/.opencode/rules/android/testing.md +27 -0
  95. package/template/.opencode/rules/common/agents.md +49 -0
  96. package/template/.opencode/rules/common/coding-style.md +48 -0
  97. package/template/.opencode/rules/common/git-workflow.md +45 -0
  98. package/template/.opencode/rules/common/hooks.md +30 -0
  99. package/template/.opencode/rules/common/patterns.md +31 -0
  100. package/template/.opencode/rules/common/performance.md +55 -0
  101. package/template/.opencode/rules/common/security.md +29 -0
  102. package/template/.opencode/rules/common/testing.md +29 -0
  103. package/template/.opencode/rules/flutter/state-management.md +57 -0
  104. package/template/.opencode/rules/flutter/testing.md +42 -0
  105. package/template/.opencode/rules/golang/coding-style.md +26 -0
  106. package/template/.opencode/rules/golang/hooks.md +11 -0
  107. package/template/.opencode/rules/golang/patterns.md +39 -0
  108. package/template/.opencode/rules/golang/security.md +28 -0
  109. package/template/.opencode/rules/golang/testing.md +25 -0
  110. package/template/.opencode/rules/mobile/performance.md +36 -0
  111. package/template/.opencode/rules/python/coding-style.md +37 -0
  112. package/template/.opencode/rules/python/hooks.md +14 -0
  113. package/template/.opencode/rules/python/patterns.md +34 -0
  114. package/template/.opencode/rules/python/security.md +25 -0
  115. package/template/.opencode/rules/python/testing.md +33 -0
  116. package/template/.opencode/rules/typescript/coding-style.md +58 -0
  117. package/template/.opencode/rules/typescript/hooks.md +15 -0
  118. package/template/.opencode/rules/typescript/patterns.md +45 -0
  119. package/template/.opencode/rules/typescript/security.md +21 -0
  120. package/template/.opencode/rules/typescript/testing.md +11 -0
  121. package/template/.opencode/skills/api-documentation/SKILL.md +188 -0
  122. package/template/.opencode/skills/backend-patterns/SKILL.md +587 -0
  123. package/template/.opencode/skills/building-components/SKILL.md +37 -0
  124. package/template/.opencode/skills/building-components/references/accessibility.mdx +819 -0
  125. package/template/.opencode/skills/building-components/references/as-child.mdx +324 -0
  126. package/template/.opencode/skills/building-components/references/composition.mdx +239 -0
  127. package/template/.opencode/skills/building-components/references/data-attributes.mdx +413 -0
  128. package/template/.opencode/skills/building-components/references/definitions.mdx +258 -0
  129. package/template/.opencode/skills/building-components/references/design-tokens.mdx +57 -0
  130. package/template/.opencode/skills/building-components/references/docs.mdx +155 -0
  131. package/template/.opencode/skills/building-components/references/marketplaces.mdx +144 -0
  132. package/template/.opencode/skills/building-components/references/npm.mdx +166 -0
  133. package/template/.opencode/skills/building-components/references/polymorphism.mdx +583 -0
  134. package/template/.opencode/skills/building-components/references/principles.mdx +61 -0
  135. package/template/.opencode/skills/building-components/references/registry.mdx +169 -0
  136. package/template/.opencode/skills/building-components/references/state.mdx +99 -0
  137. package/template/.opencode/skills/building-components/references/styling.mdx +286 -0
  138. package/template/.opencode/skills/building-components/references/types.mdx +191 -0
  139. package/template/.opencode/skills/clickhouse-io/SKILL.md +429 -0
  140. package/template/.opencode/skills/coding-standards/SKILL.md +520 -0
  141. package/template/.opencode/skills/configure-ecc/SKILL.md +298 -0
  142. package/template/.opencode/skills/continuous-learning/SKILL.md +110 -0
  143. package/template/.opencode/skills/continuous-learning/config.json +18 -0
  144. package/template/.opencode/skills/continuous-learning/evaluate-session.sh +60 -0
  145. package/template/.opencode/skills/continuous-learning-v2/SKILL.md +284 -0
  146. package/template/.opencode/skills/continuous-learning-v2/agents/observer.md +137 -0
  147. package/template/.opencode/skills/continuous-learning-v2/agents/start-observer.sh +134 -0
  148. package/template/.opencode/skills/continuous-learning-v2/config.json +41 -0
  149. package/template/.opencode/skills/continuous-learning-v2/hooks/observe.sh +153 -0
  150. package/template/.opencode/skills/continuous-learning-v2/scripts/instinct-cli.py +489 -0
  151. package/template/.opencode/skills/continuous-learning-v2/scripts/test_parse_instinct.py +82 -0
  152. package/template/.opencode/skills/dart-add-unit-test/SKILL.md +122 -0
  153. package/template/.opencode/skills/dart-build-cli-app/SKILL.md +185 -0
  154. package/template/.opencode/skills/dart-collect-coverage/SKILL.md +141 -0
  155. package/template/.opencode/skills/dart-fix-runtime-errors/SKILL.md +166 -0
  156. package/template/.opencode/skills/dart-generate-test-mocks/SKILL.md +155 -0
  157. package/template/.opencode/skills/dart-migrate-to-checks-package/SKILL.md +126 -0
  158. package/template/.opencode/skills/dart-resolve-package-conflicts/SKILL.md +116 -0
  159. package/template/.opencode/skills/dart-run-static-analysis/SKILL.md +104 -0
  160. package/template/.opencode/skills/dart-use-pattern-matching/SKILL.md +146 -0
  161. package/template/.opencode/skills/django-patterns/SKILL.md +733 -0
  162. package/template/.opencode/skills/django-security/SKILL.md +592 -0
  163. package/template/.opencode/skills/django-tdd/SKILL.md +728 -0
  164. package/template/.opencode/skills/django-verification/SKILL.md +460 -0
  165. package/template/.opencode/skills/eval-harness/SKILL.md +227 -0
  166. package/template/.opencode/skills/firebase-basics/SKILL.md +103 -0
  167. package/template/.opencode/skills/firebase-basics/references/additional-skills.md +113 -0
  168. package/template/.opencode/skills/firebase-basics/references/cli-usage.md +31 -0
  169. package/template/.opencode/skills/firebase-basics/references/client-library-usage.md +45 -0
  170. package/template/.opencode/skills/firebase-basics/references/core-concepts.md +61 -0
  171. package/template/.opencode/skills/firebase-basics/references/iac-usage.md +40 -0
  172. package/template/.opencode/skills/firebase-basics/references/iam-security.md +74 -0
  173. package/template/.opencode/skills/firebase-basics/references/mcp-usage.md +63 -0
  174. package/template/.opencode/skills/flutter/SKILL.md +292 -0
  175. package/template/.opencode/skills/flutter-add-integration-test/SKILL.md +163 -0
  176. package/template/.opencode/skills/flutter-add-widget-preview/SKILL.md +145 -0
  177. package/template/.opencode/skills/flutter-add-widget-test/SKILL.md +154 -0
  178. package/template/.opencode/skills/flutter-apply-architecture-best-practices/SKILL.md +162 -0
  179. package/template/.opencode/skills/flutter-build-responsive-layout/SKILL.md +139 -0
  180. package/template/.opencode/skills/flutter-fix-layout-issues/SKILL.md +130 -0
  181. package/template/.opencode/skills/flutter-implement-json-serialization/SKILL.md +153 -0
  182. package/template/.opencode/skills/flutter-setup-declarative-routing/SKILL.md +255 -0
  183. package/template/.opencode/skills/flutter-setup-localization/SKILL.md +210 -0
  184. package/template/.opencode/skills/flutter-use-http-package/SKILL.md +174 -0
  185. package/template/.opencode/skills/frontend-design/SKILL.md +89 -0
  186. package/template/.opencode/skills/frontend-patterns/SKILL.md +631 -0
  187. package/template/.opencode/skills/golang-patterns/SKILL.md +673 -0
  188. package/template/.opencode/skills/golang-testing/SKILL.md +719 -0
  189. package/template/.opencode/skills/impeccable/SKILL.md +165 -0
  190. package/template/.opencode/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
  191. package/template/.opencode/skills/impeccable/reference/adapt.md +190 -0
  192. package/template/.opencode/skills/impeccable/reference/animate.md +175 -0
  193. package/template/.opencode/skills/impeccable/reference/audit.md +133 -0
  194. package/template/.opencode/skills/impeccable/reference/bolder.md +113 -0
  195. package/template/.opencode/skills/impeccable/reference/brand.md +118 -0
  196. package/template/.opencode/skills/impeccable/reference/clarify.md +174 -0
  197. package/template/.opencode/skills/impeccable/reference/codex.md +105 -0
  198. package/template/.opencode/skills/impeccable/reference/cognitive-load.md +106 -0
  199. package/template/.opencode/skills/impeccable/reference/color-and-contrast.md +105 -0
  200. package/template/.opencode/skills/impeccable/reference/colorize.md +154 -0
  201. package/template/.opencode/skills/impeccable/reference/craft.md +123 -0
  202. package/template/.opencode/skills/impeccable/reference/critique.md +273 -0
  203. package/template/.opencode/skills/impeccable/reference/delight.md +302 -0
  204. package/template/.opencode/skills/impeccable/reference/distill.md +111 -0
  205. package/template/.opencode/skills/impeccable/reference/document.md +427 -0
  206. package/template/.opencode/skills/impeccable/reference/extract.md +69 -0
  207. package/template/.opencode/skills/impeccable/reference/harden.md +347 -0
  208. package/template/.opencode/skills/impeccable/reference/heuristics-scoring.md +234 -0
  209. package/template/.opencode/skills/impeccable/reference/interaction-design.md +195 -0
  210. package/template/.opencode/skills/impeccable/reference/layout.md +141 -0
  211. package/template/.opencode/skills/impeccable/reference/live.md +622 -0
  212. package/template/.opencode/skills/impeccable/reference/motion-design.md +109 -0
  213. package/template/.opencode/skills/impeccable/reference/onboard.md +234 -0
  214. package/template/.opencode/skills/impeccable/reference/optimize.md +258 -0
  215. package/template/.opencode/skills/impeccable/reference/overdrive.md +130 -0
  216. package/template/.opencode/skills/impeccable/reference/personas.md +179 -0
  217. package/template/.opencode/skills/impeccable/reference/polish.md +242 -0
  218. package/template/.opencode/skills/impeccable/reference/product.md +62 -0
  219. package/template/.opencode/skills/impeccable/reference/quieter.md +99 -0
  220. package/template/.opencode/skills/impeccable/reference/responsive-design.md +114 -0
  221. package/template/.opencode/skills/impeccable/reference/shape.md +165 -0
  222. package/template/.opencode/skills/impeccable/reference/spatial-design.md +100 -0
  223. package/template/.opencode/skills/impeccable/reference/teach.md +156 -0
  224. package/template/.opencode/skills/impeccable/reference/typeset.md +124 -0
  225. package/template/.opencode/skills/impeccable/reference/typography.md +159 -0
  226. package/template/.opencode/skills/impeccable/reference/ux-writing.md +107 -0
  227. package/template/.opencode/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  228. package/template/.opencode/skills/impeccable/scripts/command-metadata.json +94 -0
  229. package/template/.opencode/skills/impeccable/scripts/critique-storage.mjs +242 -0
  230. package/template/.opencode/skills/impeccable/scripts/design-parser.mjs +820 -0
  231. package/template/.opencode/skills/impeccable/scripts/detect-csp.mjs +198 -0
  232. package/template/.opencode/skills/impeccable/scripts/detect.mjs +21 -0
  233. package/template/.opencode/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
  234. package/template/.opencode/skills/impeccable/scripts/is-generated.mjs +69 -0
  235. package/template/.opencode/skills/impeccable/scripts/live-accept.mjs +595 -0
  236. package/template/.opencode/skills/impeccable/scripts/live-browser-session.js +123 -0
  237. package/template/.opencode/skills/impeccable/scripts/live-browser.js +4860 -0
  238. package/template/.opencode/skills/impeccable/scripts/live-complete.mjs +75 -0
  239. package/template/.opencode/skills/impeccable/scripts/live-completion.mjs +18 -0
  240. package/template/.opencode/skills/impeccable/scripts/live-inject.mjs +446 -0
  241. package/template/.opencode/skills/impeccable/scripts/live-poll.mjs +200 -0
  242. package/template/.opencode/skills/impeccable/scripts/live-resume.mjs +48 -0
  243. package/template/.opencode/skills/impeccable/scripts/live-server.mjs +838 -0
  244. package/template/.opencode/skills/impeccable/scripts/live-session-store.mjs +254 -0
  245. package/template/.opencode/skills/impeccable/scripts/live-status.mjs +47 -0
  246. package/template/.opencode/skills/impeccable/scripts/live-wrap.mjs +632 -0
  247. package/template/.opencode/skills/impeccable/scripts/live.mjs +247 -0
  248. package/template/.opencode/skills/impeccable/scripts/load-context.mjs +141 -0
  249. package/template/.opencode/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  250. package/template/.opencode/skills/impeccable/scripts/pin.mjs +214 -0
  251. package/template/.opencode/skills/iterative-retrieval/SKILL.md +202 -0
  252. package/template/.opencode/skills/java-coding-standards/SKILL.md +138 -0
  253. package/template/.opencode/skills/jetpack-compose/.skillfish.json +10 -0
  254. package/template/.opencode/skills/jetpack-compose/SKILL.md +420 -0
  255. package/template/.opencode/skills/jpa-patterns/SKILL.md +141 -0
  256. package/template/.opencode/skills/nutrient-document-processing/SKILL.md +165 -0
  257. package/template/.opencode/skills/nuxt-ui/SKILL.md +334 -0
  258. package/template/.opencode/skills/nuxt-ui/references/components.md +377 -0
  259. package/template/.opencode/skills/nuxt-ui/references/composables.md +127 -0
  260. package/template/.opencode/skills/nuxt-ui/references/layouts/chat.md +266 -0
  261. package/template/.opencode/skills/nuxt-ui/references/layouts/dashboard.md +220 -0
  262. package/template/.opencode/skills/nuxt-ui/references/layouts/docs.md +141 -0
  263. package/template/.opencode/skills/nuxt-ui/references/layouts/editor.md +168 -0
  264. package/template/.opencode/skills/nuxt-ui/references/layouts/page.md +260 -0
  265. package/template/.opencode/skills/nuxt-ui/references/theming.md +427 -0
  266. package/template/.opencode/skills/postgres-patterns/SKILL.md +146 -0
  267. package/template/.opencode/skills/project-guidelines-example/SKILL.md +345 -0
  268. package/template/.opencode/skills/python-patterns/SKILL.md +749 -0
  269. package/template/.opencode/skills/python-testing/SKILL.md +815 -0
  270. package/template/.opencode/skills/security-review/SKILL.md +494 -0
  271. package/template/.opencode/skills/security-review/cloud-infrastructure-security.md +361 -0
  272. package/template/.opencode/skills/shadcn-ui/README.md +248 -0
  273. package/template/.opencode/skills/shadcn-ui/SKILL.md +326 -0
  274. package/template/.opencode/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
  275. package/template/.opencode/skills/shadcn-ui/examples/data-table.tsx +313 -0
  276. package/template/.opencode/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
  277. package/template/.opencode/skills/shadcn-ui/resources/component-catalog.md +481 -0
  278. package/template/.opencode/skills/shadcn-ui/resources/customization-guide.md +516 -0
  279. package/template/.opencode/skills/shadcn-ui/resources/migration-guide.md +463 -0
  280. package/template/.opencode/skills/shadcn-ui/resources/setup-guide.md +412 -0
  281. package/template/.opencode/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
  282. package/template/.opencode/skills/springboot-patterns/SKILL.md +304 -0
  283. package/template/.opencode/skills/springboot-security/SKILL.md +119 -0
  284. package/template/.opencode/skills/springboot-tdd/SKILL.md +157 -0
  285. package/template/.opencode/skills/springboot-verification/SKILL.md +100 -0
  286. package/template/.opencode/skills/strategic-compact/SKILL.md +63 -0
  287. package/template/.opencode/skills/strategic-compact/suggest-compact.sh +52 -0
  288. package/template/.opencode/skills/tdd-workflow/SKILL.md +409 -0
  289. package/template/.opencode/skills/vercel-composition-patterns/AGENTS.md +946 -0
  290. package/template/.opencode/skills/vercel-composition-patterns/SKILL.md +89 -0
  291. package/template/.opencode/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  292. package/template/.opencode/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  293. package/template/.opencode/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  294. package/template/.opencode/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  295. package/template/.opencode/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  296. package/template/.opencode/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  297. package/template/.opencode/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  298. package/template/.opencode/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  299. package/template/.opencode/skills/vercel-react-best-practices/AGENTS.md +2934 -0
  300. package/template/.opencode/skills/vercel-react-best-practices/SKILL.md +136 -0
  301. package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  302. package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  303. package/template/.opencode/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  304. package/template/.opencode/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  305. package/template/.opencode/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  306. package/template/.opencode/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  307. package/template/.opencode/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  308. package/template/.opencode/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  309. package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  310. package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  311. package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  312. package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  313. package/template/.opencode/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  314. package/template/.opencode/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  315. package/template/.opencode/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  316. package/template/.opencode/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  317. package/template/.opencode/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  318. package/template/.opencode/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  319. package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  320. package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  321. package/template/.opencode/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  322. package/template/.opencode/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  323. package/template/.opencode/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  324. package/template/.opencode/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  325. package/template/.opencode/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  326. package/template/.opencode/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  327. package/template/.opencode/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  328. package/template/.opencode/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  329. package/template/.opencode/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  330. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  331. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  332. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  333. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  334. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  335. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  336. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  337. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  338. package/template/.opencode/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  339. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  340. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  341. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  342. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  343. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  344. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  345. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  346. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  347. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  348. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  349. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  350. package/template/.opencode/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  351. package/template/.opencode/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  352. package/template/.opencode/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  353. package/template/.opencode/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  354. package/template/.opencode/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  355. package/template/.opencode/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  356. package/template/.opencode/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  357. package/template/.opencode/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  358. package/template/.opencode/skills/verification-loop/SKILL.md +120 -0
  359. package/template/.opencode/skills/web-design-guidelines/SKILL.md +39 -0
  360. package/template/AGENTS.md +32 -0
  361. package/template/opencode.json +354 -0
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: nutrient-document-processing
3
+ description: Process, convert, OCR, extract, redact, sign, and fill documents using the Nutrient DWS API. Works with PDFs, DOCX, XLSX, PPTX, HTML, and images.
4
+ ---
5
+
6
+ # Nutrient Document Processing
7
+
8
+ Process documents with the [Nutrient DWS Processor API](https://www.nutrient.io/api/). Convert formats, extract text and tables, OCR scanned documents, redact PII, add watermarks, digitally sign, and fill PDF forms.
9
+
10
+ ## Setup
11
+
12
+ Get a free API key at **https://dashboard.nutrient.io/sign_up/?product=processor**
13
+
14
+ ```bash
15
+ export NUTRIENT_API_KEY="pdf_live_..."
16
+ ```
17
+
18
+ All requests go to `https://api.nutrient.io/build` as multipart POST with an `instructions` JSON field.
19
+
20
+ ## Operations
21
+
22
+ ### Convert Documents
23
+
24
+ ```bash
25
+ # DOCX to PDF
26
+ curl -X POST https://api.nutrient.io/build \
27
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
28
+ -F "document.docx=@document.docx" \
29
+ -F 'instructions={"parts":[{"file":"document.docx"}]}' \
30
+ -o output.pdf
31
+
32
+ # PDF to DOCX
33
+ curl -X POST https://api.nutrient.io/build \
34
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
35
+ -F "document.pdf=@document.pdf" \
36
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"output":{"type":"docx"}}' \
37
+ -o output.docx
38
+
39
+ # HTML to PDF
40
+ curl -X POST https://api.nutrient.io/build \
41
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
42
+ -F "index.html=@index.html" \
43
+ -F 'instructions={"parts":[{"html":"index.html"}]}' \
44
+ -o output.pdf
45
+ ```
46
+
47
+ Supported inputs: PDF, DOCX, XLSX, PPTX, DOC, XLS, PPT, PPS, PPSX, ODT, RTF, HTML, JPG, PNG, TIFF, HEIC, GIF, WebP, SVG, TGA, EPS.
48
+
49
+ ### Extract Text and Data
50
+
51
+ ```bash
52
+ # Extract plain text
53
+ curl -X POST https://api.nutrient.io/build \
54
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
55
+ -F "document.pdf=@document.pdf" \
56
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"output":{"type":"text"}}' \
57
+ -o output.txt
58
+
59
+ # Extract tables as Excel
60
+ curl -X POST https://api.nutrient.io/build \
61
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
62
+ -F "document.pdf=@document.pdf" \
63
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"output":{"type":"xlsx"}}' \
64
+ -o tables.xlsx
65
+ ```
66
+
67
+ ### OCR Scanned Documents
68
+
69
+ ```bash
70
+ # OCR to searchable PDF (supports 100+ languages)
71
+ curl -X POST https://api.nutrient.io/build \
72
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
73
+ -F "scanned.pdf=@scanned.pdf" \
74
+ -F 'instructions={"parts":[{"file":"scanned.pdf"}],"actions":[{"type":"ocr","language":"english"}]}' \
75
+ -o searchable.pdf
76
+ ```
77
+
78
+ Languages: Supports 100+ languages via ISO 639-2 codes (e.g., `eng`, `deu`, `fra`, `spa`, `jpn`, `kor`, `chi_sim`, `chi_tra`, `ara`, `hin`, `rus`). Full language names like `english` or `german` also work. See the [complete OCR language table](https://www.nutrient.io/guides/document-engine/ocr/language-support/) for all supported codes.
79
+
80
+ ### Redact Sensitive Information
81
+
82
+ ```bash
83
+ # Pattern-based (SSN, email)
84
+ curl -X POST https://api.nutrient.io/build \
85
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
86
+ -F "document.pdf=@document.pdf" \
87
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"actions":[{"type":"redaction","strategy":"preset","strategyOptions":{"preset":"social-security-number"}},{"type":"redaction","strategy":"preset","strategyOptions":{"preset":"email-address"}}]}' \
88
+ -o redacted.pdf
89
+
90
+ # Regex-based
91
+ curl -X POST https://api.nutrient.io/build \
92
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
93
+ -F "document.pdf=@document.pdf" \
94
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"actions":[{"type":"redaction","strategy":"regex","strategyOptions":{"regex":"\\b[A-Z]{2}\\d{6}\\b"}}]}' \
95
+ -o redacted.pdf
96
+ ```
97
+
98
+ Presets: `social-security-number`, `email-address`, `credit-card-number`, `international-phone-number`, `north-american-phone-number`, `date`, `time`, `url`, `ipv4`, `ipv6`, `mac-address`, `us-zip-code`, `vin`.
99
+
100
+ ### Add Watermarks
101
+
102
+ ```bash
103
+ curl -X POST https://api.nutrient.io/build \
104
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
105
+ -F "document.pdf=@document.pdf" \
106
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"actions":[{"type":"watermark","text":"CONFIDENTIAL","fontSize":72,"opacity":0.3,"rotation":-45}]}' \
107
+ -o watermarked.pdf
108
+ ```
109
+
110
+ ### Digital Signatures
111
+
112
+ ```bash
113
+ # Self-signed CMS signature
114
+ curl -X POST https://api.nutrient.io/build \
115
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
116
+ -F "document.pdf=@document.pdf" \
117
+ -F 'instructions={"parts":[{"file":"document.pdf"}],"actions":[{"type":"sign","signatureType":"cms"}]}' \
118
+ -o signed.pdf
119
+ ```
120
+
121
+ ### Fill PDF Forms
122
+
123
+ ```bash
124
+ curl -X POST https://api.nutrient.io/build \
125
+ -H "Authorization: Bearer $NUTRIENT_API_KEY" \
126
+ -F "form.pdf=@form.pdf" \
127
+ -F 'instructions={"parts":[{"file":"form.pdf"}],"actions":[{"type":"fillForm","formFields":{"name":"Jane Smith","email":"jane@example.com","date":"2026-02-06"}}]}' \
128
+ -o filled.pdf
129
+ ```
130
+
131
+ ## MCP Server (Alternative)
132
+
133
+ For native tool integration, use the MCP server instead of curl:
134
+
135
+ ```json
136
+ {
137
+ "mcpServers": {
138
+ "nutrient-dws": {
139
+ "command": "npx",
140
+ "args": ["-y", "@nutrient-sdk/dws-mcp-server"],
141
+ "env": {
142
+ "NUTRIENT_DWS_API_KEY": "YOUR_API_KEY",
143
+ "SANDBOX_PATH": "/path/to/working/directory"
144
+ }
145
+ }
146
+ }
147
+ }
148
+ ```
149
+
150
+ ## When to Use
151
+
152
+ - Converting documents between formats (PDF, DOCX, XLSX, PPTX, HTML, images)
153
+ - Extracting text, tables, or key-value pairs from PDFs
154
+ - OCR on scanned documents or images
155
+ - Redacting PII before sharing documents
156
+ - Adding watermarks to drafts or confidential documents
157
+ - Digitally signing contracts or agreements
158
+ - Filling PDF forms programmatically
159
+
160
+ ## Links
161
+
162
+ - [API Playground](https://dashboard.nutrient.io/processor-api/playground/)
163
+ - [Full API Docs](https://www.nutrient.io/guides/dws-processor/)
164
+ - [Agent Skill Repo](https://github.com/PSPDFKit-labs/nutrient-agent-skill)
165
+ - [npm MCP Server](https://www.npmjs.com/package/@nutrient-sdk/dws-mcp-server)
@@ -0,0 +1,334 @@
1
+ ---
2
+ name: nuxt-ui
3
+ description: Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming. Use when creating interfaces, customizing themes to match a brand, building forms, or composing layouts like dashboards, docs sites, and chat interfaces.
4
+ ---
5
+
6
+ # Nuxt UI
7
+
8
+ Vue component library built on [Reka UI](https://reka-ui.com/) + [Tailwind CSS](https://tailwindcss.com/) + [Tailwind Variants](https://www.tailwind-variants.org/). Works with Nuxt, Vue (Vite), Laravel (Inertia), and AdonisJS (Inertia).
9
+
10
+ ## Installation
11
+
12
+ ### Nuxt
13
+
14
+ ```bash
15
+ pnpm add @nuxt/ui tailwindcss
16
+ ```
17
+
18
+ ```ts
19
+ // nuxt.config.ts
20
+ export default defineNuxtConfig({
21
+ modules: ['@nuxt/ui'],
22
+ css: ['~/assets/css/main.css']
23
+ })
24
+ ```
25
+
26
+ ```css
27
+ /* app/assets/css/main.css */
28
+ @import "tailwindcss";
29
+ @import "@nuxt/ui";
30
+ ```
31
+
32
+ ```vue
33
+ <!-- app.vue -->
34
+ <template>
35
+ <UApp>
36
+ <NuxtPage />
37
+ </UApp>
38
+ </template>
39
+ ```
40
+
41
+ ### Vue (Vite)
42
+
43
+ ```bash
44
+ pnpm add @nuxt/ui tailwindcss
45
+ ```
46
+
47
+ ```ts
48
+ // vite.config.ts
49
+ import { defineConfig } from 'vite'
50
+ import vue from '@vitejs/plugin-vue'
51
+ import ui from '@nuxt/ui/vite'
52
+
53
+ export default defineConfig({
54
+ plugins: [
55
+ vue(),
56
+ ui()
57
+ ]
58
+ })
59
+ ```
60
+
61
+ ```ts
62
+ // src/main.ts
63
+ import './assets/main.css'
64
+ import { createApp } from 'vue'
65
+ import { createRouter, createWebHistory } from 'vue-router'
66
+ import ui from '@nuxt/ui/vue-plugin'
67
+ import App from './App.vue'
68
+
69
+ const app = createApp(App)
70
+
71
+ const router = createRouter({
72
+ routes: [],
73
+ history: createWebHistory()
74
+ })
75
+
76
+ app.use(router)
77
+ app.use(ui)
78
+ app.mount('#app')
79
+ ```
80
+
81
+ ```css
82
+ /* assets/main.css */
83
+ @import "tailwindcss";
84
+ @import "@nuxt/ui";
85
+ ```
86
+
87
+ ```vue
88
+ <!-- src/App.vue -->
89
+ <template>
90
+ <UApp>
91
+ <RouterView />
92
+ </UApp>
93
+ </template>
94
+ ```
95
+
96
+ > **Vue**: Add `class="isolate"` to your root `<div id="app">` in `index.html`.
97
+
98
+ > **Vue + Inertia**: Use `ui({ router: 'inertia' })` in `vite.config.ts`.
99
+
100
+ ### UApp
101
+
102
+ Wrapping your app in `UApp` is **required** — it provides global config for toasts, tooltips, and programmatic overlays. It also accepts a `locale` prop for i18n (see [composables reference](references/composables.md)).
103
+
104
+ ## Icons
105
+
106
+ Nuxt UI uses [Iconify](https://iconify.design/) for 200,000+ icons. In Nuxt, `@nuxt/icon` is auto-registered. In Vue, icons work out of the box via the Vite plugin.
107
+
108
+ ### Naming convention
109
+
110
+ Icons use the format `i-{collection}-{name}`:
111
+
112
+ ```vue
113
+ <UIcon name="i-lucide-sun" class="size-5" />
114
+ <UButton icon="i-lucide-plus" label="Add" />
115
+ <UAlert icon="i-lucide-info" title="Heads up" />
116
+ ```
117
+
118
+ > Browse all icons at [icones.js.org](https://icones.js.org). The `lucide` collection is used throughout Nuxt UI defaults.
119
+
120
+ ### Install icon collections locally
121
+
122
+ ```bash
123
+ pnpm i @iconify-json/lucide
124
+ pnpm i @iconify-json/simple-icons
125
+ ```
126
+
127
+ ### Custom local collections (Nuxt)
128
+
129
+ ```ts
130
+ // nuxt.config.ts
131
+ export default defineNuxtConfig({
132
+ icon: {
133
+ customCollections: [{
134
+ prefix: 'custom',
135
+ dir: './app/assets/icons'
136
+ }]
137
+ }
138
+ })
139
+ ```
140
+
141
+ ```vue
142
+ <UIcon name="i-custom-my-icon" />
143
+ ```
144
+
145
+ ## Theming & Branding
146
+
147
+ Nuxt UI ships with a default look. The goal is to adapt it to your brand so every app looks unique.
148
+
149
+ **Always use semantic utilities** (`text-default`, `bg-elevated`, `border-muted`), never raw Tailwind palette colors. See [references/theming.md](references/theming.md) for the full list.
150
+
151
+ ### Colors
152
+
153
+ 7 semantic colors (`primary`, `secondary`, `success`, `info`, `warning`, `error`, `neutral`) configurable at runtime:
154
+
155
+ ```ts
156
+ // Nuxt — app.config.ts
157
+ export default defineAppConfig({
158
+ ui: { colors: { primary: 'indigo', neutral: 'zinc' } }
159
+ })
160
+ ```
161
+
162
+ ```ts
163
+ // Vue — vite.config.ts
164
+ import { defineConfig } from 'vite'
165
+ import vue from '@vitejs/plugin-vue'
166
+ import ui from '@nuxt/ui/vite'
167
+
168
+ export default defineConfig({
169
+ plugins: [
170
+ vue(),
171
+ ui({
172
+ ui: { colors: { primary: 'indigo', neutral: 'zinc' } }
173
+ })
174
+ ]
175
+ })
176
+ ```
177
+
178
+ ### Customizing components
179
+
180
+ **Override priority** (highest wins): `ui` prop / `class` prop > global config > theme defaults.
181
+
182
+ The `ui` prop overrides a component's **slots** after variants are computed — it wins over everything:
183
+
184
+ ```vue
185
+ <UButton :ui="{ base: 'rounded-none', trailingIcon: 'size-3 rotate-90' }" />
186
+ <UCard :ui="{ header: 'bg-muted', body: 'p-8' }" />
187
+ ```
188
+
189
+ **Read the generated theme file** to find slot names for any component:
190
+
191
+ - **Nuxt**: `.nuxt/ui/<component>.ts`
192
+ - **Vue**: `node_modules/.nuxt-ui/ui/<component>.ts`
193
+
194
+ > For CSS variables, custom colors, global config, compound variants, and a **full brand customization playbook**, see [references/theming.md](references/theming.md)
195
+
196
+ ## Composables
197
+
198
+ ```ts
199
+ // Notifications
200
+ const toast = useToast()
201
+ toast.add({ title: 'Saved', color: 'success', icon: 'i-lucide-check' })
202
+
203
+ // Programmatic overlays
204
+ const overlay = useOverlay()
205
+ const modal = overlay.create(MyModal)
206
+ const { result } = modal.open({ title: 'Confirm' })
207
+ await result
208
+
209
+ // Keyboard shortcuts
210
+ defineShortcuts({
211
+ meta_k: () => openSearch(),
212
+ escape: () => close()
213
+ })
214
+ ```
215
+
216
+ > For full composable reference, see [references/composables.md](references/composables.md)
217
+
218
+ ## Form validation
219
+
220
+ Uses Standard Schema — works with Zod, Valibot, Yup, or Joi.
221
+
222
+ ```vue
223
+ <script setup lang="ts">
224
+ import { z } from 'zod'
225
+
226
+ const schema = z.object({
227
+ email: z.string().email('Invalid email'),
228
+ password: z.string().min(8, 'Min 8 characters')
229
+ })
230
+
231
+ type Schema = z.output<typeof schema>
232
+ const state = reactive<Partial<Schema>>({ email: '', password: '' })
233
+
234
+ function onSubmit() {
235
+ // UForm validates before emitting @submit — state is valid here
236
+ }
237
+ </script>
238
+
239
+ <template>
240
+ <UForm :schema="schema" :state="state" @submit="onSubmit">
241
+ <UFormField name="email" label="Email" required>
242
+ <UInput v-model="state.email" type="email" />
243
+ </UFormField>
244
+
245
+ <UFormField name="password" label="Password" required>
246
+ <UInput v-model="state.password" type="password" />
247
+ </UFormField>
248
+
249
+ <UButton type="submit">Sign in</UButton>
250
+ </UForm>
251
+ </template>
252
+ ```
253
+
254
+ > For all form components and validation patterns, see [references/components.md](references/components.md#form)
255
+
256
+ ## Overlays
257
+
258
+ ```vue
259
+ <!-- Modal -->
260
+ <UModal v-model:open="isOpen" title="Edit" description="Edit your profile">
261
+ <template #body>Content</template>
262
+ <template #footer>
263
+ <UButton variant="ghost" @click="isOpen = false">Cancel</UButton>
264
+ <UButton @click="save">Save</UButton>
265
+ </template>
266
+ </UModal>
267
+
268
+ <!-- Slideover (side panel) -->
269
+ <USlideover v-model:open="isOpen" title="Settings" side="right">
270
+ <template #body>Content</template>
271
+ </USlideover>
272
+
273
+ <!-- Dropdown menu (flat array) -->
274
+ <UDropdownMenu :items="[
275
+ { label: 'Edit', icon: 'i-lucide-pencil' },
276
+ { type: 'separator' },
277
+ { label: 'Delete', icon: 'i-lucide-trash', color: 'error' }
278
+ ]">
279
+ <UButton icon="i-lucide-ellipsis-vertical" variant="ghost" />
280
+ </UDropdownMenu>
281
+
282
+ <!-- Dropdown menu (nested array — groups with automatic separators) -->
283
+ <UDropdownMenu :items="[
284
+ [{ label: 'Edit', icon: 'i-lucide-pencil' }, { label: 'Duplicate', icon: 'i-lucide-copy' }],
285
+ [{ label: 'Delete', icon: 'i-lucide-trash', color: 'error' }]
286
+ ]">
287
+ <UButton icon="i-lucide-ellipsis-vertical" variant="ghost" />
288
+ </UDropdownMenu>
289
+ ```
290
+
291
+ > For all overlay components, see [references/components.md](references/components.md#overlay)
292
+
293
+ ## Layouts
294
+
295
+ Nuxt UI provides components to compose full page layouts. Load the reference matching your use case:
296
+
297
+ | Layout | Description | Reference |
298
+ |---|---|---|
299
+ | Page | Landing, blog, changelog, pricing — public-facing pages | [layouts/page.md](references/layouts/page.md) |
300
+ | Dashboard | Admin UI with resizable sidebar and panels | [layouts/dashboard.md](references/layouts/dashboard.md) |
301
+ | Docs | Documentation with sidebar nav and TOC | [layouts/docs.md](references/layouts/docs.md) |
302
+ | Chat | AI chat with messages and prompt | [layouts/chat.md](references/layouts/chat.md) |
303
+ | Editor | Rich text editor with toolbars | [layouts/editor.md](references/layouts/editor.md) |
304
+
305
+ ## Templates
306
+
307
+ Official starter templates at [github.com/nuxt-ui-templates](https://github.com/nuxt-ui-templates):
308
+
309
+ | Template | Framework | GitHub |
310
+ |---|---|---|
311
+ | Starter | Nuxt | [nuxt-ui-templates/starter](https://github.com/nuxt-ui-templates/starter) |
312
+ | Starter | Vue | [nuxt-ui-templates/starter-vue](https://github.com/nuxt-ui-templates/starter-vue) |
313
+ | Dashboard | Nuxt | [nuxt-ui-templates/dashboard](https://github.com/nuxt-ui-templates/dashboard) |
314
+ | Dashboard | Vue | [nuxt-ui-templates/dashboard-vue](https://github.com/nuxt-ui-templates/dashboard-vue) |
315
+ | SaaS | Nuxt | [nuxt-ui-templates/saas](https://github.com/nuxt-ui-templates/saas) |
316
+ | Landing | Nuxt | [nuxt-ui-templates/landing](https://github.com/nuxt-ui-templates/landing) |
317
+ | Docs | Nuxt | [nuxt-ui-templates/docs](https://github.com/nuxt-ui-templates/docs) |
318
+ | Portfolio | Nuxt | [nuxt-ui-templates/portfolio](https://github.com/nuxt-ui-templates/portfolio) |
319
+ | Chat | Nuxt | [nuxt-ui-templates/chat](https://github.com/nuxt-ui-templates/chat) |
320
+ | Editor | Nuxt | [nuxt-ui-templates/editor](https://github.com/nuxt-ui-templates/editor) |
321
+ | Changelog | Nuxt | [nuxt-ui-templates/changelog](https://github.com/nuxt-ui-templates/changelog) |
322
+ | Starter | Laravel | [nuxt-ui-templates/starter-laravel](https://github.com/nuxt-ui-templates/starter-laravel) |
323
+ | Starter | AdonisJS | [nuxt-ui-templates/starter-adonis](https://github.com/nuxt-ui-templates/starter-adonis) |
324
+
325
+ > When starting a new project, clone the matching template instead of setting up from scratch.
326
+
327
+ ## Additional references
328
+
329
+ Load based on your task — **do not load all at once**:
330
+
331
+ - [references/theming.md](references/theming.md) — CSS variables, custom colors, component theme overrides
332
+ - [references/components.md](references/components.md) — all 125+ components by category with props and usage
333
+ - [references/composables.md](references/composables.md) — useToast, useOverlay, defineShortcuts
334
+ - Generated theme files — all slots, variants, and default classes for any component (Nuxt: `.nuxt/ui/<component>.ts`, Vue: `node_modules/.nuxt-ui/ui/<component>.ts`)