loadout-ai 0.6.0 → 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 (103) hide show
  1. package/README.md +122 -19
  2. package/catalog/discovered.json +25557 -24308
  3. package/dist/src/cli.js +2 -2
  4. package/dist/src/commands/agents.js +6 -23
  5. package/dist/src/commands/catalog.js +130 -33
  6. package/dist/src/commands/health.js +6 -6
  7. package/dist/src/commands/inventory.js +19 -120
  8. package/dist/src/commands/lifecycle.js +13 -51
  9. package/dist/src/commands/mcp.js +10 -73
  10. package/dist/src/commands/setup.js +5 -5
  11. package/dist/src/commands/sharing.js +11 -108
  12. package/dist/src/commands/support.js +20 -9
  13. package/dist/src/core/{adapters.js → agents/adapters.js} +2 -2
  14. package/dist/src/core/{agent-inspection.js → agents/agent-inspection.js} +26 -6
  15. package/dist/src/core/{codex-mcp.js → agents/codex-mcp.js} +1 -1
  16. package/dist/src/core/{health-score-evidence.js → agents/health-score-evidence.js} +8 -8
  17. package/dist/src/core/{runtime-tools.js → agents/runtime-tools.js} +2 -2
  18. package/dist/src/core/{audit.js → catalog/audit.js} +4 -4
  19. package/dist/src/core/{catalog.js → catalog/catalog.js} +5 -5
  20. package/dist/src/core/{components.js → catalog/components.js} +2 -2
  21. package/dist/src/core/{conformance.js → catalog/conformance.js} +2 -2
  22. package/dist/src/core/{profiles.js → catalog/profiles.js} +2 -2
  23. package/dist/src/core/{provenance.js → catalog/provenance.js} +3 -3
  24. package/dist/src/core/{registry.js → catalog/registry.js} +1 -1
  25. package/dist/src/core/{skill-compare.js → catalog/skill-compare.js} +1 -1
  26. package/dist/src/core/{skill-inventory.js → catalog/skill-inventory.js} +3 -3
  27. package/dist/src/core/{skills.js → catalog/skills.js} +1 -1
  28. package/dist/src/core/{candidate-intelligence.js → discovery/candidate-intelligence.js} +6 -6
  29. package/dist/src/core/{discovery-connector.js → discovery/discovery-connector.js} +2 -2
  30. package/dist/src/core/{evaluate.js → discovery/evaluate.js} +2 -2
  31. package/dist/src/core/{mcp-registry-discovery.js → discovery/mcp-registry-discovery.js} +1 -1
  32. package/dist/src/core/{observations.js → discovery/observations.js} +3 -3
  33. package/dist/src/core/{review-queue.js → discovery/review-queue.js} +2 -2
  34. package/dist/src/core/{skills-sh-discovery.js → discovery/skills-sh-discovery.js} +1 -1
  35. package/dist/src/core/{adopt.js → install/adopt.js} +3 -3
  36. package/dist/src/core/{catalog-install.js → install/catalog-install.js} +11 -11
  37. package/dist/src/core/{file-lock.js → install/file-lock.js} +1 -1
  38. package/dist/src/core/{install.js → install/install.js} +5 -5
  39. package/dist/src/core/{package.js → install/package.js} +3 -3
  40. package/dist/src/core/{reconcile.js → install/reconcile.js} +5 -5
  41. package/dist/src/core/{remove.js → install/remove.js} +4 -4
  42. package/dist/src/core/{snapshot.js → install/snapshot.js} +1 -1
  43. package/dist/src/core/{source.js → install/source.js} +1 -1
  44. package/dist/src/core/{sync.js → install/sync.js} +9 -9
  45. package/dist/src/core/{transaction.js → install/transaction.js} +1 -1
  46. package/dist/src/core/{uninstall.js → install/uninstall.js} +4 -4
  47. package/dist/src/core/{update.js → install/update.js} +4 -4
  48. package/dist/src/core/{cli-guide.js → reporting/cli-guide.js} +29 -45
  49. package/dist/src/core/{doctor.js → reporting/doctor.js} +3 -6
  50. package/dist/src/core/{freshness-alerts.js → reporting/freshness-alerts.js} +5 -5
  51. package/dist/src/core/{health.js → reporting/health.js} +6 -6
  52. package/dist/src/core/{loadout-card.js → reporting/loadout-card.js} +1 -1
  53. package/dist/src/core/{readme-claims.js → reporting/readme-claims.js} +1 -1
  54. package/dist/src/core/{readme-facts.js → reporting/readme-facts.js} +2 -2
  55. package/dist/src/core/{share-report.js → reporting/share-report.js} +3 -3
  56. package/dist/src/core/{upgrade.js → reporting/upgrade.js} +7 -7
  57. package/dist/src/core/routing/first-party-skills.js +118 -0
  58. package/dist/src/core/{handoff.js → routing/handoff.js} +120 -3
  59. package/dist/src/core/{model-config.js → routing/model-config.js} +4 -4
  60. package/dist/src/core/{route.js → routing/route.js} +325 -34
  61. package/dist/src/core/{api.js → runtime/api.js} +4 -4
  62. package/dist/src/core/{canary.js → runtime/canary.js} +1 -1
  63. package/dist/src/core/{github.js → runtime/github.js} +1 -1
  64. package/dist/src/core/{mcp-recipes.js → runtime/mcp-recipes.js} +1 -1
  65. package/dist/src/core/{mcp.js → runtime/mcp.js} +2 -2
  66. package/dist/src/core/{scheduler.js → runtime/scheduler.js} +4 -4
  67. package/dist/src/core/{active-policy.js → workspace/active-policy.js} +2 -2
  68. package/dist/src/core/{active-set.js → workspace/active-set.js} +2 -2
  69. package/dist/src/core/{improve.js → workspace/improve.js} +3 -3
  70. package/dist/src/core/{manifest.js → workspace/manifest.js} +2 -2
  71. package/dist/src/core/{outcomes.js → workspace/outcomes.js} +3 -3
  72. package/dist/src/core/{portable.js → workspace/portable.js} +3 -3
  73. package/dist/src/core/{profile-state.js → workspace/profile-state.js} +1 -1
  74. package/dist/src/core/{recommend.js → workspace/recommend.js} +1 -1
  75. package/dist/src/core/{state.js → workspace/state.js} +3 -3
  76. package/docs/DISCOVERED.md +247 -246
  77. package/docs/evidence/readme-claims.json +22 -19
  78. package/package.json +2 -1
  79. package/skills/loadout-curator/SKILL.md +105 -0
  80. package/skills/loadout-router/SKILL.md +120 -0
  81. /package/dist/src/core/{agent-health-score.js → agents/agent-health-score.js} +0 -0
  82. /package/dist/src/core/{agent-versions.js → agents/agent-versions.js} +0 -0
  83. /package/dist/src/core/{conversion.js → agents/conversion.js} +0 -0
  84. /package/dist/src/core/{paths.js → agents/paths.js} +0 -0
  85. /package/dist/src/core/{runtime-tool-recipe.js → agents/runtime-tool-recipe.js} +0 -0
  86. /package/dist/src/core/{catalog-coverage.js → catalog/catalog-coverage.js} +0 -0
  87. /package/dist/src/core/{safety.js → catalog/safety.js} +0 -0
  88. /package/dist/src/core/{skill-security.js → catalog/skill-security.js} +0 -0
  89. /package/dist/src/core/{community.js → discovery/community.js} +0 -0
  90. /package/dist/src/core/{github-discovery.js → discovery/github-discovery.js} +0 -0
  91. /package/dist/src/core/{private-discovery.js → discovery/private-discovery.js} +0 -0
  92. /package/dist/src/core/{ranking.js → discovery/ranking.js} +0 -0
  93. /package/dist/src/core/{atomic-file.js → install/atomic-file.js} +0 -0
  94. /package/dist/src/core/{diff.js → install/diff.js} +0 -0
  95. /package/dist/src/core/{update-watch.js → install/update-watch.js} +0 -0
  96. /package/dist/src/core/{completion.js → reporting/completion.js} +0 -0
  97. /package/dist/src/core/{loadout-badge.js → reporting/loadout-badge.js} +0 -0
  98. /package/dist/src/core/{terminal.js → reporting/terminal.js} +0 -0
  99. /package/dist/src/core/{access.js → routing/access.js} +0 -0
  100. /package/dist/src/core/{credentials.js → routing/credentials.js} +0 -0
  101. /package/dist/src/core/{sandbox.js → runtime/sandbox.js} +0 -0
  102. /package/dist/src/core/{active-limit.js → workspace/active-limit.js} +0 -0
  103. /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,14 +22,47 @@
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.
@@ -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**
@@ -59,7 +133,7 @@ This is an explicitly abridged transcript from a disposable Stable run. A litera
59
133
  ```console
60
134
  $ loadout setup --mode stable
61
135
 
62
- Loadout: Stable Boost
136
+ Loadout: Stable
63
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)
@@ -106,6 +180,12 @@ coding agents without making you rebuild the setup for every agent and every pro
106
180
  Most extension tools begin with a repo you already know. Loadout begins one step
107
181
  earlier: **what is actually worth knowing?** It stays with you after installation.
108
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
+
109
189
  Loadout watches a much wider catalog than it activates. You can keep thousands of
110
190
  technically screened skill copies in the disabled Maximum library, discover new projects as
111
191
  they appear, and let each codebase pull a focused active set instead of dumping
@@ -142,7 +222,7 @@ you can run yourself.
142
222
 
143
223
  ## Stable workflow
144
224
 
145
- ### Stable Boost: install the essentials and start building
225
+ ### Stable: install the essentials and start building
146
226
 
147
227
  Stable is the recommended daily driver: **30 selected skill directories from four
148
228
  pinned public sources**, installed into each agent you choose. It covers planning,
@@ -199,9 +279,31 @@ checked by `loadout update` without moving them to a different agent path.
199
279
 
200
280
  ## Profiles
201
281
 
202
- 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 |
291
+
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.
203
305
 
204
- ### Power Boost: a larger cross-project toolkit
306
+ ### Power: a larger cross-project toolkit
205
307
 
206
308
  Power draws a skill-level allowlist from eight major collections. The prepared set
207
309
  is deduplicated and invalid units are quarantined, so the final count can be lower
@@ -349,7 +451,7 @@ Loadout does not claim there is one universally “best” configuration. Recomm
349
451
 
350
452
  <!-- loadout:daily-discovery:start -->
351
453
 
352
- **Discovery snapshot (generated 2026-08-30):** [237 repositories observed](./docs/DISCOVERED.md), including 218 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.
353
455
  <!-- loadout:daily-discovery:end -->
354
456
 
355
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.
@@ -414,16 +516,17 @@ Start at the top and stop whenever Loadout does everything you need.
414
516
  | 12 | Shows candidates waiting for deeper review | `loadout review-queue` |
415
517
  | 13 | Lists MCP recipes and credential needs | `loadout mcp-recipe`; `loadout mcp-recipe --credential-free` |
416
518
  | 14 | Previews an MCP configuration | `loadout mcp-recipe playwright --agent claude-code` |
417
- | 15 | Recommends the right model and agent for a task | `loadout route design the auth system` |
418
- | 16 | Shows the full model catalog with pricing | `loadout route --models`; `loadout route --cost` |
419
- | 17 | Sends a task to another agent via file-based handoff | `loadout handoff send codex "write tests for auth"` |
420
- | 18 | Checks agent health, permissions, and setup | `loadout doctor`; `loadout doctor --verbose` |
421
- | 19 | Lists and installs isolated runtime tools such as Graphify | `loadout tool`; `loadout tool graphify` |
422
- | 20 | Lists snapshots or restores the latest managed change | `loadout rollback --list`; `loadout rollback` |
423
- | 21 | Previews removal of one managed package | `loadout remove <package-id>` |
424
- | 22 | Previews complete removal of Loadout-managed state | `loadout uninstall` |
425
- | 23 | Enables read-only daily discovery and update checks | `loadout autopilot --yes` |
426
- | 24 | Shows the complete CLI | `loadout --help`; `loadout advanced` |
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` |
427
530
 
428
531
  Most mutating commands are dry runs first. After reading the preview, add `--yes` to
429
532
  apply. Commands with executable or connection risk require the additional approval