@agents-inc/cli 0.47.0 → 0.50.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 (261) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +113 -118
  3. package/config/skill-categories.yaml +344 -0
  4. package/config/skill-rules.yaml +740 -0
  5. package/config/stacks.yaml +0 -1
  6. package/dist/{chunk-CJFWO46A.js → chunk-26MXZUHU.js} +2 -2
  7. package/dist/{chunk-KQ27IDYL.js → chunk-2BWCR762.js} +2 -3
  8. package/dist/chunk-2BWCR762.js.map +1 -0
  9. package/dist/chunk-3VOL4WEG.js +31 -0
  10. package/dist/chunk-3VOL4WEG.js.map +1 -0
  11. package/dist/chunk-4QWDB2MD.js +571 -0
  12. package/dist/chunk-4QWDB2MD.js.map +1 -0
  13. package/dist/{chunk-LJ5E4GXC.js → chunk-4R52TQ3K.js} +2 -2
  14. package/dist/{chunk-SPSGZWTZ.js → chunk-5FCHJLM7.js} +34 -16
  15. package/dist/chunk-5FCHJLM7.js.map +1 -0
  16. package/dist/chunk-5FPIKTSA.js +40 -0
  17. package/dist/chunk-5FPIKTSA.js.map +1 -0
  18. package/dist/{chunk-HLTJK3XB.js → chunk-5L724R4C.js} +5 -6
  19. package/dist/{chunk-HLTJK3XB.js.map → chunk-5L724R4C.js.map} +1 -1
  20. package/dist/{chunk-JTTTXGHX.js → chunk-7LV4V6A4.js} +4 -4
  21. package/dist/{chunk-FTD5Z6QD.js → chunk-AWP5A6IM.js} +15 -7
  22. package/dist/chunk-AWP5A6IM.js.map +1 -0
  23. package/dist/chunk-C3Q43WLC.js +118 -0
  24. package/dist/chunk-C3Q43WLC.js.map +1 -0
  25. package/dist/{chunk-B4QYXVPZ.js → chunk-CMNKHDOX.js} +2 -2
  26. package/dist/{chunk-TBB3THSL.js → chunk-D72AFYQR.js} +8 -13
  27. package/dist/chunk-D72AFYQR.js.map +1 -0
  28. package/dist/{chunk-QR2TM4OY.js → chunk-DCE423KO.js} +46 -30
  29. package/dist/chunk-DCE423KO.js.map +1 -0
  30. package/dist/chunk-GBOW6FUW.js +74 -0
  31. package/dist/chunk-GBOW6FUW.js.map +1 -0
  32. package/dist/{chunk-GFDGYQ6M.js → chunk-HMSHB5EQ.js} +569 -269
  33. package/dist/chunk-HMSHB5EQ.js.map +1 -0
  34. package/dist/{chunk-NRCKIHND.js → chunk-HYEUETIC.js} +2 -2
  35. package/dist/{chunk-OEJDFGAF.js → chunk-I6IOGZSZ.js} +61 -52
  36. package/dist/chunk-I6IOGZSZ.js.map +1 -0
  37. package/dist/{chunk-3APMMQUA.js → chunk-JFF7P4LC.js} +30 -93
  38. package/dist/chunk-JFF7P4LC.js.map +1 -0
  39. package/dist/{chunk-N5OCAAXY.js → chunk-JWYRXE6C.js} +2 -2
  40. package/dist/{chunk-TWDVLTU6.js → chunk-KAO3LKB5.js} +3 -3
  41. package/dist/{chunk-XTRPYUWK.js → chunk-KQOU4POU.js} +26 -28
  42. package/dist/chunk-KQOU4POU.js.map +1 -0
  43. package/dist/{chunk-YTRFL3MR.js → chunk-M3GQ2R3E.js} +29 -28
  44. package/dist/chunk-M3GQ2R3E.js.map +1 -0
  45. package/dist/{chunk-LNA6M2IE.js → chunk-PGY5XROM.js} +2 -2
  46. package/dist/chunk-PGY5XROM.js.map +1 -0
  47. package/dist/{chunk-VAQJLHUW.js → chunk-QB5HHTAA.js} +8 -19
  48. package/dist/chunk-QB5HHTAA.js.map +1 -0
  49. package/dist/{chunk-VSZ5GDET.js → chunk-QYLCINGC.js} +2 -2
  50. package/dist/{chunk-IRJADQM7.js → chunk-RA2IPRO2.js} +2 -2
  51. package/dist/{chunk-DC333ZDC.js → chunk-RDWGYKDY.js} +4 -4
  52. package/dist/{chunk-FXQYEXLS.js → chunk-RFKDGJAJ.js} +26 -57
  53. package/dist/chunk-RFKDGJAJ.js.map +1 -0
  54. package/dist/{chunk-HPJP3HFD.js → chunk-SPFHPHYL.js} +7 -7
  55. package/dist/{chunk-EZ46ZTAQ.js → chunk-U2W5SENM.js} +3 -3
  56. package/dist/{chunk-MVEYK55V.js → chunk-U7X4V4HE.js} +2 -2
  57. package/dist/{chunk-INKJBMPJ.js → chunk-UAD3SC27.js} +4 -12
  58. package/dist/chunk-UAD3SC27.js.map +1 -0
  59. package/dist/{chunk-C4QI54PN.js → chunk-WBHPCBVN.js} +57 -34
  60. package/dist/chunk-WBHPCBVN.js.map +1 -0
  61. package/dist/chunk-WFFV254H.js +314 -0
  62. package/dist/chunk-WFFV254H.js.map +1 -0
  63. package/dist/{chunk-ZWAL2ZY7.js → chunk-WJHFV6RI.js} +3 -2
  64. package/dist/chunk-WJHFV6RI.js.map +1 -0
  65. package/dist/{chunk-2RQYJFKA.js → chunk-WLZHCM7O.js} +2 -2
  66. package/dist/{chunk-DVW6ASTO.js → chunk-XDSVV5GZ.js} +4 -4
  67. package/dist/{chunk-JZHIF3K7.js → chunk-YDYRAXSY.js} +57 -27
  68. package/dist/chunk-YDYRAXSY.js.map +1 -0
  69. package/dist/commands/build/marketplace.js +4 -4
  70. package/dist/commands/build/plugins.js +5 -5
  71. package/dist/commands/build/stack.js +5 -5
  72. package/dist/commands/compile.js +11 -9
  73. package/dist/commands/compile.js.map +1 -1
  74. package/dist/commands/config/get.js +4 -4
  75. package/dist/commands/config/index.js +5 -5
  76. package/dist/commands/config/path.js +4 -4
  77. package/dist/commands/config/set-project.js +4 -4
  78. package/dist/commands/config/show.js +5 -5
  79. package/dist/commands/config/unset-project.js +4 -4
  80. package/dist/commands/diff.js +4 -4
  81. package/dist/commands/doctor.js +4 -4
  82. package/dist/commands/edit.js +58 -52
  83. package/dist/commands/edit.js.map +1 -1
  84. package/dist/commands/eject.js +4 -4
  85. package/dist/commands/import/skill.js +7 -8
  86. package/dist/commands/import/skill.js.map +1 -1
  87. package/dist/commands/info.js +5 -5
  88. package/dist/commands/init.js +40 -435
  89. package/dist/commands/init.js.map +1 -1
  90. package/dist/commands/list.js +4 -4
  91. package/dist/commands/new/agent.js +11 -10
  92. package/dist/commands/new/agent.js.map +1 -1
  93. package/dist/commands/new/marketplace.js +24 -5
  94. package/dist/commands/new/marketplace.js.map +1 -1
  95. package/dist/commands/new/skill.js +15 -209
  96. package/dist/commands/new/skill.js.map +1 -1
  97. package/dist/commands/outdated.js +11 -7
  98. package/dist/commands/outdated.js.map +1 -1
  99. package/dist/commands/search.js +7 -8
  100. package/dist/commands/search.js.map +1 -1
  101. package/dist/commands/uninstall.js +6 -6
  102. package/dist/commands/update.js +6 -6
  103. package/dist/commands/validate.js +62 -250
  104. package/dist/commands/validate.js.map +1 -1
  105. package/dist/components/skill-search/skill-search.js +3 -3
  106. package/dist/components/wizard/category-grid.js +3 -2
  107. package/dist/components/wizard/category-grid.test.js +112 -58
  108. package/dist/components/wizard/category-grid.test.js.map +1 -1
  109. package/dist/components/wizard/checkbox-grid.js +5 -3
  110. package/dist/components/wizard/checkbox-grid.test.js +5 -4
  111. package/dist/components/wizard/checkbox-grid.test.js.map +1 -1
  112. package/dist/components/wizard/domain-selection.js +11 -9
  113. package/dist/components/wizard/help-modal.js +2 -2
  114. package/dist/components/wizard/menu-item.js +1 -1
  115. package/dist/components/wizard/search-modal.js +2 -2
  116. package/dist/components/wizard/search-modal.test.js +2 -2
  117. package/dist/components/wizard/section-progress.js +2 -2
  118. package/dist/components/wizard/section-progress.test.js +2 -2
  119. package/dist/components/wizard/selection-card.js +2 -2
  120. package/dist/components/wizard/source-grid.js +4 -3
  121. package/dist/components/wizard/source-grid.test.js +4 -3
  122. package/dist/components/wizard/source-grid.test.js.map +1 -1
  123. package/dist/components/wizard/stack-selection.js +8 -8
  124. package/dist/components/wizard/step-agents.js +10 -8
  125. package/dist/components/wizard/step-agents.test.js +18 -17
  126. package/dist/components/wizard/step-agents.test.js.map +1 -1
  127. package/dist/components/wizard/step-build.js +9 -8
  128. package/dist/components/wizard/step-build.test.js +17 -35
  129. package/dist/components/wizard/step-build.test.js.map +1 -1
  130. package/dist/components/wizard/step-confirm.js +4 -4
  131. package/dist/components/wizard/step-confirm.test.js +8 -8
  132. package/dist/components/wizard/step-refine.js +2 -2
  133. package/dist/components/wizard/step-refine.test.js +2 -2
  134. package/dist/components/wizard/step-settings.js +7 -5
  135. package/dist/components/wizard/step-settings.test.js +10 -8
  136. package/dist/components/wizard/step-settings.test.js.map +1 -1
  137. package/dist/components/wizard/step-sources.js +11 -10
  138. package/dist/components/wizard/step-sources.test.js +12 -11
  139. package/dist/components/wizard/step-sources.test.js.map +1 -1
  140. package/dist/components/wizard/step-stack.js +15 -12
  141. package/dist/components/wizard/step-stack.test.js +16 -13
  142. package/dist/components/wizard/step-stack.test.js.map +1 -1
  143. package/dist/components/wizard/view-title.js +2 -2
  144. package/dist/components/wizard/wizard-layout.js +8 -8
  145. package/dist/components/wizard/wizard-tabs.js +2 -2
  146. package/dist/components/wizard/wizard-tabs.test.js +2 -2
  147. package/dist/components/wizard/wizard.js +27 -25
  148. package/dist/config/skill-categories.yaml +344 -0
  149. package/dist/config/skill-rules.yaml +740 -0
  150. package/dist/config/stacks.yaml +0 -1
  151. package/dist/hooks/init.js +55 -3
  152. package/dist/hooks/init.js.map +1 -1
  153. package/dist/{source-manager-Q34LTUVM.js → source-manager-BVB2SG73.js} +4 -4
  154. package/dist/src/agents/meta/agent-summoner/critical-reminders.md +1 -1
  155. package/dist/src/agents/meta/agent-summoner/critical-requirements.md +1 -1
  156. package/dist/src/agents/meta/agent-summoner/examples.md +2 -2
  157. package/dist/src/agents/meta/agent-summoner/output-format.md +1 -1
  158. package/dist/src/agents/meta/agent-summoner/workflow.md +5 -7
  159. package/{src/agents/meta/documentor/agent.yaml → dist/src/agents/meta/documentor/metadata.yaml} +1 -0
  160. package/dist/stores/wizard-store.js +5 -5
  161. package/dist/stores/wizard-store.test.js +79 -27
  162. package/dist/stores/wizard-store.test.js.map +1 -1
  163. package/package.json +5 -1
  164. package/src/agents/meta/agent-summoner/critical-reminders.md +1 -1
  165. package/src/agents/meta/agent-summoner/critical-requirements.md +1 -1
  166. package/src/agents/meta/agent-summoner/examples.md +2 -2
  167. package/src/agents/meta/agent-summoner/output-format.md +1 -1
  168. package/src/agents/meta/agent-summoner/workflow.md +5 -7
  169. package/{dist/src/agents/meta/documentor/agent.yaml → src/agents/meta/documentor/metadata.yaml} +1 -0
  170. package/src/schemas/agent.schema.json +1 -1
  171. package/src/schemas/metadata.schema.json +2 -5
  172. package/src/schemas/project-config.schema.json +0 -3
  173. package/src/schemas/project-source-config.schema.json +4 -1
  174. package/config/skills-matrix.yaml +0 -918
  175. package/dist/chunk-3APMMQUA.js.map +0 -1
  176. package/dist/chunk-C4QI54PN.js.map +0 -1
  177. package/dist/chunk-FMQ3A7W4.js +0 -29
  178. package/dist/chunk-FMQ3A7W4.js.map +0 -1
  179. package/dist/chunk-FTD5Z6QD.js.map +0 -1
  180. package/dist/chunk-FXQYEXLS.js.map +0 -1
  181. package/dist/chunk-GFDGYQ6M.js.map +0 -1
  182. package/dist/chunk-INKJBMPJ.js.map +0 -1
  183. package/dist/chunk-JZHIF3K7.js.map +0 -1
  184. package/dist/chunk-KQ27IDYL.js.map +0 -1
  185. package/dist/chunk-LNA6M2IE.js.map +0 -1
  186. package/dist/chunk-M4P5YJ45.js +0 -99
  187. package/dist/chunk-M4P5YJ45.js.map +0 -1
  188. package/dist/chunk-OEJDFGAF.js.map +0 -1
  189. package/dist/chunk-QR2TM4OY.js.map +0 -1
  190. package/dist/chunk-SPSGZWTZ.js.map +0 -1
  191. package/dist/chunk-TBB3THSL.js.map +0 -1
  192. package/dist/chunk-VAQJLHUW.js.map +0 -1
  193. package/dist/chunk-XTRPYUWK.js.map +0 -1
  194. package/dist/chunk-YTRFL3MR.js.map +0 -1
  195. package/dist/chunk-ZWAL2ZY7.js.map +0 -1
  196. package/dist/config/skills-matrix.yaml +0 -918
  197. package/dist/src/agents/migration/cli-migrator/agent.yaml +0 -12
  198. package/dist/src/agents/migration/cli-migrator/anti-patterns.md +0 -158
  199. package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +0 -63
  200. package/dist/src/agents/migration/cli-migrator/critical-reminders.md +0 -17
  201. package/dist/src/agents/migration/cli-migrator/critical-requirements.md +0 -13
  202. package/dist/src/agents/migration/cli-migrator/intro.md +0 -15
  203. package/dist/src/agents/migration/cli-migrator/output-format.md +0 -164
  204. package/dist/src/agents/migration/cli-migrator/workflow.md +0 -230
  205. package/src/agents/migration/cli-migrator/agent.yaml +0 -12
  206. package/src/agents/migration/cli-migrator/anti-patterns.md +0 -158
  207. package/src/agents/migration/cli-migrator/conversion-mappings.md +0 -63
  208. package/src/agents/migration/cli-migrator/critical-reminders.md +0 -17
  209. package/src/agents/migration/cli-migrator/critical-requirements.md +0 -13
  210. package/src/agents/migration/cli-migrator/intro.md +0 -15
  211. package/src/agents/migration/cli-migrator/output-format.md +0 -164
  212. package/src/agents/migration/cli-migrator/workflow.md +0 -230
  213. package/src/schemas/skills-matrix.schema.json +0 -179
  214. /package/dist/{chunk-CJFWO46A.js.map → chunk-26MXZUHU.js.map} +0 -0
  215. /package/dist/{chunk-LJ5E4GXC.js.map → chunk-4R52TQ3K.js.map} +0 -0
  216. /package/dist/{chunk-JTTTXGHX.js.map → chunk-7LV4V6A4.js.map} +0 -0
  217. /package/dist/{chunk-B4QYXVPZ.js.map → chunk-CMNKHDOX.js.map} +0 -0
  218. /package/dist/{chunk-NRCKIHND.js.map → chunk-HYEUETIC.js.map} +0 -0
  219. /package/dist/{chunk-N5OCAAXY.js.map → chunk-JWYRXE6C.js.map} +0 -0
  220. /package/dist/{chunk-TWDVLTU6.js.map → chunk-KAO3LKB5.js.map} +0 -0
  221. /package/dist/{chunk-VSZ5GDET.js.map → chunk-QYLCINGC.js.map} +0 -0
  222. /package/dist/{chunk-IRJADQM7.js.map → chunk-RA2IPRO2.js.map} +0 -0
  223. /package/dist/{chunk-DC333ZDC.js.map → chunk-RDWGYKDY.js.map} +0 -0
  224. /package/dist/{chunk-HPJP3HFD.js.map → chunk-SPFHPHYL.js.map} +0 -0
  225. /package/dist/{chunk-EZ46ZTAQ.js.map → chunk-U2W5SENM.js.map} +0 -0
  226. /package/dist/{chunk-MVEYK55V.js.map → chunk-U7X4V4HE.js.map} +0 -0
  227. /package/dist/{chunk-2RQYJFKA.js.map → chunk-WLZHCM7O.js.map} +0 -0
  228. /package/dist/{chunk-DVW6ASTO.js.map → chunk-XDSVV5GZ.js.map} +0 -0
  229. /package/dist/{source-manager-Q34LTUVM.js.map → source-manager-BVB2SG73.js.map} +0 -0
  230. /package/dist/src/agents/developer/api-developer/{agent.yaml → metadata.yaml} +0 -0
  231. /package/dist/src/agents/developer/cli-developer/{agent.yaml → metadata.yaml} +0 -0
  232. /package/dist/src/agents/developer/web-architecture/{agent.yaml → metadata.yaml} +0 -0
  233. /package/dist/src/agents/developer/web-developer/{agent.yaml → metadata.yaml} +0 -0
  234. /package/dist/src/agents/meta/agent-summoner/{agent.yaml → metadata.yaml} +0 -0
  235. /package/dist/src/agents/meta/skill-summoner/{agent.yaml → metadata.yaml} +0 -0
  236. /package/dist/src/agents/pattern/pattern-scout/{agent.yaml → metadata.yaml} +0 -0
  237. /package/dist/src/agents/pattern/web-pattern-critique/{agent.yaml → metadata.yaml} +0 -0
  238. /package/dist/src/agents/planning/web-pm/{agent.yaml → metadata.yaml} +0 -0
  239. /package/dist/src/agents/researcher/api-researcher/{agent.yaml → metadata.yaml} +0 -0
  240. /package/dist/src/agents/researcher/web-researcher/{agent.yaml → metadata.yaml} +0 -0
  241. /package/dist/src/agents/reviewer/api-reviewer/{agent.yaml → metadata.yaml} +0 -0
  242. /package/dist/src/agents/reviewer/cli-reviewer/{agent.yaml → metadata.yaml} +0 -0
  243. /package/dist/src/agents/reviewer/web-reviewer/{agent.yaml → metadata.yaml} +0 -0
  244. /package/dist/src/agents/tester/cli-tester/{agent.yaml → metadata.yaml} +0 -0
  245. /package/dist/src/agents/tester/web-tester/{agent.yaml → metadata.yaml} +0 -0
  246. /package/src/agents/developer/api-developer/{agent.yaml → metadata.yaml} +0 -0
  247. /package/src/agents/developer/cli-developer/{agent.yaml → metadata.yaml} +0 -0
  248. /package/src/agents/developer/web-architecture/{agent.yaml → metadata.yaml} +0 -0
  249. /package/src/agents/developer/web-developer/{agent.yaml → metadata.yaml} +0 -0
  250. /package/src/agents/meta/agent-summoner/{agent.yaml → metadata.yaml} +0 -0
  251. /package/src/agents/meta/skill-summoner/{agent.yaml → metadata.yaml} +0 -0
  252. /package/src/agents/pattern/pattern-scout/{agent.yaml → metadata.yaml} +0 -0
  253. /package/src/agents/pattern/web-pattern-critique/{agent.yaml → metadata.yaml} +0 -0
  254. /package/src/agents/planning/web-pm/{agent.yaml → metadata.yaml} +0 -0
  255. /package/src/agents/researcher/api-researcher/{agent.yaml → metadata.yaml} +0 -0
  256. /package/src/agents/researcher/web-researcher/{agent.yaml → metadata.yaml} +0 -0
  257. /package/src/agents/reviewer/api-reviewer/{agent.yaml → metadata.yaml} +0 -0
  258. /package/src/agents/reviewer/cli-reviewer/{agent.yaml → metadata.yaml} +0 -0
  259. /package/src/agents/reviewer/web-reviewer/{agent.yaml → metadata.yaml} +0 -0
  260. /package/src/agents/tester/cli-tester/{agent.yaml → metadata.yaml} +0 -0
  261. /package/src/agents/tester/web-tester/{agent.yaml → metadata.yaml} +0 -0
@@ -0,0 +1,740 @@
1
+ version: "1.0.0"
2
+
3
+ aliases:
4
+ # Frameworks
5
+ react: "web-framework-react"
6
+ vue: "web-framework-vue-composition-api"
7
+ angular: "web-framework-angular-standalone"
8
+ solidjs: "web-framework-solidjs"
9
+ nextjs-app-router: "web-framework-nextjs-app-router"
10
+ nextjs-server-actions: "web-framework-nextjs-server-actions"
11
+ remix: "web-framework-remix"
12
+ nuxt: "web-framework-nuxt"
13
+
14
+ # Styling
15
+ scss-modules: "web-styling-scss-modules"
16
+ cva: "web-styling-cva"
17
+ tailwind: "web-styling-tailwind"
18
+
19
+ # Client State
20
+ zustand: "web-state-zustand"
21
+ redux-toolkit: "web-state-redux-toolkit"
22
+ pinia: "web-state-pinia"
23
+ ngrx-signalstore: "web-state-ngrx-signalstore"
24
+ jotai: "web-state-jotai"
25
+ mobx: "web-state-mobx"
26
+
27
+ # Server State
28
+ react-query: "web-server-state-react-query"
29
+ swr: "web-data-fetching-swr"
30
+ graphql-apollo: "web-data-fetching-graphql-apollo"
31
+ graphql-urql: "web-data-fetching-graphql-urql"
32
+ trpc: "web-data-fetching-trpc"
33
+
34
+ # Forms
35
+ react-hook-form: "web-forms-react-hook-form"
36
+ vee-validate: "web-forms-vee-validate"
37
+ zod-validation: "web-forms-zod-validation"
38
+
39
+ # Testing
40
+ vitest: "web-testing-vitest"
41
+ playwright-e2e: "web-testing-playwright-e2e"
42
+ cypress-e2e: "web-testing-cypress-e2e"
43
+ react-testing-library: "web-testing-react-testing-library"
44
+ vue-test-utils: "web-testing-vue-test-utils"
45
+ msw: "web-mocks-msw"
46
+
47
+ # UI Components
48
+ shadcn-ui: "web-ui-shadcn-ui"
49
+ tanstack-table: "web-ui-tanstack-table"
50
+ radix-ui: "web-ui-radix-ui"
51
+
52
+ # Backend
53
+ hono: "api-framework-hono"
54
+ express: "api-framework-express"
55
+ fastify: "api-framework-fastify"
56
+ drizzle: "api-database-drizzle"
57
+ prisma: "api-database-prisma"
58
+ better-auth: "api-auth-better-auth-drizzle-hono"
59
+ axiom-pino-sentry: "api-observability-axiom-pino-sentry"
60
+ posthog: "api-analytics-posthog-analytics"
61
+ posthog-flags: "api-flags-posthog-flags"
62
+ resend: "api-email-resend-react-email"
63
+ github-actions: "api-ci-cd-github-actions"
64
+
65
+ # Mobile
66
+ react-native: "mobile-framework-react-native"
67
+ expo: "mobile-framework-expo"
68
+
69
+ # Infrastructure
70
+ turborepo: "infra-monorepo-turborepo"
71
+ tooling: "infra-tooling-setup-tooling"
72
+ posthog-setup: "api-analytics-setup-posthog"
73
+ env: "infra-env-setup-env"
74
+ observability-setup: "api-observability-setup-axiom-pino-sentry"
75
+ email-setup: "api-email-setup-resend"
76
+
77
+ # Animation, PWA, Realtime, etc.
78
+ framer-motion: "web-animation-framer-motion"
79
+ css-animations: "web-animation-css-animations"
80
+ view-transitions: "web-animation-view-transitions"
81
+ storybook: "web-tooling-storybook"
82
+ error-boundaries: "web-error-handling-error-boundaries"
83
+ result-types: "web-error-handling-result-types"
84
+ accessibility: "web-accessibility-web-accessibility"
85
+ websockets: "web-realtime-websockets"
86
+ sse: "web-realtime-sse"
87
+ socket-io: "web-realtime-socket-io"
88
+ service-workers: "web-pwa-service-workers"
89
+ offline-first: "web-pwa-offline-first"
90
+ file-upload: "web-files-file-upload-patterns"
91
+ image-handling: "web-files-image-handling"
92
+ date-fns: "web-utilities-date-fns"
93
+
94
+ # Backend-specific
95
+ api-testing: "api-testing-api-testing"
96
+ api-performance: "api-performance-api-performance"
97
+ web-performance: "web-performance-web-performance"
98
+ security: "security-auth-security"
99
+
100
+ # CLI
101
+ commander: "cli-framework-cli-commander"
102
+ cli-commander: "cli-framework-cli-commander"
103
+ oclif: "cli-framework-oclif-ink"
104
+
105
+ # Reviewing / Meta
106
+ reviewing: "meta-reviewing-reviewing"
107
+ cli-reviewing: "meta-reviewing-cli-reviewing"
108
+ research-methodology: "meta-research-research-methodology"
109
+
110
+ # Methodology
111
+ investigation-requirements: "meta-methodology-investigation-requirements"
112
+ anti-over-engineering: "meta-methodology-anti-over-engineering"
113
+ success-criteria: "meta-methodology-success-criteria"
114
+ write-verification: "meta-methodology-write-verification"
115
+ improvement-protocol: "meta-methodology-improvement-protocol"
116
+ context-management: "meta-methodology-context-management"
117
+
118
+ relationships:
119
+ conflicts:
120
+ - skills: [react, vue, angular, solidjs, nextjs-app-router, remix, nuxt]
121
+ reason: "Frameworks are mutually exclusive"
122
+
123
+ - skills: [pinia, zustand, redux-toolkit, mobx]
124
+ reason: "Pinia is Vue-only; zustand/redux-toolkit/mobx skills teach React patterns"
125
+
126
+ - skills: [ngrx-signalstore, zustand, pinia, redux-toolkit, mobx]
127
+ reason: "NgRx SignalStore is Angular-only"
128
+
129
+ - skills: [react-query, swr]
130
+ reason: "Both solve server state caching"
131
+
132
+ - skills: [graphql-apollo, graphql-urql]
133
+ reason: "Both are GraphQL clients"
134
+
135
+ - skills: [playwright-e2e, cypress-e2e]
136
+ reason: "Both are E2E frameworks"
137
+
138
+ - skills: [react-hook-form, vee-validate]
139
+ reason: "react-hook-form is React-only, vee-validate is Vue-only"
140
+
141
+ - skills: [react-testing-library, vue-test-utils]
142
+ reason: "Framework-specific testing libraries"
143
+
144
+ - skills: [hono, express, fastify]
145
+ reason: "API frameworks are mutually exclusive within a single service"
146
+
147
+ - skills: [drizzle, prisma]
148
+ reason: "Both are ORMs serving similar purposes"
149
+
150
+ - skills: [commander, oclif]
151
+ reason: "CLI frameworks are mutually exclusive"
152
+
153
+ discourages:
154
+ - skills: [zustand, redux-toolkit, mobx]
155
+ reason: "Using multiple React state libraries adds complexity"
156
+
157
+ - skills: [redux-toolkit, zustand]
158
+ reason: "Redux Toolkit adds more boilerplate than Zustand"
159
+
160
+ - skills: [swr, react-query]
161
+ reason: "SWR is simpler but React Query has more features"
162
+
163
+ - skills: [express, hono]
164
+ reason: "Express is mature but Hono offers better performance and edge support"
165
+
166
+ - skills: [express, fastify]
167
+ reason: "Express is mature but Fastify offers better performance"
168
+
169
+ - skills: [cypress-e2e, playwright-e2e]
170
+ reason: "Cypress excels at interactive debugging; Playwright has better cross-browser support and CI performance"
171
+
172
+ recommends:
173
+ - when: react
174
+ suggest: [zustand, react-query, vitest, react-hook-form, react-testing-library]
175
+ reason: "Best-in-class React libraries"
176
+
177
+ - when: nextjs-app-router
178
+ suggest: [react-query, zustand, shadcn-ui]
179
+ reason: "Next.js App Router ecosystem"
180
+
181
+ - when: remix
182
+ suggest: [zustand, vitest, zod-validation]
183
+ reason: "Remix-compatible libraries"
184
+
185
+ - when: vue
186
+ suggest: [pinia, vee-validate, vue-test-utils]
187
+ reason: "Vue community standard libraries"
188
+
189
+ - when: angular
190
+ suggest: [ngrx-signalstore]
191
+ reason: "Angular Signals-based state management"
192
+
193
+ - when: solidjs
194
+ suggest: [vitest, tailwind]
195
+ reason: "SolidJS-compatible libraries"
196
+
197
+ - when: hono
198
+ suggest: [drizzle, better-auth, zod-validation]
199
+ reason: "Hono + Drizzle + Better Auth is a powerful combo"
200
+
201
+ - when: drizzle
202
+ suggest: [zod-validation]
203
+ reason: "Drizzle types work great with Zod"
204
+
205
+ - when: scss-modules
206
+ suggest: [radix-ui]
207
+ reason: "Radix primitives work well with any CSS approach"
208
+
209
+ - when: tailwind
210
+ suggest: [shadcn-ui, cva]
211
+ reason: "shadcn/ui is built for Tailwind; CVA provides type-safe variant management"
212
+
213
+ - when: cva
214
+ suggest: [tailwind]
215
+ reason: "CVA is designed for Tailwind utility classes"
216
+
217
+ - when: shadcn-ui
218
+ suggest: [radix-ui, tailwind]
219
+ reason: "shadcn/ui uses Radix primitives and Tailwind"
220
+
221
+ - when: react-hook-form
222
+ suggest: [zod-validation]
223
+ reason: "react-hook-form + Zod is the standard pattern"
224
+
225
+ - when: vee-validate
226
+ suggest: [zod-validation]
227
+ reason: "vee-validate supports Zod schemas"
228
+
229
+ - when: vitest
230
+ suggest: [react-testing-library, msw]
231
+ reason: "Vitest + RTL + MSW is the modern testing stack"
232
+
233
+ - when: playwright-e2e
234
+ suggest: [vitest]
235
+ reason: "Playwright for E2E, Vitest for unit/integration"
236
+
237
+ - when: react-query
238
+ suggest: [zod-validation]
239
+ reason: "Type-safe API responses with Zod"
240
+
241
+ - when: react-native
242
+ suggest: [zustand, react-query, react-hook-form, zod-validation]
243
+ reason: "React Native shares React ecosystem"
244
+
245
+ - when: axiom-pino-sentry
246
+ suggest: [posthog]
247
+ reason: "Complete observability with analytics"
248
+
249
+ - when: fastify
250
+ suggest: [drizzle, zod-validation]
251
+ reason: "Fastify + Drizzle + Zod is a solid backend stack"
252
+
253
+ - when: express
254
+ suggest: [prisma]
255
+ reason: "Express + Prisma is a classic combination"
256
+
257
+ - when: nuxt
258
+ suggest: [pinia, tailwind, playwright-e2e]
259
+ reason: "Nuxt ecosystem libraries"
260
+
261
+ - when: msw
262
+ suggest: [vitest, react-testing-library]
263
+ reason: "MSW + Vitest + RTL is the modern testing stack"
264
+
265
+ - when: cypress-e2e
266
+ suggest: [vitest]
267
+ reason: "Cypress for E2E, Vitest for unit tests"
268
+
269
+ - when: oclif
270
+ suggest: [vitest]
271
+ reason: "oclif pairs well with Vitest for CLI testing"
272
+
273
+ - when: commander
274
+ suggest: [vitest]
275
+ reason: "Commander pairs well with Vitest for CLI testing"
276
+
277
+ requires:
278
+ - skill: zustand
279
+ needs: [react, nextjs-app-router, remix, react-native]
280
+ needsAny: true
281
+ reason: "Our Zustand skill covers React/React Native patterns"
282
+
283
+ - skill: redux-toolkit
284
+ needs: [react, nextjs-app-router, remix, react-native]
285
+ needsAny: true
286
+ reason: "Our Redux Toolkit skill covers React/React Native patterns"
287
+
288
+ - skill: mobx
289
+ needs: [react, nextjs-app-router, remix]
290
+ needsAny: true
291
+ reason: "Our MobX skill teaches React patterns"
292
+
293
+ - skill: react-query
294
+ needs: [react, nextjs-app-router, remix, react-native]
295
+ needsAny: true
296
+ reason: "TanStack Query's React adapter"
297
+
298
+ - skill: swr
299
+ needs: [react, nextjs-app-router, remix, react-native]
300
+ needsAny: true
301
+ reason: "SWR is a React Hooks library"
302
+
303
+ - skill: react-hook-form
304
+ needs: [react, nextjs-app-router, remix, react-native]
305
+ needsAny: true
306
+ reason: "React Hook Form is React only"
307
+
308
+ - skill: react-testing-library
309
+ needs: [react, nextjs-app-router, remix]
310
+ needsAny: true
311
+ reason: "React Testing Library is React only"
312
+
313
+ - skill: pinia
314
+ needs: [vue, nuxt]
315
+ needsAny: true
316
+ reason: "Pinia is Vue only"
317
+
318
+ - skill: vee-validate
319
+ needs: [vue, nuxt]
320
+ needsAny: true
321
+ reason: "VeeValidate is Vue only"
322
+
323
+ - skill: vue-test-utils
324
+ needs: [vue, nuxt]
325
+ needsAny: true
326
+ reason: "Vue Test Utils is Vue only"
327
+
328
+ - skill: ngrx-signalstore
329
+ needs: [angular]
330
+ reason: "NgRx SignalStore is Angular only"
331
+
332
+ - skill: better-auth
333
+ needs: [drizzle, prisma]
334
+ needsAny: true
335
+ reason: "Better Auth requires a database adapter"
336
+
337
+ - skill: shadcn-ui
338
+ needs: [react, nextjs-app-router, remix]
339
+ needsAny: true
340
+ reason: "shadcn/ui requires a React-based framework"
341
+
342
+ - skill: shadcn-ui
343
+ needs: [tailwind]
344
+ reason: "shadcn/ui requires Tailwind CSS"
345
+
346
+ - skill: graphql-apollo
347
+ needs: [react, vue, angular, nextjs-app-router, remix, nuxt]
348
+ needsAny: true
349
+ reason: "Apollo Client requires a UI framework"
350
+
351
+ - skill: graphql-urql
352
+ needs: [react, vue, solidjs, nextjs-app-router, remix, nuxt]
353
+ needsAny: true
354
+ reason: "URQL supports React, Vue, and Solid"
355
+
356
+ alternatives:
357
+ - purpose: "Frontend Framework"
358
+ skills: [react, vue, angular, solidjs, nextjs-app-router, remix, nuxt]
359
+
360
+ - purpose: "Styling"
361
+ skills: [scss-modules, tailwind, cva]
362
+
363
+ - purpose: "Client State (React)"
364
+ skills: [zustand, redux-toolkit, mobx, jotai]
365
+
366
+ - purpose: "Client State (Vue)"
367
+ skills: [pinia]
368
+
369
+ - purpose: "Client State (Angular)"
370
+ skills: [ngrx-signalstore]
371
+
372
+ - purpose: "Server State / Data Fetching"
373
+ skills: [react-query, swr]
374
+
375
+ - purpose: "GraphQL Client"
376
+ skills: [graphql-apollo, graphql-urql]
377
+
378
+ - purpose: "API Framework"
379
+ skills: [hono, express, fastify]
380
+
381
+ - purpose: "Database ORM"
382
+ skills: [drizzle, prisma]
383
+
384
+ - purpose: "Forms (React)"
385
+ skills: [react-hook-form]
386
+
387
+ - purpose: "Forms (Vue)"
388
+ skills: [vee-validate]
389
+
390
+ - purpose: "Validation"
391
+ skills: [zod-validation]
392
+
393
+ - purpose: "Unit Testing"
394
+ skills: [vitest]
395
+
396
+ - purpose: "Component Testing (React)"
397
+ skills: [react-testing-library]
398
+
399
+ - purpose: "Component Testing (Vue)"
400
+ skills: [vue-test-utils]
401
+
402
+ - purpose: "E2E Testing"
403
+ skills: [playwright-e2e, cypress-e2e]
404
+
405
+ - purpose: "API Mocking"
406
+ skills: [msw]
407
+
408
+ - purpose: "UI Components (React + Tailwind)"
409
+ skills: [shadcn-ui]
410
+
411
+ - purpose: "Mobile"
412
+ skills: [react-native]
413
+
414
+ - purpose: "CLI Framework"
415
+ skills: [commander, oclif]
416
+
417
+ per-skill:
418
+ posthog:
419
+ compatibleWith: [api-flags-posthog-flags]
420
+ requiresSetup: [api-analytics-setup-posthog]
421
+ posthog-setup:
422
+ compatibleWith: [api-analytics-posthog-analytics, api-flags-posthog-flags, infra-env-setup-env]
423
+ providesSetupFor: [api-analytics-posthog-analytics, api-flags-posthog-flags]
424
+ posthog-flags:
425
+ compatibleWith: [api-analytics-posthog-analytics]
426
+ requiresSetup: [api-analytics-setup-posthog]
427
+
428
+ better-auth:
429
+ compatibleWith:
430
+ [api-framework-hono, api-framework-express, api-framework-fastify, security-auth-security]
431
+ requires: [api-database-drizzle]
432
+
433
+ github-actions:
434
+ compatibleWith: [infra-monorepo-turborepo, infra-tooling-setup-tooling]
435
+
436
+ drizzle:
437
+ compatibleWith:
438
+ [
439
+ api-framework-hono,
440
+ api-framework-express,
441
+ api-framework-fastify,
442
+ api-auth-better-auth-drizzle-hono,
443
+ ]
444
+ prisma:
445
+ compatibleWith:
446
+ [
447
+ api-framework-hono,
448
+ api-framework-express,
449
+ api-framework-fastify,
450
+ api-auth-better-auth-drizzle-hono,
451
+ ]
452
+
453
+ resend:
454
+ requiresSetup: [api-email-setup-resend]
455
+ email-setup:
456
+ compatibleWith: [api-email-resend-react-email, infra-env-setup-env]
457
+ providesSetupFor: [api-email-resend-react-email]
458
+
459
+ express:
460
+ compatibleWith:
461
+ [
462
+ api-auth-better-auth-drizzle-hono,
463
+ api-database-drizzle,
464
+ api-database-prisma,
465
+ security-auth-security,
466
+ api-observability-axiom-pino-sentry,
467
+ ]
468
+ fastify:
469
+ compatibleWith:
470
+ [
471
+ api-auth-better-auth-drizzle-hono,
472
+ api-database-drizzle,
473
+ api-database-prisma,
474
+ api-observability-axiom-pino-sentry,
475
+ security-auth-security,
476
+ ]
477
+ hono:
478
+ compatibleWith:
479
+ [
480
+ api-auth-better-auth-drizzle-hono,
481
+ api-database-drizzle,
482
+ api-database-prisma,
483
+ security-auth-security,
484
+ ]
485
+
486
+ axiom-pino-sentry:
487
+ requiresSetup: [api-observability-setup-axiom-pino-sentry]
488
+ observability-setup:
489
+ compatibleWith: [api-observability-axiom-pino-sentry, infra-env-setup-env]
490
+ providesSetupFor: [api-observability-axiom-pino-sentry]
491
+
492
+ api-performance:
493
+ compatibleWith:
494
+ [
495
+ api-database-drizzle,
496
+ api-database-prisma,
497
+ api-framework-hono,
498
+ api-framework-express,
499
+ api-framework-fastify,
500
+ ]
501
+
502
+ commander:
503
+ compatibleWith: [infra-tooling-setup-tooling, web-testing-vitest]
504
+ oclif:
505
+ compatibleWith: [web-framework-react, web-state-zustand, web-testing-vitest]
506
+ conflictsWith: [cli-framework-cli-commander]
507
+
508
+ env:
509
+ compatibleWith: [security-auth-security, infra-monorepo-turborepo]
510
+ turborepo:
511
+ compatibleWith: [infra-tooling-setup-tooling, api-ci-cd-github-actions]
512
+ tooling:
513
+ compatibleWith: [infra-monorepo-turborepo]
514
+
515
+ cli-reviewing:
516
+ compatibleWith: [meta-reviewing-reviewing, web-testing-vitest]
517
+ requires: [cli-framework-cli-commander]
518
+
519
+ react-native:
520
+ compatibleWith:
521
+ [
522
+ web-state-zustand,
523
+ web-server-state-react-query,
524
+ web-forms-react-hook-form,
525
+ web-forms-zod-validation,
526
+ ]
527
+
528
+ security:
529
+ compatibleWith:
530
+ [
531
+ api-auth-better-auth-drizzle-hono,
532
+ api-framework-hono,
533
+ api-framework-express,
534
+ api-framework-fastify,
535
+ infra-env-setup-env,
536
+ ]
537
+
538
+ accessibility:
539
+ compatibleWith:
540
+ [
541
+ web-framework-react,
542
+ web-framework-vue-composition-api,
543
+ web-framework-angular-standalone,
544
+ web-framework-solidjs,
545
+ ]
546
+
547
+ css-animations:
548
+ compatibleWith:
549
+ [
550
+ web-styling-scss-modules,
551
+ web-styling-tailwind,
552
+ web-accessibility-web-accessibility,
553
+ web-performance-web-performance,
554
+ ]
555
+ framer-motion:
556
+ compatibleWith:
557
+ [web-styling-scss-modules, web-styling-tailwind, web-accessibility-web-accessibility]
558
+ requires: [web-framework-react]
559
+
560
+ graphql-apollo:
561
+ compatibleWith:
562
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
563
+ graphql-urql:
564
+ compatibleWith:
565
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
566
+ swr:
567
+ compatibleWith:
568
+ [web-framework-react, web-framework-nextjs-app-router, web-framework-nextjs-server-actions]
569
+ trpc:
570
+ compatibleWith:
571
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
572
+
573
+ error-boundaries:
574
+ compatibleWith: [web-framework-react]
575
+ result-types:
576
+ compatibleWith:
577
+ [web-framework-react, api-framework-hono, api-framework-express, api-framework-fastify]
578
+
579
+ file-upload:
580
+ compatibleWith:
581
+ [web-framework-react, web-forms-react-hook-form, web-forms-vee-validate, api-framework-hono]
582
+ image-handling:
583
+ compatibleWith: [web-framework-react, web-forms-react-hook-form, web-forms-vee-validate]
584
+
585
+ nextjs-app-router:
586
+ compatibleWith:
587
+ [
588
+ web-styling-scss-modules,
589
+ web-styling-tailwind,
590
+ web-server-state-react-query,
591
+ web-state-zustand,
592
+ ]
593
+ nextjs-server-actions:
594
+ compatibleWith:
595
+ [
596
+ web-forms-react-hook-form,
597
+ web-forms-zod-validation,
598
+ api-database-drizzle,
599
+ api-database-prisma,
600
+ api-auth-better-auth-drizzle-hono,
601
+ ]
602
+ requires: [web-framework-nextjs-app-router]
603
+ nuxt:
604
+ compatibleWith: [web-forms-zod-validation, web-testing-playwright-e2e]
605
+ remix:
606
+ compatibleWith:
607
+ [
608
+ web-styling-scss-modules,
609
+ web-styling-tailwind,
610
+ web-testing-vitest,
611
+ web-testing-playwright-e2e,
612
+ web-testing-cypress-e2e,
613
+ ]
614
+ solidjs:
615
+ compatibleWith:
616
+ [
617
+ web-styling-scss-modules,
618
+ web-styling-tailwind,
619
+ web-testing-vitest,
620
+ web-testing-playwright-e2e,
621
+ web-testing-cypress-e2e,
622
+ ]
623
+ vue:
624
+ compatibleWith:
625
+ [
626
+ web-styling-scss-modules,
627
+ web-styling-tailwind,
628
+ web-testing-vitest,
629
+ web-testing-playwright-e2e,
630
+ web-testing-cypress-e2e,
631
+ ]
632
+
633
+ msw:
634
+ compatibleWith:
635
+ [
636
+ web-testing-vitest,
637
+ web-testing-playwright-e2e,
638
+ web-testing-cypress-e2e,
639
+ web-server-state-react-query,
640
+ web-data-fetching-swr,
641
+ ]
642
+
643
+ web-performance:
644
+ compatibleWith:
645
+ [
646
+ web-framework-react,
647
+ web-framework-vue-composition-api,
648
+ web-framework-angular-standalone,
649
+ web-framework-solidjs,
650
+ ]
651
+
652
+ offline-first:
653
+ compatibleWith:
654
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
655
+
656
+ socket-io:
657
+ compatibleWith:
658
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
659
+ websockets:
660
+ compatibleWith:
661
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
662
+
663
+ react-query:
664
+ compatibleWith:
665
+ [web-framework-react, web-state-zustand, web-state-jotai, web-state-redux-toolkit]
666
+
667
+ jotai:
668
+ compatibleWith: [web-framework-react, web-server-state-react-query, web-data-fetching-swr]
669
+ mobx:
670
+ compatibleWith: [web-framework-react]
671
+ conflictsWith: [web-state-zustand, web-state-redux-toolkit]
672
+ ngrx-signalstore:
673
+ compatibleWith:
674
+ [web-framework-angular-standalone, web-server-state-react-query, web-data-fetching-swr]
675
+ pinia:
676
+ compatibleWith:
677
+ [web-framework-vue-composition-api, web-server-state-react-query, web-data-fetching-swr]
678
+ redux-toolkit:
679
+ compatibleWith: [web-framework-react, web-server-state-react-query, web-data-fetching-swr]
680
+ zustand:
681
+ compatibleWith: [web-framework-react, web-server-state-react-query, web-data-fetching-swr]
682
+
683
+ cva:
684
+ compatibleWith: [web-styling-scss-modules, web-styling-tailwind]
685
+ scss-modules:
686
+ compatibleWith:
687
+ [
688
+ web-framework-react,
689
+ web-framework-vue-composition-api,
690
+ web-framework-angular-standalone,
691
+ web-framework-solidjs,
692
+ ]
693
+ tailwind:
694
+ compatibleWith: [web-framework-react, web-styling-cva]
695
+ conflictsWith: [web-styling-scss-modules]
696
+
697
+ cypress-e2e:
698
+ compatibleWith:
699
+ [
700
+ web-framework-react,
701
+ web-framework-vue-composition-api,
702
+ web-framework-angular-standalone,
703
+ web-framework-solidjs,
704
+ ]
705
+ playwright-e2e:
706
+ compatibleWith:
707
+ [
708
+ web-framework-react,
709
+ web-framework-vue-composition-api,
710
+ web-framework-angular-standalone,
711
+ web-framework-solidjs,
712
+ ]
713
+ react-testing-library:
714
+ compatibleWith: [web-framework-react, web-testing-vitest]
715
+ vitest:
716
+ compatibleWith:
717
+ [
718
+ web-framework-react,
719
+ web-framework-vue-composition-api,
720
+ web-framework-angular-standalone,
721
+ web-framework-solidjs,
722
+ web-mocks-msw,
723
+ ]
724
+ vue-test-utils:
725
+ compatibleWith: [web-framework-vue-composition-api, web-state-pinia]
726
+
727
+ storybook:
728
+ compatibleWith:
729
+ [
730
+ web-framework-react,
731
+ web-framework-vue-composition-api,
732
+ web-framework-angular-standalone,
733
+ web-testing-vitest,
734
+ web-testing-playwright-e2e,
735
+ ]
736
+
737
+ shadcn-ui:
738
+ compatibleWith: [web-framework-react, web-styling-tailwind]
739
+ tanstack-table:
740
+ compatibleWith: [web-framework-react, web-framework-vue-composition-api, web-framework-solidjs]