loadout-ai 0.5.8 → 0.6.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 (59) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/MASTER_PLAN.md +9 -9
  3. package/README.md +84 -121
  4. package/catalog/discovered.json +59800 -10065
  5. package/catalog/packages.json +4 -3
  6. package/dist/src/cli.js +26 -2979
  7. package/dist/src/commands/agents.js +168 -0
  8. package/dist/src/commands/catalog.js +708 -0
  9. package/dist/src/commands/health.js +98 -0
  10. package/dist/src/commands/inventory.js +417 -0
  11. package/dist/src/commands/lifecycle.js +411 -0
  12. package/dist/src/commands/mcp.js +424 -0
  13. package/dist/src/commands/setup.js +67 -0
  14. package/dist/src/commands/sharing.js +358 -0
  15. package/dist/src/commands/support.js +246 -0
  16. package/dist/src/core/active-limit.js +2 -0
  17. package/dist/src/core/active-policy.js +2 -1
  18. package/dist/src/core/catalog-install.js +47 -10
  19. package/dist/src/core/catalog.js +15 -96
  20. package/dist/src/core/cli-guide.js +43 -37
  21. package/dist/src/core/completion.js +2 -20
  22. package/dist/src/core/doctor.js +73 -24
  23. package/dist/src/core/github.js +3 -2
  24. package/dist/src/core/handoff.js +161 -0
  25. package/dist/src/core/health-score-evidence.js +2 -2
  26. package/dist/src/core/health.js +83 -0
  27. package/dist/src/core/install.js +8 -3
  28. package/dist/src/core/loadout-card.js +14 -2
  29. package/dist/src/core/review-queue.js +7 -2
  30. package/dist/src/core/route.js +248 -0
  31. package/dist/src/core/skill-inventory.js +3 -3
  32. package/dist/src/core/skills.js +6 -7
  33. package/dist/src/core/source.js +10 -3
  34. package/dist/src/core/upgrade.js +10 -9
  35. package/docs/ACTIVE_SET.md +1 -1
  36. package/docs/ACTIVE_SET_POLICY.md +1 -1
  37. package/docs/CATALOG.md +2 -2
  38. package/docs/DEMO_SCRIPT.md +5 -5
  39. package/docs/DISCOVERED.md +250 -253
  40. package/docs/RELEASE_REVIEW.md +28 -143
  41. package/docs/SUBMISSION_COPY.md +4 -4
  42. package/docs/UPSTREAM_LICENSE_DECISIONS.md +19 -12
  43. package/docs/USER_TEST_GUIDE.md +1 -1
  44. package/docs/evidence/readme-claims.json +2 -14
  45. package/package.json +4 -3
  46. package/dist/src/core/benchmark-campaign.js +0 -496
  47. package/dist/src/core/benchmark-evidence.js +0 -458
  48. package/dist/src/core/benchmark-fixtures.js +0 -1157
  49. package/dist/src/core/benchmark-runner.js +0 -301
  50. package/dist/src/core/benchmark-trust.js +0 -795
  51. package/dist/src/core/catalog-release.js +0 -287
  52. package/dist/src/core/compatibility-intelligence.js +0 -465
  53. package/dist/src/core/ecosystem-import.js +0 -1072
  54. package/dist/src/core/head-to-head.js +0 -437
  55. package/dist/src/core/intelligence-feed-build.js +0 -59
  56. package/dist/src/core/intelligence-feed.js +0 -353
  57. package/dist/src/core/registry-api.js +0 -97
  58. package/dist/src/core/release-claims.js +0 -175
  59. package/dist/src/core/signing.js +0 -115
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.5.9 - 2026-07-21
6
+
7
+ ### Fixed
8
+
9
+ - Preserve active Stable skills when preparing Maximum Library by reserving their
10
+ managed targets before ordinary overlap deferral, while retaining fail-closed
11
+ commit, quarantine, and missing-source validation.
12
+ - Run the canonical `npm run verify` release gate on ordinary pushes and pull
13
+ requests so CI cannot silently omit evidence, README-flow, or package checks.
14
+
15
+ ### Changed
16
+
17
+ - Use one shared 30-skill recommended active-set limit in planning, inventory,
18
+ upgrade guidance, CLI defaults, and public workflow documentation.
19
+ - Clearly archive superseded dashboard-era release notes and keep the public launch
20
+ checklist aligned with completed demo work and the current CLI-only product.
21
+
5
22
  ## 0.5.8 - 2026-07-21
6
23
 
7
24
  ### Fixed
package/MASTER_PLAN.md CHANGED
@@ -13,7 +13,7 @@ history** is evidence of how the product was built, not unfinished launch scope.
13
13
 
14
14
  ### Product complete
15
15
 
16
- - [x] Publish the CLI as `loadout-ai@0.5.8`; keep the product usable without cloning
16
+ - [x] Publish the CLI as `loadout-ai`; keep the product usable without cloning
17
17
  this repository or providing an OpenAI/Anthropic API key.
18
18
  - [x] Ship Stable, Power, Maximum, and Custom profiles with preview-first apply,
19
19
  snapshots, drift protection, explicit rollback, removal, and complete uninstall.
@@ -46,10 +46,10 @@ history** is evidence of how the product was built, not unfinished launch scope.
46
46
 
47
47
  ### Submission work
48
48
 
49
- - [ ] Record the real CLI demo using `docs/DEMO_SCRIPT.md`; keep it under three
49
+ - [x] Record the real CLI demo using `docs/DEMO_SCRIPT.md`; keep it under three
50
50
  minutes, include a voiceover, upload it publicly to YouTube, and verify the URL.
51
- - [ ] Replace the README demo placeholder with the final YouTube link.
52
- - [ ] In the voiceover, explain what Loadout does and how Codex and GPT-5.6 were used.
51
+ - [x] Replace the README demo placeholder with the final YouTube link.
52
+ - [x] In the voiceover, explain what Loadout does and how Codex and GPT-5.6 were used.
53
53
  - [ ] Run `/feedback` in Codex, copy the resulting session ID, and enter it in Devpost.
54
54
  - [x] Confirm the public repository URL is accessible to Devpost and OpenAI.
55
55
  - [x] Confirm all team invitations are accepted. Both teammates are collaborators and
@@ -72,12 +72,12 @@ These are not launch blockers and should not be rebuilt before submission:
72
72
  - Restoring GitHub-hosted Actions capacity before submission; the full gate can run
73
73
  locally, and the latest completed `main` CI is already passing.
74
74
 
75
- ## Archived current-status diary (historical, not active scope)
75
+ ## Archived implementation diary (historical, not active scope)
76
76
 
77
- This section preserves the chronological implementation and founder-testing record.
78
- Its unchecked boxes may describe older release numbers, superseded acceptance paths,
79
- external research, or intentionally deferred work. They are not active launch tasks;
80
- use the launch finish line above.
77
+ Everything below this heading is a frozen chronological implementation record. Its
78
+ dashboard references, old release numbers, unchecked boxes, and superseded acceptance
79
+ paths describe earlier product states; they are neither current capabilities nor
80
+ active launch tasks. Use only the launch finish line above for current status.
81
81
 
82
82
  ### Implemented product work
83
83
 
package/README.md CHANGED
@@ -34,7 +34,7 @@
34
34
  You need Node.js 20 or newer and Git.
35
35
 
36
36
  ```bash
37
- npm install --global loadout-ai@0.5.8
37
+ npm install --global loadout-ai
38
38
  loadout setup --mode stable
39
39
  ```
40
40
 
@@ -54,23 +54,37 @@ Nothing changes until you approve it. If anything goes wrong, start with the
54
54
 
55
55
  ### Abridged terminal transcript
56
56
 
57
- This is an explicitly abridged transcript from a disposable, single-Codex Stable run. A literal `…` marks omitted fetch output; `<snapshot-id>` is a variable placeholder because snapshot IDs vary.
57
+ This is an explicitly abridged transcript from a disposable Stable run. A literal `…` marks omitted fetch output; `<snapshot-id>` is a variable placeholder because snapshot IDs vary. Loadout auto-detects installed agents; `--agents` narrows the selection when needed.
58
58
 
59
59
  ```console
60
- $ loadout setup --mode stable --agents codex
60
+ $ loadout setup --mode stable
61
61
 
62
62
  Loadout: Stable Boost
63
- Detected agents: Codex
63
+ Detected agents: Claude Code, Cursor, Codex
64
64
  Catalog selection: 4 repositories
65
65
  Ready to install: 4 skill repositories (30 agent skill directories)
66
66
  Preview complete; nothing was changed. Re-run with --yes to install this exact screened plan.
67
67
 
68
- $ loadout setup --mode stable --agents codex --yes
68
+ $ loadout setup --mode stable --yes
69
69
 
70
- Loadout installed 4 repositories for 1 agent(s). Snapshot: <snapshot-id>
70
+ Loadout installed 4 repositories for 3 agent(s). Snapshot: <snapshot-id>
71
71
 
72
72
  $ loadout rollback
73
73
  Restored snapshot <snapshot-id>
74
+
75
+ $ loadout route design the authentication system
76
+ Phase: plan
77
+ Tier: Frontier (deep reasoning)
78
+ Models: Claude Opus 5 ($5/$25)
79
+ GPT-5.6 Sol ($5/$30)
80
+ Agents: claude-code
81
+ Why: Architecture and decomposition need deep reasoning to avoid costly rework
82
+
83
+ $ loadout doctor
84
+ loadout doctor — HEALTHY
85
+ Platform: darwin
86
+ State: ~/.loadout ✓ writable
87
+ Agents: 3 detected, 9 available
74
88
  ```
75
89
 
76
90
  The final preview sentence above is captured CLI wording. A later `--yes` invocation recomputes the plan from pinned sources and current agent and filesystem state; it does not persist or prove identity with the earlier preview.
@@ -106,19 +120,25 @@ everything into every prompt.
106
120
  | Hope updates do not break anything | Preview updates and protect every managed change with a snapshot |
107
121
  | Manually remember what was changed | Scan, reconcile, remove, roll back, or completely uninstall |
108
122
 
109
- Loadout is local, open source, and preview-first. It does not need an OpenAI or
110
- Anthropic API key to manage skills. MCP servers and executable tools stay behind
111
- their own explicit setup and permission steps.
123
+ Loadout is local, open source, and preview-first. It does not need an LLM API key
124
+ to manage skills. MCP servers and executable tools stay behind their own explicit
125
+ setup and permission steps.
112
126
 
113
127
  ### Demo
114
128
 
115
- **Demo video coming here.** The release walkthrough will show the real path, not a
116
- mock UI: Stable install, cross-agent inventory, project optimization, update and
117
- discovery checks, MCP setup, Graphify, rollback, and complete uninstall. The exact
118
- under-three-minute [recording and voiceover script](./docs/DEMO_SCRIPT.md) is public.
129
+ <p align="center">
130
+ <a href="https://www.youtube.com/watch?v=opNqJKX7xMw">
131
+ <img src="https://img.youtube.com/vi/opNqJKX7xMw/maxresdefault.jpg" alt="Watch the 72-second Loadout demo" width="880">
132
+ </a>
133
+ </p>
134
+
135
+ **[Watch the 72-second Loadout demo on YouTube](https://www.youtube.com/watch?v=opNqJKX7xMw).**
136
+ It shows the real CLI product, including profiles, project-aware selection,
137
+ discovery, explicit integrations, and snapshot-backed rollback. The exact
138
+ [recording and voiceover script](./docs/DEMO_SCRIPT.md) is public.
119
139
 
120
- For now, the [end-to-end acceptance guide](./docs/USER_TEST_GUIDE.md) contains the same
121
- commands you can run yourself.
140
+ The [end-to-end acceptance guide](./docs/USER_TEST_GUIDE.md) contains the commands
141
+ you can run yourself.
122
142
 
123
143
  ## Stable workflow
124
144
 
@@ -212,9 +232,9 @@ project choose a focused active set:
212
232
 
213
233
  ```bash
214
234
  loadout setup --mode maximum
215
- loadout recommend --project . --agent codex
216
- loadout optimize --project . --agents codex,claude-code --limit 30
217
- loadout optimize --project . --agents codex,claude-code --limit 30 --yes
235
+ loadout recommend --project .
236
+ loadout optimize --project . --limit 30
237
+ loadout optimize --project . --limit 30 --yes
218
238
  ```
219
239
 
220
240
  This is the difference between “install everything” and “have everything ready.”
@@ -236,11 +256,11 @@ managed profile:
236
256
 
237
257
  ```bash
238
258
 
239
- # Install the reviewed Humanizer writing skill into Codex
240
- loadout install --mode custom --package humanizer --agents codex
259
+ # Install the reviewed Humanizer writing skill
260
+ loadout install --mode custom --package humanizer
241
261
 
242
- # Install the reviewed Obsidian skills explicitly
243
- loadout install --mode custom --package obsidian-skills --agents codex,claude-code
262
+ # Install the reviewed Obsidian skills for specific agents
263
+ loadout install --mode custom --package obsidian-skills --agents claude-code,cursor
244
264
  ```
245
265
 
246
266
  Run `loadout profiles` to compare every mode. MCP servers always use a separate
@@ -260,12 +280,9 @@ loadout mcp-recipe --credential-free
260
280
  Preview and configure one for the host you use:
261
281
 
262
282
  ```bash
263
- loadout mcp-recipe playwright --agent codex
264
- loadout mcp-recipe playwright --agent codex --yes
265
- loadout mcp-recipe playwright --agent codex --verify
266
-
267
283
  loadout mcp-recipe playwright --agent claude-code
268
284
  loadout mcp-recipe playwright --agent claude-code --yes
285
+ loadout mcp-recipe playwright --agent claude-code --verify
269
286
  ```
270
287
 
271
288
  Configuration alone does not start the server. Test a real connection separately
@@ -276,12 +293,12 @@ variables or the OS keychain without printing their values.
276
293
 
277
294
  [Graphify](https://github.com/Graphify-Labs/graphify) is an optional codebase graph
278
295
  tool. It installs both a command and an agent skill, so Loadout keeps it separate from
279
- the normal profiles. It does not require an OpenAI or Anthropic API key:
296
+ the normal profiles. It does not require an LLM API key:
280
297
 
281
298
  ```bash
282
- loadout tool graphify --agents codex,claude-code
283
- loadout tool graphify --agents codex,claude-code --yes --approve-risk
284
- loadout tool graphify --remove --agents codex,claude-code --yes --approve-risk
299
+ loadout tool graphify
300
+ loadout tool graphify --yes --approve-risk
301
+ loadout tool graphify --remove --yes --approve-risk
285
302
  ```
286
303
 
287
304
  Executable tools remain an explicit choice instead of hiding inside a profile.
@@ -324,7 +341,7 @@ The bundled catalog currently contains **53 credited public repositories** acros
324
341
 
325
342
  <!-- loadout:evidence-stages:start -->
326
343
 
327
- Catalog maturity: **53 sourced**, **53 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).
344
+ Catalog maturity: **53 sourced**, **53 technically inspected**, and **4 selected for Stable**. Independent human-review attestations 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).
328
345
 
329
346
  <!-- loadout:evidence-stages:end -->
330
347
 
@@ -332,7 +349,7 @@ Loadout does not claim there is one universally “best” configuration. Recomm
332
349
 
333
350
  <!-- loadout:daily-discovery:start -->
334
351
 
335
- **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.
352
+ **Discovery snapshot (generated 2026-08-30):** [237 repositories observed](./docs/DISCOVERED.md), including 218 uncataloged review candidates and 19 repositories already in the inspected catalog.
336
353
  <!-- loadout:daily-discovery:end -->
337
354
 
338
355
  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.
@@ -341,7 +358,7 @@ The checked-in discovery report proves only its dated snapshot, not the success
341
358
 
342
359
  - A pinned commit identifies source bytes; it does not prove safety, correct licensing, usefulness, or future compatibility.
343
360
  - Static inspection reports scripts, hooks, binaries, domains, credential references, and unsupported components. It is not a security audit.
344
- - No bundled source is called benchmarked until isolated real trials, signed evidence, and human approval exist.
361
+ - No bundled source is called proven until human review and recorded local outcomes support it; static inspection alone never earns that label.
345
362
  - Project recommendations read bounded local metadata. The documented local flow does not upload project source.
346
363
  - Catalog fetches, discovery, update checks, and optional live checks use the network where stated.
347
364
  - MCP servers and executable tools have separate preview and approval paths because they can use credentials, start processes, or contact services.
@@ -349,11 +366,11 @@ The checked-in discovery report proves only its dated snapshot, not the success
349
366
 
350
367
  <!-- loadout:current-limits:start -->
351
368
 
352
- - **6 catalog records** currently have `NOASSERTION` license status and need upstream-license review before a public release decision.
369
+ - **4 catalog records** currently have `NOASSERTION` license status and need upstream-license review before a public release decision.
353
370
 
354
371
  <!-- loadout:current-limits:end -->
355
372
 
356
- The six records have an explicit public-release decision rather than an assumed
373
+ The four records have an explicit public-release decision rather than an assumed
357
374
  license. Read [Upstream license decisions](./docs/UPSTREAM_LICENSE_DECISIONS.md) for
358
375
  the source-by-source record and the boundary applied to Power, Maximum, and Custom.
359
376
 
@@ -381,97 +398,43 @@ Configured paths and disposable filesystem lifecycle tests do not prove that nat
381
398
 
382
399
  Start at the top and stop whenever Loadout does everything you need.
383
400
 
384
- | Priority | What it does | Command |
385
- | -------: | --------------------------------------------------------------- | ------------------------------------------------------------------ |
386
- | 1 | Opens the beginner-friendly guided path | `loadout guide` |
387
- | 2 | Previews the recommended 30-skill daily setup | `loadout setup --mode stable` |
388
- | 3 | Previews the broader Power setup | `loadout setup --mode power` |
389
- | 4 | Downloads the broad screened library, disabled by default | `loadout setup --mode maximum` |
390
- | 5 | Shows Loadout-managed packages and active skills | `loadout status`; `loadout library` |
391
- | 6 | Inventories skills across detected agents without changing them | `loadout scan` |
392
- | 7 | Explains what fits the current repository | `loadout recommend --project . --agent codex` |
393
- | 8 | Previews a bounded project-specific active set | `loadout optimize --project . --limit 30` |
394
- | 9 | Compares existing skills with reviewed catalog copies | `loadout reconcile --refresh` |
395
- | 10 | Checks managed active and disabled-library sources for changes | `loadout update` |
396
- | 11 | Finds newly launched or newly popular candidates | `loadout discover --source all --queue` |
397
- | 12 | Shows candidates waiting for deeper review | `loadout review-queue` |
398
- | 13 | Lists MCP recipes and credential needs | `loadout mcp-recipe`; `loadout mcp-recipe --credential-free` |
399
- | 14 | Previews an MCP configuration | `loadout mcp-recipe playwright --agent codex` |
400
- | 15 | Lists and installs isolated runtime tools such as Graphify | `loadout tool`; `loadout tool graphify --agents codex,claude-code` |
401
- | 16 | Lists snapshots or restores the latest managed change | `loadout rollback --list`; `loadout rollback` |
402
- | 17 | Previews removal of one managed package | `loadout remove <package-id>` |
403
- | 18 | Previews complete removal of Loadout-managed state | `loadout uninstall` |
404
- | 19 | Enables read-only daily discovery and update checks | `loadout autopilot --yes` |
405
- | 20 | Shows the complete CLI | `loadout --help`; `loadout advanced` |
401
+ | Priority | What it does | Command |
402
+ | -------: | --------------------------------------------------------------- | ------------------------------------------------------------ |
403
+ | 1 | Opens the beginner-friendly guided path | `loadout guide` |
404
+ | 2 | Previews the recommended 30-skill daily setup | `loadout setup --mode stable` |
405
+ | 3 | Previews the broader Power setup | `loadout setup --mode power` |
406
+ | 4 | Downloads the broad screened library, disabled by default | `loadout setup --mode maximum` |
407
+ | 5 | Shows Loadout-managed packages and active skills | `loadout status`; `loadout library` |
408
+ | 6 | Inventories skills across detected agents without changing them | `loadout scan` |
409
+ | 7 | Explains what fits the current repository | `loadout recommend --project .` |
410
+ | 8 | Previews a bounded project-specific active set | `loadout optimize --project . --limit 30` |
411
+ | 9 | Compares existing skills with reviewed catalog copies | `loadout reconcile --refresh` |
412
+ | 10 | Checks managed active and disabled-library sources for changes | `loadout update` |
413
+ | 11 | Finds newly launched or newly popular candidates | `loadout discover --source all --queue` |
414
+ | 12 | Shows candidates waiting for deeper review | `loadout review-queue` |
415
+ | 13 | Lists MCP recipes and credential needs | `loadout mcp-recipe`; `loadout mcp-recipe --credential-free` |
416
+ | 14 | Previews an MCP configuration | `loadout mcp-recipe playwright --agent claude-code` |
417
+ | 15 | Recommends the right model and agent for a task | `loadout route design the auth system` |
418
+ | 16 | Shows the full model catalog with pricing | `loadout route --models`; `loadout route --cost` |
419
+ | 17 | Sends a task to another agent via file-based handoff | `loadout handoff send codex "write tests for auth"` |
420
+ | 18 | Checks agent health, permissions, and setup | `loadout doctor`; `loadout doctor --verbose` |
421
+ | 19 | Lists and installs isolated runtime tools such as Graphify | `loadout tool`; `loadout tool graphify` |
422
+ | 20 | Lists snapshots or restores the latest managed change | `loadout rollback --list`; `loadout rollback` |
423
+ | 21 | Previews removal of one managed package | `loadout remove <package-id>` |
424
+ | 22 | Previews complete removal of Loadout-managed state | `loadout uninstall` |
425
+ | 23 | Enables read-only daily discovery and update checks | `loadout autopilot --yes` |
426
+ | 24 | Shows the complete CLI | `loadout --help`; `loadout advanced` |
406
427
 
407
428
  Most mutating commands are dry runs first. After reading the preview, add `--yes` to
408
429
  apply. Commands with executable or connection risk require the additional approval
409
430
  shown in their output.
410
431
 
411
- ## Built with Codex and GPT-5.6
412
-
413
- Loadout was built during OpenAI Build Week by a three-person team working with Codex
414
- and GPT-5.6. Codex was not a chat box bolted onto the finished project. It was the
415
- engineering environment we used to plan, build, test, and repeatedly challenge the
416
- product while it was taking shape.
417
-
418
- ### From a broad idea to a working product
419
-
420
- The starting idea was simple: one install that gives every coding agent the best
421
- extensions on GitHub. The difficult part was everything hidden inside that sentence.
422
- What counts as “best”? How much should stay active? What happens to skills a user
423
- already has? How do you update a repository without silently trusting new code? How
424
- do you undo changes across several agents?
425
-
426
- We used GPT-5.6 through Codex for the repo-wide reasoning behind those decisions.
427
- Together, we turned the idea into three distinct modes: a bounded Stable daily
428
- driver, a larger Power setup, and a Maximum library that keeps broad optionality
429
- without loading thousands of skills into every prompt.
430
-
431
- | Part of the build | How we used Codex and GPT-5.6 | What made it into Loadout |
432
- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
433
- | Product planning | Broke the original idea into testable user journeys and challenged unsafe assumptions | Stable, Power, Maximum, Custom, project optimization, discovery, updates, and complete uninstall |
434
- | Architecture | Traced how catalogs, adapters, agent directories, manifests, and snapshots affect one another | A local TypeScript CLI with a shared catalog, 12 agent adapters, and snapshot-backed transactions |
435
- | Ecosystem research | Compared repositories, checked source layouts and licenses, and separated popularity from evidence | 53 pinned catalog sources plus a discovery snapshot watching 240 repositories |
436
- | Implementation | Wrote and refactored CLI commands, schemas, source fetchers, installers, active-set logic, and MCP configuration | The published `loadout-ai` package and the commands documented above |
437
- | Safety work | Looked for scripts, hooks, binaries, credential references, target collisions, stale previews, and external edits | Preview-first changes, quarantined skill units, explicit risk approval, drift protection, and rollback |
438
- | Testing | Generated adversarial cases, reproduced failures from real terminal sessions, and converted them into regression tests | 625 passing tests, CLI and README end-to-end flows, package smoke tests, and a 1,000-skill performance gate |
439
- | Team integration | Audited teammate branches, compared them with `main`, prepared focused pull requests, and checked what was actually complete | One public history instead of three disconnected prototypes |
440
- | Release work | Verified npm contents, version behavior, GitHub metadata, documentation claims, and public CI | A public npm package, credited upstream catalog, release evidence, and a reproducible verification command |
441
-
442
- ### Real testing changed the code
443
-
444
- Codex was most useful when the neat plan met a messy laptop. A few examples:
445
-
446
- - A Graphify install appeared in Claude Code but vanished from Codex inventory
447
- because the generated runtime skill and the normal skill scanner used different
448
- Codex paths. The scan now recognizes managed runtime-tool skills explicitly.
449
- - Update checks repeatedly timed out on large repositories. We measured the real
450
- clone cost, changed the update path to check remote commit metadata first, and only
451
- fetch a full snapshot when a pinned source actually changed.
452
- - Existing unmanaged skills could occupy the same target as a Stable install.
453
- Instead of overwriting them, Loadout now stops, scans, compares, and offers a
454
- separate reconciliation path for exact or unambiguous matches.
455
- - ChatGPT and Claude subscriptions were easy to confuse with separately billed API
456
- access. Setup now asks about API access explicitly, while credentialed MCP servers
457
- remain separate from automatic skill installation.
458
-
459
- Those fixes came from a loop we repeated throughout the week: run the real command,
460
- paste the exact output into Codex, trace the behavior through the codebase, write a
461
- regression test, fix the smallest responsible layer, and run the full release gate.
462
-
463
- ### What the team owned
464
-
465
- The humans chose the product direction, selected the tradeoffs, reviewed upstream
466
- projects, tested Loadout on real Codex and Claude Code profiles, approved risky
467
- operations, and made every release decision. GPT-5.6 helped with high-context design,
468
- debugging, and review; Codex handled the implementation loop and verification tools.
469
- Neither replaced human judgment about what should be installed on someone else's
470
- machine.
471
-
472
- Loadout itself does **not** call GPT-5.6 and does not require an OpenAI API key to
473
- manage skills. Codex and GPT-5.6 helped build the tool; they are not a hidden runtime
474
- dependency.
432
+ ## Built with Claude
433
+
434
+ Loadout was designed and built by [Viraj Mishra](https://github.com/VirajMishra1) with Claude Code.
435
+
436
+ Loadout itself does **not** call any LLM API and does not require an LLM API key
437
+ to manage skills. Claude helped build the tool; it is not a hidden runtime dependency.
475
438
 
476
439
  ## Development
477
440