loadout-ai 0.4.0 → 0.5.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/CHANGELOG.md +65 -0
- package/MASTER_PLAN.md +173 -9
- package/README.md +57 -19
- package/catalog/discovered.json +8422 -6957
- package/catalog/packages.json +26 -0
- package/dist/src/cli.js +140 -68
- package/dist/src/core/active-policy.js +216 -42
- package/dist/src/core/active-set.js +14 -5
- package/dist/src/core/adopt.js +1 -1
- package/dist/src/core/catalog-coverage.js +2 -1
- package/dist/src/core/catalog-install.js +23 -8
- package/dist/src/core/cli-guide.js +5 -2
- package/dist/src/core/codex-mcp.js +49 -5
- package/dist/src/core/completion.js +0 -3
- package/dist/src/core/health.js +19 -11
- package/dist/src/core/install.js +6 -39
- package/dist/src/core/mcp-recipes.js +13 -4
- package/dist/src/core/mcp.js +6 -5
- package/dist/src/core/model-config.js +1 -1
- package/dist/src/core/portable.js +1 -1
- package/dist/src/core/recommend.js +129 -27
- package/dist/src/core/remove.js +28 -2
- package/dist/src/core/runtime-tool-recipe.js +2 -2
- package/dist/src/core/runtime-tools.js +15 -4
- package/dist/src/core/snapshot.js +20 -0
- package/dist/src/core/state.js +9 -0
- package/dist/src/core/sync.js +1 -1
- package/dist/src/core/target-occupancy.js +50 -0
- package/dist/src/core/transaction.js +2 -1
- package/dist/src/shared/schemas.js +1 -0
- package/docs/CATALOG.md +3 -2
- package/docs/DISCOVERED.md +253 -255
- package/docs/FEATURE_TEST_MATRIX.md +19 -32
- package/docs/GITHUB_AUTHORIZATION.md +2 -2
- package/docs/TESTING.md +3 -16
- package/docs/USER_TEST_GUIDE.md +39 -13
- package/docs/assets/loadout-workflow.png +0 -0
- package/docs/evidence/readme-claims.json +0 -8
- package/docs/superpowers/plans/2026-07-20-loadout-readme-explainer.md +116 -0
- package/docs/superpowers/plans/2026-07-20-project-activation-safety.md +469 -0
- package/docs/superpowers/specs/2026-07-20-loadout-readme-explainer-design.md +55 -0
- package/docs/superpowers/specs/2026-07-20-project-activation-safety-design.md +228 -0
- package/package.json +4 -6
- package/dashboard/app.js +0 -607
- package/dashboard/index.html +0 -249
- package/dashboard/styles.css +0 -384
- package/dist/src/core/demo.js +0 -136
- package/dist/src/dashboard.js +0 -421
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Add the pinned MIT-licensed Obsidian Skills collection and recommend it only when an
|
|
8
|
+
Obsidian vault is detected.
|
|
9
|
+
- Add host-aware reviewed MCP setup, verification, health, rollback, and removal for
|
|
10
|
+
Codex and Claude Code.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Remove the dashboard and disposable demo commands so the CLI is the single
|
|
15
|
+
authoritative product surface.
|
|
16
|
+
- Define Stable as the bounded 30-skill default, Power as the intentionally larger
|
|
17
|
+
active toolkit, and Maximum as the broad disabled library with project activation.
|
|
18
|
+
- Group Maximum quarantine, deferral, and risk output by default; retain every unit
|
|
19
|
+
under `setup --details`.
|
|
20
|
+
- Refresh the dated GitHub discovery feed locally and present sourced, inspected,
|
|
21
|
+
Stable-selected, and future evidence stages without the misleading `0 discovered`
|
|
22
|
+
headline.
|
|
23
|
+
- Gate project-aware activation by detected language, framework, provider, and
|
|
24
|
+
project role before scoring generic CLI, MCP, package, publish, or schema words.
|
|
25
|
+
- Keep explicit skill pins as a deliberate override while treating the active-set
|
|
26
|
+
limit as a ceiling rather than filling it with ecosystem-mismatched candidates.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Clean compiled output before every build and reject removed dashboard/demo files
|
|
31
|
+
from the packed artifact, preventing stale JavaScript from leaking into npm.
|
|
32
|
+
- Add human-readable rollback history with timestamps, mutation labels, affected
|
|
33
|
+
roots, effective change counts, and explicit no-op guidance.
|
|
34
|
+
- Report an empty managed installation as `not configured` rather than healthy.
|
|
35
|
+
- Configure reviewed MCP recipes directly for Codex TOML or Claude Code JSON, track
|
|
36
|
+
their fingerprints, include ownership state in the same rollback transaction, and
|
|
37
|
+
remove only the managed server entry.
|
|
38
|
+
- Prevent substring matches such as `npm` inside `pnpm` and arbitrary `*-cli`
|
|
39
|
+
names from receiving unrelated Node CLI or Commander relevance scores.
|
|
40
|
+
- Stop non-.NET, non-Python, non-Elixir, non-frontend, and non-backend projects
|
|
41
|
+
from automatically activating domain-specific guidance for those ecosystems.
|
|
42
|
+
|
|
43
|
+
## 0.4.1 - 2026-07-20
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- Detect local Node CLI, npm package, release, Vitest, Commander, Zod, MCP,
|
|
48
|
+
and security signals when recommending project tooling.
|
|
49
|
+
- Label recommendations as skill libraries, explicit MCP/runtime setup, or
|
|
50
|
+
unavailable instead of presenting every catalog record as automatically
|
|
51
|
+
activatable.
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- Calculate project activation capacity separately for each agent and count
|
|
56
|
+
both Loadout-managed and pre-existing unmanaged skills toward `--limit`.
|
|
57
|
+
- Prefer compact, diverse project skill sets and reject mismatched Jest-only
|
|
58
|
+
guidance for Vitest-only repositories.
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- Allow project activation through recursively empty directories restored by
|
|
63
|
+
rollback while continuing to block files, symlinks, unreadable paths, and
|
|
64
|
+
unsupported entries.
|
|
65
|
+
- Re-check per-agent capacity and target occupancy inside the activation
|
|
66
|
+
transaction so filesystem changes after preview abort without partial edits.
|
|
67
|
+
|
|
3
68
|
## 0.4.0 - 2026-07-20
|
|
4
69
|
|
|
5
70
|
### Added
|
package/MASTER_PLAN.md
CHANGED
|
@@ -6,7 +6,7 @@ Category: Developer Tools
|
|
|
6
6
|
Team size: 3
|
|
7
7
|
Target submission: July 21, 2026 at 5:00 PM Pacific / July 22 at 4:00 AM Dubai
|
|
8
8
|
|
|
9
|
-
## Current status and remaining work (July
|
|
9
|
+
## Current status and remaining work (July 21, 2026)
|
|
10
10
|
|
|
11
11
|
This is the authoritative active list. The long phase history below is retained as
|
|
12
12
|
an archival engineering record, not a second active plan and not a command to build
|
|
@@ -92,9 +92,12 @@ merged `codex/relatable-readme-hero` remote branch remains safe to delete after
|
|
|
92
92
|
observed failure and turn reproducible ones into regression tests.
|
|
93
93
|
- [ ] `P18-13 [HUMAN+TERRA]` Publish `loadout-ai@0.4.0` to npm, then test that exact
|
|
94
94
|
registry tarball in a fresh terminal through Stable -> rollback -> Power ->
|
|
95
|
-
rollback -> Maximum -> project optimization ->
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
rollback -> Maximum -> project optimization -> complete uninstall.
|
|
96
|
+
Publication completed on July 20. A clean temporary install resolved the exact
|
|
97
|
+
registry tarball, reported version `0.4.0`, and completed `loadout demo` with
|
|
98
|
+
rollback verification. The founder's real Codex/Claude CLI lifecycle test
|
|
99
|
+
remains required before this item can be checked; dashboard testing was removed
|
|
100
|
+
after founder review rejected it as a conflicting product surface.
|
|
98
101
|
- [ ] `P18-17 [HUMAN]` Resolve the GitHub account billing or spending-limit condition
|
|
99
102
|
that prevents Actions jobs from starting, rerun CI and daily discovery on the
|
|
100
103
|
integrated commit, and record the result. CI runs
|
|
@@ -107,6 +110,167 @@ merged `codex/relatable-readme-hero` remote branch remains safe to delete after
|
|
|
107
110
|
GitHub currently returns 404 for the protection endpoint, so protection is
|
|
108
111
|
absent or not observable; do not describe it as enabled.
|
|
109
112
|
|
|
113
|
+
### Founder acceptance findings and 0.4.1 corrections
|
|
114
|
+
|
|
115
|
+
- [x] `P18-21A [HUMAN+TERRA]` Verify the published 0.4.0 Stable lifecycle on the
|
|
116
|
+
founder's real Claude Code and Codex paths. Stable installed four pinned sources
|
|
117
|
+
as 60 managed activations, preserved all 12 unmanaged Claude skills, reported no
|
|
118
|
+
managed drift, and restored the explicit pre-install snapshot successfully.
|
|
119
|
+
- [x] `P18-21B [TERRA]` Make rollback history understandable. The first
|
|
120
|
+
founder test exposed that bare `loadout rollback` selected a newer no-op
|
|
121
|
+
dashboard/sync snapshot whose pre-state already contained Stable. No data was
|
|
122
|
+
lost, but `rollback --list` showed opaque IDs only and `Restored snapshot` did
|
|
123
|
+
not disclose that zero effective files changed. Rollback history now displays
|
|
124
|
+
timestamp, mutation label, affected roots, effective entry count, latest marker,
|
|
125
|
+
and explicit no-op guidance. New mutations carry user-facing labels. A CLI
|
|
126
|
+
regression journey proves adjacent no-op and install snapshots plus explicit
|
|
127
|
+
older-snapshot restoration.
|
|
128
|
+
- [x] `P18-22 [TERRA]` Remove the dashboard before the public release. Founder review
|
|
129
|
+
confirmed that it presents recommendation presets (`stable`, `web`,
|
|
130
|
+
`collaboration`, `maximum`) as policy profiles while the real CLI contract is
|
|
131
|
+
`stable`, `power`, `maximum`, and `custom`; its manifest-sync mutation model is
|
|
132
|
+
not the CLI setup workflow. Remove the command, loopback server, browser assets,
|
|
133
|
+
dashboard-only dependencies/tests/docs/evidence, and npm package contents.
|
|
134
|
+
The CLI retains all useful inspection, recommendation, configuration, health,
|
|
135
|
+
rollback, and uninstall capabilities; there is no competing dashboard workflow.
|
|
136
|
+
- [ ] `P18-23 [HUMAN+TERRA]` Complete the remaining CLI-only founder path on the exact
|
|
137
|
+
npm package. Power and its explicit rollback are complete: snapshot
|
|
138
|
+
`1784546929191-9cfb0705dbed` restored zero Loadout-managed activations, retained
|
|
139
|
+
all 12 unmanaged Claude skills, returned Codex to zero skills, and left no
|
|
140
|
+
duplicate groups. Maximum setup is also complete: snapshot
|
|
141
|
+
`1784547473319-7581eb19ee9c` stored 2,316 screened skill copies from 29 packages
|
|
142
|
+
in the disabled library, activated none of them, and again preserved the 12
|
|
143
|
+
unmanaged Claude skills. Remaining path: project activation -> recommendation/
|
|
144
|
+
optimization -> Graphify install/remove -> credential-free MCP inventory ->
|
|
145
|
+
read-only update/discovery -> complete uninstall -> reinstall. Record every
|
|
146
|
+
mutation snapshot ID and use explicit rollback IDs during acceptance.
|
|
147
|
+
- [x] `P18-24 [SOL+TERRA]` Make Power match the intended product hierarchy based on
|
|
148
|
+
the real founder run.
|
|
149
|
+
The published transaction itself passed: eight immutable sources installed for
|
|
150
|
+
Claude Code and Codex, 100 managed activations were created, 12 unmanaged Claude
|
|
151
|
+
skills were preserved, duplicate targets were resolved, six rejected skill
|
|
152
|
+
units were excluded, and 1,170 managed files reported zero drift. The profile
|
|
153
|
+
policy failed acceptance: it activates 50 skills per agent despite Loadout's
|
|
154
|
+
recommended limit of 30; every selected package retained blocking static-risk
|
|
155
|
+
findings (79 total); only five of eight sources have an asserted SPDX license;
|
|
156
|
+
and one coarse prompt approves all package findings. The founder clarified that
|
|
157
|
+
Power is intentionally the larger active mode, not another 30-skill Stable.
|
|
158
|
+
Stable remains bounded at 30; Power explicitly warns about its larger context
|
|
159
|
+
footprint; Maximum stores the broadest screened library disabled and activates
|
|
160
|
+
only project-relevant subsets. Invalid units remain quarantined and detailed
|
|
161
|
+
findings stay available behind `--details`. Existing transaction and founder
|
|
162
|
+
evidence proves unmanaged-skill preservation and exact rollback.
|
|
163
|
+
- [x] `P18-25 [LUNA+TERRA]` Make health output honest and focused for empty or unmanaged
|
|
164
|
+
profiles. After the successful Power rollback, `loadout health --explain` led
|
|
165
|
+
with `Loadout health: healthy` and then reported 28/100 critical evidence for
|
|
166
|
+
Claude Code, 0/100 unknown for Codex, and similarly verbose sections for every
|
|
167
|
+
detected agent. Empty managed state now reports `not configured`, the default
|
|
168
|
+
remains concise, and `--explain --agents <ids>` keeps deeper evidence scoped.
|
|
169
|
+
Health also understands managed Codex TOML MCP entries instead of falsely
|
|
170
|
+
reporting JSON drift.
|
|
171
|
+
- [x] `P18-26 [LUNA+TERRA]` Make Maximum's preview understandable without weakening
|
|
172
|
+
its safe defaults. The founder run proved the disabled-library contract, but
|
|
173
|
+
printed 50 unit-level quarantine blocks, 19 expected MCP/runtime deferrals, two
|
|
174
|
+
`No SKILL.md` preparation failures, and one coarse 28-package risk approval in
|
|
175
|
+
the default path. The subsequent scan reported 11 repository failures without
|
|
176
|
+
naming them. Default to a concise grouped summary with exact counts, severity,
|
|
177
|
+
source, and next commands; retain complete findings behind an explicit details
|
|
178
|
+
or JSON view. MCP/runtime-only records are explicit deferred setup rather than
|
|
179
|
+
failed skill preparation; actual repository preparation failures remain named
|
|
180
|
+
with their reason. The default preview groups quarantine and deferral counts,
|
|
181
|
+
while `--details` shows every unit. Regression tests cover both views.
|
|
182
|
+
- [x] `P18-27 [SOL+TERRA, LUNA copy review]` Correct project-aware activation safety
|
|
183
|
+
and relevance using
|
|
184
|
+
`docs/superpowers/specs/2026-07-20-project-activation-safety-design.md`.
|
|
185
|
+
Founder preview proved that activation currently ignores 12 unmanaged Claude
|
|
186
|
+
skills when calculating `--limit 30`, treats rollback-restored empty directories
|
|
187
|
+
as occupied for both agents, and proposes a generic, redundant 30-skill set from
|
|
188
|
+
only JavaScript/TypeScript and Playwright signals. Implement the approved shared
|
|
189
|
+
empty-target predicate, per-agent total active capacity, bounded Node CLI/npm/
|
|
190
|
+
Vitest/MCP project signals, diverse evidence-threshold selection, integration-
|
|
191
|
+
type labels, atomic apply revalidation, and the specified regression suite.
|
|
192
|
+
Implementation is complete on `codex/project-activation-safety`: the full local
|
|
193
|
+
release gate passes, including 114 unit-test files with 605 passing tests and
|
|
194
|
+
one intentional skip; the disposable two-agent CLI journey proves 12 unmanaged
|
|
195
|
+
Claude skills, distinct Claude/Codex budgets, empty rollback residue, one atomic
|
|
196
|
+
apply, and explicit rollback; the packed artifact is 468.0 kB with 145 files;
|
|
197
|
+
and the fresh scan benchmark passed at 1,583.5 ms p95 across seven real CLI
|
|
198
|
+
runs. Do
|
|
199
|
+
not resume real-profile activation until this branch is reviewed, integrated,
|
|
200
|
+
versioned, and published as the corrected release.
|
|
201
|
+
- [x] `P18-28 [HUMAN+TERRA]` Merge the project-activation corrections through PR #4
|
|
202
|
+
and publish the exact verified release as `loadout-ai@0.4.1`. Registry
|
|
203
|
+
verification returned version `0.4.1` and integrity
|
|
204
|
+
`sha512-k8WTNh6kTIaaBFTPGsl/QD/7/LQ1Gg9uMReM87gAkBPdcG0IxanM9NznyjemsYa124yYPczAY5MVYan4i91MtA==`;
|
|
205
|
+
a clean temporary global install reported `0.4.1` and detected TypeScript,
|
|
206
|
+
Playwright, Node CLI, npm package, release, MCP, security, Commander, Zod, and
|
|
207
|
+
Vitest signals from this repository. Tag `v0.4.1` points to release commit
|
|
208
|
+
`0d25b8e`. This is the corrected founder-testing release, not the final public
|
|
209
|
+
launch candidate: dashboard removal, Power policy, health output, and Maximum
|
|
210
|
+
preview work remain open.
|
|
211
|
+
- [x] `P18-29 [SOL+TERRA]` Block ecosystem-mismatched project activation candidates
|
|
212
|
+
before scoring. The exact published `0.4.1` founder preview correctly detected
|
|
213
|
+
this TypeScript Node CLI, respected both agents' real capacity, and produced no
|
|
214
|
+
false occupied-target blockers, but still proposed `mcp-csharp-publish`,
|
|
215
|
+
`mcp-csharp-test`, `uv-package-manager`, `social-publishing`, and
|
|
216
|
+
`vercel-cli-with-tokens`, then exposed `msstore-cli`, `phoenix-cli`, and
|
|
217
|
+
`publish-to-pages` once those higher-ranked mismatches were removed. A second
|
|
218
|
+
preview exposed the general cause: any domain-specific name ending in `-cli`,
|
|
219
|
+
including `datadog-cli`, inherited the full Node CLI and Commander score; a
|
|
220
|
+
third exposed substring matching of `npm` inside `pnpm`, plus backend and web
|
|
221
|
+
design guidance without corresponding project roles; a fourth caught generic
|
|
222
|
+
`schema` admitting database design for Zod and universal accessibility guidance
|
|
223
|
+
in a CLI project. Add deterministic language/provider/specialization
|
|
224
|
+
compatibility gates, bounded generic CLI and schema evidence, token-aware
|
|
225
|
+
package-manager matching, and role-gated backend/frontend guidance. Generic
|
|
226
|
+
`mcp`, `cli`, `package`, and `publish` words must not override compatibility;
|
|
227
|
+
preserve explicit pins as a deliberate escape hatch; prove the exact regression
|
|
228
|
+
with tests and repeat the read-only founder preview before any real activation.
|
|
229
|
+
Complete on `codex/activation-compatibility-gates`: the exact live Maximum
|
|
230
|
+
library preview now proposes 24 relevant Codex skills and 18 capacity-bounded
|
|
231
|
+
Claude Code skills with zero occupied-target blockers and none of the observed
|
|
232
|
+
ecosystem mismatches. The full release gate passes with 114 test files, 607
|
|
233
|
+
passing tests, one intentional skip, both CLI product journeys, packaged CLI
|
|
234
|
+
smoke, evidence checks, and a 1,518.4 ms p95 scan benchmark across seven real
|
|
235
|
+
runs. The preview remained read-only; publish the merged correction before the
|
|
236
|
+
founder applies it to real agent profiles.
|
|
237
|
+
|
|
238
|
+
### Product-first release candidate work
|
|
239
|
+
|
|
240
|
+
- [x] `P18-30 [TERRA]` Add `kepano/obsidian-skills` at an immutable MIT-licensed
|
|
241
|
+
revision as the 51st credited catalog source. Detect `.obsidian` vaults and
|
|
242
|
+
recommend/activate the five Obsidian-oriented skills only for relevant projects;
|
|
243
|
+
do not burden universal Stable with a niche tool.
|
|
244
|
+
- [x] `P18-31 [TERRA]` Make reviewed MCP recipes usable from the normal CLI for both
|
|
245
|
+
Codex and Claude Code. `mcp-recipe --agent <host>` now chooses the real host
|
|
246
|
+
config path and format, previews before writing, stores managed fingerprints,
|
|
247
|
+
verifies presence, reports drift in health, and removes only Loadout's entry.
|
|
248
|
+
Config plus ownership state commit in one rollback transaction, so rollback
|
|
249
|
+
cannot leave a stale managed MCP record. Disposable end-to-end tests cover
|
|
250
|
+
preview, apply, verify, health, rollback, reapply, and removal.
|
|
251
|
+
- [x] `P18-32 [TERRA]` Present evidence maturity without the misleading exclusive
|
|
252
|
+
`0 discovered` headline. The README now reports 51 sourced/inspected records,
|
|
253
|
+
four Stable sources, and the dated discovery feed separately. It clearly says
|
|
254
|
+
independent human-review and comparative benchmark publications are future
|
|
255
|
+
promotion stages rather than implying the catalog is unusable.
|
|
256
|
+
- [ ] `P18-33 [HUMAN+TERRA]` Publish the next verified CLI-only release and run the
|
|
257
|
+
founder path from that exact npm tarball: Stable, Power, Maximum/project
|
|
258
|
+
activation, Obsidian recommendation, Graphify, both-host credential-free MCP,
|
|
259
|
+
read-only update/discovery, rollback history, uninstall, and clean reinstall.
|
|
260
|
+
- [ ] `P18-34 [HUMAN]` Resolve or bypass exhausted GitHub-hosted Actions minutes by
|
|
261
|
+
running the documented complete gate locally now; later restore hosted CI with
|
|
262
|
+
billing/minutes, a self-hosted runner, or a teammate-owned fork. Never label an
|
|
263
|
+
unstarted hosted job as a code failure.
|
|
264
|
+
- [x] `P18-35 [TERRA]` Run the complete CLI-only release gate locally after all
|
|
265
|
+
product-first changes against the exact `0.5.0` package. On July 21 it passed formatting, lint, type checking,
|
|
266
|
+
catalog/discovery/README/release evidence, 113 test files with 603 passing and
|
|
267
|
+
one intentional skip, both CLI product journeys, packed npm smoke, and seven
|
|
268
|
+
real 1,000-skill scans at 1,468.2 ms p95.
|
|
269
|
+
- [x] `P18-36 [TERRA]` Close the stale-build packaging gap caught by the first npm
|
|
270
|
+
publish attempt. Every build now removes `dist` first on every platform, and the
|
|
271
|
+
package smoke test rejects removed dashboard/demo JavaScript if it ever leaks
|
|
272
|
+
back into the tarball. The failed OTP-gated attempt published nothing.
|
|
273
|
+
|
|
110
274
|
### Release 0.3 lifecycle hardening
|
|
111
275
|
|
|
112
276
|
- [x] `P18-09 [SOL+TERRA]` Add preview-first complete uninstall with modified-file
|
|
@@ -1838,7 +2002,7 @@ The MVP is done only when a judge can:
|
|
|
1838
2002
|
- Dashboard first-run flow.
|
|
1839
2003
|
- Windows, macOS, Linux CI.
|
|
1840
2004
|
|
|
1841
|
-
## 22.
|
|
2005
|
+
## 22. Recorded product walkthrough
|
|
1842
2006
|
|
|
1843
2007
|
1. Show Claude, Codex, and Cursor with inconsistent/manual setup.
|
|
1844
2008
|
2. Run `npx loadout-ai` after npm publication, or `npx .` from the cloned repository.
|
|
@@ -1864,7 +2028,7 @@ Mitigation: full skill support for six; MCP only for three; mark unsupported hon
|
|
|
1864
2028
|
### Corrupting user configuration
|
|
1865
2029
|
|
|
1866
2030
|
Mitigation: plan-only adapters, snapshots, staging, validation, automatic restore,
|
|
1867
|
-
fixture-based tests,
|
|
2031
|
+
fixture-based tests, and disposable test homes isolated from the real profile.
|
|
1868
2032
|
|
|
1869
2033
|
### Supply-chain risk
|
|
1870
2034
|
|
|
@@ -1877,10 +2041,10 @@ Mitigation: lead with one-command diagnosis of what the user already has, honest
|
|
|
1877
2041
|
provenance, evidence-backed comparison, reviewed-library versus active-set separation,
|
|
1878
2042
|
project optimization, automatic discovery tiers, update explanation, and rollback.
|
|
1879
2043
|
|
|
1880
|
-
###
|
|
2044
|
+
### Competing frontend and CLI behavior
|
|
1881
2045
|
|
|
1882
|
-
Mitigation:
|
|
1883
|
-
|
|
2046
|
+
Mitigation: keep one authoritative CLI product surface. The superseded dashboard and
|
|
2047
|
+
its separate profile/mutation model were removed before the public release candidate.
|
|
1884
2048
|
|
|
1885
2049
|
### GitHub API rate limits
|
|
1886
2050
|
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="./docs/assets/loadout-
|
|
2
|
+
<img src="./docs/assets/loadout-workflow.png" alt="Loadout workflow: choose extensions, inspect sources, preview changes, apply through a managed snapshot, and undo safely across supported AI coding agents." width="960">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<h1 align="center">Loadout</h1>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
</p>
|
|
27
27
|
|
|
28
28
|
> [!IMPORTANT]
|
|
29
|
-
> Installation is version-pinned so the code you test matches these docs. The commands below target `loadout-ai@0.
|
|
29
|
+
> Installation is version-pinned so the code you test matches these docs. The commands below target `loadout-ai@0.5.0`; review the preview before every apply.
|
|
30
30
|
|
|
31
31
|
## How it works
|
|
32
32
|
|
|
@@ -76,7 +76,7 @@ Skills, plugins, MCP servers, and agent settings tend to accumulate one experime
|
|
|
76
76
|
You need Node.js 20 or newer and Git.
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
npm install --global loadout-ai@0.
|
|
79
|
+
npm install --global loadout-ai@0.5.0
|
|
80
80
|
loadout --version
|
|
81
81
|
loadout guide
|
|
82
82
|
```
|
|
@@ -92,13 +92,13 @@ npm link
|
|
|
92
92
|
loadout --version
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
For a
|
|
95
|
+
For a first read-only preview, run:
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
|
-
loadout
|
|
98
|
+
loadout setup --mode stable
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
Nothing is installed until you explicitly approve the preview. See the [user test guide](./docs/USER_TEST_GUIDE.md) if linking, `PATH`, networking, risk approval, or rollback needs attention.
|
|
102
102
|
|
|
103
103
|
## Stable workflow
|
|
104
104
|
|
|
@@ -119,26 +119,64 @@ Stable currently selects 30 skill directories from four pinned, SPDX-identified,
|
|
|
119
119
|
|
|
120
120
|
## Profiles
|
|
121
121
|
|
|
122
|
-
| Profile | Scope
|
|
123
|
-
| ----------- |
|
|
124
|
-
| **Stable** |
|
|
125
|
-
| **Power** |
|
|
126
|
-
| **Maximum** |
|
|
127
|
-
| **Custom** | Only package IDs explicitly supplied by the user
|
|
122
|
+
| Profile | Scope |
|
|
123
|
+
| ----------- | --------------------------------------------------------------------- |
|
|
124
|
+
| **Stable** | 30 active everyday skills from four pinned sources |
|
|
125
|
+
| **Power** | A deliberately larger active toolkit from eight pinned collections |
|
|
126
|
+
| **Maximum** | Every screened skill in a disabled library; activate relevant subsets |
|
|
127
|
+
| **Custom** | Only package IDs explicitly supplied by the user |
|
|
128
|
+
|
|
129
|
+
Run `loadout profiles` to compare them and `loadout setup --mode <profile>` to preview one. Stable limits context. Power trades more context for broader always-available capability. Maximum gives you the largest library without injecting thousands of skills into every prompt; `loadout optimize --project .` chooses a relevant working set. MCP-only entries stay on a separate approval path.
|
|
130
|
+
|
|
131
|
+
## MCP integrations
|
|
132
|
+
|
|
133
|
+
MCP servers are not silently started by Stable, Power, or Maximum. List the reviewed recipes and their credential requirements:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
loadout mcp-recipe
|
|
137
|
+
loadout mcp-recipe --credential-free
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Preview and configure one for the host you use:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
loadout mcp-recipe playwright --agent codex
|
|
144
|
+
loadout mcp-recipe playwright --agent codex --yes
|
|
145
|
+
loadout mcp-recipe playwright --agent codex --verify
|
|
146
|
+
|
|
147
|
+
loadout mcp-recipe playwright --agent claude-code
|
|
148
|
+
loadout mcp-recipe playwright --agent claude-code --yes
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Configuration does not launch the server. A real bounded handshake requires the separate `--connect --approve-risk` action. Credentialed recipes accept environment or keychain references, never secret values in command output.
|
|
152
|
+
|
|
153
|
+
## Optional runtime tools
|
|
154
|
+
|
|
155
|
+
[Graphify](https://github.com/Graphify-Labs/graphify) is available as a separate,
|
|
156
|
+
reviewed local runtime recipe because it installs an executable as well as an agent
|
|
157
|
+
skill. It does not need an OpenAI or Anthropic API key. Loadout previews the pinned
|
|
158
|
+
artifact, permissions, targets, and rollback scope before doing anything:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
loadout tool graphify --agents codex,claude-code
|
|
162
|
+
loadout tool graphify --agents codex,claude-code --yes --approve-risk
|
|
163
|
+
loadout tool graphify --remove --agents codex,claude-code --yes --approve-risk
|
|
164
|
+
```
|
|
128
165
|
|
|
129
|
-
|
|
166
|
+
Graphify is intentionally not hidden inside Stable, Power, or Maximum: executable
|
|
167
|
+
tools always remain an explicit choice.
|
|
130
168
|
|
|
131
169
|
## Catalog and discovery
|
|
132
170
|
|
|
133
171
|
<!-- loadout:catalog-coverage:start -->
|
|
134
172
|
|
|
135
|
-
The bundled catalog currently contains **
|
|
173
|
+
The bundled catalog currently contains **51 credited public repositories** across **38 categories**: **32 have skill components** and **19 are MCP-only**. All 51 are technically screened and pinned; 4 sources are selected by the bounded Stable policy. See every linked source, license status, component type, and pinned commit in **[Catalog and upstream credits](./docs/CATALOG.md)**.
|
|
136
174
|
|
|
137
175
|
<!-- loadout:catalog-coverage:end -->
|
|
138
176
|
|
|
139
177
|
<!-- loadout:evidence-stages:start -->
|
|
140
178
|
|
|
141
|
-
Catalog
|
|
179
|
+
Catalog maturity: **51 sourced**, **51 technically inspected**, and **4 selected for Stable**. Independent human-review attestations and signed comparative benchmarks are not yet published, so Loadout does not pretend static inspection proves usefulness. The pinned catalog remains usable today, and local outcomes can be recorded to improve later rankings. Definitions and promotion rules are in the [catalog policy](./docs/CATALOG_POLICY.md).
|
|
142
180
|
|
|
143
181
|
<!-- loadout:evidence-stages:end -->
|
|
144
182
|
|
|
@@ -146,7 +184,7 @@ Loadout does not claim there is one universally “best” configuration. Recomm
|
|
|
146
184
|
|
|
147
185
|
<!-- loadout:daily-discovery:start -->
|
|
148
186
|
|
|
149
|
-
**Discovery snapshot (generated 2026-07-
|
|
187
|
+
**Discovery snapshot (generated 2026-07-21):** [240 repositories observed](./docs/DISCOVERED.md), including 216 uncataloged review candidates and 24 repositories already in the inspected catalog.
|
|
150
188
|
<!-- loadout:daily-discovery:end -->
|
|
151
189
|
|
|
152
190
|
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.
|
|
@@ -200,7 +238,7 @@ Configured paths and disposable filesystem lifecycle tests do not prove that nat
|
|
|
200
238
|
| Undo the latest supported mutation | `loadout rollback` |
|
|
201
239
|
| Remove one managed package | `loadout remove <package>` |
|
|
202
240
|
| Preview complete removal | `loadout uninstall` |
|
|
203
|
-
|
|
|
241
|
+
| List reviewed MCP integrations | `loadout mcp-recipe` |
|
|
204
242
|
| Discover the full surface | `loadout --help`; `loadout advanced` |
|
|
205
243
|
|
|
206
244
|
## Development
|
|
@@ -213,7 +251,7 @@ npm run verify:full
|
|
|
213
251
|
|
|
214
252
|
<!-- loadout:verification-summary:start -->
|
|
215
253
|
|
|
216
|
-
`verify` invokes `format:check`, `lint`, `typecheck`, `check:evidence`, `test`, `test:e2e:cli`, `test:e2e:readme`, `test:package`, `test:performance` in that order.
|
|
254
|
+
`verify` invokes `format:check`, `lint`, `typecheck`, `check:evidence`, `test`, `test:e2e:cli`, `test:e2e:readme`, `test:package`, `test:performance` in that order. `npm run verify:full` is an alias for the same complete CLI release gate.
|
|
217
255
|
|
|
218
256
|
<!-- loadout:verification-summary:end -->
|
|
219
257
|
|
|
@@ -236,7 +274,7 @@ The repository's mixed README product-flow test uses an isolated build, disposab
|
|
|
236
274
|
|
|
237
275
|
Keep changes scoped, add regression coverage for behavior changes, and run `npm run verify:full`. Report vulnerabilities through [SECURITY.md](./SECURITY.md), without credentials, private source, or unredacted state. General bugs and proposals belong in the [issue tracker](https://github.com/VirajMishra1/loadout/issues).
|
|
238
276
|
|
|
239
|
-
The catalog contains
|
|
277
|
+
The catalog contains 51 credited public repositories. Inclusion records discovery and attribution; it does not transfer ownership, imply endorsement, or relicense upstream work.
|
|
240
278
|
|
|
241
279
|
## License
|
|
242
280
|
|