@agents-inc/cli 0.38.0 → 0.41.1
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.
- package/CHANGELOG.md +66 -0
- package/config/skills-matrix.yaml +115 -123
- package/config/stacks.yaml +687 -687
- package/dist/{chunk-YHQNTBBN.js → chunk-2D6LKRHW.js} +2 -2
- package/dist/{chunk-CYFU3ARY.js → chunk-342YB6TQ.js} +15 -17
- package/dist/chunk-342YB6TQ.js.map +1 -0
- package/dist/{chunk-HRMQ2RGY.js → chunk-423MJ6DT.js} +31 -56
- package/dist/chunk-423MJ6DT.js.map +1 -0
- package/dist/{chunk-NFV4SKH5.js → chunk-4LT6RXMY.js} +4 -4
- package/dist/{chunk-IVIK776Y.js → chunk-4SYXPG7L.js} +2 -2
- package/dist/{chunk-DUQFF45G.js → chunk-4UTPJXUX.js} +8 -8
- package/dist/{chunk-3E2V5YL3.js → chunk-5TMB53BV.js} +3 -3
- package/dist/{chunk-NI2RSNWB.js → chunk-7FBM7V3E.js} +10 -22
- package/dist/chunk-7FBM7V3E.js.map +1 -0
- package/dist/chunk-ACVJVYMC.js +111 -0
- package/dist/chunk-ACVJVYMC.js.map +1 -0
- package/dist/{chunk-FWQK3HWB.js → chunk-AH7XHAKN.js} +11 -11
- package/dist/chunk-AH7XHAKN.js.map +1 -0
- package/dist/{chunk-VAHVSQIG.js → chunk-AVVYFEMF.js} +2 -2
- package/dist/{chunk-EISBUEBL.js → chunk-BFISETQG.js} +3 -3
- package/dist/{chunk-ZBJQXDQN.js → chunk-BK7TANUV.js} +4 -2
- package/dist/chunk-BK7TANUV.js.map +1 -0
- package/dist/{chunk-VAK5PX72.js → chunk-DV4ALU5I.js} +6 -6
- package/dist/{chunk-OEX5JDQD.js → chunk-FHBICUXB.js} +4 -4
- package/dist/{chunk-TA6IIQI4.js → chunk-GEDWVX6Y.js} +3 -3
- package/dist/chunk-GEDWVX6Y.js.map +1 -0
- package/dist/{chunk-M6PGIZNS.js → chunk-H6H3COI5.js} +5 -5
- package/dist/{chunk-54ZZCWN4.js → chunk-KC2SIUIA.js} +3 -8
- package/dist/chunk-KC2SIUIA.js.map +1 -0
- package/dist/{chunk-2XX4TMCI.js → chunk-KXM7KOPE.js} +2 -2
- package/dist/{chunk-HKDE4LJW.js → chunk-LJRP4SWY.js} +6 -5
- package/dist/chunk-LJRP4SWY.js.map +1 -0
- package/dist/{chunk-TBDIR6LY.js → chunk-MNPPGIZQ.js} +5 -5
- package/dist/{chunk-3NQJOJZL.js → chunk-NYP5SB2V.js} +2 -2
- package/dist/{chunk-UOMMQ5M6.js → chunk-NZYKDVRL.js} +2 -2
- package/dist/{chunk-UV6JUGIY.js → chunk-PURJZ72D.js} +2 -2
- package/dist/{chunk-ATLRUR3B.js → chunk-R52N7DBG.js} +2 -2
- package/dist/{chunk-WSGGJKD5.js → chunk-SILUTTV7.js} +6 -6
- package/dist/chunk-SILUTTV7.js.map +1 -0
- package/dist/{chunk-IZRVFC2Z.js → chunk-TJAZ7QCF.js} +4 -4
- package/dist/{chunk-U5OB5ADP.js → chunk-TTXV55NQ.js} +57 -16
- package/dist/chunk-TTXV55NQ.js.map +1 -0
- package/dist/{chunk-TY5GELDB.js → chunk-UKTYDNWJ.js} +2 -2
- package/dist/{chunk-HRW7BIDE.js → chunk-WS6OQIEN.js} +2 -2
- package/dist/{chunk-YJIJTBSX.js → chunk-XJXJZ2MJ.js} +42 -54
- package/dist/chunk-XJXJZ2MJ.js.map +1 -0
- package/dist/chunk-YLJYAQSG.js +210 -0
- package/dist/chunk-YLJYAQSG.js.map +1 -0
- package/dist/{chunk-MZB3GGOH.js → chunk-YRVTXSXP.js} +1 -2
- package/dist/chunk-YRVTXSXP.js.map +1 -0
- package/dist/{chunk-TNFACSWF.js → chunk-ZLHGJSRK.js} +3 -3
- package/dist/cli/defaults/agent-mappings.yaml +14 -70
- package/dist/commands/build/marketplace.js +3 -3
- package/dist/commands/build/plugins.js +5 -5
- package/dist/commands/build/stack.js +5 -5
- package/dist/commands/compile.js +8 -7
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/get.js +4 -4
- package/dist/commands/config/index.js +5 -5
- package/dist/commands/config/path.js +4 -4
- package/dist/commands/config/set-project.js +4 -4
- package/dist/commands/config/show.js +5 -5
- package/dist/commands/config/unset-project.js +4 -4
- package/dist/commands/diff.js +8 -5
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +8 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +33 -30
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +4 -4
- package/dist/commands/import/skill.js +5 -5
- package/dist/commands/info.js +7 -6
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +40 -32
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +6 -5
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/new/agent.js +5 -5
- package/dist/commands/new/skill.js +8 -5
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +8 -5
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +7 -7
- package/dist/commands/uninstall.js +19 -7
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +8 -7
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +5 -5
- package/dist/commands/version/bump.js +4 -4
- package/dist/commands/version/index.js +4 -4
- package/dist/commands/version/set.js +4 -4
- package/dist/commands/version/show.js +4 -4
- package/dist/components/skill-search/skill-search.js +3 -3
- package/dist/components/wizard/category-grid.js +2 -2
- package/dist/components/wizard/category-grid.test.js +40 -40
- package/dist/components/wizard/category-grid.test.js.map +1 -1
- package/dist/components/wizard/checkbox-grid.js +2 -2
- package/dist/components/wizard/checkbox-grid.test.js +16 -6
- package/dist/components/wizard/checkbox-grid.test.js.map +1 -1
- package/dist/components/wizard/domain-selection.js +7 -7
- package/dist/components/wizard/help-modal.js +2 -2
- package/dist/components/wizard/menu-item.js +2 -2
- package/dist/components/wizard/search-modal.js +2 -2
- package/dist/components/wizard/search-modal.test.js +2 -2
- package/dist/components/wizard/section-progress.js +2 -2
- package/dist/components/wizard/section-progress.test.js +2 -2
- package/dist/components/wizard/source-grid.js +3 -3
- package/dist/components/wizard/source-grid.test.js +3 -3
- package/dist/components/wizard/stack-selection.js +9 -9
- package/dist/components/wizard/step-agents.js +7 -7
- package/dist/components/wizard/step-agents.test.js +24 -19
- package/dist/components/wizard/step-agents.test.js.map +1 -1
- package/dist/components/wizard/step-build.js +8 -8
- package/dist/components/wizard/step-build.test.js +40 -39
- package/dist/components/wizard/step-build.test.js.map +1 -1
- package/dist/components/wizard/step-confirm.js +3 -3
- package/dist/components/wizard/step-confirm.test.js +19 -13
- package/dist/components/wizard/step-confirm.test.js.map +1 -1
- package/dist/components/wizard/step-refine.js +2 -2
- package/dist/components/wizard/step-refine.test.js +2 -2
- package/dist/components/wizard/step-settings.js +5 -5
- package/dist/components/wizard/step-settings.test.js +8 -8
- package/dist/components/wizard/step-sources.js +9 -9
- package/dist/components/wizard/step-sources.test.js +13 -13
- package/dist/components/wizard/step-sources.test.js.map +1 -1
- package/dist/components/wizard/step-stack.js +12 -12
- package/dist/components/wizard/step-stack.test.js +19 -21
- package/dist/components/wizard/step-stack.test.js.map +1 -1
- package/dist/components/wizard/view-title.js +2 -2
- package/dist/components/wizard/wizard-layout.js +8 -8
- package/dist/components/wizard/wizard-tabs.js +2 -2
- package/dist/components/wizard/wizard-tabs.test.js +2 -2
- package/dist/components/wizard/wizard.js +25 -25
- package/dist/config/skills-matrix.yaml +115 -123
- package/dist/config/stacks.yaml +687 -687
- package/dist/hooks/init.js +3 -3
- package/dist/{source-manager-FEGVYDFZ.js → source-manager-PPABS6BC.js} +4 -4
- package/dist/stores/wizard-store.js +5 -5
- package/dist/stores/wizard-store.test.js +115 -187
- package/dist/stores/wizard-store.test.js.map +1 -1
- package/package.json +1 -1
- package/src/schemas/metadata.schema.json +41 -1
- package/src/schemas/project-config.schema.json +34 -35
- package/src/schemas/skills-matrix.schema.json +100 -101
- package/src/schemas/stacks.schema.json +34 -35
- package/dist/chunk-54ZZCWN4.js.map +0 -1
- package/dist/chunk-CYFU3ARY.js.map +0 -1
- package/dist/chunk-EXFVAEPY.js +0 -80
- package/dist/chunk-EXFVAEPY.js.map +0 -1
- package/dist/chunk-FWQK3HWB.js.map +0 -1
- package/dist/chunk-HKDE4LJW.js.map +0 -1
- package/dist/chunk-HRMQ2RGY.js.map +0 -1
- package/dist/chunk-IWNPFIGY.js +0 -110
- package/dist/chunk-IWNPFIGY.js.map +0 -1
- package/dist/chunk-MZB3GGOH.js.map +0 -1
- package/dist/chunk-NI2RSNWB.js.map +0 -1
- package/dist/chunk-TA6IIQI4.js.map +0 -1
- package/dist/chunk-U5OB5ADP.js.map +0 -1
- package/dist/chunk-WSGGJKD5.js.map +0 -1
- package/dist/chunk-YJIJTBSX.js.map +0 -1
- package/dist/chunk-ZBJQXDQN.js.map +0 -1
- /package/dist/{chunk-YHQNTBBN.js.map → chunk-2D6LKRHW.js.map} +0 -0
- /package/dist/{chunk-NFV4SKH5.js.map → chunk-4LT6RXMY.js.map} +0 -0
- /package/dist/{chunk-IVIK776Y.js.map → chunk-4SYXPG7L.js.map} +0 -0
- /package/dist/{chunk-DUQFF45G.js.map → chunk-4UTPJXUX.js.map} +0 -0
- /package/dist/{chunk-3E2V5YL3.js.map → chunk-5TMB53BV.js.map} +0 -0
- /package/dist/{chunk-VAHVSQIG.js.map → chunk-AVVYFEMF.js.map} +0 -0
- /package/dist/{chunk-EISBUEBL.js.map → chunk-BFISETQG.js.map} +0 -0
- /package/dist/{chunk-VAK5PX72.js.map → chunk-DV4ALU5I.js.map} +0 -0
- /package/dist/{chunk-OEX5JDQD.js.map → chunk-FHBICUXB.js.map} +0 -0
- /package/dist/{chunk-M6PGIZNS.js.map → chunk-H6H3COI5.js.map} +0 -0
- /package/dist/{chunk-2XX4TMCI.js.map → chunk-KXM7KOPE.js.map} +0 -0
- /package/dist/{chunk-TBDIR6LY.js.map → chunk-MNPPGIZQ.js.map} +0 -0
- /package/dist/{chunk-3NQJOJZL.js.map → chunk-NYP5SB2V.js.map} +0 -0
- /package/dist/{chunk-UOMMQ5M6.js.map → chunk-NZYKDVRL.js.map} +0 -0
- /package/dist/{chunk-UV6JUGIY.js.map → chunk-PURJZ72D.js.map} +0 -0
- /package/dist/{chunk-ATLRUR3B.js.map → chunk-R52N7DBG.js.map} +0 -0
- /package/dist/{chunk-IZRVFC2Z.js.map → chunk-TJAZ7QCF.js.map} +0 -0
- /package/dist/{chunk-TY5GELDB.js.map → chunk-UKTYDNWJ.js.map} +0 -0
- /package/dist/{chunk-HRW7BIDE.js.map → chunk-WS6OQIEN.js.map} +0 -0
- /package/dist/{chunk-TNFACSWF.js.map → chunk-ZLHGJSRK.js.map} +0 -0
- /package/dist/{source-manager-FEGVYDFZ.js.map → source-manager-PPABS6BC.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,58 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## [0.41.1] - 2026-02-19
|
|
13
|
+
|
|
14
|
+
**Missing changelog entries, commit protocol checklist, test helper extraction**
|
|
15
|
+
|
|
16
|
+
- Add missing 0.41.0 and 0.33.0 entries to CHANGELOG.md
|
|
17
|
+
- Convert commit protocol to mandatory release checklist
|
|
18
|
+
- Extract shared test helpers and fixtures from inline test data
|
|
19
|
+
|
|
20
|
+
See [changelogs/0.41.1.md](./changelogs/0.41.1.md) for full details.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## [0.41.0] - 2026-02-19
|
|
25
|
+
|
|
26
|
+
**Fix config stack generation, CLI_BIN_NAME constant**
|
|
27
|
+
|
|
28
|
+
- Fix config.yaml missing stack/agents after init (defaults-loader path resolution in dist builds)
|
|
29
|
+
- Fix agent-mappings patterns for domain-prefixed subcategories (D-31 follow-up)
|
|
30
|
+
- Fix wizard storing display names instead of canonical skill IDs
|
|
31
|
+
- Add `CLI_BIN_NAME` constant replacing 19 hardcoded command references
|
|
32
|
+
|
|
33
|
+
See [changelogs/0.41.0.md](./changelogs/0.41.0.md) for full details.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## [0.40.0] - 2026-02-19
|
|
38
|
+
|
|
39
|
+
**Domain-prefix all subcategory keys (D-31), add category enum to metadata schema (D-32)**
|
|
40
|
+
|
|
41
|
+
- Rename all 33 bare subcategory keys to domain-prefixed form (e.g., `framework` → `web-framework`, `methodology` → `shared-methodology`)
|
|
42
|
+
- Add strict category enum validation to metadata schema
|
|
43
|
+
- Simplify `extractSubcategoryFromPath` and `categoryPathSchema` (remove slash-separated paths)
|
|
44
|
+
- Update all YAML configs, JSON schemas, types, source code, and 30+ test files
|
|
45
|
+
|
|
46
|
+
See [changelogs/0.40.0.md](./changelogs/0.40.0.md) for full details.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## [0.39.0] - 2026-02-19
|
|
51
|
+
|
|
52
|
+
**Merge meta-framework into framework, remove web-extras domain, grouped agents step**
|
|
53
|
+
|
|
54
|
+
- Merge `meta-framework` subcategory into `framework` — meta-frameworks now conflict with base frameworks directly
|
|
55
|
+
- Remove `web-extras` domain and `parentDomain` field — all web categories under single `web` domain
|
|
56
|
+
- Rewrite agents step with domain-grouped layout (Web, API, CLI, Meta) and scroll support
|
|
57
|
+
- Simplify agent preselection from skill-based to domain-based lookup
|
|
58
|
+
- Remove unused `preloadedSkills` and `subcategoryAliases` from agent mappings
|
|
59
|
+
|
|
60
|
+
See [changelogs/0.39.0.md](./changelogs/0.39.0.md) for full details.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
12
64
|
## [0.38.0] - 2026-02-18
|
|
13
65
|
|
|
14
66
|
**Agents selection step, skill-based preselection, strict stacks schema**
|
|
@@ -70,6 +122,20 @@ See [changelogs/0.34.1.md](./changelogs/0.34.1.md) for full details.
|
|
|
70
122
|
|
|
71
123
|
See [changelogs/0.34.0.md](./changelogs/0.34.0.md) for full details.
|
|
72
124
|
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## [0.33.0] - 2026-02-16
|
|
128
|
+
|
|
129
|
+
**Rebrand from claude-collective to agents-inc**
|
|
130
|
+
|
|
131
|
+
- Package renamed: `@claude-collective/cli` → `@agents-inc/cli`
|
|
132
|
+
- CLI binary renamed: `cc` → `agentsinc`
|
|
133
|
+
- Update schema URLs, help text, branding, and documentation
|
|
134
|
+
|
|
135
|
+
See [changelogs/0.33.0.md](./changelogs/0.33.0.md) for full details.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
73
139
|
## [0.32.1] - 2026-02-16
|
|
74
140
|
|
|
75
141
|
**Code formatting cleanup (Prettier consistency)**
|
|
@@ -17,26 +17,17 @@ categories:
|
|
|
17
17
|
# ─────────────────────────────────────────────────────────────────
|
|
18
18
|
# Web categories
|
|
19
19
|
# ─────────────────────────────────────────────────────────────────
|
|
20
|
-
framework:
|
|
21
|
-
id: framework
|
|
20
|
+
web-framework:
|
|
21
|
+
id: web-framework
|
|
22
22
|
displayName: Framework
|
|
23
|
-
description:
|
|
23
|
+
description: UI framework (React, Vue, Angular, SolidJS, Next.js, Remix, Nuxt)
|
|
24
24
|
domain: web
|
|
25
25
|
exclusive: true
|
|
26
26
|
required: true
|
|
27
27
|
order: 1
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
id:
|
|
31
|
-
displayName: Meta-Framework
|
|
32
|
-
description: Full-stack framework (Next.js, Remix, Nuxt)
|
|
33
|
-
domain: web
|
|
34
|
-
exclusive: true
|
|
35
|
-
required: false
|
|
36
|
-
order: 2
|
|
37
|
-
|
|
38
|
-
styling:
|
|
39
|
-
id: styling
|
|
29
|
+
web-styling:
|
|
30
|
+
id: web-styling
|
|
40
31
|
displayName: Styling
|
|
41
32
|
description: CSS approach (SCSS Modules, Tailwind, CVA)
|
|
42
33
|
domain: web
|
|
@@ -44,8 +35,8 @@ categories:
|
|
|
44
35
|
required: true
|
|
45
36
|
order: 3
|
|
46
37
|
|
|
47
|
-
client-state:
|
|
48
|
-
id: client-state
|
|
38
|
+
web-client-state:
|
|
39
|
+
id: web-client-state
|
|
49
40
|
displayName: Client State Management
|
|
50
41
|
description: UI state, forms, local data (Zustand, Redux, MobX)
|
|
51
42
|
domain: web
|
|
@@ -53,8 +44,8 @@ categories:
|
|
|
53
44
|
required: false
|
|
54
45
|
order: 4
|
|
55
46
|
|
|
56
|
-
server-state:
|
|
57
|
-
id: server-state
|
|
47
|
+
web-server-state:
|
|
48
|
+
id: web-server-state
|
|
58
49
|
displayName: Server State / Data Fetching
|
|
59
50
|
description: API data caching (React Query, SWR)
|
|
60
51
|
domain: web
|
|
@@ -62,8 +53,8 @@ categories:
|
|
|
62
53
|
required: false
|
|
63
54
|
order: 5
|
|
64
55
|
|
|
65
|
-
forms:
|
|
66
|
-
id: forms
|
|
56
|
+
web-forms:
|
|
57
|
+
id: web-forms
|
|
67
58
|
displayName: Forms & Validation
|
|
68
59
|
description: Form handling and schema validation
|
|
69
60
|
domain: web
|
|
@@ -71,8 +62,8 @@ categories:
|
|
|
71
62
|
required: false
|
|
72
63
|
order: 6
|
|
73
64
|
|
|
74
|
-
testing:
|
|
75
|
-
id: testing
|
|
65
|
+
web-testing:
|
|
66
|
+
id: web-testing
|
|
76
67
|
displayName: Testing
|
|
77
68
|
description: Unit, integration, and E2E testing
|
|
78
69
|
domain: web
|
|
@@ -80,8 +71,8 @@ categories:
|
|
|
80
71
|
required: false
|
|
81
72
|
order: 7
|
|
82
73
|
|
|
83
|
-
ui-components:
|
|
84
|
-
id: ui-components
|
|
74
|
+
web-ui-components:
|
|
75
|
+
id: web-ui-components
|
|
85
76
|
displayName: UI Component Library
|
|
86
77
|
description: Pre-built component systems (Radix, shadcn)
|
|
87
78
|
domain: web
|
|
@@ -89,8 +80,8 @@ categories:
|
|
|
89
80
|
required: false
|
|
90
81
|
order: 8
|
|
91
82
|
|
|
92
|
-
mocking:
|
|
93
|
-
id: mocking
|
|
83
|
+
web-mocking:
|
|
84
|
+
id: web-mocking
|
|
94
85
|
displayName: API Mocking
|
|
95
86
|
description: Mock Service Worker for development and testing
|
|
96
87
|
domain: web
|
|
@@ -98,18 +89,17 @@ categories:
|
|
|
98
89
|
required: false
|
|
99
90
|
order: 10
|
|
100
91
|
|
|
101
|
-
error-handling:
|
|
102
|
-
id: error-handling
|
|
92
|
+
web-error-handling:
|
|
93
|
+
id: web-error-handling
|
|
103
94
|
displayName: Error Handling
|
|
104
95
|
description: Error boundaries, result types, and error patterns
|
|
105
|
-
domain: web
|
|
106
|
-
parentDomain: web
|
|
96
|
+
domain: web
|
|
107
97
|
exclusive: false
|
|
108
98
|
required: false
|
|
109
99
|
order: 11
|
|
110
100
|
|
|
111
|
-
i18n:
|
|
112
|
-
id: i18n
|
|
101
|
+
web-i18n:
|
|
102
|
+
id: web-i18n
|
|
113
103
|
displayName: Internationalization
|
|
114
104
|
description: i18n libraries (next-intl, react-intl, vue-i18n)
|
|
115
105
|
domain: web
|
|
@@ -117,72 +107,65 @@ categories:
|
|
|
117
107
|
required: false
|
|
118
108
|
order: 12
|
|
119
109
|
|
|
120
|
-
file-upload:
|
|
121
|
-
id: file-upload
|
|
110
|
+
web-file-upload:
|
|
111
|
+
id: web-file-upload
|
|
122
112
|
displayName: File Upload
|
|
123
113
|
description: File upload patterns and handling
|
|
124
|
-
domain: web
|
|
125
|
-
parentDomain: web
|
|
114
|
+
domain: web
|
|
126
115
|
exclusive: false
|
|
127
116
|
required: false
|
|
128
117
|
order: 13
|
|
129
118
|
|
|
130
|
-
files:
|
|
131
|
-
id: files
|
|
119
|
+
web-files:
|
|
120
|
+
id: web-files
|
|
132
121
|
displayName: Files & Images
|
|
133
122
|
description: Image handling and file processing
|
|
134
|
-
domain: web
|
|
135
|
-
parentDomain: web
|
|
123
|
+
domain: web
|
|
136
124
|
exclusive: false
|
|
137
125
|
required: false
|
|
138
126
|
order: 14
|
|
139
127
|
|
|
140
|
-
utilities:
|
|
141
|
-
id: utilities
|
|
128
|
+
web-utilities:
|
|
129
|
+
id: web-utilities
|
|
142
130
|
displayName: Utilities
|
|
143
131
|
description: Utility libraries (date-fns, native JS patterns)
|
|
144
|
-
domain: web
|
|
145
|
-
parentDomain: web
|
|
132
|
+
domain: web
|
|
146
133
|
exclusive: false
|
|
147
134
|
required: false
|
|
148
135
|
order: 15
|
|
149
136
|
|
|
150
|
-
realtime:
|
|
151
|
-
id: realtime
|
|
137
|
+
web-realtime:
|
|
138
|
+
id: web-realtime
|
|
152
139
|
displayName: Realtime
|
|
153
140
|
description: WebSockets, SSE, and real-time communication
|
|
154
|
-
domain: web
|
|
155
|
-
parentDomain: web
|
|
141
|
+
domain: web
|
|
156
142
|
exclusive: true
|
|
157
143
|
required: false
|
|
158
144
|
order: 16
|
|
159
145
|
|
|
160
|
-
animation:
|
|
161
|
-
id: animation
|
|
146
|
+
web-animation:
|
|
147
|
+
id: web-animation
|
|
162
148
|
displayName: Animation
|
|
163
149
|
description: Animation libraries and CSS animations
|
|
164
|
-
domain: web
|
|
165
|
-
parentDomain: web
|
|
150
|
+
domain: web
|
|
166
151
|
exclusive: false
|
|
167
152
|
required: false
|
|
168
153
|
order: 17
|
|
169
154
|
|
|
170
|
-
pwa:
|
|
171
|
-
id: pwa
|
|
155
|
+
web-pwa:
|
|
156
|
+
id: web-pwa
|
|
172
157
|
displayName: Progressive Web App
|
|
173
158
|
description: Service workers, offline-first patterns, and PWA features
|
|
174
|
-
domain: web
|
|
175
|
-
parentDomain: web
|
|
159
|
+
domain: web
|
|
176
160
|
exclusive: false
|
|
177
161
|
required: false
|
|
178
162
|
order: 18
|
|
179
163
|
|
|
180
|
-
accessibility:
|
|
181
|
-
id: accessibility
|
|
164
|
+
web-accessibility:
|
|
165
|
+
id: web-accessibility
|
|
182
166
|
displayName: Accessibility
|
|
183
167
|
description: WCAG compliance, ARIA, and keyboard navigation
|
|
184
|
-
domain: web
|
|
185
|
-
parentDomain: web
|
|
168
|
+
domain: web
|
|
186
169
|
exclusive: false
|
|
187
170
|
required: false
|
|
188
171
|
order: 19
|
|
@@ -195,12 +178,20 @@ categories:
|
|
|
195
178
|
exclusive: false
|
|
196
179
|
required: false
|
|
197
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
|
|
198
189
|
|
|
199
190
|
# ─────────────────────────────────────────────────────────────────
|
|
200
191
|
# API categories
|
|
201
192
|
# ─────────────────────────────────────────────────────────────────
|
|
202
|
-
api:
|
|
203
|
-
id: api
|
|
193
|
+
api-api:
|
|
194
|
+
id: api-api
|
|
204
195
|
displayName: API Framework
|
|
205
196
|
description: Backend framework (Hono, Express, Fastify)
|
|
206
197
|
domain: api
|
|
@@ -208,8 +199,8 @@ categories:
|
|
|
208
199
|
required: true
|
|
209
200
|
order: 1
|
|
210
201
|
|
|
211
|
-
database:
|
|
212
|
-
id: database
|
|
202
|
+
api-database:
|
|
203
|
+
id: api-database
|
|
213
204
|
displayName: Database ORM
|
|
214
205
|
description: Database access layer (Drizzle, Prisma)
|
|
215
206
|
domain: api
|
|
@@ -217,8 +208,8 @@ categories:
|
|
|
217
208
|
required: false
|
|
218
209
|
order: 2
|
|
219
210
|
|
|
220
|
-
auth:
|
|
221
|
-
id: auth
|
|
211
|
+
api-auth:
|
|
212
|
+
id: api-auth
|
|
222
213
|
displayName: Authentication
|
|
223
214
|
description: Auth solution (Better Auth, Auth.js)
|
|
224
215
|
domain: api
|
|
@@ -226,8 +217,8 @@ categories:
|
|
|
226
217
|
required: false
|
|
227
218
|
order: 3
|
|
228
219
|
|
|
229
|
-
observability:
|
|
230
|
-
id: observability
|
|
220
|
+
api-observability:
|
|
221
|
+
id: api-observability
|
|
231
222
|
displayName: Observability
|
|
232
223
|
description: Logging, monitoring, error tracking
|
|
233
224
|
domain: api
|
|
@@ -235,8 +226,8 @@ categories:
|
|
|
235
226
|
required: false
|
|
236
227
|
order: 4
|
|
237
228
|
|
|
238
|
-
analytics:
|
|
239
|
-
id: analytics
|
|
229
|
+
api-analytics:
|
|
230
|
+
id: api-analytics
|
|
240
231
|
displayName: Analytics
|
|
241
232
|
description: Product analytics and tracking
|
|
242
233
|
domain: api
|
|
@@ -244,8 +235,8 @@ categories:
|
|
|
244
235
|
required: false
|
|
245
236
|
order: 5
|
|
246
237
|
|
|
247
|
-
email:
|
|
248
|
-
id: email
|
|
238
|
+
api-email:
|
|
239
|
+
id: api-email
|
|
249
240
|
displayName: Email
|
|
250
241
|
description: Transactional email (Resend, Sendgrid)
|
|
251
242
|
domain: api
|
|
@@ -253,8 +244,8 @@ categories:
|
|
|
253
244
|
required: false
|
|
254
245
|
order: 6
|
|
255
246
|
|
|
256
|
-
performance:
|
|
257
|
-
id: performance
|
|
247
|
+
api-performance:
|
|
248
|
+
id: api-performance
|
|
258
249
|
displayName: Performance
|
|
259
250
|
description: API performance patterns and optimization
|
|
260
251
|
domain: api
|
|
@@ -273,12 +264,20 @@ categories:
|
|
|
273
264
|
exclusive: true
|
|
274
265
|
required: true
|
|
275
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
|
|
276
275
|
|
|
277
276
|
# ─────────────────────────────────────────────────────────────────
|
|
278
277
|
# Shared / Infrastructure categories
|
|
279
278
|
# ─────────────────────────────────────────────────────────────────
|
|
280
|
-
monorepo:
|
|
281
|
-
id: monorepo
|
|
279
|
+
shared-monorepo:
|
|
280
|
+
id: shared-monorepo
|
|
282
281
|
displayName: Monorepo
|
|
283
282
|
description: Monorepo tooling (Turborepo, Nx)
|
|
284
283
|
domain: shared
|
|
@@ -286,8 +285,8 @@ categories:
|
|
|
286
285
|
required: false
|
|
287
286
|
order: 1
|
|
288
287
|
|
|
289
|
-
tooling:
|
|
290
|
-
id: tooling
|
|
288
|
+
shared-tooling:
|
|
289
|
+
id: shared-tooling
|
|
291
290
|
displayName: Build Tooling
|
|
292
291
|
description: ESLint, Prettier, TypeScript, Vite
|
|
293
292
|
domain: shared
|
|
@@ -295,8 +294,8 @@ categories:
|
|
|
295
294
|
required: false
|
|
296
295
|
order: 2
|
|
297
296
|
|
|
298
|
-
security:
|
|
299
|
-
id: security
|
|
297
|
+
shared-security:
|
|
298
|
+
id: shared-security
|
|
300
299
|
displayName: Security
|
|
301
300
|
description: Authentication security patterns and best practices
|
|
302
301
|
domain: shared
|
|
@@ -304,8 +303,8 @@ categories:
|
|
|
304
303
|
required: false
|
|
305
304
|
order: 3
|
|
306
305
|
|
|
307
|
-
methodology:
|
|
308
|
-
id: methodology
|
|
306
|
+
shared-methodology:
|
|
307
|
+
id: shared-methodology
|
|
309
308
|
displayName: Methodology
|
|
310
309
|
description: Development methodology and engineering principles
|
|
311
310
|
domain: shared
|
|
@@ -313,8 +312,8 @@ categories:
|
|
|
313
312
|
required: false
|
|
314
313
|
order: 4
|
|
315
314
|
|
|
316
|
-
research:
|
|
317
|
-
id: research
|
|
315
|
+
shared-research:
|
|
316
|
+
id: shared-research
|
|
318
317
|
displayName: Research
|
|
319
318
|
description: Codebase investigation and research methodology
|
|
320
319
|
domain: shared
|
|
@@ -322,8 +321,8 @@ categories:
|
|
|
322
321
|
required: false
|
|
323
322
|
order: 5
|
|
324
323
|
|
|
325
|
-
reviewing:
|
|
326
|
-
id: reviewing
|
|
324
|
+
shared-reviewing:
|
|
325
|
+
id: shared-reviewing
|
|
327
326
|
displayName: Code Review
|
|
328
327
|
description: Code review patterns and guidance
|
|
329
328
|
domain: shared
|
|
@@ -331,8 +330,8 @@ categories:
|
|
|
331
330
|
required: false
|
|
332
331
|
order: 6
|
|
333
332
|
|
|
334
|
-
ci-cd:
|
|
335
|
-
id: ci-cd
|
|
333
|
+
shared-ci-cd:
|
|
334
|
+
id: shared-ci-cd
|
|
336
335
|
displayName: CI/CD
|
|
337
336
|
description: Continuous integration and deployment pipelines
|
|
338
337
|
domain: shared
|
|
@@ -379,13 +378,9 @@ relationships:
|
|
|
379
378
|
# CONFLICTS (Mutually exclusive - selecting A disables B)
|
|
380
379
|
# ─────────────────────────────────────────────────────────────────
|
|
381
380
|
conflicts:
|
|
382
|
-
# Framework conflicts (only one
|
|
383
|
-
- skills: [react, vue, angular, solidjs]
|
|
384
|
-
reason: "
|
|
385
|
-
|
|
386
|
-
# Meta-framework conflicts
|
|
387
|
-
- skills: [nextjs-app-router, remix, nuxt]
|
|
388
|
-
reason: "Meta-frameworks are mutually exclusive - choose one"
|
|
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"
|
|
389
384
|
|
|
390
385
|
# NOTE: scss-modules/tailwind moved to discourages - they're technically compatible
|
|
391
386
|
|
|
@@ -596,49 +591,54 @@ relationships:
|
|
|
596
591
|
requires:
|
|
597
592
|
# React-specific libraries (note: these libraries have vanilla/other-framework options, but our skills teach React patterns)
|
|
598
593
|
- skill: zustand
|
|
599
|
-
needs: [react, react-native]
|
|
594
|
+
needs: [react, nextjs-app-router, remix, react-native]
|
|
600
595
|
needsAny: true
|
|
601
596
|
reason: "Our Zustand skill covers React/React Native patterns (zustand/vanilla exists for other frameworks)"
|
|
602
597
|
|
|
603
598
|
- skill: redux-toolkit
|
|
604
|
-
needs: [react, react-native]
|
|
599
|
+
needs: [react, nextjs-app-router, remix, react-native]
|
|
605
600
|
needsAny: true
|
|
606
601
|
reason: "Our Redux Toolkit skill covers React/React Native patterns (RTK core is framework-agnostic)"
|
|
607
602
|
|
|
608
603
|
- skill: mobx
|
|
609
|
-
needs: [react]
|
|
604
|
+
needs: [react, nextjs-app-router, remix]
|
|
605
|
+
needsAny: true
|
|
610
606
|
reason: "Our MobX skill teaches React patterns. Note: MobX core has official Vue (mobx-vue) and Angular (mobx-angular) bindings."
|
|
611
607
|
|
|
612
608
|
- skill: react-query
|
|
613
|
-
needs: [react, react-native]
|
|
609
|
+
needs: [react, nextjs-app-router, remix, react-native]
|
|
614
610
|
needsAny: true
|
|
615
611
|
reason: "TanStack Query's React adapter. Note: TanStack Query also supports Vue, Solid, Svelte via separate adapters."
|
|
616
612
|
|
|
617
613
|
- skill: swr
|
|
618
|
-
needs: [react, react-native]
|
|
614
|
+
needs: [react, nextjs-app-router, remix, react-native]
|
|
619
615
|
needsAny: true
|
|
620
616
|
reason: "SWR is a React Hooks library. For React Native, requires @nandorojo/swr-react-native wrapper."
|
|
621
617
|
|
|
622
618
|
- skill: react-hook-form
|
|
623
|
-
needs: [react, react-native]
|
|
619
|
+
needs: [react, nextjs-app-router, remix, react-native]
|
|
624
620
|
needsAny: true
|
|
625
621
|
reason: "React Hook Form is React only"
|
|
626
622
|
|
|
627
623
|
- skill: react-testing-library
|
|
628
|
-
needs: [react]
|
|
624
|
+
needs: [react, nextjs-app-router, remix]
|
|
625
|
+
needsAny: true
|
|
629
626
|
reason: "React Testing Library is React only"
|
|
630
627
|
|
|
631
628
|
# Vue-specific libraries
|
|
632
629
|
- skill: pinia
|
|
633
|
-
needs: [vue]
|
|
630
|
+
needs: [vue, nuxt]
|
|
631
|
+
needsAny: true
|
|
634
632
|
reason: "Pinia is Vue only"
|
|
635
633
|
|
|
636
634
|
- skill: vee-validate
|
|
637
|
-
needs: [vue]
|
|
635
|
+
needs: [vue, nuxt]
|
|
636
|
+
needsAny: true
|
|
638
637
|
reason: "VeeValidate is Vue only"
|
|
639
638
|
|
|
640
639
|
- skill: vue-test-utils
|
|
641
|
-
needs: [vue]
|
|
640
|
+
needs: [vue, nuxt]
|
|
641
|
+
needsAny: true
|
|
642
642
|
reason: "Vue Test Utils is Vue only"
|
|
643
643
|
|
|
644
644
|
# Angular-specific libraries
|
|
@@ -646,16 +646,6 @@ relationships:
|
|
|
646
646
|
needs: [angular]
|
|
647
647
|
reason: "NgRx SignalStore is Angular only"
|
|
648
648
|
|
|
649
|
-
# Next.js specific
|
|
650
|
-
- skill: nextjs-app-router
|
|
651
|
-
needs: [react]
|
|
652
|
-
reason: "Next.js is built on React"
|
|
653
|
-
|
|
654
|
-
# Remix specific
|
|
655
|
-
- skill: remix
|
|
656
|
-
needs: [react]
|
|
657
|
-
reason: "Remix is built on React"
|
|
658
|
-
|
|
659
649
|
# Backend dependencies
|
|
660
650
|
- skill: better-auth
|
|
661
651
|
needs: [drizzle, prisma]
|
|
@@ -666,17 +656,22 @@ relationships:
|
|
|
666
656
|
|
|
667
657
|
# UI component dependencies
|
|
668
658
|
- skill: shadcn-ui
|
|
669
|
-
needs: [react,
|
|
670
|
-
|
|
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"
|
|
671
666
|
|
|
672
667
|
# GraphQL clients need a framework
|
|
673
668
|
- skill: graphql-apollo
|
|
674
|
-
needs: [react, vue, angular]
|
|
669
|
+
needs: [react, vue, angular, nextjs-app-router, remix, nuxt]
|
|
675
670
|
needsAny: true
|
|
676
671
|
reason: "Apollo Client - first-party React support, community-maintained Vue/Angular integrations. Note: Svelte/Solid bindings exist but are stale (2020-2022)."
|
|
677
672
|
|
|
678
673
|
- skill: graphql-urql
|
|
679
|
-
needs: [react, vue, solidjs]
|
|
674
|
+
needs: [react, vue, solidjs, nextjs-app-router, remix, nuxt]
|
|
680
675
|
needsAny: true
|
|
681
676
|
reason: "URQL has first-party support for React, Vue, and Solid (no Angular support). Svelte support exists but skill not yet created."
|
|
682
677
|
|
|
@@ -685,10 +680,7 @@ relationships:
|
|
|
685
680
|
# ─────────────────────────────────────────────────────────────────
|
|
686
681
|
alternatives:
|
|
687
682
|
- purpose: "Frontend Framework"
|
|
688
|
-
skills: [react, vue, angular, solidjs]
|
|
689
|
-
|
|
690
|
-
- purpose: "React Meta-Framework"
|
|
691
|
-
skills: [nextjs-app-router, remix]
|
|
683
|
+
skills: [react, vue, angular, solidjs, nextjs-app-router, remix, nuxt]
|
|
692
684
|
|
|
693
685
|
- purpose: "Styling"
|
|
694
686
|
skills: [scss-modules, tailwind, cva]
|