@agents-inc/cli 0.46.0 → 0.48.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 (169) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +114 -118
  3. package/config/skill-categories.yaml +344 -0
  4. package/config/skill-rules.yaml +740 -0
  5. package/dist/{chunk-LFZXMQOH.js → chunk-2BVZOYJP.js} +2 -2
  6. package/dist/{chunk-4C7PDDLY.js → chunk-2DNDAXF6.js} +5 -5
  7. package/dist/{chunk-C7BO2ASM.js → chunk-34BP5BC4.js} +2 -2
  8. package/dist/{chunk-TOWP4T5L.js → chunk-37QYD33C.js} +2 -2
  9. package/dist/{chunk-YT7UHV67.js → chunk-5MN5S3DV.js} +11 -9
  10. package/dist/chunk-5MN5S3DV.js.map +1 -0
  11. package/dist/{chunk-72GS6PIH.js → chunk-5O6GKXAN.js} +7 -7
  12. package/dist/{chunk-KWQ2BQXF.js → chunk-7IAKVZL5.js} +3 -3
  13. package/dist/{chunk-CTQHZELA.js → chunk-AMNCCZSG.js} +14 -14
  14. package/dist/{chunk-PZLUO4OY.js → chunk-AXV7NFFJ.js} +4 -4
  15. package/dist/{chunk-ODQ2BKWU.js → chunk-AXZNJ5PN.js} +3 -3
  16. package/dist/{chunk-J64CA4V6.js → chunk-C7DLY64D.js} +2 -2
  17. package/dist/{chunk-G2WNOT3R.js → chunk-DG2U2WY3.js} +2 -2
  18. package/dist/{chunk-3WKFSTG6.js → chunk-F7KTUFGU.js} +2 -2
  19. package/dist/{chunk-5M6JI76P.js → chunk-FHKNG3UA.js} +2 -2
  20. package/dist/{chunk-I26YP2Q3.js → chunk-FPTUCWBY.js} +5 -5
  21. package/dist/{chunk-VH3PI43B.js → chunk-G5OZQ376.js} +4 -4
  22. package/dist/{chunk-RWR56UVK.js → chunk-GSPPOXMG.js} +11 -2
  23. package/dist/chunk-GSPPOXMG.js.map +1 -0
  24. package/dist/{chunk-YVMYQSED.js → chunk-I52THVF6.js} +2 -2
  25. package/dist/{chunk-FKBCYT7B.js → chunk-IS7GP6XC.js} +5 -5
  26. package/dist/{chunk-UK3AMBR7.js → chunk-KPJJOLAQ.js} +13 -6
  27. package/dist/{chunk-UK3AMBR7.js.map → chunk-KPJJOLAQ.js.map} +1 -1
  28. package/dist/{chunk-74HSA7C4.js → chunk-LESHL6SM.js} +9 -5
  29. package/dist/chunk-LESHL6SM.js.map +1 -0
  30. package/dist/{chunk-NMXNHRAK.js → chunk-NJVJ7VO5.js} +3 -3
  31. package/dist/{chunk-GVLYNP2I.js → chunk-OHDEJEYB.js} +4 -4
  32. package/dist/{chunk-CD64ZNYI.js → chunk-OTTITQ7C.js} +11 -3
  33. package/dist/chunk-OTTITQ7C.js.map +1 -0
  34. package/dist/{chunk-RT6IBH37.js → chunk-P2SFRDWI.js} +191 -109
  35. package/dist/chunk-P2SFRDWI.js.map +1 -0
  36. package/dist/{chunk-FUEZQ2H6.js → chunk-PY2XZUBF.js} +4 -4
  37. package/dist/{chunk-CDGHSTB6.js → chunk-SPVSWDFM.js} +7 -5
  38. package/dist/chunk-SPVSWDFM.js.map +1 -0
  39. package/dist/{chunk-DO5OZHSS.js → chunk-U2AEK4ZL.js} +2 -2
  40. package/dist/{chunk-HM3DHMW7.js → chunk-VBAAATPU.js} +8 -8
  41. package/dist/chunk-VBAAATPU.js.map +1 -0
  42. package/dist/{chunk-7LDSHHKN.js → chunk-W62XVWXB.js} +3 -3
  43. package/dist/{chunk-D7JTL3DJ.js → chunk-WSGKCBY5.js} +2 -2
  44. package/dist/{chunk-XE6RTHUD.js → chunk-X3SZIBVW.js} +34 -4
  45. package/dist/chunk-X3SZIBVW.js.map +1 -0
  46. package/dist/{chunk-QBUOZVNZ.js → chunk-YDASDMTH.js} +2 -2
  47. package/dist/{chunk-5QRJUBK7.js → chunk-YMUWTPOM.js} +41 -29
  48. package/dist/chunk-YMUWTPOM.js.map +1 -0
  49. package/dist/{chunk-SGXUMZWL.js → chunk-ZML3OCYA.js} +2 -2
  50. package/dist/commands/build/marketplace.js +4 -4
  51. package/dist/commands/build/plugins.js +5 -5
  52. package/dist/commands/build/stack.js +5 -5
  53. package/dist/commands/compile.js +6 -6
  54. package/dist/commands/config/get.js +4 -4
  55. package/dist/commands/config/index.js +5 -5
  56. package/dist/commands/config/path.js +4 -4
  57. package/dist/commands/config/set-project.js +4 -4
  58. package/dist/commands/config/show.js +5 -5
  59. package/dist/commands/config/unset-project.js +4 -4
  60. package/dist/commands/diff.js +4 -4
  61. package/dist/commands/doctor.js +4 -4
  62. package/dist/commands/edit.js +29 -29
  63. package/dist/commands/eject.js +4 -4
  64. package/dist/commands/import/skill.js +7 -8
  65. package/dist/commands/import/skill.js.map +1 -1
  66. package/dist/commands/info.js +5 -5
  67. package/dist/commands/init.js +28 -28
  68. package/dist/commands/list.js +4 -4
  69. package/dist/commands/new/agent.js +6 -6
  70. package/dist/commands/new/marketplace.js +5 -5
  71. package/dist/commands/new/skill.js +10 -8
  72. package/dist/commands/new/skill.js.map +1 -1
  73. package/dist/commands/outdated.js +4 -4
  74. package/dist/commands/search.js +7 -8
  75. package/dist/commands/search.js.map +1 -1
  76. package/dist/commands/uninstall.js +6 -6
  77. package/dist/commands/update.js +6 -6
  78. package/dist/commands/validate.js +267 -24
  79. package/dist/commands/validate.js.map +1 -1
  80. package/dist/components/skill-search/skill-search.js +3 -3
  81. package/dist/components/wizard/category-grid.js +2 -2
  82. package/dist/components/wizard/category-grid.test.js +122 -2
  83. package/dist/components/wizard/category-grid.test.js.map +1 -1
  84. package/dist/components/wizard/checkbox-grid.js +3 -3
  85. package/dist/components/wizard/checkbox-grid.test.js +3 -3
  86. package/dist/components/wizard/domain-selection.js +9 -9
  87. package/dist/components/wizard/help-modal.js +2 -2
  88. package/dist/components/wizard/menu-item.js +1 -1
  89. package/dist/components/wizard/search-modal.js +2 -2
  90. package/dist/components/wizard/search-modal.test.js +2 -2
  91. package/dist/components/wizard/section-progress.js +2 -2
  92. package/dist/components/wizard/section-progress.test.js +2 -2
  93. package/dist/components/wizard/selection-card.js +2 -2
  94. package/dist/components/wizard/source-grid.js +3 -3
  95. package/dist/components/wizard/source-grid.test.js +3 -3
  96. package/dist/components/wizard/stack-selection.js +8 -8
  97. package/dist/components/wizard/step-agents.js +8 -8
  98. package/dist/components/wizard/step-agents.test.js +9 -9
  99. package/dist/components/wizard/step-build.js +8 -8
  100. package/dist/components/wizard/step-build.test.js +74 -46
  101. package/dist/components/wizard/step-build.test.js.map +1 -1
  102. package/dist/components/wizard/step-confirm.js +4 -4
  103. package/dist/components/wizard/step-confirm.test.js +8 -8
  104. package/dist/components/wizard/step-refine.js +2 -2
  105. package/dist/components/wizard/step-refine.test.js +2 -2
  106. package/dist/components/wizard/step-settings.js +5 -5
  107. package/dist/components/wizard/step-settings.test.js +8 -8
  108. package/dist/components/wizard/step-sources.js +10 -10
  109. package/dist/components/wizard/step-sources.test.js +11 -11
  110. package/dist/components/wizard/step-stack.js +12 -12
  111. package/dist/components/wizard/step-stack.test.js +13 -13
  112. package/dist/components/wizard/view-title.js +2 -2
  113. package/dist/components/wizard/wizard-layout.js +8 -8
  114. package/dist/components/wizard/wizard-tabs.js +2 -2
  115. package/dist/components/wizard/wizard-tabs.test.js +2 -2
  116. package/dist/components/wizard/wizard.js +25 -25
  117. package/dist/config/skill-categories.yaml +344 -0
  118. package/dist/config/skill-rules.yaml +740 -0
  119. package/dist/hooks/init.js +3 -3
  120. package/dist/{source-manager-6QZ2GDUA.js → source-manager-Y7R6WPOW.js} +4 -4
  121. package/dist/src/agents/meta/documentor/examples.md +35 -36
  122. package/dist/src/agents/meta/documentor/workflow.md +91 -105
  123. package/dist/stores/wizard-store.js +5 -5
  124. package/dist/stores/wizard-store.test.js +48 -6
  125. package/dist/stores/wizard-store.test.js.map +1 -1
  126. package/package.json +5 -1
  127. package/src/agents/meta/documentor/examples.md +35 -36
  128. package/src/agents/meta/documentor/workflow.md +91 -105
  129. package/src/schemas/agent.schema.json +3 -0
  130. package/src/schemas/metadata.schema.json +5 -5
  131. package/src/schemas/project-source-config.schema.json +4 -1
  132. package/config/skills-matrix.yaml +0 -918
  133. package/dist/chunk-5QRJUBK7.js.map +0 -1
  134. package/dist/chunk-74HSA7C4.js.map +0 -1
  135. package/dist/chunk-CD64ZNYI.js.map +0 -1
  136. package/dist/chunk-CDGHSTB6.js.map +0 -1
  137. package/dist/chunk-HM3DHMW7.js.map +0 -1
  138. package/dist/chunk-RT6IBH37.js.map +0 -1
  139. package/dist/chunk-RWR56UVK.js.map +0 -1
  140. package/dist/chunk-XE6RTHUD.js.map +0 -1
  141. package/dist/chunk-YT7UHV67.js.map +0 -1
  142. package/dist/config/skills-matrix.yaml +0 -918
  143. package/src/schemas/skills-matrix.schema.json +0 -179
  144. /package/dist/{chunk-LFZXMQOH.js.map → chunk-2BVZOYJP.js.map} +0 -0
  145. /package/dist/{chunk-4C7PDDLY.js.map → chunk-2DNDAXF6.js.map} +0 -0
  146. /package/dist/{chunk-C7BO2ASM.js.map → chunk-34BP5BC4.js.map} +0 -0
  147. /package/dist/{chunk-TOWP4T5L.js.map → chunk-37QYD33C.js.map} +0 -0
  148. /package/dist/{chunk-72GS6PIH.js.map → chunk-5O6GKXAN.js.map} +0 -0
  149. /package/dist/{chunk-KWQ2BQXF.js.map → chunk-7IAKVZL5.js.map} +0 -0
  150. /package/dist/{chunk-CTQHZELA.js.map → chunk-AMNCCZSG.js.map} +0 -0
  151. /package/dist/{chunk-PZLUO4OY.js.map → chunk-AXV7NFFJ.js.map} +0 -0
  152. /package/dist/{chunk-ODQ2BKWU.js.map → chunk-AXZNJ5PN.js.map} +0 -0
  153. /package/dist/{chunk-J64CA4V6.js.map → chunk-C7DLY64D.js.map} +0 -0
  154. /package/dist/{chunk-G2WNOT3R.js.map → chunk-DG2U2WY3.js.map} +0 -0
  155. /package/dist/{chunk-3WKFSTG6.js.map → chunk-F7KTUFGU.js.map} +0 -0
  156. /package/dist/{chunk-5M6JI76P.js.map → chunk-FHKNG3UA.js.map} +0 -0
  157. /package/dist/{chunk-I26YP2Q3.js.map → chunk-FPTUCWBY.js.map} +0 -0
  158. /package/dist/{chunk-VH3PI43B.js.map → chunk-G5OZQ376.js.map} +0 -0
  159. /package/dist/{chunk-YVMYQSED.js.map → chunk-I52THVF6.js.map} +0 -0
  160. /package/dist/{chunk-FKBCYT7B.js.map → chunk-IS7GP6XC.js.map} +0 -0
  161. /package/dist/{chunk-NMXNHRAK.js.map → chunk-NJVJ7VO5.js.map} +0 -0
  162. /package/dist/{chunk-GVLYNP2I.js.map → chunk-OHDEJEYB.js.map} +0 -0
  163. /package/dist/{chunk-FUEZQ2H6.js.map → chunk-PY2XZUBF.js.map} +0 -0
  164. /package/dist/{chunk-DO5OZHSS.js.map → chunk-U2AEK4ZL.js.map} +0 -0
  165. /package/dist/{chunk-7LDSHHKN.js.map → chunk-W62XVWXB.js.map} +0 -0
  166. /package/dist/{chunk-D7JTL3DJ.js.map → chunk-WSGKCBY5.js.map} +0 -0
  167. /package/dist/{chunk-QBUOZVNZ.js.map → chunk-YDASDMTH.js.map} +0 -0
  168. /package/dist/{chunk-SGXUMZWL.js.map → chunk-ZML3OCYA.js.map} +0 -0
  169. /package/dist/{source-manager-6QZ2GDUA.js.map → source-manager-Y7R6WPOW.js.map} +0 -0
@@ -1,918 +0,0 @@
1
- # yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/cli/main/src/schemas/skills-matrix.schema.json
2
- # =============================================================================
3
- # skills-matrix.yaml
4
- # Full skills matrix for CLI data-driven architecture
5
- # =============================================================================
6
- # This is the production skills matrix containing all relationships and stacks.
7
- # For testing, use skills-matrix-mvp.yaml (minimal 10-skill dataset).
8
- # =============================================================================
9
-
10
- version: "1.0.0"
11
-
12
- # =============================================================================
13
- # Categories (What the user selects)
14
- # =============================================================================
15
-
16
- categories:
17
- # ─────────────────────────────────────────────────────────────────
18
- # Web categories
19
- # ─────────────────────────────────────────────────────────────────
20
- web-framework:
21
- id: web-framework
22
- displayName: Framework
23
- description: UI framework (React, Vue, Angular, SolidJS, Next.js, Remix, Nuxt)
24
- domain: web
25
- exclusive: true
26
- required: true
27
- order: 1
28
-
29
- web-styling:
30
- id: web-styling
31
- displayName: Styling
32
- description: CSS approach (SCSS Modules, Tailwind, CVA)
33
- domain: web
34
- exclusive: false
35
- required: true
36
- order: 3
37
-
38
- web-client-state:
39
- id: web-client-state
40
- displayName: Client State Management
41
- description: UI state, forms, local data (Zustand, Redux, MobX)
42
- domain: web
43
- exclusive: true
44
- required: false
45
- order: 4
46
-
47
- web-server-state:
48
- id: web-server-state
49
- displayName: Server State / Data Fetching
50
- description: API data caching (React Query, SWR)
51
- domain: web
52
- exclusive: true
53
- required: false
54
- order: 5
55
-
56
- web-forms:
57
- id: web-forms
58
- displayName: Forms & Validation
59
- description: Form handling and schema validation
60
- domain: web
61
- exclusive: false
62
- required: false
63
- order: 6
64
-
65
- web-testing:
66
- id: web-testing
67
- displayName: Testing
68
- description: Unit, integration, and E2E testing
69
- domain: web
70
- exclusive: false
71
- required: false
72
- order: 7
73
-
74
- web-ui-components:
75
- id: web-ui-components
76
- displayName: UI Component Library
77
- description: Pre-built component systems (Radix, shadcn)
78
- domain: web
79
- exclusive: false
80
- required: false
81
- order: 8
82
-
83
- web-mocking:
84
- id: web-mocking
85
- displayName: API Mocking
86
- description: Mock Service Worker for development and testing
87
- domain: web
88
- exclusive: false
89
- required: false
90
- order: 10
91
-
92
- web-error-handling:
93
- id: web-error-handling
94
- displayName: Error Handling
95
- description: Error boundaries, result types, and error patterns
96
- domain: web
97
- exclusive: false
98
- required: false
99
- order: 11
100
-
101
- web-i18n:
102
- id: web-i18n
103
- displayName: Internationalization
104
- description: i18n libraries (next-intl, react-intl, vue-i18n)
105
- domain: web
106
- exclusive: true
107
- required: false
108
- order: 12
109
-
110
- web-file-upload:
111
- id: web-file-upload
112
- displayName: File Upload
113
- description: File upload patterns and handling
114
- domain: web
115
- exclusive: false
116
- required: false
117
- order: 13
118
-
119
- web-files:
120
- id: web-files
121
- displayName: Files & Images
122
- description: Image handling and file processing
123
- domain: web
124
- exclusive: false
125
- required: false
126
- order: 14
127
-
128
- web-utilities:
129
- id: web-utilities
130
- displayName: Utilities
131
- description: Utility libraries (date-fns, native JS patterns)
132
- domain: web
133
- exclusive: false
134
- required: false
135
- order: 15
136
-
137
- web-realtime:
138
- id: web-realtime
139
- displayName: Realtime
140
- description: WebSockets, SSE, and real-time communication
141
- domain: web
142
- exclusive: true
143
- required: false
144
- order: 16
145
-
146
- web-animation:
147
- id: web-animation
148
- displayName: Animation
149
- description: Animation libraries and CSS animations
150
- domain: web
151
- exclusive: false
152
- required: false
153
- order: 17
154
-
155
- web-pwa:
156
- id: web-pwa
157
- displayName: Progressive Web App
158
- description: Service workers, offline-first patterns, and PWA features
159
- domain: web
160
- exclusive: false
161
- required: false
162
- order: 18
163
-
164
- web-accessibility:
165
- id: web-accessibility
166
- displayName: Accessibility
167
- description: WCAG compliance, ARIA, and keyboard navigation
168
- domain: web
169
- exclusive: false
170
- required: false
171
- order: 19
172
-
173
- web-performance:
174
- id: web-performance
175
- displayName: Web Performance
176
- description: Bundle optimization, render performance, and code splitting
177
- domain: web
178
- exclusive: false
179
- required: false
180
- order: 20
181
- web-base-framework:
182
- id: web-base-framework
183
- displayName: Base Framework
184
- description: Base framework setup and configuration
185
- domain: web
186
- exclusive: false
187
- required: false
188
- order: 21
189
-
190
- # ─────────────────────────────────────────────────────────────────
191
- # API categories
192
- # ─────────────────────────────────────────────────────────────────
193
- api-api:
194
- id: api-api
195
- displayName: API Framework
196
- description: Backend framework (Hono, Express, Fastify)
197
- domain: api
198
- exclusive: true
199
- required: true
200
- order: 1
201
-
202
- api-database:
203
- id: api-database
204
- displayName: Database ORM
205
- description: Database access layer (Drizzle, Prisma)
206
- domain: api
207
- exclusive: true
208
- required: false
209
- order: 2
210
-
211
- api-auth:
212
- id: api-auth
213
- displayName: Authentication
214
- description: Auth solution (Better Auth, Auth.js)
215
- domain: api
216
- exclusive: true
217
- required: false
218
- order: 3
219
-
220
- api-observability:
221
- id: api-observability
222
- displayName: Observability
223
- description: Logging, monitoring, error tracking
224
- domain: api
225
- exclusive: false
226
- required: false
227
- order: 4
228
-
229
- api-analytics:
230
- id: api-analytics
231
- displayName: Analytics
232
- description: Product analytics and tracking
233
- domain: api
234
- exclusive: false
235
- required: false
236
- order: 5
237
-
238
- api-email:
239
- id: api-email
240
- displayName: Email
241
- description: Transactional email (Resend, Sendgrid)
242
- domain: api
243
- exclusive: true
244
- required: false
245
- order: 6
246
-
247
- api-performance:
248
- id: api-performance
249
- displayName: Performance
250
- description: API performance patterns and optimization
251
- domain: api
252
- exclusive: false
253
- required: false
254
- order: 7
255
-
256
- # ─────────────────────────────────────────────────────────────────
257
- # Mobile categories
258
- # ─────────────────────────────────────────────────────────────────
259
- mobile-framework:
260
- id: mobile-framework
261
- displayName: Mobile Framework
262
- description: Native mobile framework (React Native, Expo)
263
- domain: mobile
264
- exclusive: true
265
- required: true
266
- order: 1
267
- mobile-platform:
268
- id: mobile-platform
269
- displayName: Mobile Platform
270
- description: Mobile platform tooling and configuration
271
- domain: mobile
272
- exclusive: false
273
- required: false
274
- order: 2
275
-
276
- # ─────────────────────────────────────────────────────────────────
277
- # Shared / Infrastructure categories
278
- # ─────────────────────────────────────────────────────────────────
279
- shared-monorepo:
280
- id: shared-monorepo
281
- displayName: Monorepo
282
- description: Monorepo tooling (Turborepo, Nx)
283
- domain: shared
284
- exclusive: true
285
- required: false
286
- order: 1
287
-
288
- shared-tooling:
289
- id: shared-tooling
290
- displayName: Build Tooling
291
- description: ESLint, Prettier, TypeScript, Vite
292
- domain: shared
293
- exclusive: false
294
- required: false
295
- order: 2
296
-
297
- shared-security:
298
- id: shared-security
299
- displayName: Security
300
- description: Authentication security patterns and best practices
301
- domain: shared
302
- exclusive: false
303
- required: false
304
- order: 3
305
-
306
- shared-methodology:
307
- id: shared-methodology
308
- displayName: Methodology
309
- description: Development methodology and engineering principles
310
- domain: shared
311
- exclusive: false
312
- required: false
313
- order: 4
314
-
315
- shared-research:
316
- id: shared-research
317
- displayName: Research
318
- description: Codebase investigation and research methodology
319
- domain: shared
320
- exclusive: false
321
- required: false
322
- order: 5
323
-
324
- shared-reviewing:
325
- id: shared-reviewing
326
- displayName: Code Review
327
- description: Code review patterns and guidance
328
- domain: shared
329
- exclusive: false
330
- required: false
331
- order: 6
332
-
333
- shared-ci-cd:
334
- id: shared-ci-cd
335
- displayName: CI/CD
336
- description: Continuous integration and deployment pipelines
337
- domain: shared
338
- exclusive: false
339
- required: false
340
- order: 7
341
-
342
- # ─────────────────────────────────────────────────────────────────
343
- # CLI categories
344
- # ─────────────────────────────────────────────────────────────────
345
- cli-framework:
346
- id: cli-framework
347
- displayName: CLI Framework
348
- description: CLI application framework (Commander, oclif)
349
- domain: cli
350
- exclusive: true
351
- required: true
352
- order: 1
353
-
354
- cli-prompts:
355
- id: cli-prompts
356
- displayName: CLI Prompts
357
- description: Interactive prompts and UI
358
- domain: cli
359
- exclusive: true
360
- required: false
361
- order: 2
362
-
363
- cli-testing:
364
- id: cli-testing
365
- displayName: CLI Testing
366
- description: CLI testing utilities
367
- domain: cli
368
- exclusive: false
369
- required: false
370
- order: 3
371
-
372
- # =============================================================================
373
- # Relationships (The Intelligence)
374
- # =============================================================================
375
-
376
- relationships:
377
- # ─────────────────────────────────────────────────────────────────
378
- # CONFLICTS (Mutually exclusive - selecting A disables B)
379
- # ─────────────────────────────────────────────────────────────────
380
- conflicts:
381
- # Framework conflicts (only one framework)
382
- - skills: [react, vue, angular, solidjs, nextjs-app-router, remix, nuxt]
383
- reason: "Frameworks are mutually exclusive — choose one"
384
-
385
- # NOTE: scss-modules/tailwind moved to discourages - they're technically compatible
386
-
387
- # Client state management (Vue ecosystem)
388
- # NOTE: zustand/redux-toolkit/mobx moved to discourages - can coexist for migrations
389
- - skills: [pinia, zustand, redux-toolkit, mobx]
390
- reason: "Pinia is Vue-only. Our zustand/redux-toolkit/mobx skills teach React patterns (though these libraries technically support other frameworks)."
391
-
392
- # Client state management (Angular ecosystem)
393
- - skills: [ngrx-signalstore, zustand, pinia, redux-toolkit, mobx]
394
- reason: "NgRx SignalStore is Angular-only"
395
-
396
- # Server state / data fetching conflicts
397
- - skills: [react-query, swr]
398
- reason: "Both solve server state caching - choose one"
399
-
400
- # GraphQL client conflicts
401
- - skills: [graphql-apollo, graphql-urql]
402
- reason: "Both are GraphQL clients - choose one"
403
-
404
- # E2E testing conflicts
405
- - skills: [playwright-e2e, cypress-e2e]
406
- reason: "Both are E2E frameworks - choose one"
407
-
408
- # Form libraries by framework
409
- - skills: [react-hook-form, vee-validate]
410
- reason: "react-hook-form is React-only, vee-validate is Vue-only"
411
-
412
- # Testing library conflicts
413
- - skills: [react-testing-library, vue-test-utils]
414
- reason: "Framework-specific testing libraries"
415
-
416
- # Backend API framework conflicts
417
- - skills: [hono, express, fastify]
418
- reason: "API frameworks are mutually exclusive within a single service. Multiple frameworks can coexist in monorepo architectures."
419
-
420
- # Database ORM conflicts
421
- - skills: [drizzle, prisma]
422
- reason: "Both are ORMs serving similar purposes. Choose one per service; migration scenarios and multi-service architectures may involve both."
423
-
424
- # CLI framework conflicts
425
- - skills: [commander, oclif]
426
- reason: "CLI frameworks are mutually exclusive"
427
-
428
- # CLI prompt library conflicts
429
- # NOTE: clack, inquirer, ink skills not yet created
430
-
431
- # ─────────────────────────────────────────────────────────────────
432
- # DISCOURAGES (Soft warnings - selecting A shows warning for B but doesn't disable)
433
- # ─────────────────────────────────────────────────────────────────
434
- discourages:
435
- # React state libraries - can coexist but adds complexity
436
- - skills: [zustand, redux-toolkit, mobx]
437
- reason: "Using multiple React state libraries adds complexity - choose one primary approach. Migration patterns exist for gradual transitions."
438
-
439
- # Redux is heavy for small projects with Zustand available
440
- - skills: [redux-toolkit, zustand]
441
- reason: "Redux Toolkit adds more boilerplate than Zustand - consider if you need its features"
442
-
443
- # SWR is simpler but less featured than React Query
444
- - skills: [swr, react-query]
445
- reason: "SWR is simpler but React Query has more features - consider your needs"
446
-
447
- # Express is legacy compared to modern alternatives
448
- - skills: [express, hono]
449
- reason: "Express is mature but Hono offers better performance and edge support"
450
-
451
- - skills: [express, fastify]
452
- reason: "Express is mature but Fastify offers better performance"
453
-
454
- # Cypress vs Playwright - different strengths
455
- - skills: [cypress-e2e, playwright-e2e]
456
- reason: "Cypress excels at interactive debugging and component testing; Playwright has better cross-browser support, parallelization, and CI/CD performance"
457
-
458
- # ─────────────────────────────────────────────────────────────────
459
- # RECOMMENDS (Soft suggestions - selecting A highlights B)
460
- # ─────────────────────────────────────────────────────────────────
461
- recommends:
462
- # React ecosystem recommendations
463
- - when: react
464
- suggest: [zustand, react-query, vitest, react-hook-form, react-testing-library]
465
- reason: "Best-in-class React libraries"
466
-
467
- # Next.js recommendations
468
- - when: nextjs-app-router
469
- suggest: [react-query, zustand, shadcn-ui]
470
- reason: "Next.js App Router ecosystem"
471
-
472
- # Remix recommendations
473
- - when: remix
474
- suggest: [zustand, vitest, zod-validation]
475
- reason: "Remix-compatible libraries"
476
-
477
- # Vue ecosystem recommendations
478
- - when: vue
479
- suggest: [pinia, vee-validate, vue-test-utils]
480
- reason: "Vue community standard libraries (Pinia is official, VeeValidate is community-maintained)"
481
-
482
- # Angular ecosystem recommendations
483
- - when: angular
484
- suggest: [ngrx-signalstore]
485
- reason: "Angular Signals-based state management"
486
-
487
- # SolidJS recommendations
488
- - when: solidjs
489
- suggest: [vitest, tailwind]
490
- reason: "SolidJS-compatible libraries"
491
-
492
- # Backend recommendations
493
- - when: hono
494
- suggest: [drizzle, better-auth, zod-validation]
495
- reason: "Hono + Drizzle + Better Auth is a powerful combo"
496
-
497
- - when: drizzle
498
- suggest: [zod-validation]
499
- reason: "Drizzle types work great with Zod"
500
-
501
- # Styling recommendations
502
- - when: scss-modules
503
- suggest: [radix-ui]
504
- reason: "Radix primitives work well with any CSS approach"
505
-
506
- - when: tailwind
507
- suggest: [shadcn-ui, cva]
508
- reason: "shadcn/ui is built for Tailwind; CVA provides type-safe variant management for Tailwind classes"
509
-
510
- - when: cva
511
- suggest: [tailwind]
512
- reason: "CVA is designed for type-safe variant management of Tailwind utility classes"
513
-
514
- # UI component recommendations
515
- - when: shadcn-ui
516
- suggest: [radix-ui, tailwind]
517
- reason: "shadcn/ui uses Radix primitives and Tailwind"
518
-
519
- # Form recommendations
520
- - when: react-hook-form
521
- suggest: [zod-validation]
522
- reason: "react-hook-form + Zod is the standard pattern"
523
-
524
- - when: vee-validate
525
- suggest: [zod-validation]
526
- reason: "vee-validate supports Zod schemas"
527
-
528
- # Testing recommendations
529
- - when: vitest
530
- suggest: [react-testing-library, msw]
531
- reason: "Vitest + RTL + MSW is the modern testing stack"
532
-
533
- - when: playwright-e2e
534
- suggest: [vitest]
535
- reason: "Playwright for E2E, Vitest for unit/integration"
536
-
537
- # Server state recommendations
538
- - when: react-query
539
- suggest: [zod-validation]
540
- reason: "Type-safe API responses with Zod"
541
-
542
- # Mobile recommendations
543
- - when: react-native
544
- suggest: [zustand, react-query, react-hook-form, zod-validation]
545
- reason: "React Native shares React ecosystem. Note: Use Jest for testing (Vitest doesn't support RN)."
546
-
547
- # Observability recommendations
548
- - when: axiom-pino-sentry
549
- suggest: [posthog]
550
- reason: "Complete observability with analytics"
551
-
552
- # NOTE: Removed resend recommends [react] - Resend works with plain HTML/text, React Email is optional
553
-
554
- # Fastify recommendations
555
- - when: fastify
556
- suggest: [drizzle, zod-validation]
557
- reason: "Fastify + Drizzle + Zod is a solid backend stack"
558
-
559
- # Express recommendations
560
- - when: express
561
- suggest: [prisma]
562
- reason: "Express + Prisma is a classic combination"
563
-
564
- # Nuxt recommendations
565
- - when: nuxt
566
- suggest: [pinia, tailwind, playwright-e2e]
567
- reason: "Nuxt ecosystem libraries"
568
-
569
- # MSW recommendations
570
- - when: msw
571
- suggest: [vitest, react-testing-library]
572
- reason: "MSW + Vitest + RTL is the modern testing stack"
573
-
574
- # Cypress recommendations
575
- - when: cypress-e2e
576
- suggest: [vitest]
577
- reason: "Cypress for E2E, Vitest for unit tests"
578
-
579
- # CLI recommendations
580
- - when: oclif
581
- suggest: [vitest]
582
- reason: "oclif pairs well with Vitest for CLI testing"
583
-
584
- - when: commander
585
- suggest: [vitest]
586
- reason: "Commander pairs well with Vitest for CLI testing"
587
-
588
- # ─────────────────────────────────────────────────────────────────
589
- # REQUIRES (Hard dependencies - A requires B to be selected first)
590
- # ─────────────────────────────────────────────────────────────────
591
- requires:
592
- # React-specific libraries (note: these libraries have vanilla/other-framework options, but our skills teach React patterns)
593
- - skill: zustand
594
- needs: [react, nextjs-app-router, remix, react-native]
595
- needsAny: true
596
- reason: "Our Zustand skill covers React/React Native patterns (zustand/vanilla exists for other frameworks)"
597
-
598
- - skill: redux-toolkit
599
- needs: [react, nextjs-app-router, remix, react-native]
600
- needsAny: true
601
- reason: "Our Redux Toolkit skill covers React/React Native patterns (RTK core is framework-agnostic)"
602
-
603
- - skill: mobx
604
- needs: [react, nextjs-app-router, remix]
605
- needsAny: true
606
- reason: "Our MobX skill teaches React patterns. Note: MobX core has official Vue (mobx-vue) and Angular (mobx-angular) bindings."
607
-
608
- - skill: react-query
609
- needs: [react, nextjs-app-router, remix, react-native]
610
- needsAny: true
611
- reason: "TanStack Query's React adapter. Note: TanStack Query also supports Vue, Solid, Svelte via separate adapters."
612
-
613
- - skill: swr
614
- needs: [react, nextjs-app-router, remix, react-native]
615
- needsAny: true
616
- reason: "SWR is a React Hooks library. For React Native, requires @nandorojo/swr-react-native wrapper."
617
-
618
- - skill: react-hook-form
619
- needs: [react, nextjs-app-router, remix, react-native]
620
- needsAny: true
621
- reason: "React Hook Form is React only"
622
-
623
- - skill: react-testing-library
624
- needs: [react, nextjs-app-router, remix]
625
- needsAny: true
626
- reason: "React Testing Library is React only"
627
-
628
- # Vue-specific libraries
629
- - skill: pinia
630
- needs: [vue, nuxt]
631
- needsAny: true
632
- reason: "Pinia is Vue only"
633
-
634
- - skill: vee-validate
635
- needs: [vue, nuxt]
636
- needsAny: true
637
- reason: "VeeValidate is Vue only"
638
-
639
- - skill: vue-test-utils
640
- needs: [vue, nuxt]
641
- needsAny: true
642
- reason: "Vue Test Utils is Vue only"
643
-
644
- # Angular-specific libraries
645
- - skill: ngrx-signalstore
646
- needs: [angular]
647
- reason: "NgRx SignalStore is Angular only"
648
-
649
- # Backend dependencies
650
- - skill: better-auth
651
- needs: [drizzle, prisma]
652
- needsAny: true
653
- reason: "Better Auth supports multiple database adapters (Drizzle, Prisma, Kysely, MongoDB). Our skill uses Drizzle adapter."
654
-
655
- # NOTE: Removed drizzle/prisma requires API framework - ORMs work standalone for scripts, CLI tools, workers, etc.
656
-
657
- # UI component dependencies
658
- - skill: shadcn-ui
659
- needs: [react, nextjs-app-router, remix]
660
- needsAny: true
661
- reason: "shadcn/ui requires a React-based framework"
662
-
663
- - skill: shadcn-ui
664
- needs: [tailwind]
665
- reason: "shadcn/ui requires Tailwind CSS"
666
-
667
- # GraphQL clients need a framework
668
- - skill: graphql-apollo
669
- needs: [react, vue, angular, nextjs-app-router, remix, nuxt]
670
- needsAny: true
671
- reason: "Apollo Client - first-party React support, community-maintained Vue/Angular integrations. Note: Svelte/Solid bindings exist but are stale (2020-2022)."
672
-
673
- - skill: graphql-urql
674
- needs: [react, vue, solidjs, nextjs-app-router, remix, nuxt]
675
- needsAny: true
676
- reason: "URQL has first-party support for React, Vue, and Solid (no Angular support). Svelte support exists but skill not yet created."
677
-
678
- # ─────────────────────────────────────────────────────────────────
679
- # ALTERNATIVES (Interchangeable options for same purpose)
680
- # ─────────────────────────────────────────────────────────────────
681
- alternatives:
682
- - purpose: "Frontend Framework"
683
- skills: [react, vue, angular, solidjs, nextjs-app-router, remix, nuxt]
684
-
685
- - purpose: "Styling"
686
- skills: [scss-modules, tailwind, cva]
687
-
688
- - purpose: "Client State (React)"
689
- skills: [zustand, redux-toolkit, mobx, jotai]
690
-
691
- - purpose: "Client State (Vue)"
692
- skills: [pinia]
693
-
694
- - purpose: "Client State (Angular)"
695
- skills: [ngrx-signalstore]
696
-
697
- - purpose: "Server State / Data Fetching"
698
- skills: [react-query, swr]
699
-
700
- - purpose: "GraphQL Client"
701
- skills: [graphql-apollo, graphql-urql]
702
-
703
- - purpose: "API Framework"
704
- skills: [hono, express, fastify]
705
-
706
- - purpose: "Database ORM"
707
- skills: [drizzle, prisma]
708
-
709
- - purpose: "Forms (React)"
710
- skills: [react-hook-form]
711
-
712
- - purpose: "Forms (Vue)"
713
- skills: [vee-validate]
714
-
715
- - purpose: "Validation"
716
- skills: [zod-validation]
717
-
718
- - purpose: "Unit Testing"
719
- skills: [vitest]
720
-
721
- - purpose: "Component Testing (React)"
722
- skills: [react-testing-library]
723
-
724
- - purpose: "Component Testing (Vue)"
725
- skills: [vue-test-utils]
726
-
727
- - purpose: "E2E Testing"
728
- skills: [playwright-e2e, cypress-e2e]
729
-
730
- - purpose: "API Mocking"
731
- skills: [msw]
732
-
733
- - purpose: "UI Components (React + Tailwind)"
734
- skills: [shadcn-ui]
735
-
736
- - purpose: "Mobile"
737
- skills: [react-native]
738
-
739
- - purpose: "CLI Framework"
740
- skills: [commander, oclif]
741
-
742
- # CLI Prompts alternatives: clack, inquirer, ink skills not yet created
743
-
744
- # =============================================================================
745
- # Skill Aliases (Map short names to normalized skill IDs)
746
- # =============================================================================
747
- # Skill IDs are now in normalized kebab-case format:
748
- # - No author suffix (author is metadata only)
749
- # - Slashes replaced with dashes
750
- # - Plus signs replaced with dashes
751
- # - Lowercase
752
- # =============================================================================
753
-
754
- skillAliases:
755
- # ─────────────────────────────────────────────────────────────────
756
- # Frameworks - normalized skill IDs
757
- # ─────────────────────────────────────────────────────────────────
758
- react: "web-framework-react"
759
- vue: "web-framework-vue-composition-api"
760
- angular: "web-framework-angular-standalone"
761
- solidjs: "web-framework-solidjs"
762
-
763
- # Meta-frameworks
764
- nextjs-app-router: "web-framework-nextjs-app-router"
765
- nextjs-server-actions: "web-framework-nextjs-server-actions"
766
- remix: "web-framework-remix"
767
- nuxt: "web-framework-nuxt"
768
-
769
- # ─────────────────────────────────────────────────────────────────
770
- # Styling
771
- # ─────────────────────────────────────────────────────────────────
772
- scss-modules: "web-styling-scss-modules"
773
- cva: "web-styling-cva"
774
- tailwind: "web-styling-tailwind"
775
-
776
- # ─────────────────────────────────────────────────────────────────
777
- # Client State
778
- # ─────────────────────────────────────────────────────────────────
779
- zustand: "web-state-zustand"
780
- redux-toolkit: "web-state-redux-toolkit"
781
- pinia: "web-state-pinia"
782
- ngrx-signalstore: "web-state-ngrx-signalstore"
783
- jotai: "web-state-jotai"
784
- mobx: "web-state-mobx"
785
-
786
- # ─────────────────────────────────────────────────────────────────
787
- # Server State / Data Fetching
788
- # ─────────────────────────────────────────────────────────────────
789
- react-query: "web-server-state-react-query"
790
- swr: "web-data-fetching-swr"
791
- graphql-apollo: "web-data-fetching-graphql-apollo"
792
- graphql-urql: "web-data-fetching-graphql-urql"
793
- trpc: "web-data-fetching-trpc"
794
-
795
- # ─────────────────────────────────────────────────────────────────
796
- # Forms & Validation
797
- # ─────────────────────────────────────────────────────────────────
798
- react-hook-form: "web-forms-react-hook-form"
799
- vee-validate: "web-forms-vee-validate"
800
- zod-validation: "web-forms-zod-validation"
801
-
802
- # ─────────────────────────────────────────────────────────────────
803
- # Testing
804
- # ─────────────────────────────────────────────────────────────────
805
- vitest: "web-testing-vitest"
806
- playwright-e2e: "web-testing-playwright-e2e"
807
- cypress-e2e: "web-testing-cypress-e2e"
808
- react-testing-library: "web-testing-react-testing-library"
809
- vue-test-utils: "web-testing-vue-test-utils"
810
- msw: "web-mocks-msw"
811
-
812
- # ─────────────────────────────────────────────────────────────────
813
- # UI Components
814
- # ─────────────────────────────────────────────────────────────────
815
- shadcn-ui: "web-ui-shadcn-ui"
816
- tanstack-table: "web-ui-tanstack-table"
817
- radix-ui: "web-ui-radix-ui"
818
-
819
- # ─────────────────────────────────────────────────────────────────
820
- # Backend - API Framework
821
- # ─────────────────────────────────────────────────────────────────
822
- hono: "api-framework-hono"
823
- express: "api-framework-express"
824
- fastify: "api-framework-fastify"
825
-
826
- # Backend - Database
827
- drizzle: "api-database-drizzle"
828
- prisma: "api-database-prisma"
829
-
830
- # Backend - Auth (composite skill)
831
- better-auth: "api-auth-better-auth-drizzle-hono"
832
-
833
- # Backend - Observability (composite skill)
834
- axiom-pino-sentry: "api-observability-axiom-pino-sentry"
835
-
836
- # Backend - Analytics
837
- posthog: "api-analytics-posthog-analytics"
838
- posthog-flags: "api-flags-posthog-flags"
839
-
840
- # Backend - Email (composite skill)
841
- resend: "api-email-resend-react-email"
842
-
843
- # Backend - CI/CD
844
- github-actions: "api-ci-cd-github-actions"
845
-
846
- # ─────────────────────────────────────────────────────────────────
847
- # Mobile
848
- # ─────────────────────────────────────────────────────────────────
849
- react-native: "mobile-framework-react-native"
850
- expo: "mobile-framework-expo"
851
-
852
- # ─────────────────────────────────────────────────────────────────
853
- # Setup / Infrastructure
854
- # ─────────────────────────────────────────────────────────────────
855
- turborepo: "infra-monorepo-turborepo"
856
- tooling: "infra-tooling-setup-tooling"
857
- posthog-setup: "api-analytics-setup-posthog"
858
- env: "infra-env-setup-env"
859
- observability-setup: "api-observability-setup-axiom-pino-sentry"
860
- email-setup: "api-email-setup-resend"
861
-
862
- # ─────────────────────────────────────────────────────────────────
863
- # Additional Skills (Animation, PWA, Realtime, etc.)
864
- # ─────────────────────────────────────────────────────────────────
865
- framer-motion: "web-animation-framer-motion"
866
- css-animations: "web-animation-css-animations"
867
- view-transitions: "web-animation-view-transitions"
868
- storybook: "web-tooling-storybook"
869
- error-boundaries: "web-error-handling-error-boundaries"
870
- accessibility: "web-accessibility-web-accessibility"
871
- websockets: "web-realtime-websockets"
872
- sse: "web-realtime-sse"
873
- socket-io: "web-realtime-socket-io"
874
- service-workers: "web-pwa-service-workers"
875
- file-upload: "web-files-file-upload-patterns"
876
- image-handling: "web-files-image-handling"
877
- date-fns: "web-utilities-date-fns"
878
-
879
- # ─────────────────────────────────────────────────────────────────
880
- # Backend-specific category skills
881
- # ─────────────────────────────────────────────────────────────────
882
- api-testing: "api-testing-api-testing"
883
- api-performance: "api-performance-api-performance"
884
- web-performance: "web-performance-web-performance"
885
-
886
- # Security
887
- security: "security-auth-security"
888
-
889
- # ─────────────────────────────────────────────────────────────────
890
- # CLI
891
- # ─────────────────────────────────────────────────────────────────
892
- # CLI Framework
893
- commander: "cli-framework-cli-commander"
894
- cli-commander: "cli-framework-cli-commander"
895
- oclif: "cli-framework-oclif-ink"
896
- # yargs: skill not yet created
897
-
898
- # CLI Prompts
899
- # clack: skill not yet created
900
- # inquirer: skill not yet created
901
- # ink: skill not yet created
902
-
903
- # ─────────────────────────────────────────────────────────────────
904
- # Reviewing / Meta
905
- # ─────────────────────────────────────────────────────────────────
906
- reviewing: "meta-reviewing-reviewing"
907
- cli-reviewing: "meta-reviewing-cli-reviewing"
908
- research-methodology: "meta-research-research-methodology"
909
-
910
- # ─────────────────────────────────────────────────────────────────
911
- # Methodology (Universal principles + Implementation + Extended session)
912
- # ─────────────────────────────────────────────────────────────────
913
- investigation-requirements: "meta-methodology-investigation-requirements"
914
- anti-over-engineering: "meta-methodology-anti-over-engineering"
915
- success-criteria: "meta-methodology-success-criteria"
916
- write-verification: "meta-methodology-write-verification"
917
- improvement-protocol: "meta-methodology-improvement-protocol"
918
- context-management: "meta-methodology-context-management"