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,37 @@
1
+ # Python Coding Style
2
+
3
+ > This file extends [common/coding-style.md](../common/coding-style.md) with Python specific content.
4
+
5
+ ## Standards
6
+
7
+ - Follow **PEP 8** conventions
8
+ - Use **type annotations** on all function signatures
9
+
10
+ ## Immutability
11
+
12
+ Prefer immutable data structures:
13
+
14
+ ```python
15
+ from dataclasses import dataclass
16
+
17
+ @dataclass(frozen=True)
18
+ class User:
19
+ name: str
20
+ email: str
21
+
22
+ from typing import NamedTuple
23
+
24
+ class Point(NamedTuple):
25
+ x: float
26
+ y: float
27
+ ```
28
+
29
+ ## Formatting
30
+
31
+ - **black** for code formatting
32
+ - **isort** for import sorting
33
+ - **ruff** for linting
34
+
35
+ ## Reference
36
+
37
+ See skill: `python-patterns` for comprehensive Python idioms and patterns.
@@ -0,0 +1,14 @@
1
+ # Python Hooks
2
+
3
+ > This file extends [common/hooks.md](../common/hooks.md) with Python specific content.
4
+
5
+ ## PostToolUse Hooks
6
+
7
+ Configure in `~/.claude/settings.json`:
8
+
9
+ - **black/ruff**: Auto-format `.py` files after edit
10
+ - **mypy/pyright**: Run type checking after editing `.py` files
11
+
12
+ ## Warnings
13
+
14
+ - Warn about `print()` statements in edited files (use `logging` module instead)
@@ -0,0 +1,34 @@
1
+ # Python Patterns
2
+
3
+ > This file extends [common/patterns.md](../common/patterns.md) with Python specific content.
4
+
5
+ ## Protocol (Duck Typing)
6
+
7
+ ```python
8
+ from typing import Protocol
9
+
10
+ class Repository(Protocol):
11
+ def find_by_id(self, id: str) -> dict | None: ...
12
+ def save(self, entity: dict) -> dict: ...
13
+ ```
14
+
15
+ ## Dataclasses as DTOs
16
+
17
+ ```python
18
+ from dataclasses import dataclass
19
+
20
+ @dataclass
21
+ class CreateUserRequest:
22
+ name: str
23
+ email: str
24
+ age: int | None = None
25
+ ```
26
+
27
+ ## Context Managers & Generators
28
+
29
+ - Use context managers (`with` statement) for resource management
30
+ - Use generators for lazy evaluation and memory-efficient iteration
31
+
32
+ ## Reference
33
+
34
+ See skill: `python-patterns` for comprehensive patterns including decorators, concurrency, and package organization.
@@ -0,0 +1,25 @@
1
+ # Python Security
2
+
3
+ > This file extends [common/security.md](../common/security.md) with Python specific content.
4
+
5
+ ## Secret Management
6
+
7
+ ```python
8
+ import os
9
+ from dotenv import load_dotenv
10
+
11
+ load_dotenv()
12
+
13
+ api_key = os.environ["OPENAI_API_KEY"] # Raises KeyError if missing
14
+ ```
15
+
16
+ ## Security Scanning
17
+
18
+ - Use **bandit** for static security analysis:
19
+ ```bash
20
+ bandit -r src/
21
+ ```
22
+
23
+ ## Reference
24
+
25
+ See skill: `django-security` for Django-specific security guidelines (if applicable).
@@ -0,0 +1,33 @@
1
+ # Python Testing
2
+
3
+ > This file extends [common/testing.md](../common/testing.md) with Python specific content.
4
+
5
+ ## Framework
6
+
7
+ Use **pytest** as the testing framework.
8
+
9
+ ## Coverage
10
+
11
+ ```bash
12
+ pytest --cov=src --cov-report=term-missing
13
+ ```
14
+
15
+ ## Test Organization
16
+
17
+ Use `pytest.mark` for test categorization:
18
+
19
+ ```python
20
+ import pytest
21
+
22
+ @pytest.mark.unit
23
+ def test_calculate_total():
24
+ ...
25
+
26
+ @pytest.mark.integration
27
+ def test_database_connection():
28
+ ...
29
+ ```
30
+
31
+ ## Reference
32
+
33
+ See skill: `python-testing` for detailed pytest patterns and fixtures.
@@ -0,0 +1,58 @@
1
+ # TypeScript/JavaScript Coding Style
2
+
3
+ > This file extends [common/coding-style.md](../common/coding-style.md) with TypeScript/JavaScript specific content.
4
+
5
+ ## Immutability
6
+
7
+ Use spread operator for immutable updates:
8
+
9
+ ```typescript
10
+ // WRONG: Mutation
11
+ function updateUser(user, name) {
12
+ user.name = name // MUTATION!
13
+ return user
14
+ }
15
+
16
+ // CORRECT: Immutability
17
+ function updateUser(user, name) {
18
+ return {
19
+ ...user,
20
+ name
21
+ }
22
+ }
23
+ ```
24
+
25
+ ## Error Handling
26
+
27
+ Use async/await with try-catch:
28
+
29
+ ```typescript
30
+ try {
31
+ const result = await riskyOperation()
32
+ return result
33
+ } catch (error) {
34
+ console.error('Operation failed:', error)
35
+ throw new Error('Detailed user-friendly message')
36
+ }
37
+ ```
38
+
39
+ ## Input Validation
40
+
41
+ Use Zod for schema-based validation:
42
+
43
+ ```typescript
44
+ import { z } from 'zod'
45
+
46
+ const schema = z.object({
47
+ email: z.string().email(),
48
+ age: z.number().int().min(0).max(150)
49
+ })
50
+
51
+ const validated = schema.parse(input)
52
+ ```
53
+
54
+ ## Console.log
55
+
56
+ - No `console.log` statements in production code
57
+ - Use proper logging libraries instead
58
+ - See hooks for automatic detection
@@ -0,0 +1,15 @@
1
+ # TypeScript/JavaScript Hooks
2
+
3
+ > This file extends [common/hooks.md](../common/hooks.md) with TypeScript/JavaScript specific content.
4
+
5
+ ## PostToolUse Hooks
6
+
7
+ Configure in `~/.claude/settings.json`:
8
+
9
+ - **Prettier**: Auto-format JS/TS files after edit
10
+ - **TypeScript check**: Run `tsc` after editing `.ts`/`.tsx` files
11
+ - **console.log warning**: Warn about `console.log` in edited files
12
+
13
+ ## Stop Hooks
14
+
15
+ - **console.log audit**: Check all modified files for `console.log` before session ends
@@ -0,0 +1,45 @@
1
+ # TypeScript/JavaScript Patterns
2
+
3
+ > This file extends [common/patterns.md](../common/patterns.md) with TypeScript/JavaScript specific content.
4
+
5
+ ## API Response Format
6
+
7
+ ```typescript
8
+ interface ApiResponse<T> {
9
+ success: boolean
10
+ data?: T
11
+ error?: string
12
+ meta?: {
13
+ total: number
14
+ page: number
15
+ limit: number
16
+ }
17
+ }
18
+ ```
19
+
20
+ ## Custom Hooks Pattern
21
+
22
+ ```typescript
23
+ export function useDebounce<T>(value: T, delay: number): T {
24
+ const [debouncedValue, setDebouncedValue] = useState<T>(value)
25
+
26
+ useEffect(() => {
27
+ const handler = setTimeout(() => setDebouncedValue(value), delay)
28
+ return () => clearTimeout(handler)
29
+ }, [value, delay])
30
+
31
+ return debouncedValue
32
+ }
33
+ ```
34
+
35
+ ## Repository Pattern
36
+
37
+ ```typescript
38
+ interface Repository<T> {
39
+ findAll(filters?: Filters): Promise<T[]>
40
+ findById(id: string): Promise<T | null>
41
+ create(data: CreateDto): Promise<T>
42
+ update(id: string, data: UpdateDto): Promise<T>
43
+ delete(id: string): Promise<void>
44
+ }
45
+ ```
@@ -0,0 +1,21 @@
1
+ # TypeScript/JavaScript Security
2
+
3
+ > This file extends [common/security.md](../common/security.md) with TypeScript/JavaScript specific content.
4
+
5
+ ## Secret Management
6
+
7
+ ```typescript
8
+ // NEVER: Hardcoded secrets
9
+ const apiKey = "sk-proj-xxxxx"
10
+
11
+ // ALWAYS: Environment variables
12
+ const apiKey = process.env.OPENAI_API_KEY
13
+
14
+ if (!apiKey) {
15
+ throw new Error('OPENAI_API_KEY not configured')
16
+ }
17
+ ```
18
+
19
+ ## Agent Support
20
+
21
+ - Use **security-reviewer** skill for comprehensive security audits
@@ -0,0 +1,11 @@
1
+ # TypeScript/JavaScript Testing
2
+
3
+ > This file extends [common/testing.md](../common/testing.md) with TypeScript/JavaScript specific content.
4
+
5
+ ## E2E Testing
6
+
7
+ Use **Playwright** as the E2E testing framework for critical user flows.
8
+
9
+ ## Agent Support
10
+
11
+ - **e2e-runner** - Playwright E2E testing specialist
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: api-documentation
3
+ description: API documentation generation with Postman sync workflow. Use when defining API contracts, creating endpoints, or designing API documentation.
4
+ ---
5
+
6
+ # API Documentation & Postman Sync
7
+
8
+ Workflow for generating API documentation and optionally syncing to Postman collections.
9
+
10
+ ## When to Activate
11
+
12
+ - Defining API contracts (endpoints, request/response schemas)
13
+ - Creating new API endpoints or modules
14
+ - Generating API documentation from code
15
+ - After completing backend endpoint implementation
16
+
17
+ ## Confirmation Flow (User Must Approve)
18
+
19
+ Before any Postman sync, ALWAYS ask the user using the `question` tool:
20
+
21
+ ```markdown
22
+ questions: [
23
+ {
24
+ header: "Postman Sync",
25
+ question: "Do you also want to create/update this API in Postman?",
26
+ options: [
27
+ { label: "Yes (Recommended)", description: "Create/update Postman collection with all endpoints, requests, and response examples" },
28
+ { label: "No", description: "Skip Postman sync, continue without" },
29
+ { label: "Custom answer", description: "Type your own response" }
30
+ ]
31
+ }
32
+ ]
33
+ ```
34
+
35
+ Default fallback: If user doesn't select, pick "Yes (Recommended)".
36
+
37
+ ## Postman Sync Workflow
38
+
39
+ ### Prerequisites
40
+ - Postman MCP server enabled
41
+ - `POSTMAN_API_KEY` configured
42
+ - Postman workspace ID (ask user if not known)
43
+
44
+ ### Step 1: Prepare API Contract Data
45
+
46
+ Before calling Postman tools, compile:
47
+
48
+ ```json
49
+ {
50
+ "collectionName": "My API - v1",
51
+ "workspaceId": "ws-xxxxx",
52
+ "baseUrl": "https://api.example.com",
53
+ "endpoints": [
54
+ {
55
+ "name": "List Users",
56
+ "method": "GET",
57
+ "path": "/api/users",
58
+ "description": "Get paginated list of users",
59
+ "headers": { "Content-Type": "application/json", "Authorization": "Bearer {{token}}" },
60
+ "queryParams": [
61
+ { "key": "limit", "value": "10", "description": "Max results" },
62
+ { "key": "offset", "value": "0", "description": "Pagination offset" }
63
+ ],
64
+ "responses": [
65
+ { "code": 200, "name": "Success", "body": "{ \"users\": [], \"total\": 0 }" },
66
+ { "code": 401, "name": "Unauthorized", "body": "{ \"error\": \"Unauthorized\" }" }
67
+ ]
68
+ }
69
+ ]
70
+ }
71
+ ```
72
+
73
+ ### Step 2: Resolve Workspace
74
+
75
+ ```markdown
76
+ 1. Call `postman_getWorkspaces` to list available workspaces
77
+ 2. If workspace ID known, use it directly
78
+ 3. If unknown, ask user: "Which Postman workspace should this collection be created in?"
79
+ 4. Use question tool with workspace list as options
80
+ ```
81
+
82
+ ### Step 3: Check Existing Collection
83
+
84
+ ```markdown
85
+ 1. Call `postman_getCollections(workspace)` to list collections
86
+ 2. Search for collection by name match
87
+ 3. If found: Ask user to merge/update or create new:
88
+ - "Collection 'X' already exists. Update it or create a new one?"
89
+ - Options: Update existing, Create new with suffix, Cancel
90
+ 4. If not found: Create new collection
91
+ ```
92
+
93
+ ### Step 4: Create or Update Collection
94
+
95
+ **New Collection:**
96
+ ```markdown
97
+ Call `postman_createCollection` with:
98
+ - workspace: the target workspace ID
99
+ - collection: full collection object with:
100
+ - info: { name, schema }
101
+ - item: array of endpoint items (can be nested in folders)
102
+ ```
103
+
104
+ **Update Existing:**
105
+ ```markdown
106
+ Call `postman_patchCollection` with:
107
+ - collectionId: existing collection ID
108
+ - collection: { info: { name, description }, variable: [...] }
109
+ ```
110
+
111
+ ### Step 5: Add Requests
112
+
113
+ For each endpoint, call `postman_createCollectionRequest`:
114
+
115
+ ```markdown
116
+ Parameters:
117
+ - collectionId: the collection ID
118
+ - folderId: (optional) folder to place request in
119
+ - name: endpoint name (e.g., "List Users")
120
+ - method: GET/POST/PUT/PATCH/DELETE
121
+ - url: full URL (e.g., "{{baseUrl}}/api/users")
122
+ - headerData: array of { key, value, description }
123
+ - queryParams: array of { key, value, description, enabled }
124
+ - dataMode: raw / urlencoded / formdata / graphql
125
+ - rawModeData: raw JSON body (for POST/PUT/PATCH)
126
+ ```
127
+
128
+ ### Step 6: Add Response Examples
129
+
130
+ For each response variant, call `postman_createCollectionResponse`:
131
+
132
+ ```markdown
133
+ Parameters:
134
+ - collectionId: the collection ID
135
+ - request: the request ID (from step 5 output)
136
+ - name: response name (e.g., "200 Success", "401 Unauthorized")
137
+ - responseCode: { code: 200, name: "OK" }
138
+ - text: response body string
139
+ - headers: array of response headers
140
+ - mime: "application/json"
141
+ ```
142
+
143
+ ### Step 7: Organize with Folders (Optional)
144
+
145
+ For multi-module APIs, group related endpoints:
146
+
147
+ ```markdown
148
+ 1. Call `postman_createCollectionFolder(collectionId, name)` for each module
149
+ 2. Pass folderId when creating requests in step 5
150
+ ```
151
+
152
+ ## Postman MCP Tool Reference
153
+
154
+ | Tool | Purpose |
155
+ |------|---------|
156
+ | `postman_getWorkspaces` | List available workspaces |
157
+ | `postman_getCollections(workspace)` | List collections in workspace |
158
+ | `postman_getCollection(collectionId)` | Get collection details |
159
+ | `postman_createCollection(workspace, collection)` | Create new collection |
160
+ | `postman_patchCollection(collectionId, collection)` | Update collection |
161
+ | `postman_createCollectionFolder(collectionId, name)` | Create folder |
162
+ | `postman_createCollectionRequest(collectionId, ...)` | Create request |
163
+ | `postman_createCollectionResponse(collectionId, request, ...)` | Add response example |
164
+ | `postman_getCollectionContext(collectionId)` | Get collection summary |
165
+ | `postman_getRequestCodeContext(collectionId, requestId)` | Get request details for code gen |
166
+
167
+ ## Security Notes
168
+
169
+ - Do NOT include real API keys or tokens in Postman collection variables
170
+ - Use Postman variables (`{{variableName}}`) for sensitive values
171
+ - Set `"disabled": true` for query parameters that should not be sent
172
+ - For auth headers, prefer Bearer token pattern with `{{token}}` variable
173
+ - Never commit Postman API key to source control
174
+
175
+ ## Example Workflow
176
+
177
+ ```
178
+ 1. Define API contract: GET /api/users, POST /api/users
179
+ 2. Ask user: "Sync to Postman?" → Yes
180
+ 3. Get workspace list → user selects "My Project Workspace"
181
+ 4. Check existing collections → "My API" doesn't exist
182
+ 5. Create collection "My API - v1" in workspace
183
+ 6. Create folder "Users" in collection
184
+ 7. Create request "List Users" (GET) in folder
185
+ 8. Create request "Create User" (POST) in folder
186
+ 9. Add success/error response examples for each
187
+ 10. Report: "Postman collection 'My API - v1' created with 2 endpoints"
188
+ ```