loadout-ai 0.5.7 → 0.5.8
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 +7 -0
- package/MASTER_PLAN.md +14 -14
- package/README.md +15 -10
- package/dist/src/cli.js +2 -1
- package/dist/src/core/catalog-install.js +10 -3
- package/docs/DEMO_SCRIPT.md +19 -18
- package/docs/SUBMISSION_COPY.md +90 -0
- package/docs/UPSTREAM_LICENSE_DECISIONS.md +32 -0
- package/docs/USER_TEST_GUIDE.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
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.
|
|
16
|
+
- [x] Publish the CLI as `loadout-ai@0.5.8`; 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.
|
|
@@ -35,16 +35,14 @@ history** is evidence of how the product was built, not unfinished launch scope.
|
|
|
35
35
|
|
|
36
36
|
### Final founder acceptance
|
|
37
37
|
|
|
38
|
-
- [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- [ ] Make the six unresolved upstream-license decisions explicit. Do not silently
|
|
47
|
-
convert `NOASSERTION` into a license claim because a repository is popular.
|
|
38
|
+
- [x] Install the exact public npm release, verify `loadout --version`, and scan the
|
|
39
|
+
founder's restored real profiles. Stable, Power, Maximum, project optimization,
|
|
40
|
+
Humanizer, Graphify, both-host Playwright MCP lifecycles, rollback, complete
|
|
41
|
+
uninstall, and clean reinstall were exercised during founder acceptance.
|
|
42
|
+
- [x] Keep the GitHub repository name `loadout`. The product remains **Loadout** and
|
|
43
|
+
the npm package/CLI identities remain `loadout-ai` / `loadout`.
|
|
44
|
+
- [x] Record explicit decisions for all six `NOASSERTION` sources in
|
|
45
|
+
`docs/UPSTREAM_LICENSE_DECISIONS.md` without inventing a license claim.
|
|
48
46
|
|
|
49
47
|
### Submission work
|
|
50
48
|
|
|
@@ -53,9 +51,11 @@ history** is evidence of how the product was built, not unfinished launch scope.
|
|
|
53
51
|
- [ ] Replace the README demo placeholder with the final YouTube link.
|
|
54
52
|
- [ ] In the voiceover, explain what Loadout does and how Codex and GPT-5.6 were used.
|
|
55
53
|
- [ ] Run `/feedback` in Codex, copy the resulting session ID, and enter it in Devpost.
|
|
56
|
-
- [
|
|
57
|
-
- [
|
|
58
|
-
|
|
54
|
+
- [x] Confirm the public repository URL is accessible to Devpost and OpenAI.
|
|
55
|
+
- [x] Confirm all team invitations are accepted. Both teammates are collaborators and
|
|
56
|
+
there are no pending repository invitations.
|
|
57
|
+
- [ ] Select **Developer Tools**, complete the edited Devpost description, and submit
|
|
58
|
+
rather than leaving a draft.
|
|
59
59
|
|
|
60
60
|
### Deliberately not part of this submission
|
|
61
61
|
|
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.
|
|
37
|
+
npm install --global loadout-ai@0.5.8
|
|
38
38
|
loadout setup --mode stable
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -87,10 +87,10 @@ Useful skills, plugins, MCP servers, and settings arrive one experiment at a tim
|
|
|
87
87
|
Soon it is hard to remember what is installed, where it came from, whether something
|
|
88
88
|
better launched yesterday, or how to undo a change. The name comes from games, where
|
|
89
89
|
your loadout is the set of tools you choose for the mission. This does the same for AI
|
|
90
|
-
coding agents
|
|
90
|
+
coding agents without making you rebuild the setup for every agent and every project.
|
|
91
91
|
|
|
92
92
|
Most extension tools begin with a repo you already know. Loadout begins one step
|
|
93
|
-
earlier
|
|
93
|
+
earlier: **what is actually worth knowing?** It stays with you after installation.
|
|
94
94
|
|
|
95
95
|
Loadout watches a much wider catalog than it activates. You can keep thousands of
|
|
96
96
|
technically screened skill copies in the disabled Maximum library, discover new projects as
|
|
@@ -112,7 +112,7 @@ their own explicit setup and permission steps.
|
|
|
112
112
|
|
|
113
113
|
### Demo
|
|
114
114
|
|
|
115
|
-
**Demo video coming here.** The release walkthrough will show the real path
|
|
115
|
+
**Demo video coming here.** The release walkthrough will show the real path, not a
|
|
116
116
|
mock UI: Stable install, cross-agent inventory, project optimization, update and
|
|
117
117
|
discovery checks, MCP setup, Graphify, rollback, and complete uninstall. The exact
|
|
118
118
|
under-three-minute [recording and voiceover script](./docs/DEMO_SCRIPT.md) is public.
|
|
@@ -122,7 +122,7 @@ commands you can run yourself.
|
|
|
122
122
|
|
|
123
123
|
## Stable workflow
|
|
124
124
|
|
|
125
|
-
### Stable Boost
|
|
125
|
+
### Stable Boost: install the essentials and start building
|
|
126
126
|
|
|
127
127
|
Stable is the recommended daily driver: **30 selected skill directories from four
|
|
128
128
|
pinned public sources**, installed into each agent you choose. It covers planning,
|
|
@@ -181,7 +181,7 @@ checked by `loadout update` without moving them to a different agent path.
|
|
|
181
181
|
|
|
182
182
|
Loadout is opinionated when you want it to be and precise when you do not.
|
|
183
183
|
|
|
184
|
-
### Power Boost
|
|
184
|
+
### Power Boost: a larger cross-project toolkit
|
|
185
185
|
|
|
186
186
|
Power draws a skill-level allowlist from eight major collections. The prepared set
|
|
187
187
|
is deduplicated and invalid units are quarantined, so the final count can be lower
|
|
@@ -203,11 +203,11 @@ skills per agent.
|
|
|
203
203
|
loadout setup --mode power
|
|
204
204
|
```
|
|
205
205
|
|
|
206
|
-
### Maximum Library
|
|
206
|
+
### Maximum Library: download broadly, activate intelligently
|
|
207
207
|
|
|
208
208
|
Maximum is for explorers. It downloads every non-archived, technically screened
|
|
209
209
|
skill component in the catalog into Loadout's **disabled local library**. Disabled
|
|
210
|
-
means cached and available
|
|
210
|
+
means cached and available, not injected into agent context. Then let the current
|
|
211
211
|
project choose a focused active set:
|
|
212
212
|
|
|
213
213
|
```bash
|
|
@@ -221,7 +221,7 @@ This is the difference between “install everything” and “have everything r
|
|
|
221
221
|
The first overloads agents; the second gives you a large library with a small,
|
|
222
222
|
relevant active loadout.
|
|
223
223
|
|
|
224
|
-
### Custom
|
|
224
|
+
### Custom: take exact control
|
|
225
225
|
|
|
226
226
|
Use `setup` when the listed packages should become the complete managed profile for
|
|
227
227
|
the selected agents. Packages from the previous managed profile that are not listed
|
|
@@ -353,6 +353,10 @@ The checked-in discovery report proves only its dated snapshot, not the success
|
|
|
353
353
|
|
|
354
354
|
<!-- loadout:current-limits:end -->
|
|
355
355
|
|
|
356
|
+
The six records have an explicit public-release decision rather than an assumed
|
|
357
|
+
license. Read [Upstream license decisions](./docs/UPSTREAM_LICENSE_DECISIONS.md) for
|
|
358
|
+
the source-by-source record and the boundary applied to Power, Maximum, and Custom.
|
|
359
|
+
|
|
356
360
|
Read the [security policy](./SECURITY.md), [catalog policy](./docs/CATALOG_POLICY.md), and [credential and update policy](./docs/CREDENTIAL_AND_UPDATE_POLICY.md) before trusting third-party content.
|
|
357
361
|
|
|
358
362
|
## Agent support
|
|
@@ -431,7 +435,7 @@ without loading thousands of skills into every prompt.
|
|
|
431
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 |
|
|
432
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 |
|
|
433
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 |
|
|
434
|
-
| Testing | Generated adversarial cases, reproduced failures from real terminal sessions, and converted them into regression tests |
|
|
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 |
|
|
435
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 |
|
|
436
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 |
|
|
437
441
|
|
|
@@ -495,6 +499,7 @@ The repository's mixed README product-flow test uses an isolated build, disposab
|
|
|
495
499
|
- [Daily discovery snapshot](./docs/DISCOVERED.md)
|
|
496
500
|
- [Candidate inspection and promotion](./docs/CANDIDATE_INTELLIGENCE.md)
|
|
497
501
|
- [Credential and update policy](./docs/CREDENTIAL_AND_UPDATE_POLICY.md)
|
|
502
|
+
- [Upstream license decisions](./docs/UPSTREAM_LICENSE_DECISIONS.md)
|
|
498
503
|
- [Changelog](./CHANGELOG.md)
|
|
499
504
|
|
|
500
505
|
## Contributing, security, and attribution
|
package/dist/src/cli.js
CHANGED
|
@@ -264,7 +264,7 @@ async function runSetup(options) {
|
|
|
264
264
|
reader?.close();
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
|
-
const LOADOUT_VERSION = "0.5.
|
|
267
|
+
const LOADOUT_VERSION = "0.5.8";
|
|
268
268
|
function durableSchedulerLauncher() {
|
|
269
269
|
return [
|
|
270
270
|
join(dirname(process.execPath), process.platform === "win32" ? "npx.cmd" : "npx"),
|
|
@@ -2711,6 +2711,7 @@ program
|
|
|
2711
2711
|
const prepared = await prepareCatalogInstall(setupSelection(options.mode, packageIds), {
|
|
2712
2712
|
requestedAgents: parseAgentSelection(options.agents),
|
|
2713
2713
|
onProgress: printSetupProgress,
|
|
2714
|
+
additive: options.mode === "custom",
|
|
2714
2715
|
});
|
|
2715
2716
|
console.log(formatPreparedCatalogInstall(prepared, {
|
|
2716
2717
|
details: options.details,
|
|
@@ -179,7 +179,7 @@ export async function prepareCatalogInstall(selection, options = {}) {
|
|
|
179
179
|
});
|
|
180
180
|
return false;
|
|
181
181
|
});
|
|
182
|
-
const reconciliation = selection.mode === "maximum"
|
|
182
|
+
const reconciliation = selection.mode === "maximum" || options.additive
|
|
183
183
|
? {
|
|
184
184
|
obsoleteActivationKeys: [],
|
|
185
185
|
obsoletePackageIds: [],
|
|
@@ -189,6 +189,7 @@ export async function prepareCatalogInstall(selection, options = {}) {
|
|
|
189
189
|
: await planManagedProfileReconciliation(usableEntries);
|
|
190
190
|
return {
|
|
191
191
|
selection,
|
|
192
|
+
additive: options.additive ?? false,
|
|
192
193
|
resolution,
|
|
193
194
|
agents,
|
|
194
195
|
entries: usableEntries,
|
|
@@ -217,6 +218,8 @@ export function formatPreparedCatalogInstall(prepared, options = {}) {
|
|
|
217
218
|
`Separately billed model API access: ${formatModelApiAccess(prepared.access)} (ChatGPT and Claude subscriptions do not count as API access)`,
|
|
218
219
|
"Automatic skill setup does not require an OpenAI, Anthropic, or OpenRouter API key; credentialed MCP/runtime integrations remain explicit and deferred.",
|
|
219
220
|
];
|
|
221
|
+
if (prepared.additive)
|
|
222
|
+
lines.push("Additive install: existing managed skills will stay active.");
|
|
220
223
|
if (directoriesPerAgent > RECOMMENDED_ACTIVE_SKILL_LIMIT)
|
|
221
224
|
lines.push(`Capacity notice: about ${directoriesPerAgent} skill directories per agent exceeds Stable's ${RECOMMENDED_ACTIVE_SKILL_LIMIT}-skill bound.${prepared.selection.mode === "maximum" ? " Maximum stores them in the disabled library; optimize or activate a project-relevant working set." : prepared.selection.mode === "power" ? " Power is the explicit larger active mode; choose Stable or project optimization when lower context use matters." : " Use project-aware activation for a smaller working set."}`);
|
|
222
225
|
if (failures.length)
|
|
@@ -263,11 +266,15 @@ export async function applyPreparedCatalogInstall(prepared, options = {}) {
|
|
|
263
266
|
})
|
|
264
267
|
: applySkillInstallBatch(prepared.entries, [], {
|
|
265
268
|
replaceManagedTargets: true,
|
|
266
|
-
reconcileManagedTargets:
|
|
269
|
+
reconcileManagedTargets: !prepared.additive,
|
|
267
270
|
...(prepared.reconciliation
|
|
268
271
|
? { expectedReconciliation: prepared.reconciliation }
|
|
269
272
|
: {}),
|
|
270
|
-
|
|
273
|
+
...(prepared.additive
|
|
274
|
+
? {}
|
|
275
|
+
: {
|
|
276
|
+
afterRecord: () => recordInstalledProfile(prepared).then(() => undefined),
|
|
277
|
+
}),
|
|
271
278
|
});
|
|
272
279
|
}
|
|
273
280
|
export function formatCatalogApplyGuidance(riskApprovalRequired) {
|
package/docs/DEMO_SCRIPT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Loadout demo and voiceover
|
|
2
2
|
|
|
3
|
-
Target length: **2:35
|
|
3
|
+
Target length: **2:35 to 2:50**. Record the real CLI, cut fetch waits and typing, and do
|
|
4
4
|
not show the retired dashboard. The final YouTube upload must be public.
|
|
5
5
|
|
|
6
6
|
## Before recording
|
|
@@ -10,7 +10,7 @@ not show the retired dashboard. The final YouTube upload must be public.
|
|
|
10
10
|
2. Confirm the release and product health:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
npm install --global loadout-ai@0.5.
|
|
13
|
+
npm install --global loadout-ai@0.5.8
|
|
14
14
|
hash -r
|
|
15
15
|
loadout --version
|
|
16
16
|
loadout health
|
|
@@ -24,7 +24,7 @@ not show the retired dashboard. The final YouTube upload must be public.
|
|
|
24
24
|
|
|
25
25
|
## Shot list and exact narration
|
|
26
26
|
|
|
27
|
-
### 0:00
|
|
27
|
+
### 0:00 to 0:15: the problem
|
|
28
28
|
|
|
29
29
|
**Screen:** README hero, then a terminal showing `loadout --version`.
|
|
30
30
|
|
|
@@ -35,7 +35,7 @@ not show the retired dashboard. The final YouTube upload must be public.
|
|
|
35
35
|
> or how to undo it. I built Loadout: one local CLI to discover, inspect, install,
|
|
36
36
|
> update, and roll back agent extensions across Codex, Claude Code, and other agents.
|
|
37
37
|
|
|
38
|
-
### 0:15
|
|
38
|
+
### 0:15 to 0:50: one safe install
|
|
39
39
|
|
|
40
40
|
**Screen:** Run the preview, then apply. Cut the fetch wait, not the result.
|
|
41
41
|
|
|
@@ -52,7 +52,7 @@ loadout setup --mode stable --agents codex,claude-code --api-access none --yes
|
|
|
52
52
|
> transaction and gives me a rollback snapshot. My ChatGPT and Claude subscriptions
|
|
53
53
|
> are not treated as API keys, and normal skill setup does not need one.
|
|
54
54
|
|
|
55
|
-
### 0:50
|
|
55
|
+
### 0:50 to 1:12: see what changed and undo it
|
|
56
56
|
|
|
57
57
|
**Screen:**
|
|
58
58
|
|
|
@@ -70,25 +70,26 @@ loadout rollback --snapshot <stable-snapshot-id>
|
|
|
70
70
|
> preserving unrelated skills. I use the exact snapshot ID shown by the install, so
|
|
71
71
|
> there is no ambiguity. Complete uninstall is available too.
|
|
72
72
|
|
|
73
|
-
### 1:12
|
|
73
|
+
### 1:12 to 1:42: broad catalog, focused project
|
|
74
74
|
|
|
75
|
-
**Screen:**
|
|
76
|
-
|
|
75
|
+
**Screen:** Show the profile choices, catalog coverage, and a real project
|
|
76
|
+
recommendation. These commands are read-only and do not require a prepared Maximum
|
|
77
|
+
library.
|
|
77
78
|
|
|
78
79
|
```bash
|
|
79
|
-
loadout
|
|
80
|
+
loadout profiles
|
|
81
|
+
loadout catalog --coverage
|
|
80
82
|
loadout recommend --project . --agent codex
|
|
81
|
-
loadout optimize --project . --agents codex,claude-code --limit 30
|
|
82
83
|
```
|
|
83
84
|
|
|
84
85
|
**Say:**
|
|
85
86
|
|
|
86
|
-
>
|
|
87
|
-
>
|
|
88
|
-
>
|
|
89
|
-
>
|
|
87
|
+
> Loadout has three useful levels. Stable installs a bounded daily set. Power is
|
|
88
|
+
> broader. Maximum keeps a large screened library disabled instead of dumping every
|
|
89
|
+
> skill into every prompt. For this TypeScript CLI, the project recommender proposes
|
|
90
|
+
> tools for documentation, testing, security, and MCP work without changing anything.
|
|
90
91
|
|
|
91
|
-
### 1:42
|
|
92
|
+
### 1:42 to 2:05: MCP, tools, and custom skills
|
|
92
93
|
|
|
93
94
|
**Screen:**
|
|
94
95
|
|
|
@@ -106,7 +107,7 @@ loadout install --mode custom --package humanizer --agents codex
|
|
|
106
107
|
> skill such as Humanizer can be installed directly through Custom mode. Each path
|
|
107
108
|
> discloses permissions and credentials before approval.
|
|
108
109
|
|
|
109
|
-
### 2:05
|
|
110
|
+
### 2:05 to 2:25: today and tomorrow
|
|
110
111
|
|
|
111
112
|
**Screen:**
|
|
112
113
|
|
|
@@ -121,7 +122,7 @@ loadout discover --limit 5
|
|
|
121
122
|
> watches a wider ecosystem and queues new projects for review, so something going
|
|
122
123
|
> viral can be noticed quickly without being trusted blindly.
|
|
123
124
|
|
|
124
|
-
### 2:25
|
|
125
|
+
### 2:25 to 2:48: Codex, GPT-5.6, and close
|
|
125
126
|
|
|
126
127
|
**Screen:** README section “Built with Codex and GPT-5.6”, then return to the hero.
|
|
127
128
|
|
|
@@ -138,7 +139,7 @@ loadout discover --limit 5
|
|
|
138
139
|
|
|
139
140
|
- Remove loading screens, typing pauses, repeated commands, notifications, and secrets.
|
|
140
141
|
- Keep terminal output readable at 1080p; do not use a synthetic dashboard or mock data.
|
|
141
|
-
- Add a small title card: **Loadout
|
|
142
|
+
- Add a small title card: **Loadout: Agent extensions, under control.**
|
|
142
143
|
- Export under three minutes and upload publicly to YouTube.
|
|
143
144
|
- Watch the uploaded video once, confirm audio and text are legible, then paste the
|
|
144
145
|
exact public URL into README and Devpost.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Devpost submission copy
|
|
2
|
+
|
|
3
|
+
Edit this in your own voice before submitting. Replace the video placeholder and
|
|
4
|
+
check every link while signed out.
|
|
5
|
+
|
|
6
|
+
## Project name
|
|
7
|
+
|
|
8
|
+
Loadout
|
|
9
|
+
|
|
10
|
+
## Tagline
|
|
11
|
+
|
|
12
|
+
One CLI to discover, install, update, and undo the best extensions for your AI coding
|
|
13
|
+
agents.
|
|
14
|
+
|
|
15
|
+
## Category
|
|
16
|
+
|
|
17
|
+
Developer Tools
|
|
18
|
+
|
|
19
|
+
## Short category and project answer
|
|
20
|
+
|
|
21
|
+
We are building for the Developer Tools category. Loadout is a local CLI that finds,
|
|
22
|
+
screens, installs, updates, and rolls back skills, MCP servers, and runtime tools
|
|
23
|
+
across Codex, Claude Code, Cursor, and other coding agents, with project-aware
|
|
24
|
+
recommendations and a daily read-only discovery feed.
|
|
25
|
+
|
|
26
|
+
## Project description
|
|
27
|
+
|
|
28
|
+
Improving an AI coding agent still means hunting through GitHub, Reddit, X, and
|
|
29
|
+
bookmarks, then copying files into several different agent directories. A week later,
|
|
30
|
+
you may not remember where a skill came from, whether a better option has appeared,
|
|
31
|
+
or how to remove it safely.
|
|
32
|
+
|
|
33
|
+
Loadout turns that mess into one local CLI. Stable installs a bounded 30-skill daily
|
|
34
|
+
setup from four pinned public sources. Power prepares a broader toolkit. Maximum
|
|
35
|
+
keeps thousands of screened skill copies in a disabled local library, then recommends
|
|
36
|
+
a focused active set for the current project. Custom mode installs one exact package
|
|
37
|
+
without replacing the rest of your setup.
|
|
38
|
+
|
|
39
|
+
Every change is previewed first. Loadout records source and version ownership, checks
|
|
40
|
+
for collisions and risky files, protects user edits, and creates a rollback snapshot
|
|
41
|
+
before it changes managed files. MCP servers and executable tools remain separate,
|
|
42
|
+
explicit choices. The normal skill workflow does not require an OpenAI or Anthropic
|
|
43
|
+
API key.
|
|
44
|
+
|
|
45
|
+
The bundled catalog credits 53 pinned public repositories. A generated discovery
|
|
46
|
+
snapshot currently watches 240 repositories, including 216 candidates that have not
|
|
47
|
+
been promoted into the catalog. Loadout treats popularity as a reason to inspect a
|
|
48
|
+
project, not proof that it is safe or useful.
|
|
49
|
+
|
|
50
|
+
We built Loadout with Codex and GPT-5.6 during OpenAI Build Week. We used Codex for
|
|
51
|
+
architecture, implementation, repository research, threat modelling, cross-platform
|
|
52
|
+
work, and the founder testing loop. Real tests on Codex and Claude Code exposed bugs
|
|
53
|
+
in rollback history, update performance, project activation, MCP configuration,
|
|
54
|
+
runtime-tool inventory, and adopted-skill removal. Each reproducible failure became a
|
|
55
|
+
regression test. The current release passes 625 tests, packaged CLI journeys, public
|
|
56
|
+
CI, and a 1,000-skill performance gate.
|
|
57
|
+
|
|
58
|
+
Loadout is published on npm and the code is public. The dashboard was deliberately
|
|
59
|
+
removed because it duplicated the CLI and made the product harder to understand. The
|
|
60
|
+
result is the product we wanted to use ourselves: one command-line control layer for
|
|
61
|
+
the extensions around every AI coding agent.
|
|
62
|
+
|
|
63
|
+
## Links
|
|
64
|
+
|
|
65
|
+
- GitHub: https://github.com/VirajMishra1/loadout
|
|
66
|
+
- npm: https://www.npmjs.com/package/loadout-ai
|
|
67
|
+
- Release: https://github.com/VirajMishra1/loadout/releases/tag/v0.5.8
|
|
68
|
+
- Demo: PASTE_PUBLIC_YOUTUBE_URL_HERE
|
|
69
|
+
|
|
70
|
+
## Judge testing path
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install --global loadout-ai@0.5.8
|
|
74
|
+
loadout --version
|
|
75
|
+
loadout guide
|
|
76
|
+
loadout setup --mode stable
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The Stable command previews first. It changes nothing until the reviewer approves
|
|
80
|
+
the plan. The README and user test guide cover rollback, Maximum, project
|
|
81
|
+
recommendations, MCP recipes, Graphify, discovery, and complete uninstall.
|
|
82
|
+
|
|
83
|
+
## Final fields to verify
|
|
84
|
+
|
|
85
|
+
- Category is Developer Tools.
|
|
86
|
+
- All three teammates appear on the Devpost submission.
|
|
87
|
+
- The public YouTube URL works while signed out.
|
|
88
|
+
- The Codex `/feedback` session ID is present.
|
|
89
|
+
- The GitHub, npm, and video links are correct.
|
|
90
|
+
- The submission is submitted, not saved as a draft.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Upstream license decisions
|
|
2
|
+
|
|
3
|
+
Reviewed on July 21, 2026 for the public `0.5.8` release.
|
|
4
|
+
|
|
5
|
+
Loadout records `NOASSERTION` when it cannot identify one repository-wide SPDX
|
|
6
|
+
license from the inspected source. Popularity, an official publisher, or a public
|
|
7
|
+
GitHub repository does not replace a license grant.
|
|
8
|
+
|
|
9
|
+
## Release decision
|
|
10
|
+
|
|
11
|
+
The six records below remain in the credited catalog as source metadata. Loadout
|
|
12
|
+
does not copy their source into the npm package, claim ownership, or assign them a
|
|
13
|
+
license. A selected profile may fetch a pinned upstream snapshot only after showing
|
|
14
|
+
the user a preview. MCP configuration and executable tools remain separate explicit
|
|
15
|
+
actions.
|
|
16
|
+
|
|
17
|
+
None of these six records is part of Stable. Stable continues to use four sources
|
|
18
|
+
with identified SPDX licenses. People who select Power, Maximum, or a Custom package
|
|
19
|
+
must review the linked upstream terms before using content marked `NOASSERTION`.
|
|
20
|
+
|
|
21
|
+
| Catalog record | Upstream source | Recorded decision |
|
|
22
|
+
| ------------------------------ | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| OpenAI Skills Catalog | [openai/skills](https://github.com/openai/skills) | Retain the pinned catalog pointer with `NOASSERTION`; no repository-wide root license was identified. |
|
|
24
|
+
| Anthropic Skills | [anthropics/skills](https://github.com/anthropics/skills) | Retain the pinned catalog pointer with `NOASSERTION`; no repository-wide root license was identified. |
|
|
25
|
+
| Vercel Agent Skills | [vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills) | Retain the pinned catalog pointer with `NOASSERTION`; no repository-wide root license was identified. |
|
|
26
|
+
| Vercel Skills | [vercel-labs/skills](https://github.com/vercel-labs/skills) | Retain the pinned catalog pointer with `NOASSERTION`; no repository-wide root license was identified. |
|
|
27
|
+
| Sentry MCP | [getsentry/sentry-mcp](https://github.com/getsentry/sentry-mcp) | Retain the pinned catalog pointer with `NOASSERTION`; the root license file is not identified as a standard SPDX license by GitHub. |
|
|
28
|
+
| Model Context Protocol Servers | [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) | Retain the pinned catalog pointer with `NOASSERTION`; the root license file is not identified as a standard SPDX license by GitHub. |
|
|
29
|
+
|
|
30
|
+
This is a transparent product policy decision, not legal advice or a claim that the
|
|
31
|
+
upstream material may be redistributed under Loadout's MIT license. Each upstream
|
|
32
|
+
project keeps its own copyright and terms.
|
package/docs/USER_TEST_GUIDE.md
CHANGED
|
@@ -211,7 +211,7 @@ cleanup deliberately deletes Loadout's snapshots, so it is the last lifecycle te
|
|
|
211
211
|
## Troubleshooting and recovery
|
|
212
212
|
|
|
213
213
|
- **`loadout` is not found after installation:** confirm `npm install --global
|
|
214
|
-
loadout-ai@0.5.
|
|
214
|
+
loadout-ai@0.5.8` completed, run `hash -r`, and confirm npm's global binary
|
|
215
215
|
directory is on `PATH`. For a source checkout, run `npm run build` and `npm link`.
|
|
216
216
|
- **A preview asks for `--approve-risk`:** read the reported scripts, domains,
|
|
217
217
|
credentials, binaries, or instruction findings. If you accept that specific plan,
|