loadout-ai 0.5.9 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -121
- package/catalog/discovered.json +28066 -23196
- package/catalog/packages.json +2 -2
- package/dist/src/cli.js +2 -2
- package/dist/src/commands/agents.js +6 -23
- package/dist/src/commands/catalog.js +254 -27
- package/dist/src/commands/health.js +6 -6
- package/dist/src/commands/inventory.js +21 -121
- package/dist/src/commands/lifecycle.js +13 -51
- package/dist/src/commands/mcp.js +10 -73
- package/dist/src/commands/setup.js +5 -5
- package/dist/src/commands/sharing.js +11 -108
- package/dist/src/commands/support.js +42 -11
- package/dist/src/core/{adapters.js → agents/adapters.js} +2 -2
- package/dist/src/core/{agent-inspection.js → agents/agent-inspection.js} +26 -6
- package/dist/src/core/{codex-mcp.js → agents/codex-mcp.js} +1 -1
- package/dist/src/core/{health-score-evidence.js → agents/health-score-evidence.js} +8 -8
- package/dist/src/core/{runtime-tools.js → agents/runtime-tools.js} +2 -2
- package/dist/src/core/{audit.js → catalog/audit.js} +4 -4
- package/dist/src/core/{catalog.js → catalog/catalog.js} +18 -5
- package/dist/src/core/{components.js → catalog/components.js} +2 -2
- package/dist/src/core/{conformance.js → catalog/conformance.js} +2 -2
- package/dist/src/core/{profiles.js → catalog/profiles.js} +2 -2
- package/dist/src/core/{provenance.js → catalog/provenance.js} +3 -3
- package/dist/src/core/{registry.js → catalog/registry.js} +1 -1
- package/dist/src/core/{skill-compare.js → catalog/skill-compare.js} +1 -1
- package/dist/src/core/{skill-inventory.js → catalog/skill-inventory.js} +3 -3
- package/dist/src/core/{skills.js → catalog/skills.js} +1 -1
- package/dist/src/core/{candidate-intelligence.js → discovery/candidate-intelligence.js} +6 -6
- package/dist/src/core/{discovery-connector.js → discovery/discovery-connector.js} +2 -2
- package/dist/src/core/{evaluate.js → discovery/evaluate.js} +2 -2
- package/dist/src/core/{mcp-registry-discovery.js → discovery/mcp-registry-discovery.js} +1 -1
- package/dist/src/core/{observations.js → discovery/observations.js} +3 -3
- package/dist/src/core/{review-queue.js → discovery/review-queue.js} +9 -4
- package/dist/src/core/{skills-sh-discovery.js → discovery/skills-sh-discovery.js} +1 -1
- package/dist/src/core/{adopt.js → install/adopt.js} +3 -3
- package/dist/src/core/{catalog-install.js → install/catalog-install.js} +11 -11
- package/dist/src/core/{file-lock.js → install/file-lock.js} +1 -1
- package/dist/src/core/{install.js → install/install.js} +5 -5
- package/dist/src/core/{package.js → install/package.js} +3 -3
- package/dist/src/core/{reconcile.js → install/reconcile.js} +5 -5
- package/dist/src/core/{remove.js → install/remove.js} +4 -4
- package/dist/src/core/{snapshot.js → install/snapshot.js} +1 -1
- package/dist/src/core/{source.js → install/source.js} +1 -1
- package/dist/src/core/{sync.js → install/sync.js} +9 -9
- package/dist/src/core/{transaction.js → install/transaction.js} +1 -1
- package/dist/src/core/{uninstall.js → install/uninstall.js} +4 -4
- package/dist/src/core/{update.js → install/update.js} +4 -4
- package/dist/src/core/reporting/cli-guide.js +103 -0
- package/dist/src/core/reporting/doctor.js +141 -0
- package/dist/src/core/{freshness-alerts.js → reporting/freshness-alerts.js} +5 -5
- package/dist/src/core/{health.js → reporting/health.js} +6 -6
- package/dist/src/core/{loadout-card.js → reporting/loadout-card.js} +1 -1
- package/dist/src/core/{readme-claims.js → reporting/readme-claims.js} +1 -1
- package/dist/src/core/{readme-facts.js → reporting/readme-facts.js} +2 -2
- package/dist/src/core/{share-report.js → reporting/share-report.js} +3 -3
- package/dist/src/core/{upgrade.js → reporting/upgrade.js} +7 -7
- package/dist/src/core/routing/first-party-skills.js +118 -0
- package/dist/src/core/routing/handoff.js +278 -0
- package/dist/src/core/{model-config.js → routing/model-config.js} +4 -4
- package/dist/src/core/routing/route.js +539 -0
- package/dist/src/core/{api.js → runtime/api.js} +4 -4
- package/dist/src/core/{canary.js → runtime/canary.js} +1 -1
- package/dist/src/core/{github.js → runtime/github.js} +1 -1
- package/dist/src/core/{mcp-recipes.js → runtime/mcp-recipes.js} +1 -1
- package/dist/src/core/{mcp.js → runtime/mcp.js} +2 -2
- package/dist/src/core/{scheduler.js → runtime/scheduler.js} +4 -4
- package/dist/src/core/{active-policy.js → workspace/active-policy.js} +2 -2
- package/dist/src/core/{active-set.js → workspace/active-set.js} +2 -2
- package/dist/src/core/{improve.js → workspace/improve.js} +3 -3
- package/dist/src/core/{manifest.js → workspace/manifest.js} +2 -2
- package/dist/src/core/{outcomes.js → workspace/outcomes.js} +3 -3
- package/dist/src/core/{portable.js → workspace/portable.js} +3 -3
- package/dist/src/core/{profile-state.js → workspace/profile-state.js} +1 -1
- package/dist/src/core/{recommend.js → workspace/recommend.js} +1 -1
- package/dist/src/core/{state.js → workspace/state.js} +3 -3
- package/docs/CATALOG.md +2 -2
- package/docs/DISCOVERED.md +249 -247
- package/docs/UPSTREAM_LICENSE_DECISIONS.md +19 -12
- package/docs/evidence/readme-claims.json +22 -19
- package/package.json +2 -1
- package/skills/loadout-curator/SKILL.md +105 -0
- package/skills/loadout-router/SKILL.md +120 -0
- package/dist/src/core/cli-guide.js +0 -118
- package/dist/src/core/doctor.js +0 -95
- /package/dist/src/core/{agent-health-score.js → agents/agent-health-score.js} +0 -0
- /package/dist/src/core/{agent-versions.js → agents/agent-versions.js} +0 -0
- /package/dist/src/core/{conversion.js → agents/conversion.js} +0 -0
- /package/dist/src/core/{paths.js → agents/paths.js} +0 -0
- /package/dist/src/core/{runtime-tool-recipe.js → agents/runtime-tool-recipe.js} +0 -0
- /package/dist/src/core/{catalog-coverage.js → catalog/catalog-coverage.js} +0 -0
- /package/dist/src/core/{safety.js → catalog/safety.js} +0 -0
- /package/dist/src/core/{skill-security.js → catalog/skill-security.js} +0 -0
- /package/dist/src/core/{community.js → discovery/community.js} +0 -0
- /package/dist/src/core/{github-discovery.js → discovery/github-discovery.js} +0 -0
- /package/dist/src/core/{private-discovery.js → discovery/private-discovery.js} +0 -0
- /package/dist/src/core/{ranking.js → discovery/ranking.js} +0 -0
- /package/dist/src/core/{atomic-file.js → install/atomic-file.js} +0 -0
- /package/dist/src/core/{diff.js → install/diff.js} +0 -0
- /package/dist/src/core/{update-watch.js → install/update-watch.js} +0 -0
- /package/dist/src/core/{completion.js → reporting/completion.js} +0 -0
- /package/dist/src/core/{loadout-badge.js → reporting/loadout-badge.js} +0 -0
- /package/dist/src/core/{terminal.js → reporting/terminal.js} +0 -0
- /package/dist/src/core/{access.js → routing/access.js} +0 -0
- /package/dist/src/core/{credentials.js → routing/credentials.js} +0 -0
- /package/dist/src/core/{sandbox.js → runtime/sandbox.js} +0 -0
- /package/dist/src/core/{active-limit.js → workspace/active-limit.js} +0 -0
- /package/dist/src/core/{target-occupancy.js → workspace/target-occupancy.js} +0 -0
package/README.md
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<strong>The package manager for your AI coding setup.</strong><br>
|
|
11
|
-
|
|
11
|
+
Install skills across 12 agents. Route each task to the right model.<br>
|
|
12
|
+
Hand work between Claude Code and Codex. Undo any of it.
|
|
12
13
|
</p>
|
|
13
14
|
|
|
14
15
|
<p align="center">
|
|
@@ -21,20 +22,53 @@
|
|
|
21
22
|
</p>
|
|
22
23
|
|
|
23
24
|
<p align="center">
|
|
25
|
+
<a href="#what-it-looks-like">See it</a> ·
|
|
24
26
|
<a href="#install">Install</a> ·
|
|
25
|
-
<a href="#
|
|
26
|
-
<a href="#
|
|
27
|
-
<a href="#
|
|
27
|
+
<a href="#use-it-from-inside-your-agent">Use it in your agent</a> ·
|
|
28
|
+
<a href="#working-across-two-agents">Two agents</a> ·
|
|
29
|
+
<a href="#why-loadout">Why</a> ·
|
|
28
30
|
<a href="#trust-and-limits">Trust</a> ·
|
|
29
31
|
<a href="#command-reference">Commands</a>
|
|
30
32
|
</p>
|
|
31
33
|
|
|
34
|
+
## What it looks like
|
|
35
|
+
|
|
36
|
+
```console
|
|
37
|
+
$ loadout status
|
|
38
|
+
Loadout — grade A: Healthy and up to date
|
|
39
|
+
|
|
40
|
+
✓ Claude Code
|
|
41
|
+
~/.claude/skills
|
|
42
|
+
582 items | supports: skill, command, agent, mcp, plugin, root
|
|
43
|
+
✓ Codex
|
|
44
|
+
~/.agents/skills
|
|
45
|
+
83 items | supports: skill, command, agent, mcp, plugin, root
|
|
46
|
+
|
|
47
|
+
$ loadout route implement the payment webhook handler
|
|
48
|
+
Phase: implement
|
|
49
|
+
Tier: Standard (balanced)
|
|
50
|
+
Models: Claude Sonnet 5 ($3/$15)
|
|
51
|
+
GPT-5.6 Terra ($2/$12)
|
|
52
|
+
Agents: claude-code, codex
|
|
53
|
+
Why: Implementation is high-volume; standard models score within 5% of frontier
|
|
54
|
+
|
|
55
|
+
Conserve: drop to fast tier (GPT-5.6 Luna at $0.2/$1.2)
|
|
56
|
+
May need more iterations on complex logic; fine for CRUD and boilerplate
|
|
57
|
+
|
|
58
|
+
Hand off:
|
|
59
|
+
loadout handoff send codex 'implement the payment webhook handler'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Three things most agent tools do not do: it knows which agents you actually have,
|
|
63
|
+
it prices the tradeoff before you spend the tokens, and every mutating command
|
|
64
|
+
previews first and snapshots before it writes.
|
|
65
|
+
|
|
32
66
|
## Install
|
|
33
67
|
|
|
34
68
|
You need Node.js 20 or newer and Git.
|
|
35
69
|
|
|
36
70
|
```bash
|
|
37
|
-
npm install --global loadout-ai
|
|
71
|
+
npm install --global loadout-ai
|
|
38
72
|
loadout setup --mode stable
|
|
39
73
|
```
|
|
40
74
|
|
|
@@ -42,6 +76,46 @@ The second command detects your agents and previews the 30-skill Stable loadout.
|
|
|
42
76
|
Nothing changes until you approve it. If anything goes wrong, start with the
|
|
43
77
|
[user test guide](./docs/USER_TEST_GUIDE.md).
|
|
44
78
|
|
|
79
|
+
For a reproducible install, pin the release: `npm install --global loadout-ai@0.7.0`.
|
|
80
|
+
|
|
81
|
+
## Use it from inside your agent
|
|
82
|
+
|
|
83
|
+
A CLI you have to leave your agent to run is a context switch. Loadout ships its
|
|
84
|
+
own skill so you do not have to:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
loadout skills install loadout-router --yes
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Start a new agent session and just ask, in the conversation you are already in:
|
|
91
|
+
|
|
92
|
+
> _"Which model should I use to refactor this auth module?"_
|
|
93
|
+
> _"I'm running low on usage — what should I switch to?"_
|
|
94
|
+
> _"Hand the test writing to Codex."_
|
|
95
|
+
|
|
96
|
+
The skill teaches your agent to call `loadout route` and `loadout handoff` and act
|
|
97
|
+
on the results. It wraps the CLI rather than embedding a copy of the model table,
|
|
98
|
+
so pricing and model coverage update when Loadout updates instead of going stale
|
|
99
|
+
in a markdown file.
|
|
100
|
+
|
|
101
|
+
`loadout skills list` shows what ships with Loadout and what is already installed.
|
|
102
|
+
|
|
103
|
+
## Working across two agents
|
|
104
|
+
|
|
105
|
+
If you pay for both Claude and a ChatGPT plan, the two agents cannot see each
|
|
106
|
+
other. Loadout gives them a shared, append-only task log:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
loadout handoff init
|
|
110
|
+
loadout handoff send codex "write unit tests for auth" --context "see src/auth.ts"
|
|
111
|
+
loadout handoff pickup --yes
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
`pickup` writes a small managed block into `CLAUDE.md` and `AGENTS.md` telling each
|
|
115
|
+
agent to check `loadout handoff inbox <agent>` at the start of a session. Only the
|
|
116
|
+
text between the `loadout:handoff` markers is managed; the rest of your file is left
|
|
117
|
+
alone, and re-running replaces that block instead of duplicating it.
|
|
118
|
+
|
|
45
119
|
## How it works
|
|
46
120
|
|
|
47
121
|
**Choose -> Inspect -> Preview -> Apply -> Undo**
|
|
@@ -54,23 +128,37 @@ Nothing changes until you approve it. If anything goes wrong, start with the
|
|
|
54
128
|
|
|
55
129
|
### Abridged terminal transcript
|
|
56
130
|
|
|
57
|
-
This is an explicitly abridged transcript from a disposable
|
|
131
|
+
This is an explicitly abridged transcript from a disposable Stable run. A literal `…` marks omitted fetch output; `<snapshot-id>` is a variable placeholder because snapshot IDs vary. Loadout auto-detects installed agents; `--agents` narrows the selection when needed.
|
|
58
132
|
|
|
59
133
|
```console
|
|
60
|
-
$ loadout setup --mode stable
|
|
134
|
+
$ loadout setup --mode stable
|
|
61
135
|
…
|
|
62
|
-
Loadout: Stable
|
|
63
|
-
Detected agents: Codex
|
|
136
|
+
Loadout: Stable
|
|
137
|
+
Detected agents: Claude Code, Cursor, Codex
|
|
64
138
|
Catalog selection: 4 repositories
|
|
65
139
|
Ready to install: 4 skill repositories (30 agent skill directories)
|
|
66
140
|
Preview complete; nothing was changed. Re-run with --yes to install this exact screened plan.
|
|
67
141
|
|
|
68
|
-
$ loadout setup --mode stable --
|
|
142
|
+
$ loadout setup --mode stable --yes
|
|
69
143
|
…
|
|
70
|
-
Loadout installed 4 repositories for
|
|
144
|
+
Loadout installed 4 repositories for 3 agent(s). Snapshot: <snapshot-id>
|
|
71
145
|
|
|
72
146
|
$ loadout rollback
|
|
73
147
|
Restored snapshot <snapshot-id>
|
|
148
|
+
|
|
149
|
+
$ loadout route design the authentication system
|
|
150
|
+
Phase: plan
|
|
151
|
+
Tier: Frontier (deep reasoning)
|
|
152
|
+
Models: Claude Opus 5 ($5/$25)
|
|
153
|
+
GPT-5.6 Sol ($5/$30)
|
|
154
|
+
Agents: claude-code
|
|
155
|
+
Why: Architecture and decomposition need deep reasoning to avoid costly rework
|
|
156
|
+
|
|
157
|
+
$ loadout doctor
|
|
158
|
+
loadout doctor — HEALTHY
|
|
159
|
+
Platform: darwin
|
|
160
|
+
State: ~/.loadout ✓ writable
|
|
161
|
+
Agents: 3 detected, 9 available
|
|
74
162
|
```
|
|
75
163
|
|
|
76
164
|
The final preview sentence above is captured CLI wording. A later `--yes` invocation recomputes the plan from pinned sources and current agent and filesystem state; it does not persist or prove identity with the earlier preview.
|
|
@@ -92,6 +180,12 @@ coding agents without making you rebuild the setup for every agent and every pro
|
|
|
92
180
|
Most extension tools begin with a repo you already know. Loadout begins one step
|
|
93
181
|
earlier: **what is actually worth knowing?** It stays with you after installation.
|
|
94
182
|
|
|
183
|
+
Everything on this page is enforced. `docs/evidence/readme-claims.json` records
|
|
184
|
+
each material claim with the code or command that proves it, and CI fails the
|
|
185
|
+
build when the README and the implementation disagree — including the pinned
|
|
186
|
+
version in the install line above. A README that cannot drift is a strange thing
|
|
187
|
+
to build, and it is the reason the rest of this page is worth believing.
|
|
188
|
+
|
|
95
189
|
Loadout watches a much wider catalog than it activates. You can keep thousands of
|
|
96
190
|
technically screened skill copies in the disabled Maximum library, discover new projects as
|
|
97
191
|
they appear, and let each codebase pull a focused active set instead of dumping
|
|
@@ -106,9 +200,9 @@ everything into every prompt.
|
|
|
106
200
|
| Hope updates do not break anything | Preview updates and protect every managed change with a snapshot |
|
|
107
201
|
| Manually remember what was changed | Scan, reconcile, remove, roll back, or completely uninstall |
|
|
108
202
|
|
|
109
|
-
Loadout is local, open source, and preview-first. It does not need an
|
|
110
|
-
|
|
111
|
-
|
|
203
|
+
Loadout is local, open source, and preview-first. It does not need an LLM API key
|
|
204
|
+
to manage skills. MCP servers and executable tools stay behind their own explicit
|
|
205
|
+
setup and permission steps.
|
|
112
206
|
|
|
113
207
|
### Demo
|
|
114
208
|
|
|
@@ -128,7 +222,7 @@ you can run yourself.
|
|
|
128
222
|
|
|
129
223
|
## Stable workflow
|
|
130
224
|
|
|
131
|
-
### Stable
|
|
225
|
+
### Stable: install the essentials and start building
|
|
132
226
|
|
|
133
227
|
Stable is the recommended daily driver: **30 selected skill directories from four
|
|
134
228
|
pinned public sources**, installed into each agent you choose. It covers planning,
|
|
@@ -185,9 +279,31 @@ checked by `loadout update` without moving them to a different agent path.
|
|
|
185
279
|
|
|
186
280
|
## Profiles
|
|
187
281
|
|
|
188
|
-
Loadout is opinionated when you want it to be and precise when you do not.
|
|
282
|
+
Loadout is opinionated when you want it to be and precise when you do not. The
|
|
283
|
+
modes differ in one thing: how much of the reviewed catalog they install.
|
|
284
|
+
|
|
285
|
+
| Mode | Sources | Skills | Active by default |
|
|
286
|
+
| --------- | --------------------- | ------ | -------------------------------- |
|
|
287
|
+
| `stable` | 4 | 30 | yes — recommended starting point |
|
|
288
|
+
| `power` | 8 | 56 | yes |
|
|
289
|
+
| `maximum` | all reviewed | all | **no — downloaded but disabled** |
|
|
290
|
+
| `custom` | your `--package` list | varies | yes |
|
|
189
291
|
|
|
190
|
-
|
|
292
|
+
**Maximum is the one worth understanding.** It downloads the entire reviewed
|
|
293
|
+
library and leaves every skill _disabled_. Nothing reaches an agent prompt until
|
|
294
|
+
a project activates what it needs:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
loadout setup --mode maximum --yes
|
|
298
|
+
cd ~/code/my-app
|
|
299
|
+
loadout optimize --project . # scans the repo, proposes an active set
|
|
300
|
+
loadout activate # enable just those here
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
That trade is deliberate: disk is cheap and context is not. A large disabled
|
|
304
|
+
library plus a small active set beats installing everything into every prompt.
|
|
305
|
+
|
|
306
|
+
### Power: a larger cross-project toolkit
|
|
191
307
|
|
|
192
308
|
Power draws a skill-level allowlist from eight major collections. The prepared set
|
|
193
309
|
is deduplicated and invalid units are quarantined, so the final count can be lower
|
|
@@ -218,9 +334,9 @@ project choose a focused active set:
|
|
|
218
334
|
|
|
219
335
|
```bash
|
|
220
336
|
loadout setup --mode maximum
|
|
221
|
-
loadout recommend --project .
|
|
222
|
-
loadout optimize --project . --
|
|
223
|
-
loadout optimize --project . --
|
|
337
|
+
loadout recommend --project .
|
|
338
|
+
loadout optimize --project . --limit 30
|
|
339
|
+
loadout optimize --project . --limit 30 --yes
|
|
224
340
|
```
|
|
225
341
|
|
|
226
342
|
This is the difference between “install everything” and “have everything ready.”
|
|
@@ -242,11 +358,11 @@ managed profile:
|
|
|
242
358
|
|
|
243
359
|
```bash
|
|
244
360
|
|
|
245
|
-
# Install the reviewed Humanizer writing skill
|
|
246
|
-
loadout install --mode custom --package humanizer
|
|
361
|
+
# Install the reviewed Humanizer writing skill
|
|
362
|
+
loadout install --mode custom --package humanizer
|
|
247
363
|
|
|
248
|
-
# Install the reviewed Obsidian skills
|
|
249
|
-
loadout install --mode custom --package obsidian-skills --agents
|
|
364
|
+
# Install the reviewed Obsidian skills for specific agents
|
|
365
|
+
loadout install --mode custom --package obsidian-skills --agents claude-code,cursor
|
|
250
366
|
```
|
|
251
367
|
|
|
252
368
|
Run `loadout profiles` to compare every mode. MCP servers always use a separate
|
|
@@ -266,12 +382,9 @@ loadout mcp-recipe --credential-free
|
|
|
266
382
|
Preview and configure one for the host you use:
|
|
267
383
|
|
|
268
384
|
```bash
|
|
269
|
-
loadout mcp-recipe playwright --agent codex
|
|
270
|
-
loadout mcp-recipe playwright --agent codex --yes
|
|
271
|
-
loadout mcp-recipe playwright --agent codex --verify
|
|
272
|
-
|
|
273
385
|
loadout mcp-recipe playwright --agent claude-code
|
|
274
386
|
loadout mcp-recipe playwright --agent claude-code --yes
|
|
387
|
+
loadout mcp-recipe playwright --agent claude-code --verify
|
|
275
388
|
```
|
|
276
389
|
|
|
277
390
|
Configuration alone does not start the server. Test a real connection separately
|
|
@@ -282,12 +395,12 @@ variables or the OS keychain without printing their values.
|
|
|
282
395
|
|
|
283
396
|
[Graphify](https://github.com/Graphify-Labs/graphify) is an optional codebase graph
|
|
284
397
|
tool. It installs both a command and an agent skill, so Loadout keeps it separate from
|
|
285
|
-
the normal profiles. It does not require an
|
|
398
|
+
the normal profiles. It does not require an LLM API key:
|
|
286
399
|
|
|
287
400
|
```bash
|
|
288
|
-
loadout tool graphify
|
|
289
|
-
loadout tool graphify --
|
|
290
|
-
loadout tool graphify --remove --
|
|
401
|
+
loadout tool graphify
|
|
402
|
+
loadout tool graphify --yes --approve-risk
|
|
403
|
+
loadout tool graphify --remove --yes --approve-risk
|
|
291
404
|
```
|
|
292
405
|
|
|
293
406
|
Executable tools remain an explicit choice instead of hiding inside a profile.
|
|
@@ -338,7 +451,7 @@ Loadout does not claim there is one universally “best” configuration. Recomm
|
|
|
338
451
|
|
|
339
452
|
<!-- loadout:daily-discovery:start -->
|
|
340
453
|
|
|
341
|
-
**Discovery snapshot (generated 2026-08-
|
|
454
|
+
**Discovery snapshot (generated 2026-08-31):** [238 repositories observed](./docs/DISCOVERED.md), including 219 uncataloged review candidates and 19 repositories already in the inspected catalog.
|
|
342
455
|
<!-- loadout:daily-discovery:end -->
|
|
343
456
|
|
|
344
457
|
The checked-in discovery report proves only its dated snapshot, not the success of every scheduled run. Use `loadout discover --source all --queue`, `loadout review-queue`, and `loadout candidate inspect owner/repository` to inspect candidates before catalog promotion.
|
|
@@ -355,11 +468,11 @@ The checked-in discovery report proves only its dated snapshot, not the success
|
|
|
355
468
|
|
|
356
469
|
<!-- loadout:current-limits:start -->
|
|
357
470
|
|
|
358
|
-
- **
|
|
471
|
+
- **4 catalog records** currently have `NOASSERTION` license status and need upstream-license review before a public release decision.
|
|
359
472
|
|
|
360
473
|
<!-- loadout:current-limits:end -->
|
|
361
474
|
|
|
362
|
-
The
|
|
475
|
+
The four records have an explicit public-release decision rather than an assumed
|
|
363
476
|
license. Read [Upstream license decisions](./docs/UPSTREAM_LICENSE_DECISIONS.md) for
|
|
364
477
|
the source-by-source record and the boundary applied to Power, Maximum, and Custom.
|
|
365
478
|
|
|
@@ -387,97 +500,44 @@ Configured paths and disposable filesystem lifecycle tests do not prove that nat
|
|
|
387
500
|
|
|
388
501
|
Start at the top and stop whenever Loadout does everything you need.
|
|
389
502
|
|
|
390
|
-
| Priority | What it does | Command
|
|
391
|
-
| -------: | --------------------------------------------------------------- |
|
|
392
|
-
| 1 | Opens the beginner-friendly guided path | `loadout guide`
|
|
393
|
-
| 2 | Previews the recommended 30-skill daily setup | `loadout setup --mode stable`
|
|
394
|
-
| 3 | Previews the broader Power setup | `loadout setup --mode power`
|
|
395
|
-
| 4 | Downloads the broad screened library, disabled by default | `loadout setup --mode maximum`
|
|
396
|
-
| 5 | Shows Loadout-managed packages and active skills | `loadout status`; `loadout library`
|
|
397
|
-
| 6 | Inventories skills across detected agents without changing them | `loadout scan`
|
|
398
|
-
| 7 | Explains what fits the current repository | `loadout recommend --project
|
|
399
|
-
| 8 | Previews a bounded project-specific active set | `loadout optimize --project . --limit 30`
|
|
400
|
-
| 9 | Compares existing skills with reviewed catalog copies | `loadout reconcile --refresh`
|
|
401
|
-
| 10 | Checks managed active and disabled-library sources for changes | `loadout update`
|
|
402
|
-
| 11 | Finds newly launched or newly popular candidates | `loadout discover --source all --queue`
|
|
403
|
-
| 12 | Shows candidates waiting for deeper review | `loadout review-queue`
|
|
404
|
-
| 13 | Lists MCP recipes and credential needs | `loadout mcp-recipe`; `loadout mcp-recipe --credential-free`
|
|
405
|
-
| 14 | Previews an MCP configuration | `loadout mcp-recipe playwright --agent
|
|
406
|
-
| 15 |
|
|
407
|
-
| 16 |
|
|
408
|
-
| 17 |
|
|
409
|
-
| 18 |
|
|
410
|
-
| 19 |
|
|
411
|
-
| 20 |
|
|
503
|
+
| Priority | What it does | Command |
|
|
504
|
+
| -------: | --------------------------------------------------------------- | ------------------------------------------------------------ |
|
|
505
|
+
| 1 | Opens the beginner-friendly guided path | `loadout guide` |
|
|
506
|
+
| 2 | Previews the recommended 30-skill daily setup | `loadout setup --mode stable` |
|
|
507
|
+
| 3 | Previews the broader Power setup | `loadout setup --mode power` |
|
|
508
|
+
| 4 | Downloads the broad screened library, disabled by default | `loadout setup --mode maximum` |
|
|
509
|
+
| 5 | Shows Loadout-managed packages and active skills | `loadout status`; `loadout library` |
|
|
510
|
+
| 6 | Inventories skills across detected agents without changing them | `loadout scan` |
|
|
511
|
+
| 7 | Explains what fits the current repository | `loadout recommend --project .` |
|
|
512
|
+
| 8 | Previews a bounded project-specific active set | `loadout optimize --project . --limit 30` |
|
|
513
|
+
| 9 | Compares existing skills with reviewed catalog copies | `loadout reconcile --refresh` |
|
|
514
|
+
| 10 | Checks managed active and disabled-library sources for changes | `loadout update` |
|
|
515
|
+
| 11 | Finds newly launched or newly popular candidates | `loadout discover --source all --queue` |
|
|
516
|
+
| 12 | Shows candidates waiting for deeper review | `loadout review-queue` |
|
|
517
|
+
| 13 | Lists MCP recipes and credential needs | `loadout mcp-recipe`; `loadout mcp-recipe --credential-free` |
|
|
518
|
+
| 14 | Previews an MCP configuration | `loadout mcp-recipe playwright --agent claude-code` |
|
|
519
|
+
| 15 | Installs Loadout's own skill into your agents | `loadout skills install loadout-router --yes` |
|
|
520
|
+
| 16 | Recommends the right model and agent for a task | `loadout route design the auth system` |
|
|
521
|
+
| 17 | Shows the full model catalog with pricing | `loadout route --models`; `loadout route --cost` |
|
|
522
|
+
| 18 | Sends a task to another agent via file-based handoff | `loadout handoff send codex "write tests for auth"` |
|
|
523
|
+
| 19 | Checks agent health, permissions, and setup | `loadout doctor`; `loadout doctor --verbose` |
|
|
524
|
+
| 20 | Lists and installs isolated runtime tools such as Graphify | `loadout tool`; `loadout tool graphify` |
|
|
525
|
+
| 21 | Lists snapshots or restores the latest managed change | `loadout rollback --list`; `loadout rollback` |
|
|
526
|
+
| 22 | Previews removal of one managed package | `loadout remove <package-id>` |
|
|
527
|
+
| 23 | Previews complete removal of Loadout-managed state | `loadout uninstall` |
|
|
528
|
+
| 24 | Enables read-only daily discovery and update checks | `loadout autopilot --yes` |
|
|
529
|
+
| 25 | Shows the complete CLI | `loadout --help`; `loadout advanced` |
|
|
412
530
|
|
|
413
531
|
Most mutating commands are dry runs first. After reading the preview, add `--yes` to
|
|
414
532
|
apply. Commands with executable or connection risk require the additional approval
|
|
415
533
|
shown in their output.
|
|
416
534
|
|
|
417
|
-
## Built with
|
|
418
|
-
|
|
419
|
-
Loadout was
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
### From a broad idea to a working product
|
|
425
|
-
|
|
426
|
-
The starting idea was simple: one install that gives every coding agent the best
|
|
427
|
-
extensions on GitHub. The difficult part was everything hidden inside that sentence.
|
|
428
|
-
What counts as “best”? How much should stay active? What happens to skills a user
|
|
429
|
-
already has? How do you update a repository without silently trusting new code? How
|
|
430
|
-
do you undo changes across several agents?
|
|
431
|
-
|
|
432
|
-
We used GPT-5.6 through Codex for the repo-wide reasoning behind those decisions.
|
|
433
|
-
Together, we turned the idea into three distinct modes: a bounded Stable daily
|
|
434
|
-
driver, a larger Power setup, and a Maximum library that keeps broad optionality
|
|
435
|
-
without loading thousands of skills into every prompt.
|
|
436
|
-
|
|
437
|
-
| Part of the build | How we used Codex and GPT-5.6 | What made it into Loadout |
|
|
438
|
-
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
439
|
-
| Product planning | Broke the original idea into testable user journeys and challenged unsafe assumptions | Stable, Power, Maximum, Custom, project optimization, discovery, updates, and complete uninstall |
|
|
440
|
-
| Architecture | Traced how catalogs, adapters, agent directories, manifests, and snapshots affect one another | A local TypeScript CLI with a shared catalog, 12 agent adapters, and snapshot-backed transactions |
|
|
441
|
-
| Ecosystem research | Compared repositories, checked source layouts and licenses, and separated popularity from evidence | 53 pinned catalog sources plus a discovery snapshot watching 240 repositories |
|
|
442
|
-
| Implementation | Wrote and refactored CLI commands, schemas, source fetchers, installers, active-set logic, and MCP configuration | The published `loadout-ai` package and the commands documented above |
|
|
443
|
-
| Safety work | Looked for scripts, hooks, binaries, credential references, target collisions, stale previews, and external edits | Preview-first changes, quarantined skill units, explicit risk approval, drift protection, and rollback |
|
|
444
|
-
| Testing | Generated adversarial cases, reproduced failures from real terminal sessions, and converted them into regression tests | 632 passing tests, CLI and README end-to-end flows, package smoke tests, and a 1,000-skill performance gate |
|
|
445
|
-
| Team integration | Audited teammate branches, compared them with `main`, prepared focused pull requests, and checked what was actually complete | One public history instead of three disconnected prototypes |
|
|
446
|
-
| Release work | Verified npm contents, version behavior, GitHub metadata, documentation claims, and public CI | A public npm package, credited upstream catalog, release evidence, and a reproducible verification command |
|
|
447
|
-
|
|
448
|
-
### Real testing changed the code
|
|
449
|
-
|
|
450
|
-
Codex was most useful when the neat plan met a messy laptop. A few examples:
|
|
451
|
-
|
|
452
|
-
- A Graphify install appeared in Claude Code but vanished from Codex inventory
|
|
453
|
-
because the generated runtime skill and the normal skill scanner used different
|
|
454
|
-
Codex paths. The scan now recognizes managed runtime-tool skills explicitly.
|
|
455
|
-
- Update checks repeatedly timed out on large repositories. We measured the real
|
|
456
|
-
clone cost, changed the update path to check remote commit metadata first, and only
|
|
457
|
-
fetch a full snapshot when a pinned source actually changed.
|
|
458
|
-
- Existing unmanaged skills could occupy the same target as a Stable install.
|
|
459
|
-
Instead of overwriting them, Loadout now stops, scans, compares, and offers a
|
|
460
|
-
separate reconciliation path for exact or unambiguous matches.
|
|
461
|
-
- ChatGPT and Claude subscriptions were easy to confuse with separately billed API
|
|
462
|
-
access. Setup now asks about API access explicitly, while credentialed MCP servers
|
|
463
|
-
remain separate from automatic skill installation.
|
|
464
|
-
|
|
465
|
-
Those fixes came from a loop we repeated throughout the week: run the real command,
|
|
466
|
-
paste the exact output into Codex, trace the behavior through the codebase, write a
|
|
467
|
-
regression test, fix the smallest responsible layer, and run the full release gate.
|
|
468
|
-
|
|
469
|
-
### What the team owned
|
|
470
|
-
|
|
471
|
-
The humans chose the product direction, selected the tradeoffs, reviewed upstream
|
|
472
|
-
projects, tested Loadout on real Codex and Claude Code profiles, approved risky
|
|
473
|
-
operations, and made every release decision. GPT-5.6 helped with high-context design,
|
|
474
|
-
debugging, and review; Codex handled the implementation loop and verification tools.
|
|
475
|
-
Neither replaced human judgment about what should be installed on someone else's
|
|
476
|
-
machine.
|
|
477
|
-
|
|
478
|
-
Loadout itself does **not** call GPT-5.6 and does not require an OpenAI API key to
|
|
479
|
-
manage skills. Codex and GPT-5.6 helped build the tool; they are not a hidden runtime
|
|
480
|
-
dependency.
|
|
535
|
+
## Built with Claude
|
|
536
|
+
|
|
537
|
+
Loadout was designed and built by [Viraj Mishra](https://github.com/VirajMishra1) with Claude Code.
|
|
538
|
+
|
|
539
|
+
Loadout itself does **not** call any LLM API and does not require an LLM API key
|
|
540
|
+
to manage skills. Claude helped build the tool; it is not a hidden runtime dependency.
|
|
481
541
|
|
|
482
542
|
## Development
|
|
483
543
|
|