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,187 @@
1
+ # React Frontend Developer Agent — Data Fetching Patterns
2
+
3
+ Panduan data fetching patterns untuk React/Next.js project.
4
+
5
+ ## Server Components (Next.js App Router)
6
+
7
+ ### Direct Fetch (Default)
8
+
9
+ ```typescript
10
+ async function ProductList() {
11
+ const res = await fetch("https://api.example.com/products", {
12
+ next: { revalidate: 60 },
13
+ });
14
+ const products = await res.json();
15
+
16
+ return (
17
+ <ul>
18
+ {products.map((p) => (
19
+ <li key={p.id}>{p.name}</li>
20
+ ))}
21
+ </ul>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ### Parallel Fetching
27
+
28
+ ```typescript
29
+ async function DashboardPage() {
30
+ const [users, products, stats] = await Promise.all([
31
+ fetch("https://api.example.com/users").then((r) => r.json()),
32
+ fetch("https://api.example.com/products").then((r) => r.json()),
33
+ fetch("https://api.example.com/stats").then((r) => r.json()),
34
+ ]);
35
+
36
+ return (
37
+ <div>
38
+ <UserList users={users} />
39
+ <ProductList products={products} />
40
+ <StatsDisplay stats={stats} />
41
+ </div>
42
+ );
43
+ }
44
+ ```
45
+
46
+ ## TanStack Query (Client Components)
47
+
48
+ ### Setup
49
+
50
+ ```bash
51
+ npm install @tanstack/react-query
52
+ ```
53
+
54
+ ```typescript
55
+ // app/providers.tsx
56
+ "use client";
57
+
58
+ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
59
+
60
+ const queryClient = new QueryClient();
61
+
62
+ export function Providers({ children }: { children: React.ReactNode }) {
63
+ return (
64
+ <QueryClientProvider client={queryClient}>
65
+ {children}
66
+ </QueryClientProvider>
67
+ );
68
+ }
69
+ ```
70
+
71
+ ### Query
72
+
73
+ ```typescript
74
+ "use client";
75
+
76
+ import { useQuery } from "@tanstack/react-query";
77
+
78
+ function Profile() {
79
+ const { data, isLoading, error } = useQuery({
80
+ queryKey: ["profile"],
81
+ queryFn: () => fetch("/api/profile").then((r) => r.json()),
82
+ });
83
+
84
+ if (isLoading) return <div>Loading...</div>;
85
+ if (error) return <div>Error: {error.message}</div>;
86
+ return <div>{data.name}</div>;
87
+ }
88
+ ```
89
+
90
+ ### Mutation
91
+
92
+ ```typescript
93
+ "use client";
94
+
95
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
96
+
97
+ function CreateProduct() {
98
+ const queryClient = useQueryClient();
99
+
100
+ const mutation = useMutation({
101
+ mutationFn: (newProduct: { name: string; price: number }) =>
102
+ fetch("/api/products", {
103
+ method: "POST",
104
+ body: JSON.stringify(newProduct),
105
+ headers: { "Content-Type": "application/json" },
106
+ }),
107
+ onSuccess: () => {
108
+ queryClient.invalidateQueries({ queryKey: ["products"] });
109
+ },
110
+ });
111
+
112
+ return (
113
+ <button onClick={() => mutation.mutate({ name: "Foo", price: 100 })}>
114
+ {mutation.isPending ? "Creating..." : "Create Product"}
115
+ </button>
116
+ );
117
+ }
118
+ ```
119
+
120
+ ## Server Actions (Next.js)
121
+
122
+ ```typescript
123
+ // app/products/actions.ts
124
+ "use server";
125
+
126
+ import { revalidatePath } from "next/cache";
127
+
128
+ export async function createProduct(formData: FormData) {
129
+ const name = formData.get("name");
130
+ const price = formData.get("price");
131
+
132
+ // Validate
133
+ if (!name || !price) {
134
+ return { error: "Name and price required" };
135
+ }
136
+
137
+ // Database operation
138
+ await prisma.product.create({
139
+ data: { name: String(name), price: Number(price) },
140
+ });
141
+
142
+ revalidatePath("/products");
143
+ }
144
+ ```
145
+
146
+ ## Custom Fetch Composable (React)
147
+
148
+ ```typescript
149
+ // lib/api.ts
150
+ interface ApiOptions<T> {
151
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
152
+ body?: T;
153
+ params?: Record<string, string>;
154
+ }
155
+
156
+ export async function api<T>(
157
+ endpoint: string,
158
+ options: ApiOptions<unknown> = {}
159
+ ): Promise<T> {
160
+ const { method = "GET", body, params } = options;
161
+
162
+ let url = `/api${endpoint}`;
163
+ if (params) {
164
+ const searchParams = new URLSearchParams(params);
165
+ url += `?${searchParams}`;
166
+ }
167
+
168
+ const res = await fetch(url, {
169
+ method,
170
+ headers: {
171
+ "Content-Type": "application/json",
172
+ },
173
+ body: body ? JSON.stringify(body) : undefined,
174
+ credentials: "include",
175
+ });
176
+
177
+ if (!res.ok) {
178
+ const error = await res.json().catch(() => ({ message: res.statusText }));
179
+ throw new Error(error.message || "API Error");
180
+ }
181
+
182
+ return res.json();
183
+ }
184
+
185
+ // Usage:
186
+ // const products = await api<Product[]>("/products");
187
+ // const user = await api<User>(`/users/${id}`);
@@ -0,0 +1,87 @@
1
+ # React Frontend Developer Agent — Cheatsheet
2
+
3
+ ## Activation
4
+
5
+ ```
6
+ @frontend-react [request]
7
+ @frontend-react Load skill `shadcn-ui` untuk build form components
8
+ @frontend-react Load skills: `building-components`, `security-review`, `tdd-workflow`
9
+ @frontend-react What skills are currently loaded?
10
+ ```
11
+
12
+ ## Component Development
13
+
14
+ ```
15
+ @frontend-react Buat component Button dengan:
16
+ @frontend-react Buat DataTable component:
17
+ @frontend-react Buat LoginForm:
18
+ @frontend-react Implement design dari [screenshot]:
19
+ @frontend-react Add dark mode support:
20
+ @frontend-react Make [component] responsive:
21
+ ```
22
+
23
+ ## Performance
24
+
25
+ ```
26
+ @frontend-react Load `vercel-react-best-practices` dan audit:
27
+ @frontend-react Add virtualization ke List untuk 500+ items
28
+ @frontend-react Lazy load semua components di bawah fold
29
+ @frontend-react Code split routes dan heavy components
30
+ ```
31
+
32
+ ## State Management
33
+
34
+ ```
35
+ @frontend-react Create Zustand store untuk products:
36
+ @frontend-react Create TanStack Query hooks:
37
+ @frontend-react Setup data fetching untuk users page:
38
+ @frontend-react Setup data fetching untuk external API:
39
+ ```
40
+
41
+ ## Forms & Validation
42
+
43
+ ```
44
+ @frontend-react Create Zod schema untuk form:
45
+ @frontend-react Implement form dengan React Hook Form:
46
+ @frontend-react Handle form submission dan validation:
47
+ ```
48
+
49
+ ## Design & Animation
50
+
51
+ ```
52
+ @frontend-react Add micro-interactions dengan Framer Motion:
53
+ @frontend-react Add page transitions:
54
+ @frontend-react Create ErrorBoundary component:
55
+ ```
56
+
57
+ ## Code Review
58
+
59
+ ```
60
+ @frontend-react Review components/ProductCard.tsx:
61
+ @frontend-react Review all changed files sebelum commit:
62
+ @frontend-react Audit accessibility:
63
+ ```
64
+
65
+ ## Debugging & Profiling
66
+
67
+ ```
68
+ @frontend-react Debug ProductCard component:
69
+ @frontend-react Profile performance di dashboard page:
70
+ @frontend-react What's the current session context?
71
+ @frontend-react What's the best practice untuk [specific task]?
72
+ ```
73
+
74
+ ## Skills Available
75
+
76
+ | Skill | Description |
77
+ |-------|-------------|
78
+ | `coding-standards` | Universal coding standards |
79
+ | `frontend-patterns` | React/Next.js patterns |
80
+ | `frontend-design` | Design implementation |
81
+ | `web-design-guidelines` | UI/UX compliance |
82
+ | `shadcn-ui` | shadcn/ui components |
83
+ | `vercel-react-best-practices` | React performance |
84
+ | `vercel-composition-patterns` | Component composition |
85
+ | `building-components` | Component library creation |
86
+ | `security-review` | Auth/user input security |
87
+ | `tdd-workflow` | Test-driven development |
@@ -0,0 +1,45 @@
1
+ # React Frontend Developer Agent — Dokumentasi Index
2
+
3
+ Navigasi lengkap untuk semua dokumentasi React Frontend Developer Agent (`@frontend-react`).
4
+
5
+ ## Quick Links
6
+
7
+ | Kebutuhan | Dokumen |
8
+ |-----------|---------|
9
+ | Baru mulai? | [QUICK_START.md](./QUICK_START.md) |
10
+ | Panduan lengkap? | [README.md](./README.md) |
11
+ | Cari command cepat? | [CHEATSHEET.md](./CHEATSHEET.md) |
12
+ | Data fetching patterns? | [API_PATTERNS.md](./API_PATTERNS.md) |
13
+
14
+ ## Documentation Structure
15
+
16
+ ```
17
+ .opencode/
18
+ ├── agents/
19
+ │ └── react-frontend-developer.md # Agent definition
20
+ └── agent-docs/frontend/react/ # Supporting documentation (this directory)
21
+ ├── INDEX.md # This file — navigation hub
22
+ ├── README.md # Complete user guide
23
+ ├── QUICK_START.md # Get started in 5 minutes
24
+ ├── CHEATSHEET.md # Quick reference
25
+ └── API_PATTERNS.md # Data fetching patterns
26
+ ```
27
+
28
+ ## For New Users
29
+
30
+ 1. Read [QUICK_START.md](./QUICK_START.md) — 5 menit memahami basics
31
+ 2. Reference [CHEATSHEET.md](./CHEATSHEET.md) — untuk quick commands
32
+ 3. Baca [README.md](./README.md) — capabilities lengkap
33
+
34
+ ## For Experienced Users
35
+
36
+ - [CHEATSHEET.md](./CHEATSHEET.md) — Commands, skills, shortcuts
37
+ - [API_PATTERNS.md](./API_PATTERNS.md) — Data fetching patterns
38
+ - [README.md](./README.md) — Comprehensive capabilities
39
+
40
+ ## Agent Reference
41
+
42
+ | Mention | File | Stack |
43
+ |---------|------|-------|
44
+ | `@frontend-react` | `react-frontend-developer.md` | React 19, Next.js 15, shadcn/ui, Tailwind CSS |
45
+ | `@frontend-nuxt` | `nuxt-frontend-developer.md` | Nuxt 4, Vue 3, Nuxt UI, Tailwind CSS |
@@ -0,0 +1,43 @@
1
+ # React Frontend Developer Agent — Quick Start
2
+
3
+ Panduan cepat untuk mulai menggunakan React Frontend Developer Agent (`@frontend-react`).
4
+
5
+ ## Aktivasi Agent
6
+
7
+ Di OpenCode, ketik:
8
+
9
+ ```
10
+ @frontend-react Hello! Tolong analyze project structure ini.
11
+ ```
12
+
13
+ ## Agent Akan Load Skills
14
+
15
+ Agent otomatis akan load skills yang dibutuhkan:
16
+ - `coding-standards`
17
+ - `frontend-patterns`
18
+ - `frontend-design`
19
+ - `web-design-guidelines`
20
+
21
+ ## Mulai Development!
22
+
23
+ ```
24
+ @frontend-react Buat component Button dengan:
25
+ - 5 variants (primary, secondary, success, error, ghost)
26
+ - 3 sizes (sm, md, lg)
27
+ - Loading state
28
+ - Icon support
29
+ - Accessible (ARIA + keyboard)
30
+ - shadcn/ui style
31
+ ```
32
+
33
+ Agent akan:
34
+ - Membuat component dengan TypeScript strict
35
+ - Implement accessibility standards
36
+ - Follow React 19 / Next.js 15 best practices
37
+ - Include usage examples
38
+
39
+ ## Next Steps
40
+
41
+ - [CHEATSHEET.md](./CHEATSHEET.md) — Quick commands
42
+ - [API_PATTERNS.md](./API_PATTERNS.md) — Data fetching patterns
43
+ - [README.md](./README.md) — Full capabilities
@@ -0,0 +1,159 @@
1
+ # React Frontend Developer Agent — Panduan Lengkap
2
+
3
+ Dokumentasi lengkap untuk React Frontend Developer Agent (`@frontend-react`).
4
+
5
+ ## Daftar Isi
6
+
7
+ - [Tentang Agent](#tentang-agent)
8
+ - [Cara Aktivasi](#cara-aktivasi)
9
+ - [Stack yang Didukung](#stack-yang-didukung)
10
+ - [Skills](#skills)
11
+ - [Contoh Penggunaan](#contoh-penggunaan)
12
+ - [Tips & Best Practices](#tips--best-practices)
13
+ - [Referensi Lanjutan](#referensi-lanjutan)
14
+
15
+ ## Tentang Agent
16
+
17
+ React Frontend Developer Agent adalah subagent spesialis untuk pengembangan frontend menggunakan **React.js / Next.js / Vite**. Agent ini dipanggil oleh IT Leader (`leader`) ketika project membutuhkan frontend berbasis React.
18
+
19
+ **Stack utama:**
20
+ - React 19 + TypeScript strict
21
+ - Next.js 15 (App Router) — Server Components, Server Actions, Route Handlers
22
+ - Vite + React plugin
23
+ - Tailwind CSS v4
24
+ - shadcn/ui component library
25
+ - TanStack Query (data fetching)
26
+ - Zustand (state management)
27
+ - React Hook Form + Zod (form validation)
28
+ - Framer Motion (animations)
29
+
30
+ ## Cara Aktivasi
31
+
32
+ ### Via IT Leader (Recommended)
33
+
34
+ IT Leader akan otomatis mendelegasikan task ke `@frontend-react` ketika project menggunakan React/Next.js.
35
+
36
+ ### Manual
37
+
38
+ ```
39
+ @frontend-react [deskripsi task]
40
+ ```
41
+
42
+ ## Skills
43
+
44
+ ### Auto-loaded Skills
45
+
46
+ Setiap session, agent akan load:
47
+ 1. `coding-standards` — Universal coding standards
48
+ 2. `frontend-patterns` — React/Next.js patterns
49
+ 3. `frontend-design` — Design implementation
50
+ 4. `web-design-guidelines` — UI/UX compliance
51
+
52
+ ### Contextual Skills (load sesuai kebutuhan)
53
+
54
+ - `shadcn-ui` — shadcn/ui components
55
+ - `vercel-react-best-practices` — React performance optimization
56
+ - `vercel-composition-patterns` — Component composition patterns
57
+ - `building-components` — Component library creation
58
+ - `security-review` — Auth/user input security
59
+ - `tdd-workflow` — Test-driven development
60
+
61
+ ## Contoh Penggunaan
62
+
63
+ ### 1. Build Component
64
+
65
+ ```
66
+ @frontend-react Buat ProductCard component:
67
+ - Props: product (name, price, image, rating)
68
+ - Variants: default, loading, error
69
+ - Responsive: mobile-first
70
+ - Animasi: hover scale
71
+ - Accessibility: ARIA labels
72
+ ```
73
+
74
+ ### 2. Setup Data Fetching
75
+
76
+ ```
77
+ @frontend-react Setup TanStack Query untuk products page:
78
+ - GET /api/products — list with pagination
79
+ - GET /api/products/[id] — single product
80
+ - POST /api/products — create
81
+ - Handle loading, error, empty states
82
+ ```
83
+
84
+ ### 3. Implement Form
85
+
86
+ ```
87
+ @frontend-react Buat CreateProduct form:
88
+ - Fields: name, description, price, category
89
+ - Validation: Zod schema
90
+ - Submit: Server Action
91
+ - States: idle, submitting, success, error
92
+ ```
93
+
94
+ ### 4. Server Component
95
+
96
+ ```
97
+ @frontend-react Buat ProductList sebagai Server Component:
98
+ - Fetch langsung dari database
99
+ - Search params untuk filter
100
+ - Streaming dengan Suspense
101
+ - Revalidation periodik
102
+ ```
103
+
104
+ ### 5. Performance Optimization
105
+
106
+ ```
107
+ @frontend-react Load `vercel-react-best-practices` dan audit:
108
+ - Bundle size
109
+ - Re-render patterns
110
+ - Image optimization
111
+ - Code splitting
112
+ ```
113
+
114
+ ## Tips & Best Practices
115
+
116
+ ### Server Components First
117
+
118
+ Gunakan Server Components secara default. Tambah `'use client'` hanya ketika membutuhkan:
119
+ - Browser APIs (localStorage, event handlers)
120
+ - useState / useEffect
121
+ - onClick / onChange
122
+ - Custom hooks dengan browser APIs
123
+
124
+ ### Data Fetching
125
+
126
+ - **Server Components**: `fetch()` langsung dengan `next.revalidate`
127
+ - **Client Components**: TanStack Query untuk caching & refetch
128
+ - **Mutations**: Server Actions (Next.js) atau TanStack Query mutations
129
+
130
+ ### State Management
131
+
132
+ - **Server State**: Server Components + TanStack Query
133
+ - **Client State**: Zustand untuk global state
134
+ - **Form State**: React Hook Form
135
+ - **URL State**: useSearchParams / useParams
136
+
137
+ ### Component Patterns
138
+
139
+ - Gunakan shadcn/ui components sebagai base
140
+ - Custom components via composition
141
+ - Props interface dengan TypeScript strict
142
+ - Gunakan React.memo hanya untuk expensive renders
143
+
144
+ ### Accessibility
145
+
146
+ - Semantic HTML elements
147
+ - ARIA labels untuk interactive elements
148
+ - Keyboard navigation
149
+ - Color contrast WCAG 2.1 AA
150
+ - Focus management untuk modals
151
+
152
+ ## Referensi Lanjutan
153
+
154
+ | Dokumen | Deskripsi |
155
+ |---------|-----------|
156
+ | [QUICK_START.md](./QUICK_START.md) | Mulai dalam 5 menit |
157
+ | [CHEATSHEET.md](./CHEATSHEET.md) | Quick commands reference |
158
+ | [API_PATTERNS.md](./API_PATTERNS.md) | Data fetching patterns |
159
+ | [INDEX.md](./INDEX.md) | Full documentation index |
@@ -0,0 +1,45 @@
1
+ # Android Developer Agent — `@android`
2
+
3
+ Android native development dengan Kotlin, Jetpack Compose, dan Material Design 3.
4
+
5
+ ## Quick Reference
6
+
7
+ | Mention | Agent File | Stack |
8
+ |---------|-----------|-------|
9
+ | `@android` | `android-developer.md` | Kotlin, Jetpack Compose, XML, Material 3, Gradle KTS |
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ @android Buat screen login dengan Jetpack Compose + ViewModel
15
+ @android Implementasi Room database untuk produk
16
+ @android Setup Hilt DI module
17
+ @android Migrasi XML layout ke Compose
18
+ @android Implementasi Firebase Cloud Messaging
19
+ @android Buat UI dengan Material Design 3 theme
20
+ ```
21
+
22
+ ## Core Stack
23
+
24
+ - **Language**: Kotlin
25
+ - **UI**: Jetpack Compose, XML layouts
26
+ - **Architecture**: MVVM, Clean Architecture
27
+ - **DI**: Hilt
28
+ - **Database**: Room
29
+ - **Networking**: Retrofit + OkHttp
30
+ - **Navigation**: Navigation Compose
31
+ - **Background**: WorkManager
32
+ - **Build**: Gradle KTS, Version Catalog
33
+
34
+ ## Skills Available
35
+
36
+ - `android-jetpack-compose` — Compose patterns
37
+ - `edge-to-edge` — Edge-to-edge display
38
+ - `navigation-3` — Jetpack Navigation
39
+ - `firebase-basics` — Firebase services
40
+ - `play-billing-library-version-upgrade` — Play Billing
41
+ - `camera1-to-camerax` — Camera migration
42
+ - `r8-analyzer` — R8/ProGuard optimization
43
+ - `migrate-xml-views-to-jetpack-compose` — XML to Compose migration
44
+ - `security-review` — Security best practices
45
+ - `tdd-workflow` — Test-driven development
@@ -0,0 +1,44 @@
1
+ # Flutter Developer Agent — `@flutter`
2
+
3
+ Cross-platform mobile development dengan Dart, Flutter SDK, dan Material Design 3.
4
+
5
+ ## Quick Reference
6
+
7
+ | Mention | Agent File | Stack |
8
+ |---------|-----------|-------|
9
+ | `@flutter` | `flutter-developer.md` | Dart, Flutter SDK, Material 3, Bloc/Riverpod |
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ @flutter Buat screen product list dengan Bloc pattern
15
+ @flutter Implementasi GoRouter navigation
16
+ @flutter Setup Firebase Auth + Firestore
17
+ @flutter Buat Repository pattern dengan Dio + Hive
18
+ @flutter Implementasi dark mode dengan Material 3
19
+ @flutter Buat unit test dan widget test
20
+ ```
21
+
22
+ ## Core Stack
23
+
24
+ - **Language**: Dart
25
+ - **UI**: Material Design 3, Cupertino widgets
26
+ - **Architecture**: Clean Architecture
27
+ - **State Management**: Bloc, Riverpod, Provider
28
+ - **Navigation**: GoRouter
29
+ - **Networking**: Dio, http package
30
+ - **Local Storage**: Hive, Isar, Drift, flutter_secure_storage
31
+ - **Firebase**: Auth, Firestore, Cloud Messaging
32
+ - **Code Generation**: freezed, build_runner
33
+ - **Testing**: flutter_test, bloc_test, mocktail, integration_test
34
+
35
+ ## Skills Available
36
+
37
+ - `coding-standards` — Universal coding standards
38
+ - `frontend-patterns` — Mobile UI patterns
39
+ - `frontend-design` — Design implementation
40
+ - `web-design-guidelines` — UI/UX compliance
41
+ - `firebase-basics` — Firebase services
42
+ - `building-components` — Reusable widget libraries
43
+ - `security-review` — Security best practices
44
+ - `tdd-workflow` — Test-driven development