@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.
- package/README.md +287 -264
- package/dist/src/args.js +10 -0
- package/dist/src/args.js.map +1 -1
- package/dist/src/menu.js +47 -4
- package/dist/src/menu.js.map +1 -1
- package/dist/src/skills.d.ts +1 -0
- package/dist/src/skills.js +28 -6
- package/dist/src/skills.js.map +1 -1
- package/dist/src/state.d.ts +2 -0
- package/dist/src/state.js +7 -0
- package/dist/src/state.js.map +1 -1
- package/dist/src/status.js +6 -2
- package/dist/src/status.js.map +1 -1
- package/dist/src/usage.js +2 -0
- package/dist/src/usage.js.map +1 -1
- 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
|
-
| 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
|
-
|
|
23
|
+

|
|
24
24
|
|
|
25
|
-
|
|
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
|
+

|
|
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,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 |
|
|
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
|
-
|
|
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
|
-
|
|
88
|
-
|
|
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 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
|
-
|
|
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
|
|
167
140
|
```
|
|
168
141
|
|
|
169
|
-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
191
|
-
--
|
|
192
|
-
--
|
|
193
|
-
--
|
|
194
|
-
--
|
|
195
|
-
--
|
|
196
|
-
--
|
|
197
|
-
--skills-only
|
|
198
|
-
--
|
|
199
|
-
--no-
|
|
200
|
-
--no-
|
|
201
|
-
--no-
|
|
202
|
-
--no-
|
|
203
|
-
--no-
|
|
204
|
-
--no-skills
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
--
|
|
209
|
-
--
|
|
210
|
-
--
|
|
211
|
-
--
|
|
212
|
-
--
|
|
213
|
-
--no-
|
|
214
|
-
--no-
|
|
215
|
-
|
|
216
|
-
--
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
--
|
|
220
|
-
--
|
|
221
|
-
--
|
|
222
|
-
--
|
|
223
|
-
--
|
|
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
|
-
|
|
249
|
+
Repeat `--skills-package` or `--skills-scope` to select more than one filter.
|
|
227
250
|
|
|
228
|
-
|
|
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
|
|
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
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
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
|
-
|
|
294
|
+
This project has two supply-chain boundaries:
|
|
270
295
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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` |
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|
-
|
|
367
|
+
## Development
|
|
349
368
|
|
|
350
|
-
|
|
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
|
-
|
|
357
|
-
`
|
|
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
|
-
|
|
381
|
+
Install dependencies and build from a clone:
|
|
360
382
|
|
|
361
383
|
```bash
|
|
362
|
-
|
|
384
|
+
pnpm install
|
|
385
|
+
pnpm run build
|
|
386
|
+
bash setup-agent-toolkit.sh
|
|
363
387
|
```
|
|
364
388
|
|
|
365
|
-
|
|
389
|
+
Run the local Node CLI directly:
|
|
366
390
|
|
|
367
391
|
```bash
|
|
368
|
-
|
|
392
|
+
node dist/bin/agent-toolkit.js
|
|
369
393
|
```
|
|
370
394
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
## Verification
|
|
374
|
-
|
|
375
|
-
Run the full local check:
|
|
395
|
+
Quality scripts:
|
|
376
396
|
|
|
377
397
|
```bash
|
|
378
|
-
|
|
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
|
-
|
|
382
|
-
|
|
383
|
-
|
|
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
|
-
|
|
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`: `
|
|
405
|
-
|
|
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
|
-
|
|
408
|
-
|
|
409
|
-
|
|
431
|
+
```bash
|
|
432
|
+
git tag v0.1.5
|
|
433
|
+
git push origin v0.1.5
|
|
434
|
+
```
|
|
410
435
|
|
|
411
|
-
|
|
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
|
-
-
|
|
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.
|