@ranimontagna/agent-toolkit 0.1.4 → 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 (30) hide show
  1. package/README.md +282 -277
  2. package/docs/assets/install-plan.svg +29 -0
  3. package/docs/assets/install-skill-packages.svg +31 -0
  4. package/docs/assets/install-status.svg +32 -0
  5. package/package.json +10 -9
  6. package/setup-agent-toolkit.sh +1 -1
  7. package/skills/backend/fastify-best-practices/LICENSE +21 -0
  8. package/skills/backend/fastify-best-practices/NOTICE.md +11 -0
  9. package/skills/backend/fastify-best-practices/SKILL.md +75 -0
  10. package/skills/backend/fastify-best-practices/rules/authentication.md +521 -0
  11. package/skills/backend/fastify-best-practices/rules/configuration.md +217 -0
  12. package/skills/backend/fastify-best-practices/rules/content-type.md +387 -0
  13. package/skills/backend/fastify-best-practices/rules/cors-security.md +445 -0
  14. package/skills/backend/fastify-best-practices/rules/database.md +320 -0
  15. package/skills/backend/fastify-best-practices/rules/decorators.md +416 -0
  16. package/skills/backend/fastify-best-practices/rules/deployment.md +423 -0
  17. package/skills/backend/fastify-best-practices/rules/error-handling.md +412 -0
  18. package/skills/backend/fastify-best-practices/rules/hooks.md +464 -0
  19. package/skills/backend/fastify-best-practices/rules/http-proxy.md +247 -0
  20. package/skills/backend/fastify-best-practices/rules/logging.md +402 -0
  21. package/skills/backend/fastify-best-practices/rules/performance.md +425 -0
  22. package/skills/backend/fastify-best-practices/rules/plugins.md +320 -0
  23. package/skills/backend/fastify-best-practices/rules/routes.md +467 -0
  24. package/skills/backend/fastify-best-practices/rules/schemas.md +585 -0
  25. package/skills/backend/fastify-best-practices/rules/serialization.md +475 -0
  26. package/skills/backend/fastify-best-practices/rules/testing.md +536 -0
  27. package/skills/backend/fastify-best-practices/rules/typescript.md +458 -0
  28. package/skills/backend/fastify-best-practices/rules/websockets.md +421 -0
  29. package/skills/backend/fastify-best-practices/tile.json +11 -0
  30. 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
+
23
+ ![Detected status terminal screen](docs/assets/install-status.svg)
22
24
 
23
- ## Tools
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.
24
28
 
25
- | Tool | What it adds |
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,209 +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.
46
+ | Custom Skills | Bundled skills from this repository, selected by package and scope |
41
47
 
42
- ## Repository Layout
48
+ ## Supported Runtimes
43
49
 
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
78
-
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`
86
-
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, Custom Skill packages and skill scopes
108
- to install, then show an install plan and ask for confirmation. Pressing Enter
109
- does not silently install the full kit; choose `all` explicitly when that is
110
- what you want. Interactive terminals use a visual Clack menu. Pipe answers or
111
- set `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
140
+ ```
141
+
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/
167
147
  ```
168
148
 
169
- Install only one bundled skill package:
149
+ Use `--skills-package` to select first-level packages:
170
150
 
171
151
  ```bash
172
152
  npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-package core
173
153
  ```
174
154
 
175
- Install only React-scoped skills:
155
+ Use `--skills-scope` to select a narrower path:
176
156
 
177
157
  ```bash
178
- npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-scope frontend/react
158
+ npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-scope backend/node
179
159
  ```
180
160
 
181
- List available skills and their scope paths:
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 --skills-list
165
+ npx -y @ranimontagna/agent-toolkit \
166
+ --skills-only \
167
+ --codex \
168
+ --skills-package backend \
169
+ --skills-scope backend/node
185
170
  ```
186
171
 
187
- Install missing selected CLIs before configuring them:
172
+ Each skill must be a directory containing `SKILL.md` with frontmatter:
188
173
 
189
- ```bash
190
- npx -y @ranimontagna/agent-toolkit --all --gemini --install-missing-clis
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...
191
183
  ```
192
184
 
193
- ## 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
194
205
 
195
206
  ```text
196
- --all Install every tool without the menu
197
- --rtk-only Install only RTK
198
- --caveman-only Install only Caveman
199
- --superpowers-only Install only Superpowers
200
- --graphify-only Install only Graphify
201
- --gsd-only Install only GSD
202
- --frontend-skills-only Install only third-party frontend skills
203
- --skills-only Install only Custom Skills
204
- --no-rtk Skip RTK
205
- --no-caveman Skip Caveman
206
- --no-superpowers Skip Superpowers
207
- --no-graphify Skip Graphify
208
- --no-gsd Skip GSD
209
- --no-frontend-skills Skip third-party frontend skills
210
- --no-skills Skip Custom Skills
211
-
212
- --all-runtimes Target Claude Code, Codex CLI, OpenCode and Gemini CLI
213
- --claude Target only Claude Code
214
- --codex Target only Codex CLI
215
- --opencode Target only OpenCode
216
- --gemini Target only Gemini CLI
217
- --no-claude Skip Claude Code
218
- --no-codex Skip Codex CLI
219
- --no-opencode Skip OpenCode
220
- --no-gemini Skip Gemini CLI
221
-
222
- --global Install runtime assets into user config directories
223
- --local Install runtime assets into the current project
224
- --skills-dir DIR Use another source directory for skills
225
- --skills-package NAME Install skills from a first-level package, repeatable
226
- --skills-scope SCOPE Install skills under a relative scope path, repeatable
227
- --skills-list List discovered skills and exit
228
- --install-missing-clis Install selected runtime CLIs if missing
229
- --allow-mutable-sources Allow explicit mutable source overrides like @latest
230
- --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
231
247
  ```
232
248
 
233
- ## Configuration
249
+ Repeat `--skills-package` or `--skills-scope` to select more than one filter.
234
250
 
235
- The installer can be customized with environment variables:
251
+ ## Configuration
236
252
 
237
253
  ```text
238
254
  RTK_INSTALL_DIR RTK binary install directory
@@ -246,7 +262,7 @@ GSD_SCOPE global or local
246
262
  TOOLS_LOCK_PATH External tool provenance lock path
247
263
  ALLOW_MUTABLE_SOURCES Set to 1 to allow mutable source overrides
248
264
  AGENT_TOOLKIT_MENU Set to plain to force the line-based interactive menu
249
- CUSTOM_SKILLS_DIR Source directory for custom skills
265
+ CUSTOM_SKILLS_DIR Source directory for Custom Skills
250
266
  SKILLS_PACKAGE Comma-separated first-level skill package filters
251
267
  SKILLS_SCOPE Comma-separated skill scope filters
252
268
  CLAUDE_CLI_PACKAGE npm package used to install Claude Code CLI
@@ -255,7 +271,7 @@ OPENCODE_CLI_PACKAGE npm package used to install OpenCode CLI
255
271
  GEMINI_CLI_PACKAGE npm package used to install Gemini CLI
256
272
  ```
257
273
 
258
- Defaults:
274
+ Defaults come from `tools.lock.json`:
259
275
 
260
276
  ```text
261
277
  CAVEMAN_PACKAGE=github:JuliusBrussee/caveman#655b7d9c5431f822264b7732e9901c5578ac84cf
@@ -269,181 +285,170 @@ OPENCODE_CLI_PACKAGE=opencode-ai@1.15.13
269
285
  GEMINI_CLI_PACKAGE=@google/gemini-cli@0.45.0
270
286
  ```
271
287
 
272
- These defaults come from `tools.lock.json`. Mutable overrides like `@latest`,
273
- unpinned npm packages, or GitHub package sources without a full commit SHA are
274
- blocked unless you pass `--allow-mutable-sources` or set
275
- `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
276
293
 
277
- ## External Tool Provenance
294
+ This project has two supply-chain boundaries:
278
295
 
279
- The CI protects this repository's own dependency graph with `npm audit`,
280
- registry signature checks, dependency review and Gitleaks. The installer also
281
- protects tools downloaded later by reading `tools.lock.json` and rejecting
282
- 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.
283
306
 
284
307
  Current external sources:
285
308
 
286
309
  | Tool | Locked source | Runtime verification |
287
310
  |---|---|---|
288
311
  | RTK | GitHub release `rtk-ai/rtk@v0.42.1` | Verifies the selected asset SHA-256 before extraction |
289
- | Caveman | `JuliusBrussee/caveman` at commit `655b7d9c5431f822264b7732e9901c5578ac84cf` | Installs through an immutable GitHub npm spec |
312
+ | Caveman | `JuliusBrussee/caveman` at commit `655b7d9c5431f822264b7732e9901c5578ac84cf` | Immutable GitHub npm spec |
290
313
  | Graphify | `graphifyy==0.8.31` | Blocks unpinned package overrides |
291
314
  | GSD | `get-shit-done-cc@1.42.3` | Blocks `@latest` unless explicitly allowed |
292
- | 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 |
293
- | Runtime CLIs | Exact npm versions for Claude, Codex, OpenCode and Gemini | Used when `--install-missing-clis` is enabled |
294
-
295
- Use `TOOLS_LOCK_PATH=/path/to/tools.lock.json` to test another lock file. Keep
296
- that file committed if it represents the expected public installer behavior.
297
-
298
- ## Adding Skills
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 |
299
317
 
300
- Add personal skills under a scope path:
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.
301
321
 
302
- ```text
303
- skills/<scope>/<skill-name>/SKILL.md
304
- ```
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.
305
325
 
306
- Suggested organization:
326
+ ## Repository Layout
307
327
 
308
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
309
348
  skills/
310
349
  core/
311
350
  agent-toolkit-maintainer/
312
351
  SKILL.md
313
- frontend/
314
- react/
315
- react-component-architecture/
316
- SKILL.md
317
352
  backend/
318
- node/
319
- fastify-api-patterns/
320
- SKILL.md
321
- go/
322
- go-service-patterns/
323
- SKILL.md
324
- ```
325
-
326
- The installer discovers `SKILL.md` files recursively. The first path segment is
327
- treated as a selectable skill package, for example `core`, `frontend`, or
328
- `backend`. The remaining repository path is used only for organization; runtime
329
- installs remain flat:
330
-
331
- ```text
332
- ~/.codex/skills/react-component-architecture/
333
- ~/.codex/skills/fastify-api-patterns/
334
- ~/.codex/skills/go-service-patterns/
335
- ```
336
-
337
- Third-party frontend design skills are not bundled as personal skills. The
338
- `frontend-skills` tool installs them externally:
339
-
340
- | Runtime folder | Skill name | Source |
341
- |---|---|---|
342
- | `impeccable` | `impeccable` | `pbakaus/impeccable`, Apache-2.0 |
343
- | `design-taste-frontend` | `design-taste-frontend` | `Leonxlnx/taste-skill`, MIT |
344
-
345
- Each skill should be concise and self-contained:
346
-
347
- ```markdown
348
- ---
349
- name: my-skill
350
- description: Use when doing a specific kind of task.
351
- ---
352
-
353
- # My Skill
354
-
355
- 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
356
365
  ```
357
366
 
358
- The installer validates the core Agent Skills requirements:
359
-
360
- - each skill is a directory containing `SKILL.md`;
361
- - `SKILL.md` starts with YAML frontmatter;
362
- - `name` and `description` are required;
363
- - `name` uses lowercase letters, numbers and hyphens only;
364
- - `description` is non-empty and under 1024 characters.
365
-
366
- For larger skills, put detailed supporting material in `references/`, scripts in
367
- `scripts/`, and reusable assets in `assets/`.
367
+ ## Development
368
368
 
369
- Use `--skills-package` to install one or more first-level packages:
369
+ Prerequisites:
370
370
 
371
- ```bash
372
- bash setup-agent-toolkit.sh --skills-only --codex --skills-package core
373
- ```
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`.
374
380
 
375
- Use `--skills-scope` to install only a narrower subset:
381
+ Install dependencies and build from a clone:
376
382
 
377
383
  ```bash
378
- 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
379
387
  ```
380
388
 
381
- Gemini CLI uses its native command:
389
+ Run the local Node CLI directly:
382
390
 
383
391
  ```bash
384
- gemini skills install skills/<skill-name> --scope user --consent
392
+ node dist/bin/agent-toolkit.js
385
393
  ```
386
394
 
387
- For local/project installs, the setup uses `--scope workspace`.
388
-
389
- ## Verification
390
-
391
- Run the full local check:
395
+ Quality scripts:
392
396
 
393
397
  ```bash
394
- 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
395
408
  ```
396
409
 
397
- Available quality scripts:
398
-
399
- ```bash
400
- npm run build # Compile TypeScript into dist/
401
- npm run typecheck # Type-check source and unit tests
402
- npm run lint # Biome lint and format checks
403
- npm run lint:fix # Apply safe Biome fixes
404
- npm run format # Format with Biome
405
- npm run security # npm vulnerability audit and registry signature checks
406
- npm run security:audit # Fail on moderate+ vulnerable dependencies
407
- npm run security:signatures # Verify npm signatures and attestations
408
- npm run test:unit # Vitest unit tests
409
- npm run test:integration # Shell integration test
410
- npm test # Unit + integration tests
411
- ```
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.
412
413
 
413
414
  The shell integration test validates the wrapper, flags, fake runtime CLIs,
414
415
  installer command wiring, skill discovery and public-safe reference checks.
415
416
 
416
- The GitHub Actions CI runs four gates:
417
+ ## CI And Release
418
+
419
+ GitHub Actions runs:
417
420
 
418
421
  - `Check`: lint, typecheck, unit tests, build and integration tests;
419
422
  - `Secret scan`: Gitleaks over full Git history;
420
- - `Dependency audit`: `npm audit` and `npm audit signatures`;
421
- - `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:
430
+
431
+ ```bash
432
+ git tag v0.1.5
433
+ git push origin v0.1.5
434
+ ```
422
435
 
423
- These gates cover repository code, npm dependencies and pull-request dependency
424
- changes. External tool version safety is handled by `tools.lock.json` plus
425
- runtime provenance checks in the installer.
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.
426
442
 
427
- ## Maintenance
443
+ ## Maintenance Rules
428
444
 
429
445
  Keep this repository public-safe:
430
446
 
431
447
  - do not add company-specific URLs, tokens, secrets or internal project names;
432
- - 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;
433
450
  - keep the installer idempotent;
451
+ - keep `tools.lock.json` as the source of truth for external tool versions;
434
452
  - cover pure module behavior with Vitest;
435
453
  - keep the shell integration test around behavior that can regress;
436
454
  - document what is automatic and what still depends on each runtime CLI.
437
-
438
- Release a new npm version by updating `package.json`, pushing the change to
439
- `main`, then pushing a matching tag:
440
-
441
- ```bash
442
- git tag v0.1.4
443
- git push origin v0.1.4
444
- ```
445
-
446
- The `Release` workflow runs the full check and publishes the scoped package to
447
- npm through trusted publishing. Configure the npm package trusted publisher for
448
- GitHub Actions with workflow filename `release.yml` before pushing a release
449
- tag.