loadout-ai 0.6.0 → 0.8.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 +72 -0
- package/README.md +129 -26
- package/catalog/discovered.json +28469 -24524
- package/dist/src/cli.js +7 -2
- package/dist/src/commands/agents.js +6 -23
- package/dist/src/commands/catalog.js +186 -102
- package/dist/src/commands/health.js +6 -6
- package/dist/src/commands/inventory.js +19 -120
- package/dist/src/commands/lifecycle.js +13 -51
- package/dist/src/commands/mcp.js +10 -73
- package/dist/src/commands/setup.js +5 -5
- package/dist/src/commands/sharing.js +11 -108
- package/dist/src/commands/support.js +20 -9
- package/dist/src/core/{adapters.js → agents/adapters.js} +2 -2
- package/dist/src/core/{agent-inspection.js → agents/agent-inspection.js} +48 -6
- package/dist/src/core/{codex-mcp.js → agents/codex-mcp.js} +1 -1
- package/dist/src/core/{health-score-evidence.js → agents/health-score-evidence.js} +8 -8
- package/dist/src/core/{runtime-tools.js → agents/runtime-tools.js} +2 -2
- package/dist/src/core/{audit.js → catalog/audit.js} +4 -4
- package/dist/src/core/{catalog.js → catalog/catalog.js} +5 -5
- package/dist/src/core/{components.js → catalog/components.js} +2 -2
- package/dist/src/core/{conformance.js → catalog/conformance.js} +2 -2
- package/dist/src/core/{profiles.js → catalog/profiles.js} +2 -2
- package/dist/src/core/{provenance.js → catalog/provenance.js} +3 -3
- package/dist/src/core/{registry.js → catalog/registry.js} +59 -11
- package/dist/src/core/{safety.js → catalog/safety.js} +36 -7
- package/dist/src/core/{skill-compare.js → catalog/skill-compare.js} +1 -1
- package/dist/src/core/{skill-inventory.js → catalog/skill-inventory.js} +3 -3
- package/dist/src/core/{skills.js → catalog/skills.js} +1 -1
- package/dist/src/core/{candidate-intelligence.js → discovery/candidate-intelligence.js} +6 -6
- package/dist/src/core/{discovery-connector.js → discovery/discovery-connector.js} +2 -2
- package/dist/src/core/{evaluate.js → discovery/evaluate.js} +2 -2
- package/dist/src/core/{mcp-registry-discovery.js → discovery/mcp-registry-discovery.js} +1 -1
- package/dist/src/core/{observations.js → discovery/observations.js} +3 -3
- package/dist/src/core/{review-queue.js → discovery/review-queue.js} +2 -2
- package/dist/src/core/{skills-sh-discovery.js → discovery/skills-sh-discovery.js} +1 -1
- package/dist/src/core/{adopt.js → install/adopt.js} +3 -3
- package/dist/src/core/{catalog-install.js → install/catalog-install.js} +11 -11
- package/dist/src/core/{file-lock.js → install/file-lock.js} +1 -1
- package/dist/src/core/{install.js → install/install.js} +5 -5
- package/dist/src/core/{package.js → install/package.js} +3 -3
- package/dist/src/core/{reconcile.js → install/reconcile.js} +5 -5
- package/dist/src/core/{remove.js → install/remove.js} +4 -4
- package/dist/src/core/{snapshot.js → install/snapshot.js} +1 -1
- package/dist/src/core/{source.js → install/source.js} +22 -8
- package/dist/src/core/{sync.js → install/sync.js} +9 -9
- package/dist/src/core/{transaction.js → install/transaction.js} +1 -1
- package/dist/src/core/{uninstall.js → install/uninstall.js} +4 -4
- package/dist/src/core/{update.js → install/update.js} +4 -4
- package/dist/src/core/{cli-guide.js → reporting/cli-guide.js} +29 -45
- package/dist/src/core/reporting/completion.js +90 -0
- package/dist/src/core/{doctor.js → reporting/doctor.js} +5 -10
- package/dist/src/core/{freshness-alerts.js → reporting/freshness-alerts.js} +5 -5
- package/dist/src/core/{health.js → reporting/health.js} +6 -6
- package/dist/src/core/{loadout-card.js → reporting/loadout-card.js} +1 -1
- package/dist/src/core/{readme-claims.js → reporting/readme-claims.js} +1 -1
- package/dist/src/core/{readme-facts.js → reporting/readme-facts.js} +2 -2
- package/dist/src/core/{share-report.js → reporting/share-report.js} +3 -3
- package/dist/src/core/{upgrade.js → reporting/upgrade.js} +7 -7
- package/dist/src/core/routing/first-party-skills.js +118 -0
- package/dist/src/core/routing/handoff.js +314 -0
- package/dist/src/core/{model-config.js → routing/model-config.js} +4 -4
- package/dist/src/core/routing/policy.js +147 -0
- package/dist/src/core/{route.js → routing/route.js} +202 -39
- package/dist/src/core/{api.js → runtime/api.js} +4 -4
- package/dist/src/core/{canary.js → runtime/canary.js} +1 -1
- package/dist/src/core/{github.js → runtime/github.js} +1 -1
- package/dist/src/core/{mcp-recipes.js → runtime/mcp-recipes.js} +1 -1
- package/dist/src/core/{mcp.js → runtime/mcp.js} +2 -2
- package/dist/src/core/{scheduler.js → runtime/scheduler.js} +4 -4
- package/dist/src/core/{active-policy.js → workspace/active-policy.js} +2 -2
- package/dist/src/core/{active-set.js → workspace/active-set.js} +2 -2
- package/dist/src/core/{improve.js → workspace/improve.js} +3 -3
- package/dist/src/core/{manifest.js → workspace/manifest.js} +2 -2
- package/dist/src/core/{outcomes.js → workspace/outcomes.js} +3 -3
- package/dist/src/core/{portable.js → workspace/portable.js} +3 -3
- package/dist/src/core/{profile-state.js → workspace/profile-state.js} +1 -1
- package/dist/src/core/{recommend.js → workspace/recommend.js} +1 -1
- package/dist/src/core/{state.js → workspace/state.js} +3 -3
- package/docs/CANDIDATE_INTELLIGENCE.md +9 -2
- package/docs/CATALOG.md +1 -1
- package/docs/CREDENTIAL_AND_UPDATE_POLICY.md +1 -1
- package/docs/DISCOVERED.md +250 -248
- package/docs/FEATURE_TEST_MATRIX.md +7 -260
- package/docs/GITHUB_AUTHORIZATION.md +5 -0
- package/docs/PROVENANCE_AND_COMPARISON.md +1 -1
- package/docs/RELEASE_REVIEW.md +0 -1
- package/docs/evidence/readme-claims.json +22 -19
- package/package.json +7 -4
- package/skills/loadout-curator/SKILL.md +105 -0
- package/skills/loadout-router/SKILL.md +85 -0
- package/MASTER_PLAN.md +0 -2207
- package/dist/src/core/completion.js +0 -143
- package/dist/src/core/handoff.js +0 -161
- package/docs/ACTIVE_SET.md +0 -53
- package/docs/COMPATIBILITY_POLICY.md +0 -22
- package/docs/CONVERSION_AND_SANDBOX.md +0 -27
- package/docs/EVALUATION_PROTOCOL_V1.md +0 -300
- package/docs/HEAD_TO_HEAD_EVALUATION.md +0 -79
- package/docs/PROVIDER_CONFIGURATION.md +0 -45
- package/docs/README_RESEARCH.md +0 -36
- package/docs/REPOSITORY_STABILIZATION.md +0 -190
- package/docs/SAFE_UPDATE_DEMO.md +0 -25
- package/docs/SCHEMA_DECISIONS.md +0 -25
- package/docs/SUBMISSION_COPY.md +0 -90
- package/docs/TEAM_POLICY.md +0 -18
- package/docs/superpowers/plans/2026-07-19-relatable-readme-hero.md +0 -283
- package/docs/superpowers/plans/2026-07-20-loadout-readme-explainer.md +0 -116
- package/docs/superpowers/plans/2026-07-20-project-activation-safety.md +0 -469
- package/docs/superpowers/specs/2026-07-19-relatable-readme-hero-design.md +0 -80
- package/docs/superpowers/specs/2026-07-20-loadout-readme-explainer-design.md +0 -55
- package/docs/superpowers/specs/2026-07-20-project-activation-safety-design.md +0 -228
- /package/dist/src/core/{agent-health-score.js → agents/agent-health-score.js} +0 -0
- /package/dist/src/core/{agent-versions.js → agents/agent-versions.js} +0 -0
- /package/dist/src/core/{conversion.js → agents/conversion.js} +0 -0
- /package/dist/src/core/{paths.js → agents/paths.js} +0 -0
- /package/dist/src/core/{runtime-tool-recipe.js → agents/runtime-tool-recipe.js} +0 -0
- /package/dist/src/core/{catalog-coverage.js → catalog/catalog-coverage.js} +0 -0
- /package/dist/src/core/{skill-security.js → catalog/skill-security.js} +0 -0
- /package/dist/src/core/{community.js → discovery/community.js} +0 -0
- /package/dist/src/core/{github-discovery.js → discovery/github-discovery.js} +0 -0
- /package/dist/src/core/{private-discovery.js → discovery/private-discovery.js} +0 -0
- /package/dist/src/core/{ranking.js → discovery/ranking.js} +0 -0
- /package/dist/src/core/{atomic-file.js → install/atomic-file.js} +0 -0
- /package/dist/src/core/{diff.js → install/diff.js} +0 -0
- /package/dist/src/core/{update-watch.js → install/update-watch.js} +0 -0
- /package/dist/src/core/{loadout-badge.js → reporting/loadout-badge.js} +0 -0
- /package/dist/src/core/{terminal.js → reporting/terminal.js} +0 -0
- /package/dist/src/core/{access.js → routing/access.js} +0 -0
- /package/dist/src/core/{credentials.js → routing/credentials.js} +0 -0
- /package/dist/src/core/{sandbox.js → runtime/sandbox.js} +0 -0
- /package/dist/src/core/{active-limit.js → workspace/active-limit.js} +0 -0
- /package/dist/src/core/{target-occupancy.js → workspace/target-occupancy.js} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: loadout-curator
|
|
3
|
+
description: Decide which agent skills, MCP servers, and tools should be active for the current repository, and keep that set current. Use when the user asks what skills they should install, why an agent is missing context about their stack, whether their setup is up to date, or when starting work in an unfamiliar codebase.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loadout Curator
|
|
7
|
+
|
|
8
|
+
Match the active skill set to the repository in front of you. Too few skills and
|
|
9
|
+
the agent lacks context; too many and every prompt carries weight it does not
|
|
10
|
+
need.
|
|
11
|
+
|
|
12
|
+
This skill wraps the `loadout` CLI so the catalog, provenance, and safety
|
|
13
|
+
findings stay current rather than being copied into this file.
|
|
14
|
+
|
|
15
|
+
## Prerequisite
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
loadout --version
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If that fails, tell the user to install it (`npm install --global loadout-ai`)
|
|
22
|
+
and stop; do not guess at catalog contents.
|
|
23
|
+
|
|
24
|
+
## Starting work in a repository
|
|
25
|
+
|
|
26
|
+
Read what the codebase actually is before suggesting anything:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
loadout recommend --project .
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This prints detected signals (languages, frameworks, test runners) and
|
|
33
|
+
rule-based suggestions with a confidence label. The signals are the useful part
|
|
34
|
+
— they tell you what the repository is without you reading every file.
|
|
35
|
+
|
|
36
|
+
Report the detected stack first, then the suggestions worth acting on. Skip
|
|
37
|
+
low-confidence suggestions unless the user asks for the full list.
|
|
38
|
+
|
|
39
|
+
`recommend` reads the project and the catalog. It does not prove quality, and it
|
|
40
|
+
says so; repeat that framing rather than presenting suggestions as verified.
|
|
41
|
+
|
|
42
|
+
## Proposing an active set
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
loadout optimize --project .
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
This proposes which already-downloaded library skills should be active here.
|
|
49
|
+
Use it when the user has a Maximum-mode library, or after `recommend` shows the
|
|
50
|
+
project needs something different from what is on.
|
|
51
|
+
|
|
52
|
+
Present the proposal as a diff in plain words — what turns on, what turns off,
|
|
53
|
+
and why — before the user approves. Both commands are read-only until `--yes`.
|
|
54
|
+
|
|
55
|
+
## Installing something new
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
loadout setup --mode custom --package <id> # preview
|
|
59
|
+
loadout setup --mode custom --package <id> --yes # apply
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Never run the `--yes` form on your own initiative. Show the preview, summarize
|
|
63
|
+
what it adds and to which agents, and let the user approve. Loadout snapshots
|
|
64
|
+
before writing, and `loadout rollback` undoes the last apply — say so, because
|
|
65
|
+
it lowers the cost of trying something.
|
|
66
|
+
|
|
67
|
+
If the preview reports safety findings (scripts, network domains, instruction
|
|
68
|
+
overrides), read them out specifically. Do not summarize a finding as "minor."
|
|
69
|
+
|
|
70
|
+
## Checking whether the setup is current
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
loadout status # health grade and what is managed
|
|
74
|
+
loadout health # safer updates and local drift
|
|
75
|
+
loadout alerts # archived, stale, or changed upstream sources
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Run these when the user asks whether their setup is up to date, or when an agent
|
|
79
|
+
behaves oddly and stale or drifted skills could explain it.
|
|
80
|
+
|
|
81
|
+
`alerts` reporting an archived upstream is worth raising unprompted — an
|
|
82
|
+
archived source will not receive fixes.
|
|
83
|
+
|
|
84
|
+
## Inspecting before trusting
|
|
85
|
+
|
|
86
|
+
For a source not yet in the catalog:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
loadout inspect --repository <owner/name>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
This clones at an immutable commit and classifies what it finds. Use it when the
|
|
93
|
+
user asks about a repository you cannot otherwise vouch for. Report what it
|
|
94
|
+
actually contains rather than what its README claims.
|
|
95
|
+
|
|
96
|
+
## Judgment this skill does not replace
|
|
97
|
+
|
|
98
|
+
- A large active set is not automatically wrong; a monorepo touching several
|
|
99
|
+
stacks legitimately needs more than a single-purpose service.
|
|
100
|
+
- Detected signals describe dependencies, not intent. A repository with a test
|
|
101
|
+
runner installed but no tests still needs testing skills.
|
|
102
|
+
- The catalog is a review queue with provenance, not a quality ranking. High
|
|
103
|
+
star counts are evidence of popularity only.
|
|
104
|
+
- Never enable an MCP server that needs credentials without walking the user
|
|
105
|
+
through what it will access first.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: loadout-router
|
|
3
|
+
description: Decide which model to use for a coding task and hand work to another agent. Use when the user asks which model to use, mentions running low on usage or cost, asks whether to switch to Opus or Sonnet or a GPT tier, or wants to delegate a task to Codex or Claude Code.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loadout Router
|
|
7
|
+
|
|
8
|
+
Pick the model that fits the work, using the user's own routing policy rather
|
|
9
|
+
than your guess or mine.
|
|
10
|
+
|
|
11
|
+
## The policy is the user's, not yours
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
loadout route
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
That prints three buckets and the model the user has chosen for each:
|
|
18
|
+
|
|
19
|
+
- **hard** — architecture, security, migrations, tricky debugging, risky review
|
|
20
|
+
- **normal** — most implementation, ordinary debugging, refactors
|
|
21
|
+
- **cheap** — tests, docs, boilerplate, renames, mechanical edits
|
|
22
|
+
|
|
23
|
+
Read the policy before advising. If the user disagrees with a recommendation,
|
|
24
|
+
the fix is to change the policy, not to argue:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
loadout route --set cheap=claude-sonnet-5
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Your job is the bucket, not the model
|
|
31
|
+
|
|
32
|
+
The CLI can guess a bucket from wording, and it says so when it does. **You
|
|
33
|
+
should do better**, because you have the conversation, the code, and the stakes.
|
|
34
|
+
Decide the bucket yourself and state it:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
loadout route --bucket hard
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Judge by consequence, not vocabulary:
|
|
41
|
+
|
|
42
|
+
- Anything touching auth, payments, migrations, or data deletion is **hard**,
|
|
43
|
+
however small the diff.
|
|
44
|
+
- Unfamiliar code is harder than familiar code doing the same thing.
|
|
45
|
+
- A one-line change in a hot path is not cheap.
|
|
46
|
+
- Genuinely mechanical work — a rename, a docstring, a test for code you just
|
|
47
|
+
wrote — is **cheap**, and paying frontier prices for it is waste.
|
|
48
|
+
|
|
49
|
+
Report the model and why that bucket. One or two sentences.
|
|
50
|
+
|
|
51
|
+
## When cost matters
|
|
52
|
+
|
|
53
|
+
If the user mentions running low, being rate limited, or wanting to spend less,
|
|
54
|
+
say what a cheaper bucket would cost them in quality rather than presenting it
|
|
55
|
+
as free. `loadout route` shows real per-million prices for the comparison.
|
|
56
|
+
|
|
57
|
+
Neither Claude Code nor Codex exposes remaining quota programmatically, so never
|
|
58
|
+
claim to know how much the user has left.
|
|
59
|
+
|
|
60
|
+
## Handing work to the other agent
|
|
61
|
+
|
|
62
|
+
One command sends a task; it sets up the shared log on first use:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
loadout handoff codex "write vitest coverage for src/auth.ts" --context "zod schemas already exist"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Put everything the receiver needs into `--context` — file paths, decisions you
|
|
69
|
+
already made, what you deliberately left out. It has none of this conversation.
|
|
70
|
+
|
|
71
|
+
Sending writes to a shared file in the user's repository, so confirm first
|
|
72
|
+
unless they asked for the handoff themselves.
|
|
73
|
+
|
|
74
|
+
## Reading your own inbox
|
|
75
|
+
|
|
76
|
+
At session start, and after finishing a task:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
loadout handoff claude-code
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Work anything listed in order, then run the `loadout handoff --done <id>`
|
|
83
|
+
command it prints. If nothing is pending, say nothing and carry on.
|
|
84
|
+
|
|
85
|
+
`loadout handoff` with no arguments shows every pending task, both directions.
|