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.
Files changed (133) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +129 -26
  3. package/catalog/discovered.json +28469 -24524
  4. package/dist/src/cli.js +7 -2
  5. package/dist/src/commands/agents.js +6 -23
  6. package/dist/src/commands/catalog.js +186 -102
  7. package/dist/src/commands/health.js +6 -6
  8. package/dist/src/commands/inventory.js +19 -120
  9. package/dist/src/commands/lifecycle.js +13 -51
  10. package/dist/src/commands/mcp.js +10 -73
  11. package/dist/src/commands/setup.js +5 -5
  12. package/dist/src/commands/sharing.js +11 -108
  13. package/dist/src/commands/support.js +20 -9
  14. package/dist/src/core/{adapters.js → agents/adapters.js} +2 -2
  15. package/dist/src/core/{agent-inspection.js → agents/agent-inspection.js} +48 -6
  16. package/dist/src/core/{codex-mcp.js → agents/codex-mcp.js} +1 -1
  17. package/dist/src/core/{health-score-evidence.js → agents/health-score-evidence.js} +8 -8
  18. package/dist/src/core/{runtime-tools.js → agents/runtime-tools.js} +2 -2
  19. package/dist/src/core/{audit.js → catalog/audit.js} +4 -4
  20. package/dist/src/core/{catalog.js → catalog/catalog.js} +5 -5
  21. package/dist/src/core/{components.js → catalog/components.js} +2 -2
  22. package/dist/src/core/{conformance.js → catalog/conformance.js} +2 -2
  23. package/dist/src/core/{profiles.js → catalog/profiles.js} +2 -2
  24. package/dist/src/core/{provenance.js → catalog/provenance.js} +3 -3
  25. package/dist/src/core/{registry.js → catalog/registry.js} +59 -11
  26. package/dist/src/core/{safety.js → catalog/safety.js} +36 -7
  27. package/dist/src/core/{skill-compare.js → catalog/skill-compare.js} +1 -1
  28. package/dist/src/core/{skill-inventory.js → catalog/skill-inventory.js} +3 -3
  29. package/dist/src/core/{skills.js → catalog/skills.js} +1 -1
  30. package/dist/src/core/{candidate-intelligence.js → discovery/candidate-intelligence.js} +6 -6
  31. package/dist/src/core/{discovery-connector.js → discovery/discovery-connector.js} +2 -2
  32. package/dist/src/core/{evaluate.js → discovery/evaluate.js} +2 -2
  33. package/dist/src/core/{mcp-registry-discovery.js → discovery/mcp-registry-discovery.js} +1 -1
  34. package/dist/src/core/{observations.js → discovery/observations.js} +3 -3
  35. package/dist/src/core/{review-queue.js → discovery/review-queue.js} +2 -2
  36. package/dist/src/core/{skills-sh-discovery.js → discovery/skills-sh-discovery.js} +1 -1
  37. package/dist/src/core/{adopt.js → install/adopt.js} +3 -3
  38. package/dist/src/core/{catalog-install.js → install/catalog-install.js} +11 -11
  39. package/dist/src/core/{file-lock.js → install/file-lock.js} +1 -1
  40. package/dist/src/core/{install.js → install/install.js} +5 -5
  41. package/dist/src/core/{package.js → install/package.js} +3 -3
  42. package/dist/src/core/{reconcile.js → install/reconcile.js} +5 -5
  43. package/dist/src/core/{remove.js → install/remove.js} +4 -4
  44. package/dist/src/core/{snapshot.js → install/snapshot.js} +1 -1
  45. package/dist/src/core/{source.js → install/source.js} +22 -8
  46. package/dist/src/core/{sync.js → install/sync.js} +9 -9
  47. package/dist/src/core/{transaction.js → install/transaction.js} +1 -1
  48. package/dist/src/core/{uninstall.js → install/uninstall.js} +4 -4
  49. package/dist/src/core/{update.js → install/update.js} +4 -4
  50. package/dist/src/core/{cli-guide.js → reporting/cli-guide.js} +29 -45
  51. package/dist/src/core/reporting/completion.js +90 -0
  52. package/dist/src/core/{doctor.js → reporting/doctor.js} +5 -10
  53. package/dist/src/core/{freshness-alerts.js → reporting/freshness-alerts.js} +5 -5
  54. package/dist/src/core/{health.js → reporting/health.js} +6 -6
  55. package/dist/src/core/{loadout-card.js → reporting/loadout-card.js} +1 -1
  56. package/dist/src/core/{readme-claims.js → reporting/readme-claims.js} +1 -1
  57. package/dist/src/core/{readme-facts.js → reporting/readme-facts.js} +2 -2
  58. package/dist/src/core/{share-report.js → reporting/share-report.js} +3 -3
  59. package/dist/src/core/{upgrade.js → reporting/upgrade.js} +7 -7
  60. package/dist/src/core/routing/first-party-skills.js +118 -0
  61. package/dist/src/core/routing/handoff.js +314 -0
  62. package/dist/src/core/{model-config.js → routing/model-config.js} +4 -4
  63. package/dist/src/core/routing/policy.js +147 -0
  64. package/dist/src/core/{route.js → routing/route.js} +202 -39
  65. package/dist/src/core/{api.js → runtime/api.js} +4 -4
  66. package/dist/src/core/{canary.js → runtime/canary.js} +1 -1
  67. package/dist/src/core/{github.js → runtime/github.js} +1 -1
  68. package/dist/src/core/{mcp-recipes.js → runtime/mcp-recipes.js} +1 -1
  69. package/dist/src/core/{mcp.js → runtime/mcp.js} +2 -2
  70. package/dist/src/core/{scheduler.js → runtime/scheduler.js} +4 -4
  71. package/dist/src/core/{active-policy.js → workspace/active-policy.js} +2 -2
  72. package/dist/src/core/{active-set.js → workspace/active-set.js} +2 -2
  73. package/dist/src/core/{improve.js → workspace/improve.js} +3 -3
  74. package/dist/src/core/{manifest.js → workspace/manifest.js} +2 -2
  75. package/dist/src/core/{outcomes.js → workspace/outcomes.js} +3 -3
  76. package/dist/src/core/{portable.js → workspace/portable.js} +3 -3
  77. package/dist/src/core/{profile-state.js → workspace/profile-state.js} +1 -1
  78. package/dist/src/core/{recommend.js → workspace/recommend.js} +1 -1
  79. package/dist/src/core/{state.js → workspace/state.js} +3 -3
  80. package/docs/CANDIDATE_INTELLIGENCE.md +9 -2
  81. package/docs/CATALOG.md +1 -1
  82. package/docs/CREDENTIAL_AND_UPDATE_POLICY.md +1 -1
  83. package/docs/DISCOVERED.md +250 -248
  84. package/docs/FEATURE_TEST_MATRIX.md +7 -260
  85. package/docs/GITHUB_AUTHORIZATION.md +5 -0
  86. package/docs/PROVENANCE_AND_COMPARISON.md +1 -1
  87. package/docs/RELEASE_REVIEW.md +0 -1
  88. package/docs/evidence/readme-claims.json +22 -19
  89. package/package.json +7 -4
  90. package/skills/loadout-curator/SKILL.md +105 -0
  91. package/skills/loadout-router/SKILL.md +85 -0
  92. package/MASTER_PLAN.md +0 -2207
  93. package/dist/src/core/completion.js +0 -143
  94. package/dist/src/core/handoff.js +0 -161
  95. package/docs/ACTIVE_SET.md +0 -53
  96. package/docs/COMPATIBILITY_POLICY.md +0 -22
  97. package/docs/CONVERSION_AND_SANDBOX.md +0 -27
  98. package/docs/EVALUATION_PROTOCOL_V1.md +0 -300
  99. package/docs/HEAD_TO_HEAD_EVALUATION.md +0 -79
  100. package/docs/PROVIDER_CONFIGURATION.md +0 -45
  101. package/docs/README_RESEARCH.md +0 -36
  102. package/docs/REPOSITORY_STABILIZATION.md +0 -190
  103. package/docs/SAFE_UPDATE_DEMO.md +0 -25
  104. package/docs/SCHEMA_DECISIONS.md +0 -25
  105. package/docs/SUBMISSION_COPY.md +0 -90
  106. package/docs/TEAM_POLICY.md +0 -18
  107. package/docs/superpowers/plans/2026-07-19-relatable-readme-hero.md +0 -283
  108. package/docs/superpowers/plans/2026-07-20-loadout-readme-explainer.md +0 -116
  109. package/docs/superpowers/plans/2026-07-20-project-activation-safety.md +0 -469
  110. package/docs/superpowers/specs/2026-07-19-relatable-readme-hero-design.md +0 -80
  111. package/docs/superpowers/specs/2026-07-20-loadout-readme-explainer-design.md +0 -55
  112. package/docs/superpowers/specs/2026-07-20-project-activation-safety-design.md +0 -228
  113. /package/dist/src/core/{agent-health-score.js → agents/agent-health-score.js} +0 -0
  114. /package/dist/src/core/{agent-versions.js → agents/agent-versions.js} +0 -0
  115. /package/dist/src/core/{conversion.js → agents/conversion.js} +0 -0
  116. /package/dist/src/core/{paths.js → agents/paths.js} +0 -0
  117. /package/dist/src/core/{runtime-tool-recipe.js → agents/runtime-tool-recipe.js} +0 -0
  118. /package/dist/src/core/{catalog-coverage.js → catalog/catalog-coverage.js} +0 -0
  119. /package/dist/src/core/{skill-security.js → catalog/skill-security.js} +0 -0
  120. /package/dist/src/core/{community.js → discovery/community.js} +0 -0
  121. /package/dist/src/core/{github-discovery.js → discovery/github-discovery.js} +0 -0
  122. /package/dist/src/core/{private-discovery.js → discovery/private-discovery.js} +0 -0
  123. /package/dist/src/core/{ranking.js → discovery/ranking.js} +0 -0
  124. /package/dist/src/core/{atomic-file.js → install/atomic-file.js} +0 -0
  125. /package/dist/src/core/{diff.js → install/diff.js} +0 -0
  126. /package/dist/src/core/{update-watch.js → install/update-watch.js} +0 -0
  127. /package/dist/src/core/{loadout-badge.js → reporting/loadout-badge.js} +0 -0
  128. /package/dist/src/core/{terminal.js → reporting/terminal.js} +0 -0
  129. /package/dist/src/core/{access.js → routing/access.js} +0 -0
  130. /package/dist/src/core/{credentials.js → routing/credentials.js} +0 -0
  131. /package/dist/src/core/{sandbox.js → runtime/sandbox.js} +0 -0
  132. /package/dist/src/core/{active-limit.js → workspace/active-limit.js} +0 -0
  133. /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.