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.
@@ -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 full reviewed library; MCP-only packages remain explicit setup
344
- items. `--approve-risk` acknowledges displayed static findings but does not execute
345
- third-party repository scripts.
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 the strongest reviewed collections. Stable
101
- remains the smallest Superpowers + Context7 option. Maximum prepares the full library:
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.1.2",
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",