loadout-ai 0.1.2 → 0.2.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 +24 -0
- package/MASTER_PLAN.md +79 -0
- package/README.md +218 -330
- package/catalog/discovered.json +7925 -6183
- package/dist/src/cli.js +52 -27
- package/dist/src/core/access.js +42 -0
- package/dist/src/core/catalog-install.js +60 -12
- package/dist/src/core/health-score-evidence.js +8 -0
- package/dist/src/core/install.js +15 -12
- package/dist/src/core/mcp-recipes.js +37 -6
- package/dist/src/core/skills.js +20 -7
- package/dist/src/core/state.js +20 -4
- package/dist/src/core/update.js +111 -10
- package/dist/src/core/upgrade.js +1 -0
- package/dist/src/shared/schemas.js +8 -0
- package/docs/DISCOVERED.md +253 -253
- package/docs/FEATURE_TEST_MATRIX.md +8 -7
- package/docs/TESTING.md +44 -2
- package/package.json +2 -1
|
@@ -330,19 +330,20 @@ drift test after manually changing a managed file.
|
|
|
330
330
|
Run the real reviewed catalog journey only after the local track passes:
|
|
331
331
|
|
|
332
332
|
```bash
|
|
333
|
-
loadout setup --mode stable --agents codex
|
|
334
|
-
loadout setup --mode power --agents codex
|
|
335
|
-
loadout setup --mode maximum --agents codex
|
|
336
|
-
loadout setup --mode maximum --agents codex --yes --approve-risk
|
|
333
|
+
loadout setup --mode stable --agents codex --api-access none
|
|
334
|
+
loadout setup --mode power --agents codex --api-access none
|
|
335
|
+
loadout setup --mode maximum --agents codex --api-access none
|
|
336
|
+
loadout setup --mode maximum --agents codex --api-access none --yes --approve-risk
|
|
337
337
|
loadout library
|
|
338
338
|
loadout optimize --project "$TEST_PROJECT" --agents codex --limit 30
|
|
339
339
|
loadout optimize --project "$TEST_PROJECT" --agents codex --limit 30 --yes
|
|
340
340
|
```
|
|
341
341
|
|
|
342
342
|
The previews fetch pinned public repositories but do not write agent skill targets.
|
|
343
|
-
Maximum downloads the
|
|
344
|
-
|
|
345
|
-
|
|
343
|
+
Maximum downloads the screened skill library, quarantines invalid individual units,
|
|
344
|
+
and preserves matching active Stable units at the same reviewed commit; MCP-only
|
|
345
|
+
packages remain explicit setup items. `--approve-risk` acknowledges displayed static
|
|
346
|
+
findings but does not execute third-party repository scripts.
|
|
346
347
|
|
|
347
348
|
`loadout demo --json` is a shorter N smoke test. It creates its own isolated profile,
|
|
348
349
|
performs a real public-repository install and rollback, and must report that local
|
package/docs/TESTING.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
The primary product is the CLI. Use this walkthrough before installing into your real
|
|
4
4
|
Codex, Claude Code, or other agent directories.
|
|
5
5
|
|
|
6
|
+
## 0. Choose the truthful account capability
|
|
7
|
+
|
|
8
|
+
ChatGPT and Claude subscriptions do not include separately billed model API usage.
|
|
9
|
+
If those subscriptions are all you have, choose `None` in interactive setup or pass:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx . setup --mode stable --api-access none
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This does not reduce the portable skill library. Automatic broad setup installs only
|
|
16
|
+
screened static skill directories, which do not require OpenAI, Anthropic, or
|
|
17
|
+
OpenRouter credentials. MCP servers and executable runtimes remain explicit. Never
|
|
18
|
+
paste an API key into `--api-access`; it accepts provider names only and rejects
|
|
19
|
+
key-like input.
|
|
20
|
+
|
|
6
21
|
The automated product journey runs the built CLI against disposable user, state, and
|
|
7
22
|
project directories. It performs a real scan and offline provenance comparison, then
|
|
8
23
|
previews and applies project optimization, verifies the installed bytes, and rolls the
|
|
@@ -97,8 +112,8 @@ Power is the broad daily-use profile:
|
|
|
97
112
|
npx . setup --mode power
|
|
98
113
|
```
|
|
99
114
|
|
|
100
|
-
Expect a curated skill-level set across
|
|
101
|
-
|
|
115
|
+
Expect a curated skill-level set across reviewed collections. Stable is the bounded
|
|
116
|
+
30-skill daily driver. Maximum prepares the full screened skill library:
|
|
102
117
|
|
|
103
118
|
```bash
|
|
104
119
|
npx . setup --mode maximum
|
|
@@ -112,6 +127,7 @@ This is read-only. Expect the CLI to show:
|
|
|
112
127
|
- lower-ranked duplicate skills that were deferred;
|
|
113
128
|
- MCP-only repositories requiring explicit configuration;
|
|
114
129
|
- safety categories requiring a separate approval.
|
|
130
|
+
- invalid individual skill units quarantined without losing safe siblings.
|
|
115
131
|
|
|
116
132
|
No agent skill directory or Loadout install state is created by preview.
|
|
117
133
|
|
|
@@ -129,6 +145,10 @@ The command should finish with one snapshot identifier. The library download is
|
|
|
129
145
|
transaction: a failure restores every library/state target rather than leaving a
|
|
130
146
|
half-installed profile.
|
|
131
147
|
|
|
148
|
+
If Stable is already installed, this command is also a required regression exercise:
|
|
149
|
+
matching Stable units must remain active, their agent-visible bytes must not change,
|
|
150
|
+
and only the additional Maximum units should appear disabled in `npx . library`.
|
|
151
|
+
|
|
132
152
|
## 5. Inspect the installed product
|
|
133
153
|
|
|
134
154
|
```bash
|
|
@@ -177,6 +197,28 @@ Choose Maximum, Stable, or Custom, review the plan, and confirm only when you wa
|
|
|
177
197
|
write to the detected real agent profiles. After npm publication, replace `npx .` with
|
|
178
198
|
`npx loadout-ai`.
|
|
179
199
|
|
|
200
|
+
## 8. Test credential-gated MCP configuration without exposing a key
|
|
201
|
+
|
|
202
|
+
The Playwright recipe has no service credential. The GitHub read-only recipe does and
|
|
203
|
+
must refuse `--yes` until its declared environment reference resolves:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
npx . mcp-recipe github-readonly --config "$TEST_HOME/mcp.json" --yes
|
|
207
|
+
|
|
208
|
+
export LOADOUT_TEST_GITHUB_TOKEN='<a disposable, least-privilege token>'
|
|
209
|
+
npx . mcp-recipe github-readonly --config "$TEST_HOME/mcp.json" \
|
|
210
|
+
--credential GITHUB_PERSONAL_ACCESS_TOKEN=env:LOADOUT_TEST_GITHUB_TOKEN
|
|
211
|
+
npx . mcp-recipe github-readonly --config "$TEST_HOME/mcp.json" \
|
|
212
|
+
--credential GITHUB_PERSONAL_ACCESS_TOKEN=env:LOADOUT_TEST_GITHUB_TOKEN --yes
|
|
213
|
+
unset LOADOUT_TEST_GITHUB_TOKEN
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
The first command must fail without writing the server entry. The preview and applied
|
|
217
|
+
output must never contain the token value; the config should contain only
|
|
218
|
+
`${LOADOUT_TEST_GITHUB_TOKEN}`. OS-keychain references are supported by the separate,
|
|
219
|
+
explicit `--connect --approve-risk` verification path because an arbitrary MCP host
|
|
220
|
+
cannot resolve Loadout's keychain reference by itself.
|
|
221
|
+
|
|
180
222
|
## Optional dashboard
|
|
181
223
|
|
|
182
224
|
The dashboard is a secondary inspection surface, not the onboarding requirement:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "loadout-ai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Universal upgrade manager for AI coding agents",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"catalog",
|
|
15
15
|
"docs",
|
|
16
16
|
"README.md",
|
|
17
|
+
"CHANGELOG.md",
|
|
17
18
|
"MASTER_PLAN.md",
|
|
18
19
|
"SIMPLE_PLAN.md",
|
|
19
20
|
"SECURITY.md",
|