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.
Files changed (49) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/MASTER_PLAN.md +141 -33
  3. package/README.md +160 -255
  4. package/dashboard/app.js +4 -4
  5. package/dashboard/index.html +4 -4
  6. package/dist/src/cli.js +189 -32
  7. package/dist/src/core/active-set.js +37 -2
  8. package/dist/src/core/adapters.js +10 -0
  9. package/dist/src/core/adopt.js +165 -32
  10. package/dist/src/core/agent-health-score.js +2 -2
  11. package/dist/src/core/catalog-coverage.js +2 -1
  12. package/dist/src/core/catalog-install.js +8 -1
  13. package/dist/src/core/catalog-release.js +2 -1
  14. package/dist/src/core/cli-guide.js +101 -0
  15. package/dist/src/core/completion.js +3 -0
  16. package/dist/src/core/conformance.js +74 -0
  17. package/dist/src/core/install.js +36 -3
  18. package/dist/src/core/mcp-recipes.js +21 -0
  19. package/dist/src/core/profile-state.js +101 -0
  20. package/dist/src/core/profiles.js +9 -4
  21. package/dist/src/core/ranking.js +1 -1
  22. package/dist/src/core/readme-claims.js +10 -0
  23. package/dist/src/core/readme-facts.js +40 -0
  24. package/dist/src/core/recommend.js +9 -3
  25. package/dist/src/core/remove.js +6 -7
  26. package/dist/src/core/runtime-tools.js +10 -2
  27. package/dist/src/core/scheduler.js +4 -3
  28. package/dist/src/core/snapshot.js +58 -13
  29. package/dist/src/core/state.js +13 -3
  30. package/dist/src/core/transaction.js +2 -1
  31. package/dist/src/core/uninstall.js +133 -0
  32. package/dist/src/core/update.js +87 -58
  33. package/dist/src/dashboard.js +5 -2
  34. package/dist/src/shared/schemas.js +69 -0
  35. package/docs/FEATURE_TEST_MATRIX.md +16 -0
  36. package/docs/README_RESEARCH.md +36 -0
  37. package/docs/RELEASE_REVIEW.md +31 -5
  38. package/docs/REPOSITORY_STABILIZATION.md +190 -0
  39. package/docs/TESTING.md +75 -2
  40. package/docs/USER_TEST_GUIDE.md +202 -0
  41. package/docs/assets/loadout-hero.svg +259 -0
  42. package/docs/assets/loadout-mark.svg +54 -0
  43. package/docs/evidence/live-checks-2026-07-19.json +22 -0
  44. package/docs/evidence/live-checks.schema.json +28 -0
  45. package/docs/evidence/readme-claims.json +286 -0
  46. package/docs/superpowers/plans/2026-07-19-relatable-readme-hero.md +283 -0
  47. package/docs/superpowers/specs/2026-07-19-relatable-readme-hero-design.md +80 -0
  48. package/package.json +8 -4
  49. package/SIMPLE_PLAN.md +0 -44
@@ -0,0 +1,283 @@
1
+ # Relatable README and Hero Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Give Viraj's Loadout repository a relatable, evidence-bounded story and original GitHub-ready hero while correcting canonical repository metadata and preserving all existing truth gates.
6
+
7
+ **Architecture:** Keep the README human-authored around the existing six machine-owned fact blocks. Add one dependency-free SVG hero under `docs/assets/`, strengthen only the README and metadata contracts that intentionally change, and leave the required CI workflow untouched because its failed job was blocked before execution by GitHub account billing.
8
+
9
+ **Tech Stack:** Markdown, SVG/XML, TypeScript, Vitest, Node.js 20+, Prettier, Playwright, GitHub Actions.
10
+
11
+ ## Global Constraints
12
+
13
+ - Base every change on `VirajMishra1/loadout` `main` at `194676910327176272ebe42982d13c6e8246f0aa`.
14
+ - Canonical repository identity is `VirajMishra1/loadout`; preserve dated historical fork evidence where it is explicitly historical.
15
+ - Keep exactly one ordered marker pair for `catalog-coverage`, `evidence-stages`, `daily-discovery`, `current-limits`, `support-summary`, and `verification-summary`.
16
+ - Preserve the unpublished `0.3.2` warning, preview/apply recomputation boundary, catalog evidence limits, native-host boundary, security statements, installation requirements, and existing executable product-flow proof.
17
+ - Do not claim the GitHub billing/spending-limit failure is reproducible locally; its job executed zero steps.
18
+ - Do not modify `.github/workflows/ci.yml`, delete/skip/weaken tests, add dependencies, copy Ponytail artwork, or add decorative badges.
19
+ - Deliver an unmerged ready pull request against Viraj's `main`.
20
+
21
+ ---
22
+
23
+ ### Task 1: Correct canonical repository identity
24
+
25
+ **Files:**
26
+
27
+ - Modify: `package.json`
28
+ - Modify: `README.md`
29
+ - Modify: `docs/evidence/live-checks.schema.json`
30
+ - Modify: `tests/live-evidence.test.ts`
31
+ - Modify: `tests/readme-product-flow.test.ts`
32
+
33
+ **Interfaces:**
34
+
35
+ - Consumes: canonical repository identity `VirajMishra1/loadout`.
36
+ - Produces: package metadata, README visitor links, schema identity, and regression expectations that agree on the canonical upstream.
37
+
38
+ - [ ] **Step 1: Add failing canonical-identity assertions**
39
+
40
+ In `tests/readme-product-flow.test.ts`, load `package.json` and `docs/evidence/live-checks.schema.json` alongside the README and assert:
41
+
42
+ ```ts
43
+ expect(readme).toContain(
44
+ "https://github.com/VirajMishra1/loadout/actions/workflows/ci.yml",
45
+ );
46
+ expect(readme).toContain(
47
+ "git clone https://github.com/VirajMishra1/loadout.git",
48
+ );
49
+ expect(readme).toContain("https://github.com/VirajMishra1/loadout/issues");
50
+ expect(readme).not.toContain("https://github.com/reddynitish/loadout");
51
+ expect(packageJson.repository.url).toBe(
52
+ "git+https://github.com/VirajMishra1/loadout.git",
53
+ );
54
+ expect(packageJson.homepage).toBe(
55
+ "https://github.com/VirajMishra1/loadout#readme",
56
+ );
57
+ expect(packageJson.bugs.url).toBe(
58
+ "https://github.com/VirajMishra1/loadout/issues",
59
+ );
60
+ expect(schema.$id).toBe(
61
+ "https://github.com/VirajMishra1/loadout/docs/evidence/live-checks.schema.json",
62
+ );
63
+ ```
64
+
65
+ Update the intentional `packageJson` fixture in `tests/live-evidence.test.ts` to Viraj only after observing the new repository-contract test fail; the fixture change follows production metadata and does not change live-check behavior.
66
+
67
+ - [ ] **Step 2: Run the focused test and confirm RED**
68
+
69
+ Run:
70
+
71
+ ```bash
72
+ npm test -- --run tests/readme-product-flow.test.ts
73
+ ```
74
+
75
+ Expected: failure showing at least the current fork CI/clone/issue or package metadata URL.
76
+
77
+ - [ ] **Step 3: Apply the smallest canonical URL changes**
78
+
79
+ Replace only current canonical fork destinations in the listed files. Do not change the historical fork observations or dated fork CI evidence in `docs/REPOSITORY_STABILIZATION.md`.
80
+
81
+ - [ ] **Step 4: Verify focused behavior and formatting**
82
+
83
+ Run:
84
+
85
+ ```bash
86
+ npm test -- --run tests/readme-product-flow.test.ts tests/live-evidence.test.ts
87
+ npm run readme:check
88
+ npx prettier --check README.md package.json docs/evidence/live-checks.schema.json tests/live-evidence.test.ts tests/readme-product-flow.test.ts
89
+ git diff --check
90
+ ```
91
+
92
+ Expected: both focused files pass; generated README blocks remain current; formatting and diff checks pass.
93
+
94
+ - [ ] **Step 5: Commit**
95
+
96
+ ```bash
97
+ git add README.md package.json docs/evidence/live-checks.schema.json tests/live-evidence.test.ts tests/readme-product-flow.test.ts
98
+ git commit -m "fix: restore Viraj repository identity"
99
+ ```
100
+
101
+ ### Task 2: Create and render the original hero
102
+
103
+ **Files:**
104
+
105
+ - Create: `docs/assets/loadout-hero.svg`
106
+
107
+ **Interfaces:**
108
+
109
+ - Produces: accessible, dependency-free, theme-aware hero consumed by the README in Task 3.
110
+
111
+ - [ ] **Step 1: Draw the approved composition**
112
+
113
+ Create a wide SVG with a developer choosing one extension tile between an unmanaged cluster and five organized loadout slots. Use original basic geometry and path-drawn symbols; include:
114
+
115
+ ```xml
116
+ role="img"
117
+ aria-labelledby="loadout-hero-title loadout-hero-description"
118
+ <title id="loadout-hero-title">Choose an intentional agent loadout</title>
119
+ <desc id="loadout-hero-description">A developer moves an extension from scattered configuration tiles into organized managed equipment slots.</desc>
120
+ ```
121
+
122
+ Use `currentColor`, an internal dark-scheme color override, a wide `viewBox`, and no external content, fonts, scripts, raster images, gradients, or animation.
123
+
124
+ - [ ] **Step 2: Validate source structure**
125
+
126
+ Run:
127
+
128
+ ```bash
129
+ xmllint --noout docs/assets/loadout-hero.svg
130
+ xmllint --xpath 'count(/*[local-name()="svg"]/*[local-name()="title"]) = 1 and count(/*[local-name()="svg"]/*[local-name()="desc"]) = 1' docs/assets/loadout-hero.svg
131
+ rg -n '<script|<image|<animate|<foreignObject|font-family|(?:href|src)="https?://' docs/assets/loadout-hero.svg
132
+ ```
133
+
134
+ Expected: XML and XPath checks succeed; the forbidden-content search has no matches.
135
+
136
+ - [ ] **Step 3: Render four visual contexts**
137
+
138
+ Use the existing Playwright/Chromium dependency or an available SVG renderer to produce untracked PNG previews at approximately 720×225 and 360×113 on white and `#0d1117` backgrounds. Store previews under `/tmp/loadout-hero-preview/`, never in the repository.
139
+
140
+ - [ ] **Step 4: Inspect and iterate**
141
+
142
+ Inspect all four images at original resolution. Confirm the unmanaged cluster, developer selection gesture, management boundary, five slots, and path-drawn symbols remain distinct; text/symbols are legible; no geometry clips; and contrast works in both themes. Iterate until every check passes.
143
+
144
+ - [ ] **Step 5: Format and commit**
145
+
146
+ Run:
147
+
148
+ ```bash
149
+ npx prettier --parser html --check docs/assets/loadout-hero.svg
150
+ git diff --check
151
+ git add docs/assets/loadout-hero.svg
152
+ git commit -m "docs: add intentional loadout hero"
153
+ ```
154
+
155
+ ### Task 3: Add the relatable story and stronger hero contract
156
+
157
+ **Files:**
158
+
159
+ - Modify: `README.md`
160
+ - Modify: `tests/readme-product-flow.test.ts`
161
+
162
+ **Interfaces:**
163
+
164
+ - Consumes: `docs/assets/loadout-hero.svg` from Task 2.
165
+ - Produces: first-visitor README hierarchy with a genuine loadout metaphor and verified hero reference.
166
+
167
+ - [ ] **Step 1: Add failing story/hero assertions**
168
+
169
+ Replace the old mark assertion with:
170
+
171
+ ```ts
172
+ expect(readme).toContain("./docs/assets/loadout-hero.svg");
173
+ expect(readme).toMatch(/skills, plugins, MCP servers, and agent settings/i);
174
+ expect(readme).toMatch(
175
+ /loadout is the deliberate set of tools chosen before a mission/i,
176
+ );
177
+ expect(readme).toMatch(
178
+ /what is installed, where it came from, or how to undo it/i,
179
+ );
180
+ expect(readme).not.toMatch(/founder|revolutionary|game-changing/i);
181
+ ```
182
+
183
+ Also require the README hero alt text to mention a developer and organized loadout slots.
184
+
185
+ - [ ] **Step 2: Run the focused test and confirm RED**
186
+
187
+ Run:
188
+
189
+ ```bash
190
+ npm test -- --run tests/readme-product-flow.test.ts
191
+ ```
192
+
193
+ Expected: failure on the absent hero reference or metaphor paragraph.
194
+
195
+ - [ ] **Step 3: Update only the intended README sections**
196
+
197
+ Replace the top image with `./docs/assets/loadout-hero.svg`, a width appropriate for the wide asset, and meaningful alt text. Add the approved concise paragraph under `## Why Loadout`, followed by the existing three bullets. Do not change the verified journey, transcript, warnings, generated blocks, trust boundaries, installation requirements, or unrelated hierarchy.
198
+
199
+ - [ ] **Step 4: Refresh and verify README contracts**
200
+
201
+ Run:
202
+
203
+ ```bash
204
+ npm run readme:update
205
+ npm run readme:check
206
+ npm run check:evidence
207
+ npm test -- --run tests/readme-product-flow.test.ts tests/readme-facts-script.test.ts tests/readme-claims.test.ts
208
+ npx prettier --check README.md tests/readme-product-flow.test.ts
209
+ git diff --check
210
+ ```
211
+
212
+ Expected: generated blocks current, evidence gate reports zero contradictions, focused tests pass, and no unrelated README section moves.
213
+
214
+ - [ ] **Step 5: Commit**
215
+
216
+ ```bash
217
+ git add README.md tests/readme-product-flow.test.ts
218
+ git commit -m "docs: explain the Loadout metaphor"
219
+ ```
220
+
221
+ ### Task 4: Verify failure boundary, render, links, and full repository
222
+
223
+ **Files:**
224
+
225
+ - Modify only files needed to resolve verified findings.
226
+
227
+ **Interfaces:**
228
+
229
+ - Produces: reviewed branch and unmerged upstream pull request.
230
+
231
+ - [ ] **Step 1: Reconfirm the failed Actions evidence**
232
+
233
+ Use `gh` to confirm run `29708871932`, job `88250042904`, zero job steps, and the billing/spending-limit annotation. Record that no repository command ran and therefore the external failure cannot be reproduced locally.
234
+
235
+ - [ ] **Step 2: Run every intended required-job command locally**
236
+
237
+ Run, separately and read each exit code:
238
+
239
+ ```bash
240
+ npm ci
241
+ npm run format:check
242
+ npm run lint
243
+ npm run typecheck
244
+ node scripts/check-catalog-attribution.mjs
245
+ node scripts/check-discovery-artifacts.mjs
246
+ npm test -- --run
247
+ npm run test:e2e:cli
248
+ npm run test:package
249
+ npm run test:performance
250
+ ```
251
+
252
+ Expected: every command exits zero. `npm test -- --run` is the exact test command the blocked workflow intended to execute.
253
+
254
+ - [ ] **Step 3: Run repository verification entry points**
255
+
256
+ Run:
257
+
258
+ ```bash
259
+ npm run verify
260
+ npm run verify:full
261
+ ```
262
+
263
+ If the combined Playwright wrapper does not return a reliable completion code, run `npm run test:e2e:dashboard` separately and require its explicit success.
264
+
265
+ - [ ] **Step 4: Validate links, XML, and final renders**
266
+
267
+ Check every README relative file target and heading fragment with a focused script, validate SVG XML/accessibility/forbidden content, re-render all four hero contexts, and inspect them. Confirm the README's canonical external links point to Viraj and all dated fork links outside canonical product metadata remain clearly historical.
268
+
269
+ - [ ] **Step 5: Obtain independent final review**
270
+
271
+ Request independent factual/claim review, code/test review, and rendered first-visitor/accessibility review for the complete branch diff. Fix every Critical and Important finding test-first and re-review until clean.
272
+
273
+ - [ ] **Step 6: Push and open an unmerged PR**
274
+
275
+ Push `codex/relatable-readme-hero` to `VirajMishra1/loadout` and open a ready PR against `main`. The PR body must report:
276
+
277
+ - billing/spending-limit root cause and zero executed steps;
278
+ - why no local reproduction of account billing is possible;
279
+ - exact local commands and test counts;
280
+ - hero render/accessibility evidence;
281
+ - files changed and preserved truth boundaries.
282
+
283
+ Do not merge the PR. Confirm its final state is `OPEN`, `isDraft: false`, and base branch `main`.
@@ -0,0 +1,80 @@
1
+ # Relatable README and Hero Design
2
+
3
+ ## Objective
4
+
5
+ Make Viraj's current Loadout README more memorable to a first-time visitor without weakening its evidence boundaries. Replace the small slot mark with a clearly stronger original hero, add a concise human explanation of the loadout metaphor, correct canonical repository links, and document the actual GitHub Actions failure without pretending it is a code defect.
6
+
7
+ ## Verified starting point
8
+
9
+ - Source: `VirajMishra1/loadout` default branch `main` at merge commit `194676910327176272ebe42982d13c6e8246f0aa`.
10
+ - The README already presents the verified `Choose -> Inspect -> Preview -> Apply -> Undo` flow and bounded warnings about unpublished `0.3.2`, preview/apply identity, catalog evidence, native-agent execution, security, and persistence.
11
+ - The failed upstream Actions job `88250042904` in run `29708871932` executed zero steps. Its sole annotation says the job did not start because recent account payments failed or the spending limit must be increased.
12
+ - Because no runner step started, there is no failing repository command to reproduce locally. Verification must instead run the workflow's intended commands locally and report that this validates the code but cannot reproduce GitHub account billing state.
13
+ - Canonical README/package links still point to the temporary `reddynitish/loadout` fork and must point to `VirajMishra1/loadout`.
14
+
15
+ ## README story
16
+
17
+ Keep `## Why Loadout` in its current location after the verified product journey. Add one short paragraph before the existing evidence-backed benefits:
18
+
19
+ > Skills, plugins, MCP servers, and agent settings tend to accumulate one experiment at a time. Eventually it becomes hard to remember what is installed, where it came from, or how to undo it. In a game, a loadout is the deliberate set of tools chosen before a mission. Loadout brings that same discipline to AI coding agents: inspect the available equipment, choose intentionally, apply it through managed changes, and remove or roll it back later.
20
+
21
+ The final copy may be tightened for rhythm but must preserve these facts and must not introduce a founder narrative, generic marketing superlatives, universal safety, native-host execution, or stronger rollback guarantees than the implementation proves. Retain the three existing bullets for managed inventory, preview-first operations, and recoverable managed changes.
22
+
23
+ ## Hero composition
24
+
25
+ Create `docs/assets/loadout-hero.svg` as a wide, dependency-free, theme-aware SVG and replace the README's small `loadout-mark.svg` reference only after rendered comparison shows the hero is materially stronger.
26
+
27
+ The composition reads left to right:
28
+
29
+ 1. **Unmanaged edge:** a restrained cluster of loose extension/config tiles, crossing paths, and small labels sits outside a dashed management boundary. It is visibly disorganized but not cartoonishly chaotic.
30
+ 2. **Developer choice:** a simple, original geometric developer figure at a compact workbench reaches toward one extension tile. The figure is symbolic rather than a detailed character, avoiding any resemblance to Ponytail's artwork or composition.
31
+ 3. **Managed loadout:** five aligned equipment slots sit inside a clear rail. Selected slots use recognizable code-native symbols such as `>_`, a plug, linked nodes, or braces; the remaining slot can be empty. A small directional cue connects the chosen tile to the rail.
32
+ 4. **Outcome:** the organized rail is visually calmer and more regular than the unmanaged edge. The image communicates selection and control, not an unsupported claim that every external tool is safe.
33
+
34
+ Use a wide `viewBox` suitable for a GitHub README hero, approximately 960 by 300. Use SVG paths and basic shapes only, with no raster content, scripts, animation, gradients, external fonts, remote references, or copied assets. Every visible symbol should remain legible when the hero is rendered near 720 pixels wide and at a smaller mobile width.
35
+
36
+ Use `currentColor` plus an internal `prefers-color-scheme` fallback so strokes and restrained fills have adequate contrast on GitHub light and dark themes. Include one meaningful `<title>` and `<desc>`, `role="img"`, and matching `aria-labelledby`. The README `<img>` needs concise alt text describing the developer moving extension tiles from a messy group into organized loadout slots.
37
+
38
+ The existing `docs/assets/loadout-mark.svg` remains available as a compact mark unless repository cleanup later proves it unused and removal is explicitly covered by tests and links. The task does not need to delete it.
39
+
40
+ ## Canonical repository corrections
41
+
42
+ Update current canonical product metadata and visitor destinations from `reddynitish/loadout` to `VirajMishra1/loadout`:
43
+
44
+ - README CI workflow badge and image URL.
45
+ - README clone command.
46
+ - README issue-tracker link.
47
+ - `package.json` repository, homepage, and bugs URLs.
48
+ - `docs/evidence/live-checks.schema.json` `$id`.
49
+ - Tests/fixtures that intentionally assert canonical package metadata.
50
+
51
+ Do not rewrite historical evidence that accurately identifies the fork or dated fork CI runs. Historical links in `docs/REPOSITORY_STABILIZATION.md` remain historical evidence, not canonical product metadata.
52
+
53
+ ## Check failure handling
54
+
55
+ No workflow bypass is allowed. Do not delete, skip, weaken, or condition the required verification job. The smallest correct repository action is to leave CI logic intact and accurately report the external billing/spending-limit root cause.
56
+
57
+ Before PR creation:
58
+
59
+ - Reconfirm the failed check annotation and absence of job steps.
60
+ - Run each intended required job command locally, including the exact `npm test -- --run` invocation.
61
+ - Run `npm run verify`.
62
+ - Run `npm run verify:full` because Playwright dependencies are available locally.
63
+ - Treat any local failure as a real defect and fix it test-first; do not call the external billing annotation a locally reproduced failure.
64
+
65
+ ## Regression and rendering coverage
66
+
67
+ Update README-focused tests only for intended structure/content changes:
68
+
69
+ - require the new hero reference and genuine metaphor language;
70
+ - require canonical Viraj badge/clone/issue destinations;
71
+ - reject canonical README/package links to the temporary fork;
72
+ - preserve all six generated marker pairs, current hierarchy, executable offline product flow, warnings, and truth-boundary assertions.
73
+
74
+ Update package metadata tests for Viraj's canonical repository. Do not add a test that pretends GitHub billing can be reproduced locally.
75
+
76
+ Validate all README relative targets and heading fragments, SVG XML/accessibility structure, forbidden external SVG content, and light/dark renders at desktop and mobile sizes. Review the complete README as a first-time visitor for hierarchy, clarity, and unsupported implications.
77
+
78
+ ## Delivery
79
+
80
+ Commit implementation on `codex/relatable-readme-hero`, push it to Viraj's repository, and open a ready pull request against `main`. Include the Actions billing root cause, local command evidence, rendered hero evidence, and truth boundaries in the PR body. Do not merge the pull request.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loadout-ai",
3
- "version": "0.2.3",
3
+ "version": "0.4.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Universal upgrade manager for AI coding agents",
@@ -16,7 +16,6 @@
16
16
  "README.md",
17
17
  "CHANGELOG.md",
18
18
  "MASTER_PLAN.md",
19
- "SIMPLE_PLAN.md",
20
19
  "SECURITY.md",
21
20
  "LICENSE"
22
21
  ],
@@ -55,13 +54,18 @@
55
54
  "test:e2e:dashboard": "playwright test",
56
55
  "pretest:e2e:cli": "npm run build",
57
56
  "test:e2e:cli": "node scripts/cli-product-flow.mjs",
57
+ "test:e2e:readme": "node scripts/readme-product-flow.mjs",
58
58
  "test:package": "node scripts/package-smoke.mjs",
59
59
  "pretest:performance": "npm run build",
60
60
  "test:performance": "node scripts/scan-benchmark.mjs",
61
61
  "typecheck": "tsc -p tsconfig.json --noEmit",
62
- "check:evidence": "node scripts/check-catalog-attribution.mjs && node scripts/check-discovery-artifacts.mjs && node --import tsx scripts/check-release-claims.ts",
62
+ "readme:update": "node scripts/update-readme-facts.mjs",
63
+ "readme:check": "node scripts/update-readme-facts.mjs --check",
64
+ "check:readme-claims": "npm run build && node scripts/check-readme-claims.mjs",
65
+ "check:live": "node scripts/check-live-evidence.mjs",
66
+ "check:evidence": "node scripts/check-catalog-attribution.mjs && node scripts/check-discovery-artifacts.mjs && npm run check:readme-claims && node --import tsx scripts/check-release-claims.ts",
63
67
  "feed:build": "node --import tsx scripts/build-intelligence-feed.ts",
64
- "verify": "npm run format:check && npm run lint && npm run typecheck && npm run check:evidence && npm test -- --run && npm run test:e2e:cli && npm run test:package && npm run test:performance",
68
+ "verify": "npm run format:check && npm run lint && npm run typecheck && npm run check:evidence && npm test -- --run && npm run test:e2e:cli && npm run test:e2e:readme && npm run test:package && npm run test:performance",
65
69
  "verify:full": "npm run verify && npm run test:e2e:dashboard"
66
70
  },
67
71
  "dependencies": {
package/SIMPLE_PLAN.md DELETED
@@ -1,44 +0,0 @@
1
- # Loadout plan — simple version
2
-
3
- Loadout's primary experience is CLI-first:
4
-
5
- ```bash
6
- npx loadout-ai
7
- ```
8
-
9
- It detects installed agents, scans the actual skills already present, and recommends a
10
- small Stable foundation. Maximum Library and Custom are explicit alternatives. It
11
- previews reviewed pinned sources, exact overlaps, capacity, and safety findings before
12
- one rollback-safe transaction. The dashboard is optional diagnostics.
13
-
14
- Loadout also provides the package-manager operations:
15
-
16
- - Find, install, update, remove, create, share, and synchronize AI-agent add-ons.
17
- - Work with skills, commands, rules, agents, plugins, and MCP tools.
18
- - Support Codex, Claude Code, Cursor, and more from one setup file.
19
-
20
- Loadout's four major advantages are:
21
-
22
- 1. **Safety:** scan first, explain every change, block dangerous behavior, and never
23
- touch unrelated files.
24
- 2. **Recovery:** back up before changes and provide one-command undo.
25
- 3. **Guidance:** check setup health and recommend tested add-on collections for the
26
- user's project.
27
- 4. **Optimization:** keep a broad reviewed library but expose only the best supported,
28
- non-overlapping active set for the current agent and project.
29
-
30
- The original build order was:
31
-
32
- 1. Finish the reliable package-manager foundation.
33
- 2. Match OpenPackage's package types, sources, synchronization, and publishing.
34
- 3. Add health checks, security scanning, safe updates, recommendations, and profiles.
35
- 4. Keep the dashboard optional and prove every supported platform with tests.
36
-
37
- That foundation is now integrated on `main`. [MASTER_PLAN.md](./MASTER_PLAN.md) is the
38
- only canonical checklist; contributor branches and notes are historical inputs, not
39
- separate sources of project status. Phase 12 now tracks provenance for unmanaged
40
- skills, evidence-backed comparison, library-versus-active-set state, safe adoption and
41
- enable/disable, project activation, guided optimization, category evaluations, daily
42
- review queues, provider/MCP workflows, CLI polish, npm publication, and public-beta
43
- testing. Catalog expansion, legal review, keychains, additional adapters, and submission
44
- work remain explicit rather than hidden behind earlier checked implementation proofs.