@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
package/CHANGELOG.md CHANGED
@@ -9,6 +9,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ---
11
11
 
12
+ ## [0.48.0] - 2026-02-27
13
+
14
+ **Matrix decomposition, displayName rename, E2E test infrastructure**
15
+
16
+ - Decompose `skills-matrix.yaml` into `skill-categories.yaml` + `skill-rules.yaml` with directory-based skill discovery
17
+ - Rename `cliName` to `displayName` in metadata schema, loaders, and validators
18
+ - Remove per-skill `categoryExclusive` — exclusivity now driven by category definitions
19
+ - Full PTY-based E2E test suite with 264 tests covering all commands and interactive flows
20
+
21
+ See [changelogs/0.48.0.md](./changelogs/0.48.0.md) for full details.
22
+
23
+ ---
24
+
25
+ ## [0.47.0] - 2026-02-25
26
+
27
+ **Custom domain support, source validation, wizard improvements, dead code cleanup**
28
+
29
+ - Domain field on skill metadata and agent YAML for custom marketplace support
30
+ - `validate --source` command for source repository validation
31
+ - Fix custom skill ID rejection in stacks validation
32
+ - Remove redundant verifyHash and legacy slash-in-skill-ID code
33
+
34
+ See [changelogs/0.47.0.md](./changelogs/0.47.0.md) for full details.
35
+
36
+ ---
37
+
12
38
  ## [0.46.0] - 2026-02-24
13
39
 
14
40
  **Custom extensibility, new commands, agent-mapping removal, wizard improvements**
package/README.md CHANGED
@@ -4,190 +4,186 @@
4
4
 
5
5
  # Agents Inc
6
6
 
7
- An agent composition framework that builds stacks and compiles specialized subagents for [Claude Code](https://docs.anthropic.com/en/docs/claude-code).
7
+ An agent composition framework that builds stacks and compiles specialized subagents for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Manage your subagents and skills with code via a unified CLI.
8
8
 
9
9
  [![npm version](https://img.shields.io/npm/v/@agents-inc/cli)](https://www.npmjs.com/package/@agents-inc/cli)
10
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](https://www.typescriptlang.org/)
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
12
12
  [![Node: 18+](https://img.shields.io/badge/Node-18%2B-green.svg)](https://nodejs.org/)
13
13
 
14
- ```bash
15
- npx @agents-inc/cli init
16
- ```
17
-
18
- <!-- TODO: Add animated GIF of the full init wizard flow (stack selection → skill grid → agent config → done).
14
+ <!-- TODO: Add animated GIF of the full init wizard flow (stack selection -> skill grid -> agent config -> done).
19
15
  This is the hero image. It should show the complete happy path in ~15-20 seconds.
20
16
  <p align="center">
21
17
  <img src="./assets/init-wizard.gif" alt="Agents Inc init wizard" width="700">
22
18
  </p>
23
19
  -->
24
20
 
25
- ## What this does
21
+ ## Overview
26
22
 
27
- Claude Code doesn't know your stack. It doesn't know your patterns, your conventions, or the specific way you use your tools. So you end up repeating the same instructions or maintaining freeform markdown skills that fail silently when something's wrong.
23
+ Agents Inc comprises two parts:
28
24
 
29
- Agents Inc fixes this with structured skills: focused knowledge modules for specific technologies. Each skill covers patterns, conventions, anti-patterns, edge cases, and real code examples. Skills get compiled into specialized subagents (a web developer, a reviewer, a tester, a PM) that actually know what they're doing.
25
+ - **[Marketplace](https://github.com/agents-inc/skills):** 87+ atomic, best-practice skills spanning web, API, CLI, infra, and meta domains
26
+ - **CLI:** installs, ejects, creates, compiles, and updates skills and subagents
30
27
 
31
- The whole thing is opt-in and works alongside your existing Claude Code setup. It uses smart defaults, but there are progressive levels of customization: edit the config, swap skills, choose which to preload and which to load dynamically, eject templates, eject agent partials, or eject entire skills.
28
+ Skills are composed into 18+ domain-specific subagents through templates and modular agent partials, all validated against strict Zod schemas. Everything is ejectable so there's endless customisation with no lock-in.
32
29
 
33
- Under the hood, the CLI is written in strict TypeScript with Zod for runtime validation and JSON Schema generation. Skills and agents are validated against these schemas, so misconfigurations surface immediately. Agent compilation uses Liquid templates, so the output format is fully customizable without touching CLI internals.
30
+ ## How It Works
34
31
 
35
- ## Getting started
32
+ Each subagent is composed from modular partials (role, workflow, output format) plus a set of atomic skills. The CLI manages the full lifecycle:
33
+
34
+ - **Install:** pull skills from the public marketplace, your own, or a local directory either as plugins or directly as source files
35
+ - **Compose:** map skills to subagents, configure preloaded vs dynamic loading
36
+ - **Compile:** resolve skill mappings, Liquid templates, and agent partials into `.claude/agents/`
37
+ - **Eject:** take progressive ownership of any layer (partials, templates, skills, subagents)
38
+ - **Update:** pull upstream skill changes without losing local customizations
39
+
40
+ ## Getting Started
36
41
 
37
42
  ```bash
38
- # Run the wizard
39
43
  npx @agents-inc/cli init
40
-
41
- # Or install globally
42
- npm install -g @agents-inc/cli
43
44
  ```
44
45
 
45
46
  Requires Node 18+ and [Claude Code](https://docs.anthropic.com/en/docs/claude-code).
46
47
 
47
- The wizard walks you through the full setup:
48
-
49
- ### 1. Pick a stack or start from scratch
48
+ The wizard has three steps:
50
49
 
51
- <!-- TODO: Screenshot of the stack selection screen.
52
- Shows the list of available stacks (nextjs-fullstack, angular-stack, vue-stack, etc.)
53
- with descriptions and skill counts.
54
- <img src="./assets/screenshot-stacks.png" alt="Stack selection" width="700">
55
- -->
56
-
57
- Stacks bundle skills together with pre-configured agents. Instead of picking skills individually, grab a stack that matches your setup:
58
-
59
- - **nextjs-fullstack**: Next.js + React + Hono + Drizzle + PostHog + Zustand + React Query
60
- - **angular-stack**: Angular 19 + Signals + NgRx SignalStore + Hono + Drizzle
61
- - **vue-stack**: Vue 3 Composition API + Pinia + Hono + Drizzle
62
- - **nuxt-stack**: Nuxt + Vue 3 full-stack + Pinia + Hono + Drizzle
63
- - **remix-stack**: Remix + React + Hono + Drizzle
64
- - **solidjs-stack**: SolidJS + Hono + Drizzle
65
- - **react-native-stack**: React Native + Expo + Zustand + React Query
66
- - **meta-stack**: Agents for creating agents, skills, docs, and extracting patterns
67
-
68
- Or select "Start from scratch" to browse domains and pick skills one by one.
50
+ **1. Pick a stack or start from scratch** (or create your own in your custom marketplace):
69
51
 
70
- ### 2. Customize skills
52
+ | Stack | Technologies |
53
+ | ------------------ | ------------------------------------------------------------------ |
54
+ | `nextjs-fullstack` | Next.js + React + Hono + Drizzle + PostHog + Zustand + React Query |
55
+ | `angular-stack` | Angular 19 + Signals + NgRx SignalStore + Hono + Drizzle |
56
+ | `vue-stack` | Vue 3 Composition API + Pinia + Hono + Drizzle |
57
+ | `nuxt-stack` | Nuxt + Vue 3 full-stack + Pinia + Hono + Drizzle |
58
+ | `remix-stack` | Remix + React + Hono + Drizzle |
59
+ | `solidjs-stack` | SolidJS + Hono + Drizzle |
71
60
 
72
- <!-- TODO: Screenshot of the skill selection grid.
73
- Shows skills organized by category (web, api, mobile, etc.) with checkboxes,
74
- tagged by source when multiple sources are configured.
75
- <img src="./assets/screenshot-skills.png" alt="Skill selection" width="700">
76
- -->
61
+ **2. Customize skills.** Add or remove from the interactive grid.
77
62
 
78
- After picking a stack, you can add or remove individual skills. 87+ skills are available across these categories:
63
+ **3. Select subagents.** Choose which role-based subagents to include.
79
64
 
80
- **Web**<br>
81
- `React` `Vue` `Angular` `SolidJS` `Next.js` `Remix` `Nuxt` `SCSS Modules` `CVA` `Zustand` `Pinia` `NgRx SignalStore` `Jotai` `React Query` `SWR` `tRPC` `GraphQL` `React Hook Form` `Zod` `shadcn/ui` `Radix UI` `TanStack Table` `Vitest` `Playwright` `Cypress` `MSW` `Framer Motion` `Storybook` `Accessibility`
65
+ **4. Compile.** After init, use `agentsinc edit` to change selections and `agentsinc compile` to rebuild.
82
66
 
83
- **API**<br>
84
- `Hono` `Express` `Fastify` `Drizzle` `Prisma` `Better Auth` `PostHog` `Resend` `Axiom + Pino + Sentry` `GitHub Actions`
67
+ ## Skills
85
68
 
86
- **Mobile**<br>
87
- `React Native` `Expo`
69
+ 87+ skills organized by category:
88
70
 
89
- **CLI**<br>
90
- `Commander` `oclif + Ink`
71
+ **Web:** `React` `Vue` `Angular` `SolidJS` `Next.js` `Remix` `Nuxt` `SCSS Modules` `CVA` `Zustand` `Pinia` `NgRx SignalStore` `Jotai` `React Query` `SWR` `tRPC` `GraphQL` `React Hook Form` `Zod` `shadcn/ui` `Radix UI` `TanStack Table` `Vitest` `Playwright` `Cypress` `MSW` `Framer Motion` `Storybook` `Accessibility`
91
72
 
92
- **Infra**<br>
93
- `Turborepo` `Tooling` `Env config`
73
+ **API:** `Hono` `Express` `Fastify` `Drizzle` `Prisma` `Better Auth` `PostHog` `Resend` `Axiom + Pino + Sentry` `GitHub Actions`
94
74
 
95
- **Meta**<br>
96
- `Code reviewing` `Research methodology` `Investigation requirements` `Anti-over-engineering` `Context management`
75
+ **Mobile:** `React Native` `Expo`
97
76
 
98
- Skills live in the [Agents Inc marketplace](https://github.com/agents-inc/skills). Each one is a structured package with metadata, versioning, and compatibility declarations. Everything is validated against schemas, so if a skill name doesn't match or a config is malformed, you get an actual error instead of silent failure.
77
+ **CLI:** `Commander` `oclif + Ink`
99
78
 
100
- ### 3. Configure subagents
79
+ **Infra:** `Turborepo` `Tooling` `Env config`
101
80
 
102
- <!-- TODO: Screenshot of the subagent configuration screen.
103
- Shows which agents will be compiled (web-developer, web-reviewer, web-tester, etc.)
104
- and which skills are mapped to each one.
105
- <img src="./assets/screenshot-agents.png" alt="Subagent configuration" width="700">
106
- -->
81
+ **Meta:** `Code reviewing` `Research methodology` `Investigation requirements` `Anti-over-engineering` `Context management`
107
82
 
108
- Each stack includes agents like `web-developer`, `api-developer`, `web-reviewer`, `web-tester`, `web-researcher`, `pattern-scout`, and `documentor`: roles that use the right skills for the job.
83
+ ## Subagents
109
84
 
110
- ---
85
+ 18 roles across 8 categories:
111
86
 
112
- Both modes (stack or from scratch) compile agents and generate a config at `.claude-src/config.yaml`. Use `agentsinc edit` to change your setup at any time.
87
+ | Category | Subagents |
88
+ | ---------------- | ------------------------------------------------------------------ |
89
+ | Developers | `web-developer` `api-developer` `cli-developer` `web-architecture` |
90
+ | Reviewers | `web-reviewer` `api-reviewer` `cli-reviewer` |
91
+ | Testers | `web-tester` `cli-tester` |
92
+ | Researchers | `web-researcher` `api-researcher` |
93
+ | Planning | `web-pm` |
94
+ | Pattern Analysis | `pattern-scout` `web-pattern-critique` |
95
+ | Migration | `cli-migrator` |
96
+ | Documentation | `documentor` |
97
+ | Meta | `skill-summoner` `agent-summoner` |
113
98
 
114
99
  ## Commands
115
100
 
116
- | Command | Description |
117
- | -------------- | ---------------------------------------------------------- |
118
- | `init` | Interactive setup: pick skills, configure agents |
119
- | `edit` | Modify your skill selection |
120
- | `compile` | Recompile agents after changes |
121
- | `update` | Pull latest skills from source |
122
- | `search` | Search skills across sources (interactive or static query) |
123
- | `eject` | Export skills or agent partials for customization |
124
- | `new skill` | Scaffold a custom skill |
125
- | `new agent` | Scaffold a custom agent |
126
- | `import skill` | Import a skill from an external GitHub repository |
127
- | `doctor` | Diagnose setup issues |
128
- | `uninstall` | Remove Agents Inc from your project |
101
+ ### Primary
129
102
 
130
- Every command supports `--dry-run` and `--source` flags. Run `agentsinc --help` for the full command list including `config`, `version`, `build`, `diff`, `outdated`, `validate`, `info`, and `list`.
103
+ | Command | Description |
104
+ | --------- | --------------------------------------------------------------------------- |
105
+ | `init` | Interactive setup wizard: pick a stack, customize skills, compile subagents |
106
+ | `edit` | Modify skill selection in the interactive wizard |
107
+ | `compile` | Recompile subagents after changes |
108
+ | `update` | Pull latest skills from source |
131
109
 
132
- ## Importing third-party skills
110
+ ### Customization
133
111
 
134
- Import skills from any GitHub repository into your local setup:
112
+ | Command | Description |
113
+ | -------------- | ----------------------------------------------------------------------------------------------------------------- |
114
+ | `eject <type>` | Export for customization (`agent-partials`, `templates`, `skills`, `all`) |
115
+ | `new skill` | Scaffold a custom skill ![Coming soon](https://img.shields.io/badge/coming%20soon-grey) |
116
+ | `new agent` | Scaffold a custom agent ![Coming soon](https://img.shields.io/badge/coming%20soon-grey) |
117
+ | `import skill` | Import a skill from an external GitHub repository ![Coming soon](https://img.shields.io/badge/coming%20soon-grey) |
118
+ | `search` | Search skills across sources ![Coming soon](https://img.shields.io/badge/coming%20soon-grey) |
135
119
 
136
- ```bash
137
- # List available skills from a repository
138
- agentsinc import skill github:your-org/skills --list
120
+ ### Diagnostics
139
121
 
140
- # Import a specific skill
141
- agentsinc import skill github:your-org/skills --skill react-best-practices
142
-
143
- # Import all skills from a repository
144
- agentsinc import skill github:your-org/skills --all
145
- ```
122
+ | Command | Description |
123
+ | ----------- | ------------------------------------------------------------------------------------------------------------ |
124
+ | `doctor` | Diagnose setup issues |
125
+ | `diff` | Show changes between local and source skills ![Coming soon](https://img.shields.io/badge/coming%20soon-grey) |
126
+ | `outdated` | Check for skill updates |
127
+ | `validate` | Validate config and skill structure |
128
+ | `info` | Show project configuration details |
129
+ | `uninstall` | Remove Agents Inc from your project |
146
130
 
147
- Imported skills are copied to `.claude/skills/` and tracked with metadata for future updates.
131
+ Run `agentsinc --help` for full usage.
148
132
 
149
133
  ## Customization
150
134
 
151
- Everything is configured through `.claude-src/config.yaml` with schema validation. There are progressive levels of customization depending on how deep you want to go:
135
+ Progressive layers from config to full extension:
152
136
 
153
- **Edit the config directly** to change skill-to-agent mappings:
137
+ | Layer | How |
138
+ | --------------- | ---------------------------------------------------------------------------------------------- |
139
+ | Edit config | `.claude-src/config.yaml`; skill-to-subagent mappings, preloaded/dynamic |
140
+ | Wizard | `agentsinc edit`; add/remove skills interactively |
141
+ | Eject partials | `agentsinc eject agent-partials`; customize agent partials such as intro, workflow, and output |
142
+ | Eject templates | `agentsinc eject templates`; modify Liquid templates |
143
+ | Eject skills | `agentsinc eject skills`; fork skills for local editing |
144
+ | Custom skills | `agentsinc new skill`; scaffold with proper metadata |
145
+ | Custom agents | `agentsinc new agent`; scaffold agent files |
146
+ | Custom sources | Point to a private repo or local directory as a skill source |
147
+ | Plugins | Package skills/subagents as Claude Code plugins for distribution |
154
148
 
155
- ```yaml
156
- web-developer:
157
- web-framework:
158
- id: web-framework-react
159
- preloaded: true
160
- web-styling: web-styling-tailwind-v3
161
- ```
149
+ Templates apply globally across all subagents; partials apply to specific roles. Put shared conventions in a template for consistency, and role-specific behaviour in partials.
162
150
 
163
- **Eject** for deeper control:
151
+ Import skills from any GitHub repository:
164
152
 
165
153
  ```bash
166
- # Eject agent partials (intro, workflow, critical requirements, etc.)
167
- npx @agents-inc/cli eject agent-partials
168
-
169
- # Eject the Liquid templates that control how agents are compiled
170
- npx @agents-inc/cli eject agent-partials --templates
171
-
172
- # Eject skills for local editing
173
- npx @agents-inc/cli eject skills
154
+ agentsinc import skill github:your-org/skills --list
155
+ agentsinc import skill github:your-org/skills --skill react-best-practices
156
+ agentsinc import skill github:your-org/skills --all
174
157
  ```
175
158
 
176
- **Create custom skills** when you need something that doesn't exist:
159
+ ## Tech Stack
177
160
 
178
- ```bash
179
- npx @agents-inc/cli new skill my-custom-skill
180
- ```
161
+ | Component | Technology |
162
+ | ------------ | ------------------------------------- |
163
+ | Commands | oclif |
164
+ | Terminal UI | Ink + React |
165
+ | Wizard state | Zustand |
166
+ | Validation | Zod (30+ schemas at parse boundaries) |
167
+ | Compilation | LiquidJS |
168
+ | Testing | Vitest |
181
169
 
182
- ## Architecture
183
-
184
- The CLI uses oclif for commands, Ink (React) for the terminal UI, and Zustand for wizard state. The codebase is organized into domain-driven library modules with barrel exports.
170
+ ```
171
+ src/cli/
172
+ commands/ # oclif command definitions
173
+ components/ # Ink/React terminal UI components
174
+ lib/ # Core logic (compiler, loader, resolver, schemas)
175
+ stores/ # Zustand state management
176
+ utils/ # Shared utilities
177
+ src/agents/ # Subagent definitions (18 roles)
178
+ config/ # Skills matrix, stacks, default mappings
179
+ ```
185
180
 
186
181
  See [docs/reference/architecture.md](./docs/reference/architecture.md) for the full reference.
187
182
 
188
183
  ## Links
189
184
 
190
- - [Agents Inc Skills](https://github.com/agents-inc/skills): the marketplace
185
+ - [Plugin Marketplace](https://github.com/agents-inc/skills): browse and discover skills
186
+ - [Architecture Reference](./docs/reference/architecture.md): full system documentation
191
187
 
192
188
  ## License
193
189
 
@@ -0,0 +1,344 @@
1
+ version: "1.0.0"
2
+
3
+ categories:
4
+ web-framework:
5
+ id: web-framework
6
+ displayName: Framework
7
+ description: UI framework (React, Vue, Angular, SolidJS, Next.js, Remix, Nuxt)
8
+ domain: web
9
+ exclusive: true
10
+ required: true
11
+ order: 1
12
+
13
+ web-styling:
14
+ id: web-styling
15
+ displayName: Styling
16
+ description: CSS approach (SCSS Modules, Tailwind, CVA)
17
+ domain: web
18
+ exclusive: false
19
+ required: true
20
+ order: 3
21
+
22
+ web-client-state:
23
+ id: web-client-state
24
+ displayName: Client State Management
25
+ description: UI state, forms, local data (Zustand, Redux, MobX)
26
+ domain: web
27
+ exclusive: true
28
+ required: false
29
+ order: 4
30
+
31
+ web-server-state:
32
+ id: web-server-state
33
+ displayName: Server State / Data Fetching
34
+ description: API data caching (React Query, SWR)
35
+ domain: web
36
+ exclusive: true
37
+ required: false
38
+ order: 5
39
+
40
+ web-forms:
41
+ id: web-forms
42
+ displayName: Forms & Validation
43
+ description: Form handling and schema validation
44
+ domain: web
45
+ exclusive: false
46
+ required: false
47
+ order: 6
48
+
49
+ web-testing:
50
+ id: web-testing
51
+ displayName: Testing
52
+ description: Unit, integration, and E2E testing
53
+ domain: web
54
+ exclusive: false
55
+ required: false
56
+ order: 7
57
+
58
+ web-ui-components:
59
+ id: web-ui-components
60
+ displayName: UI Component Library
61
+ description: Pre-built component systems (Radix, shadcn)
62
+ domain: web
63
+ exclusive: false
64
+ required: false
65
+ order: 8
66
+
67
+ web-mocking:
68
+ id: web-mocking
69
+ displayName: API Mocking
70
+ description: Mock Service Worker for development and testing
71
+ domain: web
72
+ exclusive: false
73
+ required: false
74
+ order: 10
75
+
76
+ web-error-handling:
77
+ id: web-error-handling
78
+ displayName: Error Handling
79
+ description: Error boundaries, result types, and error patterns
80
+ domain: web
81
+ exclusive: false
82
+ required: false
83
+ order: 11
84
+
85
+ web-i18n:
86
+ id: web-i18n
87
+ displayName: Internationalization
88
+ description: i18n libraries (next-intl, react-intl, vue-i18n)
89
+ domain: web
90
+ exclusive: true
91
+ required: false
92
+ order: 12
93
+
94
+ web-file-upload:
95
+ id: web-file-upload
96
+ displayName: File Upload
97
+ description: File upload patterns and handling
98
+ domain: web
99
+ exclusive: false
100
+ required: false
101
+ order: 13
102
+
103
+ web-files:
104
+ id: web-files
105
+ displayName: Files & Images
106
+ description: Image handling and file processing
107
+ domain: web
108
+ exclusive: false
109
+ required: false
110
+ order: 14
111
+
112
+ web-utilities:
113
+ id: web-utilities
114
+ displayName: Utilities
115
+ description: Utility libraries (date-fns, native JS patterns)
116
+ domain: web
117
+ exclusive: false
118
+ required: false
119
+ order: 15
120
+
121
+ web-realtime:
122
+ id: web-realtime
123
+ displayName: Realtime
124
+ description: WebSockets, SSE, and real-time communication
125
+ domain: web
126
+ exclusive: true
127
+ required: false
128
+ order: 16
129
+
130
+ web-animation:
131
+ id: web-animation
132
+ displayName: Animation
133
+ description: Animation libraries and CSS animations
134
+ domain: web
135
+ exclusive: false
136
+ required: false
137
+ order: 17
138
+
139
+ web-pwa:
140
+ id: web-pwa
141
+ displayName: Progressive Web App
142
+ description: Service workers, offline-first patterns, and PWA features
143
+ domain: web
144
+ exclusive: false
145
+ required: false
146
+ order: 18
147
+
148
+ web-accessibility:
149
+ id: web-accessibility
150
+ displayName: Accessibility
151
+ description: WCAG compliance, ARIA, and keyboard navigation
152
+ domain: web
153
+ exclusive: false
154
+ required: false
155
+ order: 19
156
+
157
+ web-performance:
158
+ id: web-performance
159
+ displayName: Web Performance
160
+ description: Bundle optimization, render performance, and code splitting
161
+ domain: web
162
+ exclusive: false
163
+ required: false
164
+ order: 20
165
+
166
+ web-base-framework:
167
+ id: web-base-framework
168
+ displayName: Base Framework
169
+ description: Base framework setup and configuration
170
+ domain: web
171
+ exclusive: false
172
+ required: false
173
+ order: 21
174
+
175
+ api-api:
176
+ id: api-api
177
+ displayName: API Framework
178
+ description: Backend framework (Hono, Express, Fastify)
179
+ domain: api
180
+ exclusive: true
181
+ required: true
182
+ order: 1
183
+
184
+ api-database:
185
+ id: api-database
186
+ displayName: Database ORM
187
+ description: Database access layer (Drizzle, Prisma)
188
+ domain: api
189
+ exclusive: true
190
+ required: false
191
+ order: 2
192
+
193
+ api-auth:
194
+ id: api-auth
195
+ displayName: Authentication
196
+ description: Auth solution (Better Auth, Auth.js)
197
+ domain: api
198
+ exclusive: true
199
+ required: false
200
+ order: 3
201
+
202
+ api-observability:
203
+ id: api-observability
204
+ displayName: Observability
205
+ description: Logging, monitoring, error tracking
206
+ domain: api
207
+ exclusive: false
208
+ required: false
209
+ order: 4
210
+
211
+ api-analytics:
212
+ id: api-analytics
213
+ displayName: Analytics
214
+ description: Product analytics and tracking
215
+ domain: api
216
+ exclusive: false
217
+ required: false
218
+ order: 5
219
+
220
+ api-email:
221
+ id: api-email
222
+ displayName: Email
223
+ description: Transactional email (Resend, Sendgrid)
224
+ domain: api
225
+ exclusive: true
226
+ required: false
227
+ order: 6
228
+
229
+ api-performance:
230
+ id: api-performance
231
+ displayName: Performance
232
+ description: API performance patterns and optimization
233
+ domain: api
234
+ exclusive: false
235
+ required: false
236
+ order: 7
237
+
238
+ mobile-framework:
239
+ id: mobile-framework
240
+ displayName: Mobile Framework
241
+ description: Native mobile framework (React Native, Expo)
242
+ domain: mobile
243
+ exclusive: true
244
+ required: true
245
+ order: 1
246
+
247
+ mobile-platform:
248
+ id: mobile-platform
249
+ displayName: Mobile Platform
250
+ description: Mobile platform tooling and configuration
251
+ domain: mobile
252
+ exclusive: false
253
+ required: false
254
+ order: 2
255
+
256
+ shared-monorepo:
257
+ id: shared-monorepo
258
+ displayName: Monorepo
259
+ description: Monorepo tooling (Turborepo, Nx)
260
+ domain: shared
261
+ exclusive: true
262
+ required: false
263
+ order: 1
264
+
265
+ shared-tooling:
266
+ id: shared-tooling
267
+ displayName: Build Tooling
268
+ description: ESLint, Prettier, TypeScript, Vite
269
+ domain: shared
270
+ exclusive: false
271
+ required: false
272
+ order: 2
273
+
274
+ shared-security:
275
+ id: shared-security
276
+ displayName: Security
277
+ description: Authentication security patterns and best practices
278
+ domain: shared
279
+ exclusive: false
280
+ required: false
281
+ order: 3
282
+
283
+ shared-methodology:
284
+ id: shared-methodology
285
+ displayName: Methodology
286
+ description: Development methodology and engineering principles
287
+ domain: shared
288
+ exclusive: false
289
+ required: false
290
+ order: 4
291
+
292
+ shared-research:
293
+ id: shared-research
294
+ displayName: Research
295
+ description: Codebase investigation and research methodology
296
+ domain: shared
297
+ exclusive: false
298
+ required: false
299
+ order: 5
300
+
301
+ shared-reviewing:
302
+ id: shared-reviewing
303
+ displayName: Code Review
304
+ description: Code review patterns and guidance
305
+ domain: shared
306
+ exclusive: false
307
+ required: false
308
+ order: 6
309
+
310
+ shared-ci-cd:
311
+ id: shared-ci-cd
312
+ displayName: CI/CD
313
+ description: Continuous integration and deployment pipelines
314
+ domain: shared
315
+ exclusive: false
316
+ required: false
317
+ order: 7
318
+
319
+ cli-framework:
320
+ id: cli-framework
321
+ displayName: CLI Framework
322
+ description: CLI application framework (Commander, oclif)
323
+ domain: cli
324
+ exclusive: true
325
+ required: true
326
+ order: 1
327
+
328
+ cli-prompts:
329
+ id: cli-prompts
330
+ displayName: CLI Prompts
331
+ description: Interactive prompts and UI
332
+ domain: cli
333
+ exclusive: true
334
+ required: false
335
+ order: 2
336
+
337
+ cli-testing:
338
+ id: cli-testing
339
+ displayName: CLI Testing
340
+ description: CLI testing utilities
341
+ domain: cli
342
+ exclusive: false
343
+ required: false
344
+ order: 3