@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.
- package/README.md +282 -277
- package/docs/assets/install-plan.svg +29 -0
- package/docs/assets/install-skill-packages.svg +31 -0
- package/docs/assets/install-status.svg +32 -0
- package/package.json +10 -9
- package/setup-agent-toolkit.sh +1 -1
- package/skills/backend/fastify-best-practices/LICENSE +21 -0
- package/skills/backend/fastify-best-practices/NOTICE.md +11 -0
- package/skills/backend/fastify-best-practices/SKILL.md +75 -0
- package/skills/backend/fastify-best-practices/rules/authentication.md +521 -0
- package/skills/backend/fastify-best-practices/rules/configuration.md +217 -0
- package/skills/backend/fastify-best-practices/rules/content-type.md +387 -0
- package/skills/backend/fastify-best-practices/rules/cors-security.md +445 -0
- package/skills/backend/fastify-best-practices/rules/database.md +320 -0
- package/skills/backend/fastify-best-practices/rules/decorators.md +416 -0
- package/skills/backend/fastify-best-practices/rules/deployment.md +423 -0
- package/skills/backend/fastify-best-practices/rules/error-handling.md +412 -0
- package/skills/backend/fastify-best-practices/rules/hooks.md +464 -0
- package/skills/backend/fastify-best-practices/rules/http-proxy.md +247 -0
- package/skills/backend/fastify-best-practices/rules/logging.md +402 -0
- package/skills/backend/fastify-best-practices/rules/performance.md +425 -0
- package/skills/backend/fastify-best-practices/rules/plugins.md +320 -0
- package/skills/backend/fastify-best-practices/rules/routes.md +467 -0
- package/skills/backend/fastify-best-practices/rules/schemas.md +585 -0
- package/skills/backend/fastify-best-practices/rules/serialization.md +475 -0
- package/skills/backend/fastify-best-practices/rules/testing.md +536 -0
- package/skills/backend/fastify-best-practices/rules/typescript.md +458 -0
- package/skills/backend/fastify-best-practices/rules/websockets.md +421 -0
- package/skills/backend/fastify-best-practices/tile.json +11 -0
- 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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
```bash
|
|
7
|
+
npx -y @ranimontagna/agent-toolkit
|
|
8
|
+
```
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
+

|
|
22
24
|
|
|
23
|
-
|
|
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
|
-
|
|
29
|
+

|
|
30
|
+
|
|
31
|
+
The final plan shows selected tools, runtimes, skill packages, scope and already
|
|
32
|
+
present skills before installation starts.
|
|
33
|
+
|
|
34
|
+

|
|
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 |
|
|
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
|
-
##
|
|
48
|
+
## Supported Runtimes
|
|
43
49
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
##
|
|
65
|
+
## Quick Commands
|
|
98
66
|
|
|
99
|
-
Run the
|
|
67
|
+
Run the interactive installer:
|
|
100
68
|
|
|
101
69
|
```bash
|
|
102
70
|
npx -y @ranimontagna/agent-toolkit
|
|
103
71
|
```
|
|
104
72
|
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
85
|
+
Install only Graphify for Codex CLI:
|
|
126
86
|
|
|
127
87
|
```bash
|
|
128
|
-
|
|
129
|
-
npm run build
|
|
130
|
-
bash setup-agent-toolkit.sh
|
|
88
|
+
npx -y @ranimontagna/agent-toolkit --graphify-only --codex
|
|
131
89
|
```
|
|
132
90
|
|
|
133
|
-
|
|
91
|
+
Install only third-party frontend design skills for Codex CLI:
|
|
134
92
|
|
|
135
93
|
```bash
|
|
136
|
-
|
|
94
|
+
npx -y @ranimontagna/agent-toolkit --frontend-skills-only --codex
|
|
137
95
|
```
|
|
138
96
|
|
|
139
|
-
|
|
97
|
+
Install only bundled Custom Skills into the current project:
|
|
140
98
|
|
|
141
99
|
```bash
|
|
142
|
-
npx -y @ranimontagna/agent-toolkit --
|
|
100
|
+
npx -y @ranimontagna/agent-toolkit --skills-only --codex --local
|
|
143
101
|
```
|
|
144
102
|
|
|
145
|
-
Install
|
|
103
|
+
Install only the `core` Custom Skills package:
|
|
146
104
|
|
|
147
105
|
```bash
|
|
148
|
-
npx -y @ranimontagna/agent-toolkit --
|
|
106
|
+
npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-package core
|
|
149
107
|
```
|
|
150
108
|
|
|
151
|
-
|
|
109
|
+
List bundled Custom Skills and their repository scope paths:
|
|
152
110
|
|
|
153
111
|
```bash
|
|
154
|
-
npx -y @ranimontagna/agent-toolkit --
|
|
112
|
+
npx -y @ranimontagna/agent-toolkit --skills-list
|
|
155
113
|
```
|
|
156
114
|
|
|
157
|
-
Install
|
|
115
|
+
Install missing selected runtime CLIs before configuring them:
|
|
158
116
|
|
|
159
117
|
```bash
|
|
160
|
-
npx -y @ranimontagna/agent-toolkit --
|
|
118
|
+
npx -y @ranimontagna/agent-toolkit --all --gemini --install-missing-clis
|
|
161
119
|
```
|
|
162
120
|
|
|
163
|
-
|
|
121
|
+
## Custom Skills
|
|
164
122
|
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
158
|
+
npx -y @ranimontagna/agent-toolkit --skills-only --codex --skills-scope backend/node
|
|
179
159
|
```
|
|
180
160
|
|
|
181
|
-
|
|
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
|
|
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
|
-
|
|
172
|
+
Each skill must be a directory containing `SKILL.md` with frontmatter:
|
|
188
173
|
|
|
189
|
-
```
|
|
190
|
-
|
|
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
|
-
|
|
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
|
-
|
|
197
|
-
--
|
|
198
|
-
--
|
|
199
|
-
--
|
|
200
|
-
--
|
|
201
|
-
--
|
|
202
|
-
--
|
|
203
|
-
--skills-only
|
|
204
|
-
--
|
|
205
|
-
--no-
|
|
206
|
-
--no-
|
|
207
|
-
--no-
|
|
208
|
-
--no-
|
|
209
|
-
--no-
|
|
210
|
-
--no-skills
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
--
|
|
215
|
-
--
|
|
216
|
-
--
|
|
217
|
-
--
|
|
218
|
-
--
|
|
219
|
-
--no-
|
|
220
|
-
--no-
|
|
221
|
-
|
|
222
|
-
--
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
--
|
|
226
|
-
--
|
|
227
|
-
--skills-
|
|
228
|
-
--
|
|
229
|
-
--
|
|
230
|
-
--
|
|
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
|
-
|
|
249
|
+
Repeat `--skills-package` or `--skills-scope` to select more than one filter.
|
|
234
250
|
|
|
235
|
-
|
|
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
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
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
|
-
|
|
294
|
+
This project has two supply-chain boundaries:
|
|
278
295
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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` |
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
303
|
-
|
|
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
|
-
|
|
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
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
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
|
-
|
|
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
|
-
|
|
369
|
+
Prerequisites:
|
|
370
370
|
|
|
371
|
-
|
|
372
|
-
|
|
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
|
-
|
|
381
|
+
Install dependencies and build from a clone:
|
|
376
382
|
|
|
377
383
|
```bash
|
|
378
|
-
|
|
384
|
+
pnpm install
|
|
385
|
+
pnpm run build
|
|
386
|
+
bash setup-agent-toolkit.sh
|
|
379
387
|
```
|
|
380
388
|
|
|
381
|
-
|
|
389
|
+
Run the local Node CLI directly:
|
|
382
390
|
|
|
383
391
|
```bash
|
|
384
|
-
|
|
392
|
+
node dist/bin/agent-toolkit.js
|
|
385
393
|
```
|
|
386
394
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
## Verification
|
|
390
|
-
|
|
391
|
-
Run the full local check:
|
|
395
|
+
Quality scripts:
|
|
392
396
|
|
|
393
397
|
```bash
|
|
394
|
-
|
|
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
|
-
|
|
398
|
-
|
|
399
|
-
|
|
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
|
-
|
|
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`: `
|
|
421
|
-
|
|
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
|
-
|
|
424
|
-
|
|
425
|
-
|
|
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
|
-
-
|
|
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.
|