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.
Files changed (108) hide show
  1. package/README.md +181 -121
  2. package/catalog/discovered.json +28066 -23196
  3. package/catalog/packages.json +2 -2
  4. package/dist/src/cli.js +2 -2
  5. package/dist/src/commands/agents.js +6 -23
  6. package/dist/src/commands/catalog.js +254 -27
  7. package/dist/src/commands/health.js +6 -6
  8. package/dist/src/commands/inventory.js +21 -121
  9. package/dist/src/commands/lifecycle.js +13 -51
  10. package/dist/src/commands/mcp.js +10 -73
  11. package/dist/src/commands/setup.js +5 -5
  12. package/dist/src/commands/sharing.js +11 -108
  13. package/dist/src/commands/support.js +42 -11
  14. package/dist/src/core/{adapters.js → agents/adapters.js} +2 -2
  15. package/dist/src/core/{agent-inspection.js → agents/agent-inspection.js} +26 -6
  16. package/dist/src/core/{codex-mcp.js → agents/codex-mcp.js} +1 -1
  17. package/dist/src/core/{health-score-evidence.js → agents/health-score-evidence.js} +8 -8
  18. package/dist/src/core/{runtime-tools.js → agents/runtime-tools.js} +2 -2
  19. package/dist/src/core/{audit.js → catalog/audit.js} +4 -4
  20. package/dist/src/core/{catalog.js → catalog/catalog.js} +18 -5
  21. package/dist/src/core/{components.js → catalog/components.js} +2 -2
  22. package/dist/src/core/{conformance.js → catalog/conformance.js} +2 -2
  23. package/dist/src/core/{profiles.js → catalog/profiles.js} +2 -2
  24. package/dist/src/core/{provenance.js → catalog/provenance.js} +3 -3
  25. package/dist/src/core/{registry.js → catalog/registry.js} +1 -1
  26. package/dist/src/core/{skill-compare.js → catalog/skill-compare.js} +1 -1
  27. package/dist/src/core/{skill-inventory.js → catalog/skill-inventory.js} +3 -3
  28. package/dist/src/core/{skills.js → catalog/skills.js} +1 -1
  29. package/dist/src/core/{candidate-intelligence.js → discovery/candidate-intelligence.js} +6 -6
  30. package/dist/src/core/{discovery-connector.js → discovery/discovery-connector.js} +2 -2
  31. package/dist/src/core/{evaluate.js → discovery/evaluate.js} +2 -2
  32. package/dist/src/core/{mcp-registry-discovery.js → discovery/mcp-registry-discovery.js} +1 -1
  33. package/dist/src/core/{observations.js → discovery/observations.js} +3 -3
  34. package/dist/src/core/{review-queue.js → discovery/review-queue.js} +9 -4
  35. package/dist/src/core/{skills-sh-discovery.js → discovery/skills-sh-discovery.js} +1 -1
  36. package/dist/src/core/{adopt.js → install/adopt.js} +3 -3
  37. package/dist/src/core/{catalog-install.js → install/catalog-install.js} +11 -11
  38. package/dist/src/core/{file-lock.js → install/file-lock.js} +1 -1
  39. package/dist/src/core/{install.js → install/install.js} +5 -5
  40. package/dist/src/core/{package.js → install/package.js} +3 -3
  41. package/dist/src/core/{reconcile.js → install/reconcile.js} +5 -5
  42. package/dist/src/core/{remove.js → install/remove.js} +4 -4
  43. package/dist/src/core/{snapshot.js → install/snapshot.js} +1 -1
  44. package/dist/src/core/{source.js → install/source.js} +1 -1
  45. package/dist/src/core/{sync.js → install/sync.js} +9 -9
  46. package/dist/src/core/{transaction.js → install/transaction.js} +1 -1
  47. package/dist/src/core/{uninstall.js → install/uninstall.js} +4 -4
  48. package/dist/src/core/{update.js → install/update.js} +4 -4
  49. package/dist/src/core/reporting/cli-guide.js +103 -0
  50. package/dist/src/core/reporting/doctor.js +141 -0
  51. package/dist/src/core/{freshness-alerts.js → reporting/freshness-alerts.js} +5 -5
  52. package/dist/src/core/{health.js → reporting/health.js} +6 -6
  53. package/dist/src/core/{loadout-card.js → reporting/loadout-card.js} +1 -1
  54. package/dist/src/core/{readme-claims.js → reporting/readme-claims.js} +1 -1
  55. package/dist/src/core/{readme-facts.js → reporting/readme-facts.js} +2 -2
  56. package/dist/src/core/{share-report.js → reporting/share-report.js} +3 -3
  57. package/dist/src/core/{upgrade.js → reporting/upgrade.js} +7 -7
  58. package/dist/src/core/routing/first-party-skills.js +118 -0
  59. package/dist/src/core/routing/handoff.js +278 -0
  60. package/dist/src/core/{model-config.js → routing/model-config.js} +4 -4
  61. package/dist/src/core/routing/route.js +539 -0
  62. package/dist/src/core/{api.js → runtime/api.js} +4 -4
  63. package/dist/src/core/{canary.js → runtime/canary.js} +1 -1
  64. package/dist/src/core/{github.js → runtime/github.js} +1 -1
  65. package/dist/src/core/{mcp-recipes.js → runtime/mcp-recipes.js} +1 -1
  66. package/dist/src/core/{mcp.js → runtime/mcp.js} +2 -2
  67. package/dist/src/core/{scheduler.js → runtime/scheduler.js} +4 -4
  68. package/dist/src/core/{active-policy.js → workspace/active-policy.js} +2 -2
  69. package/dist/src/core/{active-set.js → workspace/active-set.js} +2 -2
  70. package/dist/src/core/{improve.js → workspace/improve.js} +3 -3
  71. package/dist/src/core/{manifest.js → workspace/manifest.js} +2 -2
  72. package/dist/src/core/{outcomes.js → workspace/outcomes.js} +3 -3
  73. package/dist/src/core/{portable.js → workspace/portable.js} +3 -3
  74. package/dist/src/core/{profile-state.js → workspace/profile-state.js} +1 -1
  75. package/dist/src/core/{recommend.js → workspace/recommend.js} +1 -1
  76. package/dist/src/core/{state.js → workspace/state.js} +3 -3
  77. package/docs/CATALOG.md +2 -2
  78. package/docs/DISCOVERED.md +249 -247
  79. package/docs/UPSTREAM_LICENSE_DECISIONS.md +19 -12
  80. package/docs/evidence/readme-claims.json +22 -19
  81. package/package.json +2 -1
  82. package/skills/loadout-curator/SKILL.md +105 -0
  83. package/skills/loadout-router/SKILL.md +120 -0
  84. package/dist/src/core/cli-guide.js +0 -118
  85. package/dist/src/core/doctor.js +0 -95
  86. /package/dist/src/core/{agent-health-score.js → agents/agent-health-score.js} +0 -0
  87. /package/dist/src/core/{agent-versions.js → agents/agent-versions.js} +0 -0
  88. /package/dist/src/core/{conversion.js → agents/conversion.js} +0 -0
  89. /package/dist/src/core/{paths.js → agents/paths.js} +0 -0
  90. /package/dist/src/core/{runtime-tool-recipe.js → agents/runtime-tool-recipe.js} +0 -0
  91. /package/dist/src/core/{catalog-coverage.js → catalog/catalog-coverage.js} +0 -0
  92. /package/dist/src/core/{safety.js → catalog/safety.js} +0 -0
  93. /package/dist/src/core/{skill-security.js → catalog/skill-security.js} +0 -0
  94. /package/dist/src/core/{community.js → discovery/community.js} +0 -0
  95. /package/dist/src/core/{github-discovery.js → discovery/github-discovery.js} +0 -0
  96. /package/dist/src/core/{private-discovery.js → discovery/private-discovery.js} +0 -0
  97. /package/dist/src/core/{ranking.js → discovery/ranking.js} +0 -0
  98. /package/dist/src/core/{atomic-file.js → install/atomic-file.js} +0 -0
  99. /package/dist/src/core/{diff.js → install/diff.js} +0 -0
  100. /package/dist/src/core/{update-watch.js → install/update-watch.js} +0 -0
  101. /package/dist/src/core/{completion.js → reporting/completion.js} +0 -0
  102. /package/dist/src/core/{loadout-badge.js → reporting/loadout-badge.js} +0 -0
  103. /package/dist/src/core/{terminal.js → reporting/terminal.js} +0 -0
  104. /package/dist/src/core/{access.js → routing/access.js} +0 -0
  105. /package/dist/src/core/{credentials.js → routing/credentials.js} +0 -0
  106. /package/dist/src/core/{sandbox.js → runtime/sandbox.js} +0 -0
  107. /package/dist/src/core/{active-limit.js → workspace/active-limit.js} +0 -0
  108. /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
- Discover broadly. Activate the right tools for each project. Stay current without starting over.
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="#why-loadout">Why Loadout</a> ·
26
- <a href="#profiles">Profiles</a> ·
27
- <a href="#catalog-and-discovery">Discover</a> ·
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@0.5.9
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, single-Codex Stable run. A literal `…` marks omitted fetch output; `<snapshot-id>` is a variable placeholder because snapshot IDs vary.
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 --agents codex
134
+ $ loadout setup --mode stable
61
135
 
62
- Loadout: Stable Boost
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 --agents codex --yes
142
+ $ loadout setup --mode stable --yes
69
143
 
70
- Loadout installed 4 repositories for 1 agent(s). Snapshot: <snapshot-id>
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 OpenAI or
110
- Anthropic API key to manage skills. MCP servers and executable tools stay behind
111
- their own explicit setup and permission steps.
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 Boost: install the essentials and start building
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
- ### Power Boost: a larger cross-project toolkit
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 . --agent codex
222
- loadout optimize --project . --agents codex,claude-code --limit 30
223
- loadout optimize --project . --agents codex,claude-code --limit 30 --yes
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 into Codex
246
- loadout install --mode custom --package humanizer --agents codex
361
+ # Install the reviewed Humanizer writing skill
362
+ loadout install --mode custom --package humanizer
247
363
 
248
- # Install the reviewed Obsidian skills explicitly
249
- loadout install --mode custom --package obsidian-skills --agents codex,claude-code
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 OpenAI or Anthropic API key:
398
+ the normal profiles. It does not require an LLM API key:
286
399
 
287
400
  ```bash
288
- loadout tool graphify --agents codex,claude-code
289
- loadout tool graphify --agents codex,claude-code --yes --approve-risk
290
- loadout tool graphify --remove --agents codex,claude-code --yes --approve-risk
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-27):** [236 repositories observed](./docs/DISCOVERED.md), including 217 uncataloged review candidates and 19 repositories already in the inspected catalog.
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
- - **6 catalog records** currently have `NOASSERTION` license status and need upstream-license review before a public release decision.
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 six records have an explicit public-release decision rather than an assumed
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 . --agent codex` |
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 codex` |
406
- | 15 | Lists and installs isolated runtime tools such as Graphify | `loadout tool`; `loadout tool graphify --agents codex,claude-code` |
407
- | 16 | Lists snapshots or restores the latest managed change | `loadout rollback --list`; `loadout rollback` |
408
- | 17 | Previews removal of one managed package | `loadout remove <package-id>` |
409
- | 18 | Previews complete removal of Loadout-managed state | `loadout uninstall` |
410
- | 19 | Enables read-only daily discovery and update checks | `loadout autopilot --yes` |
411
- | 20 | Shows the complete CLI | `loadout --help`; `loadout advanced` |
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 Codex and GPT-5.6
418
-
419
- Loadout was built during OpenAI Build Week by a three-person team working with Codex
420
- and GPT-5.6. Codex was not a chat box bolted onto the finished project. It was the
421
- engineering environment we used to plan, build, test, and repeatedly challenge the
422
- product while it was taking shape.
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