@agents-inc/cli 0.50.0 → 0.61.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 (237) hide show
  1. package/CHANGELOG.md +167 -5
  2. package/dist/{chunk-KQOU4POU.js → chunk-46DQG2N7.js} +72 -51
  3. package/dist/chunk-46DQG2N7.js.map +1 -0
  4. package/dist/{chunk-2BWCR762.js → chunk-52XO4ULK.js} +6 -8
  5. package/dist/chunk-52XO4ULK.js.map +1 -0
  6. package/dist/{chunk-DCE423KO.js → chunk-6DAZG54T.js} +5 -5
  7. package/dist/{chunk-AWP5A6IM.js → chunk-6OWHQ7HM.js} +14 -12
  8. package/dist/chunk-6OWHQ7HM.js.map +1 -0
  9. package/dist/{chunk-D72AFYQR.js → chunk-7FMEMXJ4.js} +71 -71
  10. package/dist/chunk-7FMEMXJ4.js.map +1 -0
  11. package/dist/{chunk-RA2IPRO2.js → chunk-AJJJE7F7.js} +2 -2
  12. package/dist/{chunk-4R52TQ3K.js → chunk-AX3SZZWA.js} +2 -2
  13. package/dist/{chunk-U2W5SENM.js → chunk-BFD5NZQ4.js} +5 -4
  14. package/dist/chunk-BFD5NZQ4.js.map +1 -0
  15. package/dist/{chunk-HYEUETIC.js → chunk-BKJHAJQW.js} +2 -2
  16. package/dist/{chunk-HYEUETIC.js.map → chunk-BKJHAJQW.js.map} +1 -1
  17. package/dist/{chunk-GBOW6FUW.js → chunk-BNQ5O6LE.js} +2 -2
  18. package/dist/{chunk-KAO3LKB5.js → chunk-C577AJE7.js} +3 -3
  19. package/dist/{chunk-C3Q43WLC.js → chunk-CIG7IKX3.js} +4 -4
  20. package/dist/chunk-EC3UJRKZ.js +1534 -0
  21. package/dist/chunk-EC3UJRKZ.js.map +1 -0
  22. package/dist/{chunk-HMSHB5EQ.js → chunk-FWMWWE3X.js} +3543 -3037
  23. package/dist/chunk-FWMWWE3X.js.map +1 -0
  24. package/dist/{chunk-YDYRAXSY.js → chunk-GH2RQ4MI.js} +6 -6
  25. package/dist/{chunk-5FPIKTSA.js → chunk-H5DASUX5.js} +7 -7
  26. package/dist/{chunk-JFF7P4LC.js → chunk-H7WJK7NJ.js} +22 -6
  27. package/dist/chunk-H7WJK7NJ.js.map +1 -0
  28. package/dist/chunk-HGTC76BX.js +16 -0
  29. package/dist/chunk-HGTC76BX.js.map +1 -0
  30. package/dist/{chunk-WFFV254H.js → chunk-IEEVXLJB.js} +110 -82
  31. package/dist/chunk-IEEVXLJB.js.map +1 -0
  32. package/dist/{chunk-5FCHJLM7.js → chunk-IGM6HA3S.js} +252 -38
  33. package/dist/chunk-IGM6HA3S.js.map +1 -0
  34. package/dist/{chunk-QB5HHTAA.js → chunk-KD2YS76O.js} +28 -12
  35. package/dist/chunk-KD2YS76O.js.map +1 -0
  36. package/dist/{chunk-5L724R4C.js → chunk-KDO6WU76.js} +8 -13
  37. package/dist/chunk-KDO6WU76.js.map +1 -0
  38. package/dist/{chunk-XDSVV5GZ.js → chunk-KIWFEBKH.js} +41 -11
  39. package/dist/chunk-KIWFEBKH.js.map +1 -0
  40. package/dist/{chunk-WBHPCBVN.js → chunk-LWXRUR6B.js} +66 -94
  41. package/dist/chunk-LWXRUR6B.js.map +1 -0
  42. package/dist/{chunk-SPFHPHYL.js → chunk-M6YWRMXH.js} +24 -14
  43. package/dist/chunk-M6YWRMXH.js.map +1 -0
  44. package/dist/{chunk-CMNKHDOX.js → chunk-MGNYPVOJ.js} +2 -2
  45. package/dist/{chunk-U7X4V4HE.js → chunk-MMFQNJPE.js} +2 -2
  46. package/dist/{chunk-WLZHCM7O.js → chunk-MR6OBL3B.js} +3 -11
  47. package/dist/{chunk-WLZHCM7O.js.map → chunk-MR6OBL3B.js.map} +1 -1
  48. package/dist/{chunk-RFKDGJAJ.js → chunk-O6BA7Q2B.js} +6 -6
  49. package/dist/chunk-O6BA7Q2B.js.map +1 -0
  50. package/dist/chunk-OCEFD7V6.js +201 -0
  51. package/dist/chunk-OCEFD7V6.js.map +1 -0
  52. package/dist/{chunk-YZTWZVGX.js → chunk-PUT7X3GA.js} +1 -1
  53. package/dist/chunk-PUT7X3GA.js.map +1 -0
  54. package/dist/{chunk-QYLCINGC.js → chunk-SDKCQXWE.js} +2 -2
  55. package/dist/{chunk-RDWGYKDY.js → chunk-SDLDPFNV.js} +6 -6
  56. package/dist/{chunk-7LV4V6A4.js → chunk-SRBN6RRD.js} +14 -10
  57. package/dist/chunk-SRBN6RRD.js.map +1 -0
  58. package/dist/{chunk-PGY5XROM.js → chunk-VR3CDXDT.js} +2 -6
  59. package/dist/chunk-VR3CDXDT.js.map +1 -0
  60. package/dist/{chunk-I6IOGZSZ.js → chunk-WHISPMAQ.js} +11 -15
  61. package/dist/chunk-WHISPMAQ.js.map +1 -0
  62. package/dist/{chunk-3VOL4WEG.js → chunk-WYVDNGJB.js} +3 -3
  63. package/dist/{chunk-WJHFV6RI.js → chunk-X5EG4EFP.js} +2 -2
  64. package/dist/{chunk-JWYRXE6C.js → chunk-XUDTFI4M.js} +2 -2
  65. package/dist/{chunk-4QWDB2MD.js → chunk-YHOHLNHM.js} +127 -105
  66. package/dist/chunk-YHOHLNHM.js.map +1 -0
  67. package/dist/{chunk-M3GQ2R3E.js → chunk-Z3TM4N37.js} +19 -7
  68. package/dist/chunk-Z3TM4N37.js.map +1 -0
  69. package/dist/commands/build/marketplace.js +4 -4
  70. package/dist/commands/build/plugins.js +9 -7
  71. package/dist/commands/build/plugins.js.map +1 -1
  72. package/dist/commands/build/stack.js +13 -10
  73. package/dist/commands/build/stack.js.map +1 -1
  74. package/dist/commands/compile.js +110 -129
  75. package/dist/commands/compile.js.map +1 -1
  76. package/dist/commands/config/index.js +7 -5
  77. package/dist/commands/config/index.js.map +1 -1
  78. package/dist/commands/config/path.js +8 -6
  79. package/dist/commands/config/path.js.map +1 -1
  80. package/dist/commands/config/show.js +7 -5
  81. package/dist/commands/diff.js +9 -7
  82. package/dist/commands/diff.js.map +1 -1
  83. package/dist/commands/doctor.js +20 -16
  84. package/dist/commands/doctor.js.map +1 -1
  85. package/dist/commands/edit.js +175 -79
  86. package/dist/commands/edit.js.map +1 -1
  87. package/dist/commands/eject.js +20 -41
  88. package/dist/commands/eject.js.map +1 -1
  89. package/dist/commands/import/skill.js +10 -18
  90. package/dist/commands/import/skill.js.map +1 -1
  91. package/dist/commands/info.js +21 -20
  92. package/dist/commands/info.js.map +1 -1
  93. package/dist/commands/init.js +32 -31
  94. package/dist/commands/list.js +8 -6
  95. package/dist/commands/list.js.map +1 -1
  96. package/dist/commands/new/agent.js +23 -11
  97. package/dist/commands/new/agent.js.map +1 -1
  98. package/dist/commands/new/marketplace.js +63 -46
  99. package/dist/commands/new/marketplace.js.map +1 -1
  100. package/dist/commands/new/skill.js +11 -9
  101. package/dist/commands/outdated.js +9 -7
  102. package/dist/commands/outdated.js.map +1 -1
  103. package/dist/commands/search.js +45 -35
  104. package/dist/commands/search.js.map +1 -1
  105. package/dist/commands/uninstall.js +93 -123
  106. package/dist/commands/uninstall.js.map +1 -1
  107. package/dist/commands/update.js +11 -9
  108. package/dist/commands/update.js.map +1 -1
  109. package/dist/commands/validate.js +23 -27
  110. package/dist/commands/validate.js.map +1 -1
  111. package/dist/components/common/confirm.test.js +4 -4
  112. package/dist/components/skill-search/skill-search.js +3 -3
  113. package/dist/components/wizard/category-grid.js +3 -3
  114. package/dist/components/wizard/category-grid.test.js +4 -4
  115. package/dist/components/wizard/category-grid.test.js.map +1 -1
  116. package/dist/components/wizard/checkbox-grid.js +5 -5
  117. package/dist/components/wizard/checkbox-grid.test.js +6 -6
  118. package/dist/components/wizard/domain-selection.js +12 -11
  119. package/dist/components/wizard/help-modal.js +2 -2
  120. package/dist/components/wizard/menu-item.js +1 -1
  121. package/dist/components/wizard/search-modal.js +2 -2
  122. package/dist/components/wizard/search-modal.test.js +3 -3
  123. package/dist/components/wizard/search-modal.test.js.map +1 -1
  124. package/dist/components/wizard/section-progress.js +2 -2
  125. package/dist/components/wizard/section-progress.test.js +4 -4
  126. package/dist/components/wizard/section-progress.test.js.map +1 -1
  127. package/dist/components/wizard/selection-card.js +2 -2
  128. package/dist/components/wizard/source-grid.js +4 -4
  129. package/dist/components/wizard/source-grid.test.js +5 -5
  130. package/dist/components/wizard/source-grid.test.js.map +1 -1
  131. package/dist/components/wizard/stack-selection.js +9 -8
  132. package/dist/components/wizard/step-agents.js +11 -10
  133. package/dist/components/wizard/step-agents.test.js +13 -12
  134. package/dist/components/wizard/step-agents.test.js.map +1 -1
  135. package/dist/components/wizard/step-build.js +11 -9
  136. package/dist/components/wizard/step-build.test.js +18 -22
  137. package/dist/components/wizard/step-build.test.js.map +1 -1
  138. package/dist/components/wizard/step-confirm.js +4 -4
  139. package/dist/components/wizard/step-confirm.test.js +83 -23
  140. package/dist/components/wizard/step-confirm.test.js.map +1 -1
  141. package/dist/components/wizard/step-refine.js +2 -2
  142. package/dist/components/wizard/step-refine.test.js +3 -3
  143. package/dist/components/wizard/step-settings.js +9 -7
  144. package/dist/components/wizard/step-settings.test.js +13 -11
  145. package/dist/components/wizard/step-settings.test.js.map +1 -1
  146. package/dist/components/wizard/step-sources.js +13 -11
  147. package/dist/components/wizard/step-sources.test.js +19 -17
  148. package/dist/components/wizard/step-sources.test.js.map +1 -1
  149. package/dist/components/wizard/step-stack.js +15 -14
  150. package/dist/components/wizard/step-stack.test.js +17 -16
  151. package/dist/components/wizard/step-stack.test.js.map +1 -1
  152. package/dist/components/wizard/view-title.js +2 -2
  153. package/dist/components/wizard/wizard-layout.js +10 -8
  154. package/dist/components/wizard/wizard-tabs.js +2 -2
  155. package/dist/components/wizard/wizard-tabs.test.js +2 -2
  156. package/dist/components/wizard/wizard.js +29 -27
  157. package/dist/config-exports.js +20 -0
  158. package/dist/config-exports.js.map +1 -0
  159. package/dist/hooks/init.js +34 -33
  160. package/dist/hooks/init.js.map +1 -1
  161. package/dist/loader-2O32KKAQ.js +19 -0
  162. package/dist/source-loader-KMEBBZCQ.js +16 -0
  163. package/dist/source-loader-KMEBBZCQ.js.map +1 -0
  164. package/dist/source-manager-5XBSPJNR.js +18 -0
  165. package/dist/source-manager-5XBSPJNR.js.map +1 -0
  166. package/dist/src/agents/meta/agent-summoner/workflow.md +3 -3
  167. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +2 -2
  168. package/dist/src/agents/meta/skill-summoner/critical-requirements.md +1 -1
  169. package/dist/src/agents/meta/skill-summoner/intro.md +1 -1
  170. package/dist/src/agents/meta/skill-summoner/output-format.md +3 -3
  171. package/dist/src/agents/meta/skill-summoner/workflow.md +8 -8
  172. package/dist/stores/wizard-store.js +6 -5
  173. package/dist/stores/wizard-store.test.js +299 -59
  174. package/dist/stores/wizard-store.test.js.map +1 -1
  175. package/package.json +5 -1
  176. package/src/agents/meta/agent-summoner/workflow.md +3 -3
  177. package/src/agents/meta/skill-summoner/critical-reminders.md +2 -2
  178. package/src/agents/meta/skill-summoner/critical-requirements.md +1 -1
  179. package/src/agents/meta/skill-summoner/intro.md +1 -1
  180. package/src/agents/meta/skill-summoner/output-format.md +3 -3
  181. package/src/agents/meta/skill-summoner/workflow.md +8 -8
  182. package/src/schemas/metadata.schema.json +6 -0
  183. package/src/schemas/stacks.schema.json +1 -1
  184. package/config/skill-categories.yaml +0 -344
  185. package/config/skill-rules.yaml +0 -740
  186. package/config/stacks.yaml +0 -1864
  187. package/dist/chunk-26MXZUHU.js +0 -183
  188. package/dist/chunk-26MXZUHU.js.map +0 -1
  189. package/dist/chunk-2BWCR762.js.map +0 -1
  190. package/dist/chunk-4QWDB2MD.js.map +0 -1
  191. package/dist/chunk-5FCHJLM7.js.map +0 -1
  192. package/dist/chunk-5L724R4C.js.map +0 -1
  193. package/dist/chunk-7LV4V6A4.js.map +0 -1
  194. package/dist/chunk-AWP5A6IM.js.map +0 -1
  195. package/dist/chunk-D72AFYQR.js.map +0 -1
  196. package/dist/chunk-HMSHB5EQ.js.map +0 -1
  197. package/dist/chunk-I6IOGZSZ.js.map +0 -1
  198. package/dist/chunk-JFF7P4LC.js.map +0 -1
  199. package/dist/chunk-KQOU4POU.js.map +0 -1
  200. package/dist/chunk-M3GQ2R3E.js.map +0 -1
  201. package/dist/chunk-PGY5XROM.js.map +0 -1
  202. package/dist/chunk-QB5HHTAA.js.map +0 -1
  203. package/dist/chunk-RFKDGJAJ.js.map +0 -1
  204. package/dist/chunk-SPFHPHYL.js.map +0 -1
  205. package/dist/chunk-U2W5SENM.js.map +0 -1
  206. package/dist/chunk-UAD3SC27.js +0 -107
  207. package/dist/chunk-UAD3SC27.js.map +0 -1
  208. package/dist/chunk-WBHPCBVN.js.map +0 -1
  209. package/dist/chunk-WFFV254H.js.map +0 -1
  210. package/dist/chunk-XDSVV5GZ.js.map +0 -1
  211. package/dist/chunk-YZTWZVGX.js.map +0 -1
  212. package/dist/commands/config/get.js +0 -61
  213. package/dist/commands/config/get.js.map +0 -1
  214. package/dist/commands/config/set-project.js +0 -61
  215. package/dist/commands/config/set-project.js.map +0 -1
  216. package/dist/commands/config/unset-project.js +0 -57
  217. package/dist/commands/config/unset-project.js.map +0 -1
  218. package/dist/config/skill-categories.yaml +0 -344
  219. package/dist/config/skill-rules.yaml +0 -740
  220. package/dist/config/stacks.yaml +0 -1864
  221. package/dist/source-manager-BVB2SG73.js +0 -16
  222. /package/dist/{chunk-DCE423KO.js.map → chunk-6DAZG54T.js.map} +0 -0
  223. /package/dist/{chunk-RA2IPRO2.js.map → chunk-AJJJE7F7.js.map} +0 -0
  224. /package/dist/{chunk-4R52TQ3K.js.map → chunk-AX3SZZWA.js.map} +0 -0
  225. /package/dist/{chunk-GBOW6FUW.js.map → chunk-BNQ5O6LE.js.map} +0 -0
  226. /package/dist/{chunk-KAO3LKB5.js.map → chunk-C577AJE7.js.map} +0 -0
  227. /package/dist/{chunk-C3Q43WLC.js.map → chunk-CIG7IKX3.js.map} +0 -0
  228. /package/dist/{chunk-YDYRAXSY.js.map → chunk-GH2RQ4MI.js.map} +0 -0
  229. /package/dist/{chunk-5FPIKTSA.js.map → chunk-H5DASUX5.js.map} +0 -0
  230. /package/dist/{chunk-CMNKHDOX.js.map → chunk-MGNYPVOJ.js.map} +0 -0
  231. /package/dist/{chunk-U7X4V4HE.js.map → chunk-MMFQNJPE.js.map} +0 -0
  232. /package/dist/{chunk-QYLCINGC.js.map → chunk-SDKCQXWE.js.map} +0 -0
  233. /package/dist/{chunk-RDWGYKDY.js.map → chunk-SDLDPFNV.js.map} +0 -0
  234. /package/dist/{chunk-3VOL4WEG.js.map → chunk-WYVDNGJB.js.map} +0 -0
  235. /package/dist/{chunk-WJHFV6RI.js.map → chunk-X5EG4EFP.js.map} +0 -0
  236. /package/dist/{chunk-JWYRXE6C.js.map → chunk-XUDTFI4M.js.map} +0 -0
  237. /package/dist/{source-manager-BVB2SG73.js.map → loader-2O32KKAQ.js.map} +0 -0
@@ -1,740 +0,0 @@
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]