loadout-ai 0.2.3 → 0.4.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 +71 -0
- package/MASTER_PLAN.md +141 -33
- package/README.md +160 -255
- package/dashboard/app.js +4 -4
- package/dashboard/index.html +4 -4
- package/dist/src/cli.js +189 -32
- package/dist/src/core/active-set.js +37 -2
- package/dist/src/core/adapters.js +10 -0
- package/dist/src/core/adopt.js +165 -32
- package/dist/src/core/agent-health-score.js +2 -2
- package/dist/src/core/catalog-coverage.js +2 -1
- package/dist/src/core/catalog-install.js +8 -1
- package/dist/src/core/catalog-release.js +2 -1
- package/dist/src/core/cli-guide.js +101 -0
- package/dist/src/core/completion.js +3 -0
- package/dist/src/core/conformance.js +74 -0
- package/dist/src/core/install.js +36 -3
- package/dist/src/core/mcp-recipes.js +21 -0
- package/dist/src/core/profile-state.js +101 -0
- package/dist/src/core/profiles.js +9 -4
- package/dist/src/core/ranking.js +1 -1
- package/dist/src/core/readme-claims.js +10 -0
- package/dist/src/core/readme-facts.js +40 -0
- package/dist/src/core/recommend.js +9 -3
- package/dist/src/core/remove.js +6 -7
- package/dist/src/core/runtime-tools.js +10 -2
- package/dist/src/core/scheduler.js +4 -3
- package/dist/src/core/snapshot.js +58 -13
- package/dist/src/core/state.js +13 -3
- package/dist/src/core/transaction.js +2 -1
- package/dist/src/core/uninstall.js +133 -0
- package/dist/src/core/update.js +87 -58
- package/dist/src/dashboard.js +5 -2
- package/dist/src/shared/schemas.js +69 -0
- package/docs/FEATURE_TEST_MATRIX.md +16 -0
- package/docs/README_RESEARCH.md +36 -0
- package/docs/RELEASE_REVIEW.md +31 -5
- package/docs/REPOSITORY_STABILIZATION.md +190 -0
- package/docs/TESTING.md +75 -2
- package/docs/USER_TEST_GUIDE.md +202 -0
- package/docs/assets/loadout-hero.svg +259 -0
- package/docs/assets/loadout-mark.svg +54 -0
- package/docs/evidence/live-checks-2026-07-19.json +22 -0
- package/docs/evidence/live-checks.schema.json +28 -0
- package/docs/evidence/readme-claims.json +286 -0
- package/docs/superpowers/plans/2026-07-19-relatable-readme-hero.md +283 -0
- package/docs/superpowers/specs/2026-07-19-relatable-readme-hero-design.md +80 -0
- package/package.json +8 -4
- package/SIMPLE_PLAN.md +0 -44
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Repository stabilization record
|
|
2
|
+
|
|
3
|
+
Status date: 2026-07-19. This document records evidence gathered while consolidating
|
|
4
|
+
the repository. `MASTER_PLAN.md` is the only active plan; this is an audit record, not
|
|
5
|
+
a second backlog.
|
|
6
|
+
|
|
7
|
+
## Starting synchronization inventory
|
|
8
|
+
|
|
9
|
+
The investigation fetched all visible branches and tags before making cleanup
|
|
10
|
+
decisions. The starting GitHub default was `main` at
|
|
11
|
+
`189cb7a0e918860fc37bb92639126b93b387abec` (`v0.3.2`).
|
|
12
|
+
|
|
13
|
+
| Local branch/worktree | Starting head | Tracking state | Starting disposition |
|
|
14
|
+
| ------------------------------------------------- | ------------- | ----------------------------------------------------------- | ------------------------------------------- |
|
|
15
|
+
| `codex/readme-truth`, `/tmp/loadout-readme-truth` | `ee8d548` | 29 ahead of `origin/main`, clean | Preserve and integrate |
|
|
16
|
+
| `dev/nitish`, user checkout | `69b8fe7` | one ahead of `origin/dev/nitish`; untracked `.superpowers/` | Preserve user state and safety requirements |
|
|
17
|
+
| local `main` | `d2a11d8` | 101 behind `origin/main` | Fast-forward after integration |
|
|
18
|
+
| local `develop`, `dev/amartya`, `dev/viraj` | `d2a11d8` | stale or merged | Remove after final-main verification |
|
|
19
|
+
|
|
20
|
+
No local commit was treated as remote merely because it existed in a worktree.
|
|
21
|
+
|
|
22
|
+
## Failure ledger
|
|
23
|
+
|
|
24
|
+
| Failure | Reproduction/evidence | Root cause/classification | Resolution/status |
|
|
25
|
+
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
26
|
+
| Risky setup preview omitted `--approve-risk` | Prepared risky catalog plan printed an incomplete rerun command | Product guidance defect | Fixed in `1f62a1b`; regression test derives guidance from the prepared plan |
|
|
27
|
+
| Unknown command ran default onboarding | Unknown positional top-level command reached the root action | CLI routing defect | Fixed in `1f62a1b`; unknown commands fail non-zero while bare invocation remains valid |
|
|
28
|
+
| Explicit rollback could erase later user changes | Persisted snapshots recorded only pre-mutation bytes | Product data-safety defect | Fixed in `1f62a1b`; committed post-state is checked before user-requested rollback |
|
|
29
|
+
| Dashboard and special-file rollback bypasses | Default dashboard restore omitted the guard; nested FIFOs/sockets/devices were skipped | Product data-safety defect | Fixed in `6fd1a2c`; dashboard and unsupported-entry regressions pass |
|
|
30
|
+
| `dev/nitish` adoption preview covered only `SKILL.md` while ownership covered the whole directory | Deletion review traced preview through apply and `recordInstall`; auxiliary drift, cloned-plan forgery, and review over-attribution were reproducible | Product ownership/integrity defect; valuable safety intent existed only on the stale branch | Fixed in the current architecture by `186daa0`, `09e0e0c`, `3f2cafe`, and `10d6109`; focused and full verification pass |
|
|
31
|
+
| Fresh-clone live Stable rollback refused on `state.json` | `npm run check:live -- --stable-install` installed four pinned packages, then refused the Stable snapshot because later state differed | Product transaction-boundary defect plus invalid non-LIFO evidence-flow ordering | `5f8e38e` records profile state inside the catalog transaction and rolls Stable back before unrelated fixture transactions; exact state and managed-root drift checks remain enabled |
|
|
32
|
+
| Windows snapshot-root test used a POSIX fixture | CI run `29502017220` executed at `41b53e0`; Windows reported “absolute normalized path” before the test's expected “filesystem root” message | Test portability defect, not a runtime rollback failure | `c5fe192` changed the fixture to the host filesystem root; rerun `29502324100` passed |
|
|
33
|
+
| Recent GitHub CI and discovery runs did not start | Earlier blocked runs plus CI runs [`29691581581`](https://github.com/VirajMishra1/loadout/actions/runs/29691581581) and [`29692535521`](https://github.com/VirajMishra1/loadout/actions/runs/29692535521) have no executed steps; both CI annotations say the job was not started because recent account payments failed or the spending limit must be increased | GitHub account billing/spending-limit condition | External failure; no product-test result was produced |
|
|
34
|
+
| `loadout-ai@0.3.2` unavailable | npm registry version list ends at `0.3.1`; bounded live evidence records the same result | Package publication | Not verified; publish and test the exact tarball externally |
|
|
35
|
+
| `main` protection unavailable | GitHub branch-protection endpoint returns 404 | Repository setting/authorization | Absent or not observable; requires owner decision |
|
|
36
|
+
|
|
37
|
+
Internal failed-transaction recovery deliberately restores the pre-mutation snapshot
|
|
38
|
+
without the later-drift guard. The guard applies to user-requested CLI, dashboard, and
|
|
39
|
+
runtime-tool rollback. Legacy snapshots fail closed for those explicit paths.
|
|
40
|
+
|
|
41
|
+
## Recent Viraj commits and GitHub Actions
|
|
42
|
+
|
|
43
|
+
The recent Viraj changes were inspected as code and exercised locally; commit messages
|
|
44
|
+
were not used as proof.
|
|
45
|
+
|
|
46
|
+
| Commit | Implemented area | Main/Actions evidence |
|
|
47
|
+
| --------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `817c38f` | Public-beta CLI, package, credential, catalog, and release foundation | In `main`; CI run `29486160804` passed |
|
|
49
|
+
| `9798f1c` | Continuous discovery, generated catalog evidence, and snapshot hardening | In `main`; CI run `29491118338` passed |
|
|
50
|
+
| `6994d4e` | Candidate intelligence, signed catalog release, locking, and transaction hardening | In `main`; CI run `29497632211` passed |
|
|
51
|
+
| `41b53e0` | Stable profile, daily autopilot, and release workflow | In `main`; CI run `29502017220` failed on the Windows-only test fixture described above |
|
|
52
|
+
| `c5fe192` | Host-portable snapshot root guard test | In `main`; CI rerun `29502324100` passed |
|
|
53
|
+
| `4e93f5d` | Cross-platform release-matrix documentation | In `main`; CI run `29502646004` passed |
|
|
54
|
+
| `05e52a4` | Expanded Stable profile and reviewed Graphify recipe | In `main`; CI run `29505093720` passed |
|
|
55
|
+
| `f7f53fa` | Release-work documentation clarification | In `main`; CI run `29505532691` was cancelled after a newer push; no product failure was produced |
|
|
56
|
+
| `e35b8ff` | Upgrade, health-score, benchmark-campaign, and discovery foundation | In `main`; CI run `29508916710` passed |
|
|
57
|
+
| `3cb5505` | Trust, intelligence, benchmark, import, and skill-security systems | In `main`; CI run `29520771134` passed |
|
|
58
|
+
| `8e80ab4` | npm beta metadata and package-smoke adjustment | In `main`; CI run `29522705571` passed |
|
|
59
|
+
| `1fe9890` | Codex Desktop installation detection | In `main`; CI run `29524710934` and discovery run `29557150915` passed |
|
|
60
|
+
| `e4e469e` | Credential-aware setup, Maximum quarantine, and managed update scoping | In `main`; CI run `29583273859` passed |
|
|
61
|
+
| `ebb8133` | Unit-level Power quarantine and onboarding rewrite | In `main`; CI run `29585379546` passed |
|
|
62
|
+
| `88466ef` | npm `0.2.0` verification documentation | In `main`; CI run `29586111523` passed |
|
|
63
|
+
| `cf406e8` | Safe Stable/profile setup reruns | In `main`; CI run `29588415904` passed |
|
|
64
|
+
| `a016c0f` | Exact managed-profile reconciliation | In `main`; CI run `29590309101` passed |
|
|
65
|
+
| `33225ef` | Large rollback-snapshot validation | In `main`; CI run `29591059217` passed |
|
|
66
|
+
| `15f36e3` | Pinned Graphify generated fallback | In `main`; CI run `29591567247` passed |
|
|
67
|
+
| `16b8a7e` | Beginner and advanced CLI routing | In `main`; covered by current CLI tests |
|
|
68
|
+
| `31cb755` | Saved-profile updates and complete uninstall | In `main`; its CI job never started because of billing |
|
|
69
|
+
| `56ab3af` | Separation of model API keys from service credentials | In `main`; its CI job never started because of billing |
|
|
70
|
+
| `189cb7a` | Recursively empty skill-directory recovery | In `main`; its CI job never started because of billing |
|
|
71
|
+
| `e74ba16` | Consolidated README truth, lifecycle hardening, safety fixes, adoption integrity, and cleanup record | Integrated into remote `main`; CI run [`29692535521`](https://github.com/VirajMishra1/loadout/actions/runs/29692535521) failed before steps because of the billing/spending-limit condition |
|
|
72
|
+
| `5f8e38e` | Transactional installed-profile state and valid live Stable rollback ordering | Integrated into remote `main`; verified again from a fresh clone |
|
|
73
|
+
|
|
74
|
+
Earlier green runs prove their own commits only. They do not prove later commits that
|
|
75
|
+
GitHub never executed. Current local verification and future post-integration Actions
|
|
76
|
+
must remain separately reported.
|
|
77
|
+
|
|
78
|
+
## Branch cleanup observations during consolidation
|
|
79
|
+
|
|
80
|
+
At the 2026-07-19 consolidation checkpoint, there was one merged PR:
|
|
81
|
+
[#1](https://github.com/VirajMishra1/loadout/pull/1), `dev/nitish` into `develop`,
|
|
82
|
+
merged as `69594f2`; its recorded Linux, macOS, and Windows Node 20/22 jobs passed.
|
|
83
|
+
The authenticated query at that checkpoint returned no open PRs.
|
|
84
|
+
|
|
85
|
+
| Branch | Unique work relative to starting `origin/main` | Final result |
|
|
86
|
+
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
87
|
+
| `codex/readme-truth` | README evidence, adapter/product-flow coverage, release hardening, safety fixes, and consolidation | Integrated into `main`; local and remote branch deleted |
|
|
88
|
+
| `dev/nitish` | Its one real adoption-integrity gap is fully reimplemented and tested by `186daa0`, `09e0e0c`, `3f2cafe`, and `10d6109`; no valuable work remains | Local and remote branch deleted; unrelated `.superpowers/` preserved and ignored |
|
|
89
|
+
| `codex/cli-ux-polish` | None; tip `31cb755` is in main | Local and remote branch deleted |
|
|
90
|
+
| `codex/fix-large-snapshot-validation` | None; tip `33225ef` is in main | Local and remote branch deleted |
|
|
91
|
+
| `codex/fix-profile-reconciliation` | None; tip `a016c0f` is in main | Local and remote branch deleted |
|
|
92
|
+
| `codex/fix-stable-rerun` | None; tip `cf406e8` is in main | Local and remote branch deleted |
|
|
93
|
+
| `codex/harden-graphify-generated-install` | None; tip `15f36e3` is in main | Local and remote branch deleted |
|
|
94
|
+
| `dev/amartya` | Integrated through `6161c48` and later follow-ups | Local and remote branch deleted |
|
|
95
|
+
| `dev/viraj` | Old main ancestor | Local and remote branch deleted |
|
|
96
|
+
| `develop` | Old integration ancestor | Local and remote branch deleted |
|
|
97
|
+
|
|
98
|
+
Cleanup completed only after the integrated work reached remote `main` and the open-PR
|
|
99
|
+
list was empty. At that checkpoint, Git exposed only local `main`, `origin/main`, and
|
|
100
|
+
the retained release tags. The `/tmp/loadout-readme-truth` worktree had been removed.
|
|
101
|
+
The user's untracked `.superpowers/` directory remained present and ignored by
|
|
102
|
+
`.gitignore`; no user artifact was deleted.
|
|
103
|
+
|
|
104
|
+
## Planning and dead-file consolidation
|
|
105
|
+
|
|
106
|
+
`MASTER_PLAN.md` is authoritative because Viraj created it, maintained it across the
|
|
107
|
+
project history, linked it from README, and explicitly labeled its top section as the
|
|
108
|
+
active list. The removed files were unreferenced or self-described historical plans
|
|
109
|
+
whose implementation/status had moved elsewhere.
|
|
110
|
+
|
|
111
|
+
| Removed file | Evidence for deletion | Preserved outcome |
|
|
112
|
+
| ---------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------ |
|
|
113
|
+
| `NITISH_MASTER_PLAN.md` | Unreferenced; stale `dev/nitish`/`develop` policy | Durable safety work is in the master plan and implementation |
|
|
114
|
+
| `SIMPLE_PLAN.md` | Duplicate summary that named `MASTER_PLAN.md` canonical | README retains the user-facing summary |
|
|
115
|
+
| `docs/plans/2026-07-18-release-0.3.md` | Completed code plan with stale merge/publish boxes | External publication remains explicit in the master plan |
|
|
116
|
+
| `docs/superpowers/plans/2026-07-18-cli-ux-polish.md` | Implemented on main; stale commit/verify boxes | Founder testing remains explicit in the master plan |
|
|
117
|
+
| README truth implementation plan and design | Implemented, reviewed, and encoded by tests/evidence | Current status is in the master plan and release evidence |
|
|
118
|
+
|
|
119
|
+
Operational contracts such as `docs/TESTING.md`, `docs/FEATURE_TEST_MATRIX.md`,
|
|
120
|
+
`docs/RELEASE_REVIEW.md`, policy documents, and machine-readable evidence remain.
|
|
121
|
+
|
|
122
|
+
## README research and redesign evidence
|
|
123
|
+
|
|
124
|
+
The redesign research is recorded at immutable commits rather than mutable default
|
|
125
|
+
branches:
|
|
126
|
+
|
|
127
|
+
| Repository | Immutable README reference |
|
|
128
|
+
| ---------- | --------------------------------------------------------------------------------------------------------------- |
|
|
129
|
+
| Ponytail | [`16f2980`](https://github.com/DietrichGebert/ponytail/blob/16f29800fd2681bdf24f3eb4ccffe38be3baec6b/README.md) |
|
|
130
|
+
| uv | [`1535a67`](https://github.com/astral-sh/uv/blob/1535a6767e5ebd77eac2ace0f6cf1a3edc5f681c/README.md) |
|
|
131
|
+
| bat | [`7895139`](https://github.com/sharkdp/bat/blob/78951393e29bfd2f2a45f4326b9d2bb5e737dd2a/README.md) |
|
|
132
|
+
| fzf | [`b163463`](https://github.com/junegunn/fzf/blob/b163463079e6254b8582b05acefcf187ec160d9b/README.md) |
|
|
133
|
+
| ripgrep | [`227381d`](https://github.com/BurntSushi/ripgrep/blob/227381db0ee83dfa4341f1e27ff9617c0f5ad992/README.md) |
|
|
134
|
+
| mise | [`126e775`](https://github.com/jdx/mise/blob/126e7755cc22e36c3d206b650de613951146b5e3/README.md) |
|
|
135
|
+
| Gum | [`716d8b5`](https://github.com/charmbracelet/gum/blob/716d8b5d0221558f944b5a078dbbcca8572534fb/README.md) |
|
|
136
|
+
| Starship | [`8f28dfc`](https://github.com/starship/starship/blob/8f28dfcb1ca3242fba00a3cf98c10ee24605c3ed/README.md) |
|
|
137
|
+
|
|
138
|
+
`docs/README_RESEARCH.md` records the adopted principles and rejected patterns. The
|
|
139
|
+
front page should present the bounded product journey and link to evidence, not repeat
|
|
140
|
+
an exhaustive manual. In particular, the complete adapter table belongs in
|
|
141
|
+
`docs/FEATURE_TEST_MATRIX.md`, not on the front page. A compact front-page support
|
|
142
|
+
summary must continue to distinguish configured target paths and disposable
|
|
143
|
+
filesystem tests from unverified native-agent recognition and execution.
|
|
144
|
+
|
|
145
|
+
## Dated external observations before the README redesign
|
|
146
|
+
|
|
147
|
+
These observations were captured on 2026-07-19 before README-redesign work began.
|
|
148
|
+
They are a historical checkpoint, not claims about repository state when this document
|
|
149
|
+
is later read.
|
|
150
|
+
|
|
151
|
+
- GitHub repository: the private fork was `reddynitish/loadout`; its default branch
|
|
152
|
+
was `main` at `18757d4`. The earlier `VirajMishra1/loadout` observations in this
|
|
153
|
+
record describe the upstream repository at the time of consolidation.
|
|
154
|
+
- Branches and PRs: `codex/readme-redesign` was the local work branch; the
|
|
155
|
+
authenticated check found no open pull requests in the fork at that time.
|
|
156
|
+
- npm: the registry exposed versions through `0.3.1`; `0.3.2` was not verified as
|
|
157
|
+
published.
|
|
158
|
+
- GitHub Actions: fork CI run
|
|
159
|
+
[`29704170975`](https://github.com/reddynitish/loadout/actions/runs/29704170975) passed
|
|
160
|
+
for `main` at `18757d4`. The upstream billing-blocked runs above were historical
|
|
161
|
+
evidence only and did not describe the fork's CI capability.
|
|
162
|
+
- Branch protection: the authenticated protection endpoint returned HTTP 403 stating
|
|
163
|
+
that the private repository requires GitHub Pro or public visibility for the
|
|
164
|
+
feature. Protection was unavailable under the observed repository plan; this was
|
|
165
|
+
not a product-runtime result.
|
|
166
|
+
- Native application consumption of every configured adapter path was unverified;
|
|
167
|
+
disposable filesystem lifecycle evidence did not establish native-host support.
|
|
168
|
+
|
|
169
|
+
## Local verification after consolidation
|
|
170
|
+
|
|
171
|
+
On 2026-07-19, `npm run verify:full` completed successfully on macOS with Node 25.4.0:
|
|
172
|
+
|
|
173
|
+
- formatting, lint, type checking, build, catalog/discovery evidence, README claims,
|
|
174
|
+
and release claims passed;
|
|
175
|
+
- 112 Vitest files passed with 589 tests passing and one intentionally skipped;
|
|
176
|
+
- CLI and README product flows passed;
|
|
177
|
+
- packaged CLI smoke passed;
|
|
178
|
+
- the 1,000-skill scan benchmark passed at 240.5 ms p95 across seven CLI runs; and
|
|
179
|
+
- both desktop Chromium and mobile Chromium dashboard tests passed.
|
|
180
|
+
|
|
181
|
+
The fresh-clone live Stable gate also installed four pinned packages and completed
|
|
182
|
+
state and filesystem rollback assertions at `5f8e38e`. An initially considered
|
|
183
|
+
state-ignore fix was rejected during independent review because restoring an old
|
|
184
|
+
registry while leaving later package files could orphan installations. The final fix
|
|
185
|
+
keeps exact `state.json` and managed-root drift protection, includes installed-profile
|
|
186
|
+
state in transaction post-evidence, and uses strict LIFO ordering in the live flow.
|
|
187
|
+
|
|
188
|
+
An npm dry-run contained 137 entries, included this record and `MASTER_PLAN.md`, and
|
|
189
|
+
excluded every deleted plan. These local results do not substitute for GitHub Actions,
|
|
190
|
+
the unpublished `0.3.2` npm tarball, native-host acceptance, or branch protection.
|
package/docs/TESTING.md
CHANGED
|
@@ -31,6 +31,56 @@ This test does not use the dashboard, network, mock command output, or any real
|
|
|
31
31
|
profile. It is a required CI gate on Ubuntu; the manual cross-platform workflow runs
|
|
32
32
|
the broader native filesystem suite.
|
|
33
33
|
|
|
34
|
+
The README journey is a separate deterministic gate. It compiles an isolated build,
|
|
35
|
+
installs a local reviewed fixture into disposable Loadout/user homes, checks its
|
|
36
|
+
manifest, lock, hashes, privacy card, activation, and rollback, then deletes the
|
|
37
|
+
fixture and build:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm run test:e2e:readme
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### README product-flow verification contract
|
|
44
|
+
|
|
45
|
+
The README gate is a mixed core-integration/CLI flow, not a claim that two complete
|
|
46
|
+
native-agent journeys run end to end. It deliberately:
|
|
47
|
+
|
|
48
|
+
- compiles into an isolated temporary build instead of trusting the repository's
|
|
49
|
+
existing `dist` tree;
|
|
50
|
+
- redirects Loadout state, user-home, and project paths to disposable directories;
|
|
51
|
+
- uses a checked-in offline fixture, so its normal result does not depend on the
|
|
52
|
+
network or mutable upstream repositories;
|
|
53
|
+
- calls the core planner and installer directly to verify fixture planning, library
|
|
54
|
+
installation, manifest and lock generation, recorded hashes, and audit state; and
|
|
55
|
+
- starts CLI subprocesses to verify optimize preview/apply, privacy-safe card
|
|
56
|
+
rendering, and rollback restoration through the packaged command boundary.
|
|
57
|
+
|
|
58
|
+
The executable outcome assertions also require isolated-build and offline-fixture
|
|
59
|
+
mode, created state directories, persisted install records, file hashes, snapshots,
|
|
60
|
+
library transitions, manifest/lock consistency, an unmanaged sentinel that survives,
|
|
61
|
+
and byte restoration after rollback.
|
|
62
|
+
|
|
63
|
+
These checks prove Loadout's behavior against disposable filesystem targets. They do
|
|
64
|
+
not prove that every native agent recognizes or executes an installed skill, that a
|
|
65
|
+
live catalog is reachable, that the current npm package is published, or that third-party content
|
|
66
|
+
is universally safe. The opt-in `LOADOUT_TEST_LIVE_CATALOG=1` extension separately
|
|
67
|
+
checks the current pinned Stable sources and remains network-dependent.
|
|
68
|
+
|
|
69
|
+
Run `npm run verify` for formatting, lint, types, deterministic evidence checks, all
|
|
70
|
+
Vitest suites, both CLI journeys, package smoke, and the performance gate. Run
|
|
71
|
+
`npm run verify:full` only when Playwright Chromium is installed and the optional
|
|
72
|
+
dashboard browser test is also wanted.
|
|
73
|
+
|
|
74
|
+
Current npm publication, the current pinned Stable repositories, and GitHub repository
|
|
75
|
+
settings are external state. Check them separately with:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npm run check:live -- --npm --stable-install --github
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Each requested check reports `verified`, `failed`, or `not-verified`; missing access is
|
|
82
|
+
not converted into a pass.
|
|
83
|
+
|
|
34
84
|
## 1. Build the exact npm package entry point
|
|
35
85
|
|
|
36
86
|
```bash
|
|
@@ -199,8 +249,20 @@ write to the detected real agent profiles. After npm publication, replace `npx .
|
|
|
199
249
|
|
|
200
250
|
## 8. Test credential-gated MCP configuration without exposing a key
|
|
201
251
|
|
|
202
|
-
|
|
203
|
-
|
|
252
|
+
List the reviewed recipes that need no separately billed AI/model API key:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
npx . mcp-recipe --no-key
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
This includes Playwright, Chrome DevTools, and GitHub read-only. The first two have no
|
|
259
|
+
service credential. GitHub read-only needs a GitHub token and must refuse `--yes`
|
|
260
|
+
until its declared environment reference resolves. Use `--credential-free` for the
|
|
261
|
+
stricter zero-credential list:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
npx . mcp-recipe --credential-free
|
|
265
|
+
```
|
|
204
266
|
|
|
205
267
|
```bash
|
|
206
268
|
npx . mcp-recipe github-readonly --config "$TEST_HOME/mcp.json" --yes
|
|
@@ -230,3 +292,14 @@ npx . dashboard
|
|
|
230
292
|
Open the printed loopback URL. CLI setup, updates, removal, discovery, and rollback all
|
|
231
293
|
work without it. Browser automation is also optional and runs only when manually
|
|
232
294
|
dispatched in CI; locally, use `npm run test:e2e:dashboard`.
|
|
295
|
+
|
|
296
|
+
## Final cleanup test
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
npx . uninstall
|
|
300
|
+
npx . uninstall --yes
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
The first command is a dry run. The second removes only Loadout-managed agent files,
|
|
304
|
+
runtime tools, native jobs, state, snapshots, and cache; it leaves the locally invoked
|
|
305
|
+
package itself alone. Use `--remove-cli` only when testing a global npm install.
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Test Loadout on your own machine
|
|
2
|
+
|
|
3
|
+
This is the short, safe route through the product. Start in a normal terminal.
|
|
4
|
+
The first group only reads local state or prepares a preview; it does not replace
|
|
5
|
+
agent files. A preview can download reviewed source into Loadout's cache, but it
|
|
6
|
+
does not activate skills or change an agent configuration.
|
|
7
|
+
|
|
8
|
+
## 1. Get oriented
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
loadout guide
|
|
12
|
+
loadout library
|
|
13
|
+
loadout scan
|
|
14
|
+
loadout health
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`library` is the concise provenance view: it shows active skills and disabled
|
|
18
|
+
reviewed-library copies per agent. For the full source-package and upstream-repository
|
|
19
|
+
record for every skill, use `loadout library --all`. `scan` distinguishes
|
|
20
|
+
Loadout-managed skills from your own pre-existing skills. `health` checks local drift only; add
|
|
21
|
+
`--updates` only when you want it to contact the tracked public repositories.
|
|
22
|
+
|
|
23
|
+
## 2. Explore without installing
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
loadout catalog --json
|
|
27
|
+
loadout candidate list --limit 10
|
|
28
|
+
loadout recommend --project .
|
|
29
|
+
loadout optimize --project .
|
|
30
|
+
loadout tool
|
|
31
|
+
loadout tool graphify
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Run the project commands from the project you care about, or replace `.` with its
|
|
35
|
+
absolute path. `optimize` is still a preview until `--yes` is supplied. `tool
|
|
36
|
+
graphify` is also a preview; Graphify is a reviewed runtime tool and does not
|
|
37
|
+
need an OpenAI or Anthropic API key for its code-only install.
|
|
38
|
+
|
|
39
|
+
## 3. Open the optional dashboard
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
loadout dashboard
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Open the `http://127.0.0.1:PORT` address it prints. It never listens on the
|
|
46
|
+
network. The dashboard shows status, health, installed packages, updates, local
|
|
47
|
+
project recommendations, profiles, and the catalog. Its Apply and Undo buttons
|
|
48
|
+
require an in-page preview, acknowledgement, and a private local session token.
|
|
49
|
+
Stop the server with `Control-C`.
|
|
50
|
+
|
|
51
|
+
## 4. Preview and install a profile
|
|
52
|
+
|
|
53
|
+
Use this order. Each setup command previews first; interactive setup asks for
|
|
54
|
+
confirmation before changing files. A mutation creates a snapshot first.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Recommended everyday skills
|
|
58
|
+
loadout setup --mode stable --agents codex,claude-code
|
|
59
|
+
|
|
60
|
+
# Broader daily-use selection (50 curated skill directories)
|
|
61
|
+
loadout setup --mode power --agents codex,claude-code
|
|
62
|
+
|
|
63
|
+
# Download the broad reviewed library while keeping the active set controlled
|
|
64
|
+
loadout setup --mode maximum --agents codex,claude-code
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
At the API-access question, choose `None` unless you separately pay for a
|
|
68
|
+
provider API. A ChatGPT Plus or Claude Pro subscription is not an API key. Core
|
|
69
|
+
skill profiles do not require one; credentialed MCP and runtime operations stay
|
|
70
|
+
explicit.
|
|
71
|
+
|
|
72
|
+
For unattended use only after reviewing a preview, the equivalent is:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
loadout setup --mode stable --agents codex,claude-code --yes
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Do not add `--approve-risk` unless the displayed preview identifies a specific
|
|
79
|
+
reviewed finding and you understand it.
|
|
80
|
+
|
|
81
|
+
## 5. Test a change and recover
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Preview Graphify, then install only if the preview looks right
|
|
85
|
+
loadout tool graphify --agents codex,claude-code
|
|
86
|
+
loadout tool graphify --agents codex,claude-code --yes --approve-risk
|
|
87
|
+
|
|
88
|
+
# Check the exact current state
|
|
89
|
+
loadout library
|
|
90
|
+
loadout health
|
|
91
|
+
|
|
92
|
+
# Restore a prior snapshot if you do not like the result
|
|
93
|
+
loadout rollback --list
|
|
94
|
+
loadout rollback
|
|
95
|
+
|
|
96
|
+
# Or remove only Graphify and restore its pre-install agent state
|
|
97
|
+
loadout tool graphify --remove --agents codex,claude-code --yes --approve-risk
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`rollback` restores a whole Loadout snapshot. The tool-specific remove command
|
|
101
|
+
is narrower and is preferable when you only want to undo that one runtime tool.
|
|
102
|
+
|
|
103
|
+
## 6. Test daily discovery and updates
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
loadout alerts
|
|
107
|
+
loadout update
|
|
108
|
+
loadout update --package superpowers
|
|
109
|
+
loadout autopilot
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`update --package` checks only the named tracked package. The default is a
|
|
113
|
+
read-only diff and safety plan. Apply only after review:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
loadout update --package superpowers --apply
|
|
117
|
+
loadout update --yes
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
`autopilot` previews two native daily read-only jobs (updates and discovery).
|
|
121
|
+
Enable or remove both explicitly:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
loadout autopilot --time 09:00 --yes
|
|
125
|
+
loadout autopilot --remove --yes
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The daily update job re-evaluates your saved Stable, Power, or Maximum profile and
|
|
129
|
+
checks every managed package, but never supplies `--yes`. Daily discovery can add
|
|
130
|
+
interesting repositories to the review queue; it cannot silently promote or install
|
|
131
|
+
them.
|
|
132
|
+
|
|
133
|
+
## 7. Test MCP choices without a model API key
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
loadout mcp-recipe --no-key
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Expect Playwright MCP, Chrome DevTools MCP, and GitHub read-only. None requires a
|
|
140
|
+
separately billed AI/model API key. GitHub read-only still discloses that it needs a
|
|
141
|
+
GitHub token; use `loadout mcp-recipe --credential-free` to exclude every service
|
|
142
|
+
credential too. Browser configuration and real connection testing remain explicit.
|
|
143
|
+
Graphify is a separate runtime tool, not an MCP server.
|
|
144
|
+
|
|
145
|
+
## 8. Preview complete cleanup
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
loadout uninstall
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Read the package, runtime, scheduler, and state summary. The preview changes nothing.
|
|
152
|
+
At the very end of testing, remove all Loadout-managed data while keeping the CLI:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
loadout uninstall --yes
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
To remove the npm command too, use `loadout uninstall --yes --remove-cli`. Complete
|
|
159
|
+
cleanup deliberately deletes Loadout's snapshots, so it is the last lifecycle test.
|
|
160
|
+
|
|
161
|
+
## Troubleshooting and recovery
|
|
162
|
+
|
|
163
|
+
- **`loadout` is not found after installation:** confirm `npm install --global
|
|
164
|
+
loadout-ai@0.4.0` completed, run `hash -r`, and confirm npm's global binary
|
|
165
|
+
directory is on `PATH`. For a source checkout, run `npm run build` and `npm link`.
|
|
166
|
+
- **A preview asks for `--approve-risk`:** read the reported scripts, domains,
|
|
167
|
+
credentials, binaries, or instruction findings. If you accept that specific plan,
|
|
168
|
+
use the exact rerun command Loadout prints. The flag is not a general safety
|
|
169
|
+
guarantee and should not be added routinely.
|
|
170
|
+
- **Rollback or removal is refused:** preserve the current files. Refusal can mean a
|
|
171
|
+
managed path changed, disappeared, changed type, gained content, or belongs to a
|
|
172
|
+
legacy snapshot without post-mutation evidence. Run `loadout health --explain` and
|
|
173
|
+
inspect the affected path before deciding whether an explicit force option is
|
|
174
|
+
appropriate; do not delete the path merely to make the command pass.
|
|
175
|
+
- **A fetch, discovery, or update check fails:** retry only after checking network,
|
|
176
|
+
proxy, DNS, and source-host access. Local inventory, library, health, rollback, and
|
|
177
|
+
offline fixture tests remain separate; an unavailable live check is not a pass.
|
|
178
|
+
- **You need diagnostics:** run `loadout doctor`, `loadout health --explain`, and
|
|
179
|
+
`loadout status`. Redact usernames, local paths, repository names, tokens, and agent
|
|
180
|
+
state before sharing output.
|
|
181
|
+
- **You need complete removal:** first preview with `loadout uninstall`, then use
|
|
182
|
+
`loadout uninstall --yes` to remove managed agent files, runtime tools, scheduled
|
|
183
|
+
jobs, cache, snapshots, and state. Add `--remove-cli` only for a global npm install.
|
|
184
|
+
Unmanaged content is preserved, and modified managed files can make cleanup refuse
|
|
185
|
+
until you explicitly review the command's force path.
|
|
186
|
+
|
|
187
|
+
## 9. Advanced surface
|
|
188
|
+
|
|
189
|
+
The first help screen deliberately focuses on daily use. Existing advanced
|
|
190
|
+
commands have not been removed:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
loadout advanced
|
|
194
|
+
loadout candidate --help
|
|
195
|
+
loadout mcp-recipe --help
|
|
196
|
+
loadout <command> --help
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Avoid running registry publishing, signing, sandbox, credential, or arbitrary
|
|
200
|
+
MCP configuration commands on your main profile as part of routine user testing.
|
|
201
|
+
They are package-author or integration workflows, not required to use Loadout's
|
|
202
|
+
core product.
|