@ranimontagna/agent-toolkit 0.1.3 → 0.1.5

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 (44) hide show
  1. package/README.md +287 -264
  2. package/dist/src/args.js +10 -0
  3. package/dist/src/args.js.map +1 -1
  4. package/dist/src/menu.js +47 -4
  5. package/dist/src/menu.js.map +1 -1
  6. package/dist/src/skills.d.ts +1 -0
  7. package/dist/src/skills.js +28 -6
  8. package/dist/src/skills.js.map +1 -1
  9. package/dist/src/state.d.ts +2 -0
  10. package/dist/src/state.js +7 -0
  11. package/dist/src/state.js.map +1 -1
  12. package/dist/src/status.js +6 -2
  13. package/dist/src/status.js.map +1 -1
  14. package/dist/src/usage.js +2 -0
  15. package/dist/src/usage.js.map +1 -1
  16. package/docs/assets/install-plan.svg +29 -0
  17. package/docs/assets/install-skill-packages.svg +31 -0
  18. package/docs/assets/install-status.svg +32 -0
  19. package/package.json +10 -9
  20. package/setup-agent-toolkit.sh +1 -1
  21. package/skills/backend/fastify-best-practices/LICENSE +21 -0
  22. package/skills/backend/fastify-best-practices/NOTICE.md +11 -0
  23. package/skills/backend/fastify-best-practices/SKILL.md +75 -0
  24. package/skills/backend/fastify-best-practices/rules/authentication.md +521 -0
  25. package/skills/backend/fastify-best-practices/rules/configuration.md +217 -0
  26. package/skills/backend/fastify-best-practices/rules/content-type.md +387 -0
  27. package/skills/backend/fastify-best-practices/rules/cors-security.md +445 -0
  28. package/skills/backend/fastify-best-practices/rules/database.md +320 -0
  29. package/skills/backend/fastify-best-practices/rules/decorators.md +416 -0
  30. package/skills/backend/fastify-best-practices/rules/deployment.md +423 -0
  31. package/skills/backend/fastify-best-practices/rules/error-handling.md +412 -0
  32. package/skills/backend/fastify-best-practices/rules/hooks.md +464 -0
  33. package/skills/backend/fastify-best-practices/rules/http-proxy.md +247 -0
  34. package/skills/backend/fastify-best-practices/rules/logging.md +402 -0
  35. package/skills/backend/fastify-best-practices/rules/performance.md +425 -0
  36. package/skills/backend/fastify-best-practices/rules/plugins.md +320 -0
  37. package/skills/backend/fastify-best-practices/rules/routes.md +467 -0
  38. package/skills/backend/fastify-best-practices/rules/schemas.md +585 -0
  39. package/skills/backend/fastify-best-practices/rules/serialization.md +475 -0
  40. package/skills/backend/fastify-best-practices/rules/testing.md +536 -0
  41. package/skills/backend/fastify-best-practices/rules/typescript.md +458 -0
  42. package/skills/backend/fastify-best-practices/rules/websockets.md +421 -0
  43. package/skills/backend/fastify-best-practices/tile.json +11 -0
  44. package/skills/core/agent-toolkit-maintainer/SKILL.md +16 -14
package/README.md CHANGED
@@ -1,28 +1,41 @@
1
1
  # Agent Toolkit
2
2
 
3
- Personal toolkit for setting up AI coding agents with the tools I use most:
4
- RTK, Caveman, Superpowers, Graphify, GSD, third-party frontend skills and
5
- bundled personal skills.
3
+ One command to set up an AI coding-agent workspace across Claude Code, Codex
4
+ CLI, OpenCode and Gemini CLI.
6
5
 
7
- The installer source is written in TypeScript and compiled to a dependency-free
8
- Node CLI in `dist/`. The Bash file is kept only as a compatibility wrapper, so
9
- existing commands still work after building the project.
6
+ ```bash
7
+ npx -y @ranimontagna/agent-toolkit
8
+ ```
10
9
 
11
- The repository includes CI, security gates, MIT licensing, portable agent
12
- instructions and tests for the installer flows.
10
+ Agent Toolkit installs the tools and skills I use to run agentic coding
11
+ workflows: RTK, Caveman, Superpowers, Graphify, GSD, third-party frontend
12
+ skills and bundled Custom Skills.
13
13
 
14
- ## Runtimes
14
+ The installer is a TypeScript CLI published to npm. The Bash script is only a
15
+ compatibility wrapper for users who already run `setup-agent-toolkit.sh`.
15
16
 
16
- | Runtime | Support |
17
- |---|---|
18
- | Claude Code | Plugins and skills |
19
- | Codex CLI | Plugins, skills and local automation |
20
- | OpenCode | Skills plus package-driven tools |
21
- | Gemini CLI | Extensions and native Agent Skills install |
17
+ ## Install Flow
18
+
19
+ Interactive terminals use a Clack menu. The installer first shows what it can
20
+ detect locally, then asks what to install, then shows a final plan before doing
21
+ any work.
22
22
 
23
- ## Tools
23
+ ![Detected status terminal screen](docs/assets/install-status.svg)
24
24
 
25
- | Tool | What it adds |
25
+ Custom Skills are grouped by first-level package. Today this repository ships
26
+ `core`; future packages can be added under `skills/<package>/...` and they will
27
+ appear automatically in the menu.
28
+
29
+ ![Custom Skill package selection terminal screen](docs/assets/install-skill-packages.svg)
30
+
31
+ The final plan shows selected tools, runtimes, skill packages, scope and already
32
+ present skills before installation starts.
33
+
34
+ ![Install plan terminal screen](docs/assets/install-plan.svg)
35
+
36
+ ## What It Installs
37
+
38
+ | Area | What it adds |
26
39
  |---|---|
27
40
  | RTK | Token-aware shell proxy for coding-agent sessions |
28
41
  | Caveman | Terse response mode and optional agent integrations |
@@ -30,202 +43,212 @@ instructions and tests for the installer flows.
30
43
  | Graphify | Queryable knowledge graphs for codebases, docs and project context |
31
44
  | GSD | Phase-based planning, execution, verification and project control |
32
45
  | Frontend Skills | Third-party design skills installed through Agent Skills CLI |
33
- | Custom Skills | Personal skills bundled in this repository |
34
-
35
- Superpowers is installed automatically for Claude Code, Codex CLI and Gemini CLI.
36
- OpenCode support is intentionally not automated yet for Superpowers because the
37
- upstream install flow is not a stable single command. Caveman, GSD, Frontend
38
- Skills and Custom Skills can target Claude Code, Codex CLI, OpenCode and Gemini
39
- CLI. Graphify is installed through the official `graphifyy` package and
40
- registers itself for the selected runtimes.
41
-
42
- ## Repository Layout
43
-
44
- ```text
45
- bin/
46
- agent-toolkit.ts Thin TypeScript entrypoint
47
- .github/
48
- workflows/
49
- ci.yml Quality and security gates
50
- AGENTS.md Shared project rules for coding agents
51
- CLAUDE.md Pointer to AGENTS.md for Claude Code
52
- src/
53
- main.ts Installer orchestration
54
- args.ts CLI flag parsing
55
- menu.ts Interactive selection
56
- runtimes.ts Runtime CLI checks
57
- skills.ts Recursive skill discovery and installation
58
- installers/ Tool-specific installers
59
- dist/
60
- bin/
61
- agent-toolkit.js Compiled CLI used by npm and the wrapper
62
- setup-agent-toolkit.sh Bash compatibility wrapper
63
- package.json CLI metadata and test scripts
64
- tools.lock.json Pinned external tool sources and RTK checksums
65
- LICENSE MIT license
66
- skills/
67
- core/
68
- agent-toolkit-maintainer/
69
- SKILL.md
70
- backend/
71
- tests/
72
- unit/
73
- *.test.ts
74
- test-agent-toolkit.sh
75
- ```
76
-
77
- ## Prerequisites
46
+ | Custom Skills | Bundled skills from this repository, selected by package and scope |
78
47
 
79
- - Node.js 22+ for the full toolkit
80
- - `npx` for Caveman, GSD and third-party frontend skills
81
- - `git` for pinned third-party frontend skill sources
82
- - `npm` when using `--install-missing-clis`
83
- - `uv` for Graphify, or `pipx` when `GRAPHIFY_INSTALLER=pipx`
84
- - `tar` or `unzip` only when RTK needs to be downloaded
85
- - The runtime CLIs you want to target: `claude`, `codex`, `opencode`, and/or `gemini`
48
+ ## Supported Runtimes
86
49
 
87
- The installer can install missing selected runtime CLIs through npm when run
88
- with `--install-missing-clis`.
50
+ | Runtime | Support |
51
+ |---|---|
52
+ | Claude Code | Plugins and skills |
53
+ | Codex CLI | Plugins, skills and local automation |
54
+ | OpenCode | Skills plus package-driven tools |
55
+ | Gemini CLI | Extensions and native Agent Skills install |
89
56
 
90
- Install development dependencies and build the CLI before running from a clone:
57
+ Superpowers is installed automatically for Claude Code, Codex CLI and Gemini
58
+ CLI. OpenCode Superpowers support is not automated yet because the upstream
59
+ install flow is not a stable single command.
91
60
 
92
- ```bash
93
- npm install
94
- npm run build
95
- ```
61
+ Caveman, GSD, Frontend Skills and Custom Skills can target Claude Code, Codex
62
+ CLI, OpenCode and Gemini CLI. Graphify is installed through the official
63
+ `graphifyy` package and registers itself for selected runtimes.
96
64
 
97
- ## Install
65
+ ## Quick Commands
98
66
 
99
- Run the published package directly:
67
+ Run the interactive installer:
100
68
 
101
69
  ```bash
102
70
  npx -y @ranimontagna/agent-toolkit
103
71
  ```
104
72
 
105
- Interactive runs show detected local status before installation, including
106
- runtime CLIs on `PATH` and already-copied Custom Skills when those can be
107
- verified. They ask which tools, runtimes and skill scopes to install, then show
108
- an install plan and ask for confirmation. Pressing Enter does not silently
109
- install the full kit; choose `all` explicitly when that is what you want.
110
- Interactive terminals use a visual Clack menu. Pipe answers or set
111
- `AGENT_TOOLKIT_MENU=plain` to use the line-based fallback.
112
-
113
- Run the full kit for Codex in one command:
73
+ Install the full kit for Codex CLI:
114
74
 
115
75
  ```bash
116
76
  npx -y @ranimontagna/agent-toolkit --all --codex
117
77
  ```
118
78
 
119
- Run the full kit for every supported runtime:
79
+ Install the full kit for every supported runtime:
120
80
 
121
81
  ```bash
122
82
  npx -y @ranimontagna/agent-toolkit --all --all-runtimes
123
83
  ```
124
84
 
125
- From a local clone, install development dependencies and build the CLI first:
85
+ Install only Graphify for Codex CLI:
126
86
 
127
87
  ```bash
128
- npm install
129
- npm run build
130
- bash setup-agent-toolkit.sh
88
+ npx -y @ranimontagna/agent-toolkit --graphify-only --codex
131
89
  ```
132
90
 
133
- You can also call the compiled Node CLI directly from a built clone:
91
+ Install only third-party frontend design skills for Codex CLI:
134
92
 
135
93
  ```bash
136
- node dist/bin/agent-toolkit.js
94
+ npx -y @ranimontagna/agent-toolkit --frontend-skills-only --codex
137
95
  ```
138
96
 
139
- Target one runtime:
97
+ Install only bundled Custom Skills into the current project:
140
98
 
141
99
  ```bash
142
- npx -y @ranimontagna/agent-toolkit --all --codex
100
+ npx -y @ranimontagna/agent-toolkit --skills-only --codex --local
143
101
  ```
144
102
 
145
- Install a single tool:
103
+ Install only the `core` Custom Skills package:
146
104
 
147
105
  ```bash
148
- npx -y @ranimontagna/agent-toolkit --gsd-only --all-runtimes
106
+ npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-package core
149
107
  ```
150
108
 
151
- Install Graphify for Codex only:
109
+ List bundled Custom Skills and their repository scope paths:
152
110
 
153
111
  ```bash
154
- npx -y @ranimontagna/agent-toolkit --graphify-only --codex
112
+ npx -y @ranimontagna/agent-toolkit --skills-list
155
113
  ```
156
114
 
157
- Install only third-party frontend design skills for Codex:
115
+ Install missing selected runtime CLIs before configuring them:
158
116
 
159
117
  ```bash
160
- npx -y @ranimontagna/agent-toolkit --frontend-skills-only --codex
118
+ npx -y @ranimontagna/agent-toolkit --all --gemini --install-missing-clis
161
119
  ```
162
120
 
163
- Install only bundled skills into the current project:
121
+ ## Custom Skills
164
122
 
165
- ```bash
166
- npx -y @ranimontagna/agent-toolkit --skills-only --all-runtimes --local
123
+ Bundled skills live under `skills/`.
124
+
125
+ ```text
126
+ skills/
127
+ core/
128
+ agent-toolkit-maintainer/
129
+ SKILL.md
130
+ backend/
131
+ fastify-best-practices/
132
+ SKILL.md
133
+ rules/
134
+ ```
135
+
136
+ The first path segment is a selectable package:
137
+
138
+ ```text
139
+ skills/<package>/<optional-scope>/<skill-name>/SKILL.md
167
140
  ```
168
141
 
169
- Install only React-scoped skills:
142
+ Runtime installs are flat even when repository paths are nested. For example,
143
+ `skills/backend/node/fastify-api-patterns/SKILL.md` installs as:
144
+
145
+ ```text
146
+ ~/.codex/skills/fastify-api-patterns/
147
+ ```
148
+
149
+ Use `--skills-package` to select first-level packages:
170
150
 
171
151
  ```bash
172
- npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-scope frontend/react
152
+ npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-package core
173
153
  ```
174
154
 
175
- List available skills and their scope paths:
155
+ Use `--skills-scope` to select a narrower path:
176
156
 
177
157
  ```bash
178
- npx -y @ranimontagna/agent-toolkit --skills-list
158
+ npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-scope backend/node
179
159
  ```
180
160
 
181
- Install missing selected CLIs before configuring them:
161
+ Both filters can be combined. The selected package filter runs first, then the
162
+ scope filter narrows the result.
182
163
 
183
164
  ```bash
184
- npx -y @ranimontagna/agent-toolkit --all --gemini --install-missing-clis
165
+ npx -y @ranimontagna/agent-toolkit \
166
+ --skills-only \
167
+ --codex \
168
+ --skills-package backend \
169
+ --skills-scope backend/node
170
+ ```
171
+
172
+ Each skill must be a directory containing `SKILL.md` with frontmatter:
173
+
174
+ ```markdown
175
+ ---
176
+ name: my-skill
177
+ description: Use when doing a specific kind of task.
178
+ ---
179
+
180
+ # My Skill
181
+
182
+ Follow these steps...
185
183
  ```
186
184
 
187
- ## Flags
185
+ ### Included Skill Packages
186
+
187
+ | Package | Skill | Source |
188
+ |---|---|---|
189
+ | `core` | `agent-toolkit-maintainer` | Maintained in this repository |
190
+ | `backend` | `fastify-best-practices` | Copied from Matteo Collina's [`mcollina/skills`](https://github.com/mcollina/skills/tree/main/skills/fastify) under the MIT license |
191
+
192
+ The installer validates:
193
+
194
+ - `SKILL.md` exists;
195
+ - frontmatter starts and closes with `---`;
196
+ - `name` and `description` are present;
197
+ - `name` uses lowercase letters, numbers and hyphens;
198
+ - `description` is non-empty and under 1024 characters.
199
+
200
+ Third-party frontend design skills are not vendored as bundled Custom Skills.
201
+ The `frontend-skills` tool installs them externally through the Agent Skills CLI
202
+ from pinned public sources.
203
+
204
+ ## CLI Reference
188
205
 
189
206
  ```text
190
- --all Install every tool without the menu
191
- --rtk-only Install only RTK
192
- --caveman-only Install only Caveman
193
- --superpowers-only Install only Superpowers
194
- --graphify-only Install only Graphify
195
- --gsd-only Install only GSD
196
- --frontend-skills-only Install only third-party frontend skills
197
- --skills-only Install only Custom Skills
198
- --no-rtk Skip RTK
199
- --no-caveman Skip Caveman
200
- --no-superpowers Skip Superpowers
201
- --no-graphify Skip Graphify
202
- --no-gsd Skip GSD
203
- --no-frontend-skills Skip third-party frontend skills
204
- --no-skills Skip Custom Skills
205
-
206
- --all-runtimes Target Claude Code, Codex CLI, OpenCode and Gemini CLI
207
- --claude Target only Claude Code
208
- --codex Target only Codex CLI
209
- --opencode Target only OpenCode
210
- --gemini Target only Gemini CLI
211
- --no-claude Skip Claude Code
212
- --no-codex Skip Codex CLI
213
- --no-opencode Skip OpenCode
214
- --no-gemini Skip Gemini CLI
215
-
216
- --global Install runtime assets into user config directories
217
- --local Install runtime assets into the current project
218
- --skills-dir DIR Use another source directory for skills
219
- --skills-scope SCOPE Install skills under a relative scope path, repeatable
220
- --skills-list List discovered skills and exit
221
- --install-missing-clis Install selected runtime CLIs if missing
222
- --allow-mutable-sources Allow explicit mutable source overrides like @latest
223
- --help, -h Show help
207
+ Tools:
208
+ --all Install every tool without the menu
209
+ --rtk-only Install only RTK
210
+ --caveman-only Install only Caveman
211
+ --superpowers-only Install only Superpowers
212
+ --graphify-only Install only Graphify
213
+ --gsd-only Install only GSD
214
+ --frontend-skills-only Install only third-party frontend skills
215
+ --skills-only Install only Custom Skills
216
+ --no-rtk Skip RTK
217
+ --no-caveman Skip Caveman
218
+ --no-superpowers Skip Superpowers
219
+ --no-graphify Skip Graphify
220
+ --no-gsd Skip GSD
221
+ --no-frontend-skills Skip third-party frontend skills
222
+ --no-skills Skip Custom Skills
223
+
224
+ Runtimes:
225
+ --all-runtimes Target Claude Code, Codex CLI, OpenCode and Gemini CLI
226
+ --claude Target only Claude Code
227
+ --codex Target only Codex CLI
228
+ --opencode Target only OpenCode
229
+ --gemini Target only Gemini CLI
230
+ --no-claude Skip Claude Code
231
+ --no-codex Skip Codex CLI
232
+ --no-opencode Skip OpenCode
233
+ --no-gemini Skip Gemini CLI
234
+
235
+ Install scope:
236
+ --global Install runtime assets into user config directories
237
+ --local Install runtime assets into the current project
238
+ --skills-dir DIR Use another source directory for Custom Skills
239
+ --skills-package NAME Install Custom Skills from a first-level package
240
+ --skills-scope SCOPE Install skills under a relative scope path
241
+ --skills-list List discovered Custom Skills and exit
242
+
243
+ Other:
244
+ --install-missing-clis Install selected runtime CLIs if missing
245
+ --allow-mutable-sources Allow explicit mutable package sources like @latest
246
+ --help, -h Show help
224
247
  ```
225
248
 
226
- ## Configuration
249
+ Repeat `--skills-package` or `--skills-scope` to select more than one filter.
227
250
 
228
- The installer can be customized with environment variables:
251
+ ## Configuration
229
252
 
230
253
  ```text
231
254
  RTK_INSTALL_DIR RTK binary install directory
@@ -239,7 +262,8 @@ GSD_SCOPE global or local
239
262
  TOOLS_LOCK_PATH External tool provenance lock path
240
263
  ALLOW_MUTABLE_SOURCES Set to 1 to allow mutable source overrides
241
264
  AGENT_TOOLKIT_MENU Set to plain to force the line-based interactive menu
242
- CUSTOM_SKILLS_DIR Source directory for custom skills
265
+ CUSTOM_SKILLS_DIR Source directory for Custom Skills
266
+ SKILLS_PACKAGE Comma-separated first-level skill package filters
243
267
  SKILLS_SCOPE Comma-separated skill scope filters
244
268
  CLAUDE_CLI_PACKAGE npm package used to install Claude Code CLI
245
269
  CODEX_CLI_PACKAGE npm package used to install Codex CLI
@@ -247,7 +271,7 @@ OPENCODE_CLI_PACKAGE npm package used to install OpenCode CLI
247
271
  GEMINI_CLI_PACKAGE npm package used to install Gemini CLI
248
272
  ```
249
273
 
250
- Defaults:
274
+ Defaults come from `tools.lock.json`:
251
275
 
252
276
  ```text
253
277
  CAVEMAN_PACKAGE=github:JuliusBrussee/caveman#655b7d9c5431f822264b7732e9901c5578ac84cf
@@ -261,171 +285,170 @@ OPENCODE_CLI_PACKAGE=opencode-ai@1.15.13
261
285
  GEMINI_CLI_PACKAGE=@google/gemini-cli@0.45.0
262
286
  ```
263
287
 
264
- These defaults come from `tools.lock.json`. Mutable overrides like `@latest`,
265
- unpinned npm packages, or GitHub package sources without a full commit SHA are
266
- blocked unless you pass `--allow-mutable-sources` or set
267
- `ALLOW_MUTABLE_SOURCES=1`.
288
+ Mutable overrides like `@latest`, unpinned npm packages or GitHub package
289
+ sources without a full commit SHA are blocked unless you pass
290
+ `--allow-mutable-sources` or set `ALLOW_MUTABLE_SOURCES=1`.
291
+
292
+ ## Security Model
268
293
 
269
- ## External Tool Provenance
294
+ This project has two supply-chain boundaries:
270
295
 
271
- The CI protects this repository's own dependency graph with `npm audit`,
272
- registry signature checks, dependency review and Gitleaks. The installer also
273
- protects tools downloaded later by reading `tools.lock.json` and rejecting
274
- mutable external sources by default.
296
+ - repository dependencies, controlled by `pnpm-lock.yaml`, CI, `pnpm audit`,
297
+ pnpm supply-chain policies and npm release provenance;
298
+ - external tools installed by the runtime installer, controlled by
299
+ `tools.lock.json` and runtime provenance validation.
300
+
301
+ Repository installs are configured in `pnpm-workspace.yaml` to delay newly
302
+ published package versions for 24 hours, enforce that delay strictly, reject
303
+ missing registry publish timestamps, block transitive exotic package sources and
304
+ fail trust downgrades for packages that previously had stronger publish
305
+ evidence.
275
306
 
276
307
  Current external sources:
277
308
 
278
309
  | Tool | Locked source | Runtime verification |
279
310
  |---|---|---|
280
311
  | RTK | GitHub release `rtk-ai/rtk@v0.42.1` | Verifies the selected asset SHA-256 before extraction |
281
- | Caveman | `JuliusBrussee/caveman` at commit `655b7d9c5431f822264b7732e9901c5578ac84cf` | Installs through an immutable GitHub npm spec |
312
+ | Caveman | `JuliusBrussee/caveman` at commit `655b7d9c5431f822264b7732e9901c5578ac84cf` | Immutable GitHub npm spec |
282
313
  | Graphify | `graphifyy==0.8.31` | Blocks unpinned package overrides |
283
314
  | GSD | `get-shit-done-cc@1.42.3` | Blocks `@latest` unless explicitly allowed |
284
- | Frontend Skills | `skills@1.5.10`, `pbakaus/impeccable` and `Leonxlnx/taste-skill` at pinned commits | Clones pinned refs, then installs selected skills through Agent Skills CLI |
285
- | Runtime CLIs | Exact npm versions for Claude, Codex, OpenCode and Gemini | Used when `--install-missing-clis` is enabled |
286
-
287
- Use `TOOLS_LOCK_PATH=/path/to/tools.lock.json` to test another lock file. Keep
288
- that file committed if it represents the expected public installer behavior.
315
+ | Frontend Skills | `skills@1.5.10`, `pbakaus/impeccable` and `Leonxlnx/taste-skill` at pinned commits | Clones pinned refs before install |
316
+ | Runtime CLIs | Exact npm versions for Claude, Codex, OpenCode and Gemini | Used only when `--install-missing-clis` is enabled |
289
317
 
290
- ## Adding Skills
318
+ Bundled third-party skills preserve upstream attribution and license files. The
319
+ Fastify skill is copied from `mcollina/skills` at commit
320
+ `5b2a81354b6d10325da0db9decc9ce5ecc714138` under the MIT license.
291
321
 
292
- Add personal skills under a scope path:
322
+ Releases use npm trusted publishing through GitHub Actions OIDC. The npm
323
+ package is published without a long-lived npm token, and npm automatically
324
+ generates provenance for public packages published through trusted publishing.
293
325
 
294
- ```text
295
- skills/<scope>/<skill-name>/SKILL.md
296
- ```
297
-
298
- Suggested organization:
326
+ ## Repository Layout
299
327
 
300
328
  ```text
329
+ bin/
330
+ agent-toolkit.ts Thin TypeScript entrypoint
331
+ .github/
332
+ workflows/
333
+ ci.yml Quality and security gates
334
+ release.yml Trusted publishing release workflow
335
+ src/
336
+ main.ts Installer orchestration
337
+ args.ts CLI flag parsing
338
+ menu.ts Interactive selection
339
+ status.ts Local install status detection
340
+ runtimes.ts Runtime CLI checks
341
+ skills.ts Recursive skill discovery and installation
342
+ installers/ Tool-specific installers
343
+ dist/
344
+ bin/
345
+ agent-toolkit.js Compiled CLI used by npm and the wrapper
346
+ docs/
347
+ assets/ README terminal screenshots
301
348
  skills/
302
349
  core/
303
350
  agent-toolkit-maintainer/
304
351
  SKILL.md
305
- frontend/
306
- react/
307
- react-component-architecture/
308
- SKILL.md
309
352
  backend/
310
- node/
311
- fastify-api-patterns/
312
- SKILL.md
313
- go/
314
- go-service-patterns/
315
- SKILL.md
316
- ```
317
-
318
- The installer discovers `SKILL.md` files recursively. The repository path is
319
- used only for organization; runtime installs remain flat:
320
-
321
- ```text
322
- ~/.codex/skills/react-component-architecture/
323
- ~/.codex/skills/fastify-api-patterns/
324
- ~/.codex/skills/go-service-patterns/
325
- ```
326
-
327
- Third-party frontend design skills are not bundled as personal skills. The
328
- `frontend-skills` tool installs them externally:
329
-
330
- | Runtime folder | Skill name | Source |
331
- |---|---|---|
332
- | `impeccable` | `impeccable` | `pbakaus/impeccable`, Apache-2.0 |
333
- | `design-taste-frontend` | `design-taste-frontend` | `Leonxlnx/taste-skill`, MIT |
334
-
335
- Each skill should be concise and self-contained:
336
-
337
- ```markdown
338
- ---
339
- name: my-skill
340
- description: Use when doing a specific kind of task.
341
- ---
342
-
343
- # My Skill
344
-
345
- Follow these steps...
353
+ fastify-best-practices/
354
+ SKILL.md
355
+ rules/
356
+ tests/
357
+ unit/
358
+ test-agent-toolkit.sh
359
+ AGENTS.md Shared project rules for coding agents
360
+ CLAUDE.md Pointer to AGENTS.md for Claude Code
361
+ pnpm-lock.yaml Repository dependency lockfile
362
+ pnpm-workspace.yaml pnpm workspace and supply-chain policy settings
363
+ setup-agent-toolkit.sh Bash compatibility wrapper
364
+ tools.lock.json Pinned external tool sources and RTK checksums
346
365
  ```
347
366
 
348
- The installer validates the core Agent Skills requirements:
367
+ ## Development
349
368
 
350
- - each skill is a directory containing `SKILL.md`;
351
- - `SKILL.md` starts with YAML frontmatter;
352
- - `name` and `description` are required;
353
- - `name` uses lowercase letters, numbers and hyphens only;
354
- - `description` is non-empty and under 1024 characters.
369
+ Prerequisites:
355
370
 
356
- For larger skills, put detailed supporting material in `references/`, scripts in
357
- `scripts/`, and reusable assets in `assets/`.
371
+ - Node.js 22+ for the full toolkit;
372
+ - `npx` for Caveman, GSD and third-party frontend skills;
373
+ - `git` for pinned third-party frontend skill sources;
374
+ - `pnpm` 11.x for repository development;
375
+ - `npm` when using `--install-missing-clis` or publishing through npm trusted
376
+ publishing;
377
+ - `uv` for Graphify, or `pipx` when `GRAPHIFY_INSTALLER=pipx`;
378
+ - `tar` or `unzip` only when RTK needs to be downloaded;
379
+ - runtime CLIs you want to target: `claude`, `codex`, `opencode`, `gemini`.
358
380
 
359
- Use `--skills-scope` to install only a subset:
381
+ Install dependencies and build from a clone:
360
382
 
361
383
  ```bash
362
- bash setup-agent-toolkit.sh --skills-only --codex --skills-scope backend/node
384
+ pnpm install
385
+ pnpm run build
386
+ bash setup-agent-toolkit.sh
363
387
  ```
364
388
 
365
- Gemini CLI uses its native command:
389
+ Run the local Node CLI directly:
366
390
 
367
391
  ```bash
368
- gemini skills install skills/<skill-name> --scope user --consent
392
+ node dist/bin/agent-toolkit.js
369
393
  ```
370
394
 
371
- For local/project installs, the setup uses `--scope workspace`.
372
-
373
- ## Verification
374
-
375
- Run the full local check:
395
+ Quality scripts:
376
396
 
377
397
  ```bash
378
- npm run check
398
+ pnpm run build
399
+ pnpm run typecheck
400
+ pnpm run lint
401
+ pnpm run lint:fix
402
+ pnpm run format
403
+ pnpm run security
404
+ pnpm run test:unit
405
+ pnpm run test:integration
406
+ pnpm test
407
+ pnpm run check
379
408
  ```
380
409
 
381
- Available quality scripts:
382
-
383
- ```bash
384
- npm run build # Compile TypeScript into dist/
385
- npm run typecheck # Type-check source and unit tests
386
- npm run lint # Biome lint and format checks
387
- npm run lint:fix # Apply safe Biome fixes
388
- npm run format # Format with Biome
389
- npm run security # npm vulnerability audit and registry signature checks
390
- npm run security:audit # Fail on moderate+ vulnerable dependencies
391
- npm run security:signatures # Verify npm signatures and attestations
392
- npm run test:unit # Vitest unit tests
393
- npm run test:integration # Shell integration test
394
- npm test # Unit + integration tests
395
- ```
410
+ `pnpm run check` is the release gate. It runs lint, typecheck, unit tests, build,
411
+ compiled JavaScript syntax checks, Bash syntax checks and the shell integration
412
+ test.
396
413
 
397
414
  The shell integration test validates the wrapper, flags, fake runtime CLIs,
398
415
  installer command wiring, skill discovery and public-safe reference checks.
399
416
 
400
- The GitHub Actions CI runs four gates:
417
+ ## CI And Release
418
+
419
+ GitHub Actions runs:
401
420
 
402
421
  - `Check`: lint, typecheck, unit tests, build and integration tests;
403
422
  - `Secret scan`: Gitleaks over full Git history;
404
- - `Dependency audit`: `npm audit` and `npm audit signatures`;
405
- - `Dependency review`: blocks PRs that add moderate-or-higher vulnerable dependencies.
423
+ - `Dependency audit`: `pnpm install --frozen-lockfile --ignore-scripts` and
424
+ `pnpm audit`;
425
+ - `Dependency review`: blocks PRs that add moderate-or-higher vulnerable
426
+ dependencies.
427
+
428
+ Release a new npm version by updating `package.json`, pushing the change to
429
+ `main`, then pushing a matching tag:
406
430
 
407
- These gates cover repository code, npm dependencies and pull-request dependency
408
- changes. External tool version safety is handled by `tools.lock.json` plus
409
- runtime provenance checks in the installer.
431
+ ```bash
432
+ git tag v0.1.5
433
+ git push origin v0.1.5
434
+ ```
410
435
 
411
- ## Maintenance
436
+ The `Release` workflow runs the full check and publishes the scoped package to
437
+ npm through trusted publishing. Dependency install and checks use pnpm, but the
438
+ final publish step intentionally stays on `npm publish` because npm trusted
439
+ publishing OIDC is handled by the npm CLI. Configure the npm package trusted
440
+ publisher for GitHub Actions with workflow filename `release.yml` before
441
+ pushing a release tag.
442
+
443
+ ## Maintenance Rules
412
444
 
413
445
  Keep this repository public-safe:
414
446
 
415
447
  - do not add company-specific URLs, tokens, secrets or internal project names;
416
- - prefer public package installers and configurable sources;
448
+ - keep third-party skills on pinned public sources, and only vendor them when
449
+ the license permits copying and the repository preserves attribution;
417
450
  - keep the installer idempotent;
451
+ - keep `tools.lock.json` as the source of truth for external tool versions;
418
452
  - cover pure module behavior with Vitest;
419
453
  - keep the shell integration test around behavior that can regress;
420
454
  - document what is automatic and what still depends on each runtime CLI.
421
-
422
- Release a new npm version by updating `package.json`, pushing the change to
423
- `main`, then pushing a matching tag:
424
-
425
- ```bash
426
- git tag v0.1.3
427
- git push origin v0.1.3
428
- ```
429
-
430
- The `Release` workflow runs the full check and publishes the scoped package to
431
- npm. Configure the repository secret `NPM_TOKEN` before pushing a release tag.