loadout-ai 0.7.0 → 0.9.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 +148 -1
- package/README.md +160 -315
- package/SECURITY.md +21 -1
- package/catalog/discovered.json +31269 -26003
- package/catalog/packages.json +4 -4
- package/dist/src/cli.js +13 -0
- package/dist/src/commands/agents.js +3 -1
- package/dist/src/commands/catalog-candidate.js +150 -0
- package/dist/src/commands/catalog-workflows.js +147 -0
- package/dist/src/commands/catalog.js +9 -367
- package/dist/src/commands/coordinate.js +586 -0
- package/dist/src/commands/coordination-discussions.js +194 -0
- package/dist/src/commands/coordination-sessions.js +197 -0
- package/dist/src/commands/inventory.js +4 -2
- package/dist/src/core/agents/agent-inspection.js +26 -4
- package/dist/src/core/{routing → agents}/model-config.js +7 -2
- package/dist/src/core/catalog/catalog.js +1 -0
- package/dist/src/core/catalog/registry.js +44 -10
- package/dist/src/core/catalog/safety.js +36 -7
- package/dist/src/core/coordination/adapters/claude-code.js +154 -0
- package/dist/src/core/coordination/adapters/codex.js +137 -0
- package/dist/src/core/coordination/adapters/types.js +64 -0
- package/dist/src/core/coordination/auth.js +59 -0
- package/dist/src/core/coordination/bridge-lease.js +79 -0
- package/dist/src/core/coordination/conflict-preview.js +167 -0
- package/dist/src/core/coordination/contract-diff.js +106 -0
- package/dist/src/core/coordination/coordinator.js +552 -0
- package/dist/src/core/coordination/crash-recovery.js +169 -0
- package/dist/src/core/coordination/daemon.js +667 -0
- package/dist/src/core/coordination/discussion.js +340 -0
- package/dist/src/core/coordination/events.js +161 -0
- package/dist/src/core/coordination/http-api.js +118 -0
- package/dist/src/core/coordination/interrupt-policy.js +89 -0
- package/dist/src/core/coordination/lock.js +110 -0
- package/dist/src/core/coordination/mcp-server.js +424 -0
- package/dist/src/core/coordination/redaction.js +85 -0
- package/dist/src/core/coordination/replay.js +188 -0
- package/dist/src/core/coordination/retention.js +128 -0
- package/dist/src/core/coordination/runtime.js +21 -0
- package/dist/src/core/coordination/session-manager.js +366 -0
- package/dist/src/core/coordination/watcher.js +128 -0
- package/dist/src/core/{routing → delegation}/first-party-skills.js +25 -13
- package/dist/src/core/{routing → delegation}/handoff.js +130 -63
- package/dist/src/core/discovery/candidate-intelligence-evidence.js +108 -0
- package/dist/src/core/discovery/candidate-intelligence-types.js +1 -0
- package/dist/src/core/discovery/candidate-intelligence-validation.js +108 -0
- package/dist/src/core/discovery/candidate-intelligence.js +3 -214
- package/dist/src/core/discovery/community.js +12 -4
- package/dist/src/core/discovery/github-discovery.js +6 -2
- package/dist/src/core/discovery/private-discovery.js +6 -2
- package/dist/src/core/install/reconcile.js +1 -1
- package/dist/src/core/install/source.js +21 -7
- package/dist/src/core/install/uninstall.js +39 -3
- package/dist/src/core/reporting/cli-guide.js +10 -6
- package/dist/src/core/reporting/completion.js +61 -109
- package/dist/src/core/reporting/doctor.js +4 -6
- package/dist/src/core/runtime/bounded-json.js +65 -0
- package/dist/src/core/runtime/github.js +30 -16
- package/dist/src/core/runtime/mcp-recipes.js +1 -1
- package/dist/src/core/workspace/active-policy.js +1 -1
- package/docs/CANDIDATE_INTELLIGENCE.md +9 -2
- package/docs/CATALOG.md +1 -1
- package/docs/CREDENTIAL_AND_UPDATE_POLICY.md +1 -1
- package/docs/DEMO_SCRIPT.md +19 -23
- package/docs/DISCOVERED.md +251 -250
- package/docs/FEATURE_TEST_MATRIX.md +10 -263
- package/docs/GITHUB_AUTHORIZATION.md +5 -0
- package/docs/LIVE_COLLABORATION.md +234 -0
- package/docs/PROVENANCE_AND_COMPARISON.md +1 -1
- package/docs/REFERENCE.md +163 -0
- package/docs/RELEASE_REVIEW.md +1 -2
- package/docs/TESTING.md +17 -1
- package/docs/USER_TEST_GUIDE.md +138 -3
- package/docs/assets/loadout-discover-activate.webp +0 -0
- package/docs/assets/loadout-handoff-coordinate.webp +0 -0
- package/docs/assets/loadout-social-preview.png +0 -0
- package/docs/decisions/001-coordination-jsonl-locking.md +35 -0
- package/docs/decisions/002-local-daemon-authentication.md +32 -0
- package/docs/decisions/003-bounded-agent-discussions.md +91 -0
- package/docs/specs/BOUNDED_AGENT_DISCUSSIONS.md +169 -0
- package/docs/superpowers/plans/2026-09-03-coordination-hardening.md +231 -0
- package/docs/superpowers/plans/2026-09-03-release-readiness.md +232 -0
- package/docs/superpowers/plans/2026-09-04-bounded-agent-discussions.md +121 -0
- package/package.json +18 -7
- package/skills/loadout-handoff/SKILL.md +238 -0
- package/MASTER_PLAN.md +0 -2207
- package/dist/src/core/routing/route.js +0 -539
- 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/assets/loadout-workflow.png +0 -0
- 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/skills/loadout-router/SKILL.md +0 -120
- /package/dist/src/core/{routing → agents}/credentials.js +0 -0
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
# Repository stabilization record
|
|
2
|
-
|
|
3
|
-
Status date: 2026-07-19. This document records evidence gathered while consolidating
|
|
4
|
-
the repository. `MASTER_PLAN.md` is the only active plan; this is an audit record, not
|
|
5
|
-
a second backlog.
|
|
6
|
-
|
|
7
|
-
## Starting synchronization inventory
|
|
8
|
-
|
|
9
|
-
The investigation fetched all visible branches and tags before making cleanup
|
|
10
|
-
decisions. The starting GitHub default was `main` at
|
|
11
|
-
`189cb7a0e918860fc37bb92639126b93b387abec` (`v0.3.2`).
|
|
12
|
-
|
|
13
|
-
| Local branch/worktree | Starting head | Tracking state | Starting disposition |
|
|
14
|
-
| ------------------------------------------------- | ------------- | ----------------------------------------------------------- | ------------------------------------------- |
|
|
15
|
-
| `codex/readme-truth`, `/tmp/loadout-readme-truth` | `ee8d548` | 29 ahead of `origin/main`, clean | Preserve and integrate |
|
|
16
|
-
| `dev/nitish`, user checkout | `69b8fe7` | one ahead of `origin/dev/nitish`; untracked `.superpowers/` | Preserve user state and safety requirements |
|
|
17
|
-
| local `main` | `d2a11d8` | 101 behind `origin/main` | Fast-forward after integration |
|
|
18
|
-
| local `develop`, `dev/amartya`, `dev/viraj` | `d2a11d8` | stale or merged | Remove after final-main verification |
|
|
19
|
-
|
|
20
|
-
No local commit was treated as remote merely because it existed in a worktree.
|
|
21
|
-
|
|
22
|
-
## Failure ledger
|
|
23
|
-
|
|
24
|
-
| Failure | Reproduction/evidence | Root cause/classification | Resolution/status |
|
|
25
|
-
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
26
|
-
| Risky setup preview omitted `--approve-risk` | Prepared risky catalog plan printed an incomplete rerun command | Product guidance defect | Fixed in `1f62a1b`; regression test derives guidance from the prepared plan |
|
|
27
|
-
| Unknown command ran default onboarding | Unknown positional top-level command reached the root action | CLI routing defect | Fixed in `1f62a1b`; unknown commands fail non-zero while bare invocation remains valid |
|
|
28
|
-
| Explicit rollback could erase later user changes | Persisted snapshots recorded only pre-mutation bytes | Product data-safety defect | Fixed in `1f62a1b`; committed post-state is checked before user-requested rollback |
|
|
29
|
-
| Dashboard and special-file rollback bypasses | Default dashboard restore omitted the guard; nested FIFOs/sockets/devices were skipped | Product data-safety defect | Fixed in `6fd1a2c`; dashboard and unsupported-entry regressions pass |
|
|
30
|
-
| `dev/nitish` adoption preview covered only `SKILL.md` while ownership covered the whole directory | Deletion review traced preview through apply and `recordInstall`; auxiliary drift, cloned-plan forgery, and review over-attribution were reproducible | Product ownership/integrity defect; valuable safety intent existed only on the stale branch | Fixed in the current architecture by `186daa0`, `09e0e0c`, `3f2cafe`, and `10d6109`; focused and full verification pass |
|
|
31
|
-
| Fresh-clone live Stable rollback refused on `state.json` | `npm run check:live -- --stable-install` installed four pinned packages, then refused the Stable snapshot because later state differed | Product transaction-boundary defect plus invalid non-LIFO evidence-flow ordering | `5f8e38e` records profile state inside the catalog transaction and rolls Stable back before unrelated fixture transactions; exact state and managed-root drift checks remain enabled |
|
|
32
|
-
| Windows snapshot-root test used a POSIX fixture | CI run `29502017220` executed at `41b53e0`; Windows reported “absolute normalized path” before the test's expected “filesystem root” message | Test portability defect, not a runtime rollback failure | `c5fe192` changed the fixture to the host filesystem root; rerun `29502324100` passed |
|
|
33
|
-
| Recent GitHub CI and discovery runs did not start | Earlier blocked runs plus CI runs [`29691581581`](https://github.com/VirajMishra1/loadout/actions/runs/29691581581) and [`29692535521`](https://github.com/VirajMishra1/loadout/actions/runs/29692535521) have no executed steps; both CI annotations say the job was not started because recent account payments failed or the spending limit must be increased | GitHub account billing/spending-limit condition | External failure; no product-test result was produced |
|
|
34
|
-
| `loadout-ai@0.3.2` unavailable | npm registry version list ends at `0.3.1`; bounded live evidence records the same result | Package publication | Not verified; publish and test the exact tarball externally |
|
|
35
|
-
| `main` protection unavailable | GitHub branch-protection endpoint returns 404 | Repository setting/authorization | Absent or not observable; requires owner decision |
|
|
36
|
-
|
|
37
|
-
Internal failed-transaction recovery deliberately restores the pre-mutation snapshot
|
|
38
|
-
without the later-drift guard. The guard applies to user-requested CLI, dashboard, and
|
|
39
|
-
runtime-tool rollback. Legacy snapshots fail closed for those explicit paths.
|
|
40
|
-
|
|
41
|
-
## Recent Viraj commits and GitHub Actions
|
|
42
|
-
|
|
43
|
-
The recent Viraj changes were inspected as code and exercised locally; commit messages
|
|
44
|
-
were not used as proof.
|
|
45
|
-
|
|
46
|
-
| Commit | Implemented area | Main/Actions evidence |
|
|
47
|
-
| --------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
48
|
-
| `817c38f` | Public-beta CLI, package, credential, catalog, and release foundation | In `main`; CI run `29486160804` passed |
|
|
49
|
-
| `9798f1c` | Continuous discovery, generated catalog evidence, and snapshot hardening | In `main`; CI run `29491118338` passed |
|
|
50
|
-
| `6994d4e` | Candidate intelligence, signed catalog release, locking, and transaction hardening | In `main`; CI run `29497632211` passed |
|
|
51
|
-
| `41b53e0` | Stable profile, daily autopilot, and release workflow | In `main`; CI run `29502017220` failed on the Windows-only test fixture described above |
|
|
52
|
-
| `c5fe192` | Host-portable snapshot root guard test | In `main`; CI rerun `29502324100` passed |
|
|
53
|
-
| `4e93f5d` | Cross-platform release-matrix documentation | In `main`; CI run `29502646004` passed |
|
|
54
|
-
| `05e52a4` | Expanded Stable profile and reviewed Graphify recipe | In `main`; CI run `29505093720` passed |
|
|
55
|
-
| `f7f53fa` | Release-work documentation clarification | In `main`; CI run `29505532691` was cancelled after a newer push; no product failure was produced |
|
|
56
|
-
| `e35b8ff` | Upgrade, health-score, benchmark-campaign, and discovery foundation | In `main`; CI run `29508916710` passed |
|
|
57
|
-
| `3cb5505` | Trust, intelligence, benchmark, import, and skill-security systems | In `main`; CI run `29520771134` passed |
|
|
58
|
-
| `8e80ab4` | npm beta metadata and package-smoke adjustment | In `main`; CI run `29522705571` passed |
|
|
59
|
-
| `1fe9890` | Codex Desktop installation detection | In `main`; CI run `29524710934` and discovery run `29557150915` passed |
|
|
60
|
-
| `e4e469e` | Credential-aware setup, Maximum quarantine, and managed update scoping | In `main`; CI run `29583273859` passed |
|
|
61
|
-
| `ebb8133` | Unit-level Power quarantine and onboarding rewrite | In `main`; CI run `29585379546` passed |
|
|
62
|
-
| `88466ef` | npm `0.2.0` verification documentation | In `main`; CI run `29586111523` passed |
|
|
63
|
-
| `cf406e8` | Safe Stable/profile setup reruns | In `main`; CI run `29588415904` passed |
|
|
64
|
-
| `a016c0f` | Exact managed-profile reconciliation | In `main`; CI run `29590309101` passed |
|
|
65
|
-
| `33225ef` | Large rollback-snapshot validation | In `main`; CI run `29591059217` passed |
|
|
66
|
-
| `15f36e3` | Pinned Graphify generated fallback | In `main`; CI run `29591567247` passed |
|
|
67
|
-
| `16b8a7e` | Beginner and advanced CLI routing | In `main`; covered by current CLI tests |
|
|
68
|
-
| `31cb755` | Saved-profile updates and complete uninstall | In `main`; its CI job never started because of billing |
|
|
69
|
-
| `56ab3af` | Separation of model API keys from service credentials | In `main`; its CI job never started because of billing |
|
|
70
|
-
| `189cb7a` | Recursively empty skill-directory recovery | In `main`; its CI job never started because of billing |
|
|
71
|
-
| `e74ba16` | Consolidated README truth, lifecycle hardening, safety fixes, adoption integrity, and cleanup record | Integrated into remote `main`; CI run [`29692535521`](https://github.com/VirajMishra1/loadout/actions/runs/29692535521) failed before steps because of the billing/spending-limit condition |
|
|
72
|
-
| `5f8e38e` | Transactional installed-profile state and valid live Stable rollback ordering | Integrated into remote `main`; verified again from a fresh clone |
|
|
73
|
-
|
|
74
|
-
Earlier green runs prove their own commits only. They do not prove later commits that
|
|
75
|
-
GitHub never executed. Current local verification and future post-integration Actions
|
|
76
|
-
must remain separately reported.
|
|
77
|
-
|
|
78
|
-
## Branch cleanup observations during consolidation
|
|
79
|
-
|
|
80
|
-
At the 2026-07-19 consolidation checkpoint, there was one merged PR:
|
|
81
|
-
[#1](https://github.com/VirajMishra1/loadout/pull/1), `dev/nitish` into `develop`,
|
|
82
|
-
merged as `69594f2`; its recorded Linux, macOS, and Windows Node 20/22 jobs passed.
|
|
83
|
-
The authenticated query at that checkpoint returned no open PRs.
|
|
84
|
-
|
|
85
|
-
| Branch | Unique work relative to starting `origin/main` | Final result |
|
|
86
|
-
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
87
|
-
| `codex/readme-truth` | README evidence, adapter/product-flow coverage, release hardening, safety fixes, and consolidation | Integrated into `main`; local and remote branch deleted |
|
|
88
|
-
| `dev/nitish` | Its one real adoption-integrity gap is fully reimplemented and tested by `186daa0`, `09e0e0c`, `3f2cafe`, and `10d6109`; no valuable work remains | Local and remote branch deleted; unrelated `.superpowers/` preserved and ignored |
|
|
89
|
-
| `codex/cli-ux-polish` | None; tip `31cb755` is in main | Local and remote branch deleted |
|
|
90
|
-
| `codex/fix-large-snapshot-validation` | None; tip `33225ef` is in main | Local and remote branch deleted |
|
|
91
|
-
| `codex/fix-profile-reconciliation` | None; tip `a016c0f` is in main | Local and remote branch deleted |
|
|
92
|
-
| `codex/fix-stable-rerun` | None; tip `cf406e8` is in main | Local and remote branch deleted |
|
|
93
|
-
| `codex/harden-graphify-generated-install` | None; tip `15f36e3` is in main | Local and remote branch deleted |
|
|
94
|
-
| `dev/amartya` | Integrated through `6161c48` and later follow-ups | Local and remote branch deleted |
|
|
95
|
-
| `dev/viraj` | Old main ancestor | Local and remote branch deleted |
|
|
96
|
-
| `develop` | Old integration ancestor | Local and remote branch deleted |
|
|
97
|
-
|
|
98
|
-
Cleanup completed only after the integrated work reached remote `main` and the open-PR
|
|
99
|
-
list was empty. At that checkpoint, Git exposed only local `main`, `origin/main`, and
|
|
100
|
-
the retained release tags. The `/tmp/loadout-readme-truth` worktree had been removed.
|
|
101
|
-
The user's untracked `.superpowers/` directory remained present and ignored by
|
|
102
|
-
`.gitignore`; no user artifact was deleted.
|
|
103
|
-
|
|
104
|
-
## Planning and dead-file consolidation
|
|
105
|
-
|
|
106
|
-
`MASTER_PLAN.md` is authoritative because Viraj created it, maintained it across the
|
|
107
|
-
project history, linked it from README, and explicitly labeled its top section as the
|
|
108
|
-
active list. The removed files were unreferenced or self-described historical plans
|
|
109
|
-
whose implementation/status had moved elsewhere.
|
|
110
|
-
|
|
111
|
-
| Removed file | Evidence for deletion | Preserved outcome |
|
|
112
|
-
| ---------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------ |
|
|
113
|
-
| `NITISH_MASTER_PLAN.md` | Unreferenced; stale `dev/nitish`/`develop` policy | Durable safety work is in the master plan and implementation |
|
|
114
|
-
| `SIMPLE_PLAN.md` | Duplicate summary that named `MASTER_PLAN.md` canonical | README retains the user-facing summary |
|
|
115
|
-
| `docs/plans/2026-07-18-release-0.3.md` | Completed code plan with stale merge/publish boxes | External publication remains explicit in the master plan |
|
|
116
|
-
| `docs/superpowers/plans/2026-07-18-cli-ux-polish.md` | Implemented on main; stale commit/verify boxes | Founder testing remains explicit in the master plan |
|
|
117
|
-
| README truth implementation plan and design | Implemented, reviewed, and encoded by tests/evidence | Current status is in the master plan and release evidence |
|
|
118
|
-
|
|
119
|
-
Operational contracts such as `docs/TESTING.md`, `docs/FEATURE_TEST_MATRIX.md`,
|
|
120
|
-
`docs/RELEASE_REVIEW.md`, policy documents, and machine-readable evidence remain.
|
|
121
|
-
|
|
122
|
-
## README research and redesign evidence
|
|
123
|
-
|
|
124
|
-
The redesign research is recorded at immutable commits rather than mutable default
|
|
125
|
-
branches:
|
|
126
|
-
|
|
127
|
-
| Repository | Immutable README reference |
|
|
128
|
-
| ---------- | --------------------------------------------------------------------------------------------------------------- |
|
|
129
|
-
| Ponytail | [`16f2980`](https://github.com/DietrichGebert/ponytail/blob/16f29800fd2681bdf24f3eb4ccffe38be3baec6b/README.md) |
|
|
130
|
-
| uv | [`1535a67`](https://github.com/astral-sh/uv/blob/1535a6767e5ebd77eac2ace0f6cf1a3edc5f681c/README.md) |
|
|
131
|
-
| bat | [`7895139`](https://github.com/sharkdp/bat/blob/78951393e29bfd2f2a45f4326b9d2bb5e737dd2a/README.md) |
|
|
132
|
-
| fzf | [`b163463`](https://github.com/junegunn/fzf/blob/b163463079e6254b8582b05acefcf187ec160d9b/README.md) |
|
|
133
|
-
| ripgrep | [`227381d`](https://github.com/BurntSushi/ripgrep/blob/227381db0ee83dfa4341f1e27ff9617c0f5ad992/README.md) |
|
|
134
|
-
| mise | [`126e775`](https://github.com/jdx/mise/blob/126e7755cc22e36c3d206b650de613951146b5e3/README.md) |
|
|
135
|
-
| Gum | [`716d8b5`](https://github.com/charmbracelet/gum/blob/716d8b5d0221558f944b5a078dbbcca8572534fb/README.md) |
|
|
136
|
-
| Starship | [`8f28dfc`](https://github.com/starship/starship/blob/8f28dfcb1ca3242fba00a3cf98c10ee24605c3ed/README.md) |
|
|
137
|
-
|
|
138
|
-
`docs/README_RESEARCH.md` records the adopted principles and rejected patterns. The
|
|
139
|
-
front page should present the bounded product journey and link to evidence, not repeat
|
|
140
|
-
an exhaustive manual. In particular, the complete adapter table belongs in
|
|
141
|
-
`docs/FEATURE_TEST_MATRIX.md`, not on the front page. A compact front-page support
|
|
142
|
-
summary must continue to distinguish configured target paths and disposable
|
|
143
|
-
filesystem tests from unverified native-agent recognition and execution.
|
|
144
|
-
|
|
145
|
-
## Dated external observations before the README redesign
|
|
146
|
-
|
|
147
|
-
These observations were captured on 2026-07-19 before README-redesign work began.
|
|
148
|
-
They are a historical checkpoint, not claims about repository state when this document
|
|
149
|
-
is later read.
|
|
150
|
-
|
|
151
|
-
- GitHub repository: the private fork was `reddynitish/loadout`; its default branch
|
|
152
|
-
was `main` at `18757d4`. The earlier `VirajMishra1/loadout` observations in this
|
|
153
|
-
record describe the upstream repository at the time of consolidation.
|
|
154
|
-
- Branches and PRs: `codex/readme-redesign` was the local work branch; the
|
|
155
|
-
authenticated check found no open pull requests in the fork at that time.
|
|
156
|
-
- npm: the registry exposed versions through `0.3.1`; `0.3.2` was not verified as
|
|
157
|
-
published.
|
|
158
|
-
- GitHub Actions: fork CI run
|
|
159
|
-
[`29704170975`](https://github.com/reddynitish/loadout/actions/runs/29704170975) passed
|
|
160
|
-
for `main` at `18757d4`. The upstream billing-blocked runs above were historical
|
|
161
|
-
evidence only and did not describe the fork's CI capability.
|
|
162
|
-
- Branch protection: the authenticated protection endpoint returned HTTP 403 stating
|
|
163
|
-
that the private repository requires GitHub Pro or public visibility for the
|
|
164
|
-
feature. Protection was unavailable under the observed repository plan; this was
|
|
165
|
-
not a product-runtime result.
|
|
166
|
-
- Native application consumption of every configured adapter path was unverified;
|
|
167
|
-
disposable filesystem lifecycle evidence did not establish native-host support.
|
|
168
|
-
|
|
169
|
-
## Local verification after consolidation
|
|
170
|
-
|
|
171
|
-
On 2026-07-19, `npm run verify:full` completed successfully on macOS with Node 25.4.0:
|
|
172
|
-
|
|
173
|
-
- formatting, lint, type checking, build, catalog/discovery evidence, README claims,
|
|
174
|
-
and release claims passed;
|
|
175
|
-
- 112 Vitest files passed with 589 tests passing and one intentionally skipped;
|
|
176
|
-
- CLI and README product flows passed;
|
|
177
|
-
- packaged CLI smoke passed;
|
|
178
|
-
- the 1,000-skill scan benchmark passed at 240.5 ms p95 across seven CLI runs; and
|
|
179
|
-
- both desktop Chromium and mobile Chromium dashboard tests passed.
|
|
180
|
-
|
|
181
|
-
The fresh-clone live Stable gate also installed four pinned packages and completed
|
|
182
|
-
state and filesystem rollback assertions at `5f8e38e`. An initially considered
|
|
183
|
-
state-ignore fix was rejected during independent review because restoring an old
|
|
184
|
-
registry while leaving later package files could orphan installations. The final fix
|
|
185
|
-
keeps exact `state.json` and managed-root drift protection, includes installed-profile
|
|
186
|
-
state in transaction post-evidence, and uses strict LIFO ordering in the live flow.
|
|
187
|
-
|
|
188
|
-
An npm dry-run contained 137 entries, included this record and `MASTER_PLAN.md`, and
|
|
189
|
-
excluded every deleted plan. These local results do not substitute for GitHub Actions,
|
|
190
|
-
the unpublished `0.3.2` npm tarball, native-host acceptance, or branch protection.
|
package/docs/SAFE_UPDATE_DEMO.md
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Safe update demonstration
|
|
2
|
-
|
|
3
|
-
Loadout treats an update as a reviewable filesystem transaction; it never runs
|
|
4
|
-
repository scripts, hooks, package-manager lifecycle commands, or MCP servers.
|
|
5
|
-
|
|
6
|
-
The regression demo uses only the inert local repositories in
|
|
7
|
-
`tests/fixtures/update-safety`:
|
|
8
|
-
|
|
9
|
-
1. `benign-v1` to `benign-v2` is a documentation-only skill update. Loadout
|
|
10
|
-
copies it, validates the copied `SKILL.md`, and records the new commit.
|
|
11
|
-
2. `risky-v2` adds a hook-shaped shell file and an external domain. Static
|
|
12
|
-
inspection marks it as requiring explicit approval. Without that approval,
|
|
13
|
-
Loadout writes review metadata to its quarantine directory and leaves the
|
|
14
|
-
installed files and state untouched.
|
|
15
|
-
3. A simulated post-copy static verification failure restores the exact
|
|
16
|
-
transaction snapshot, including the previous skill bytes and install state.
|
|
17
|
-
|
|
18
|
-
Run the evidence locally:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
npm test -- --reporter=verbose tests/update-safety-demo.test.ts
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
The hook fixture contains a marker command solely to prove that inspection does
|
|
25
|
-
not execute it. The test asserts that the marker is absent.
|
package/docs/SCHEMA_DECISIONS.md
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Runtime schema decision
|
|
2
|
-
|
|
3
|
-
Loadout treats catalog JSON, shared manifests and lockfiles, persisted install
|
|
4
|
-
state, and inter-module install plans as untrusted data. `src/shared/schemas.ts`
|
|
5
|
-
is the single runtime-validation boundary for those structures. It uses Zod so
|
|
6
|
-
the parsed output has inferred TypeScript types as well as a path-aware runtime
|
|
7
|
-
error for the CLI and tests.
|
|
8
|
-
|
|
9
|
-
The schemas intentionally model identifiers, source provenance, agent IDs,
|
|
10
|
-
component kinds, hashes, and safety levels. They do not define fields for MCP
|
|
11
|
-
environment values, API keys, tokens, or other secret values. MCP environment
|
|
12
|
-
values remain in their agent-owned configuration and are only summarized using
|
|
13
|
-
counts/names elsewhere in the product.
|
|
14
|
-
|
|
15
|
-
Compatibility and failure handling:
|
|
16
|
-
|
|
17
|
-
- New manifest, lockfile, and state writers always emit schema version 1.
|
|
18
|
-
- Lockfiles produced before `generatedAt` existed remain readable as the
|
|
19
|
-
explicit legacy value `unknown`; newly written lockfiles always include the
|
|
20
|
-
timestamp.
|
|
21
|
-
- Unknown catalog and policy fields are retained where required for existing
|
|
22
|
-
portable-export secret scanning. They are never interpreted as executable
|
|
23
|
-
configuration by the schema layer.
|
|
24
|
-
- Invalid data fails before install, audit, or update processing with the exact
|
|
25
|
-
field path (for example, `installs.0.targetAgents.0`).
|
package/docs/SUBMISSION_COPY.md
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
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 632 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.9
|
|
68
|
-
- Demo: https://www.youtube.com/watch?v=opNqJKX7xMw
|
|
69
|
-
|
|
70
|
-
## Judge testing path
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
npm install --global loadout-ai@0.5.9
|
|
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.
|
package/docs/TEAM_POLICY.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Team policy and audit schema
|
|
2
|
-
|
|
3
|
-
A shared Loadout is a versioned declarative manifest plus a signed catalog reference;
|
|
4
|
-
it never contains credentials or private repository names by default. Team policy has
|
|
5
|
-
four independent controls:
|
|
6
|
-
|
|
7
|
-
- allowlist: package IDs/repository identities eligible for planning;
|
|
8
|
-
- denylist: identities, domains, component types, or risk findings that block;
|
|
9
|
-
- required approvals: roles required for risky changes; and
|
|
10
|
-
- audit events: timestamp, actor label, manifest/catalog hashes, decision, and reason.
|
|
11
|
-
|
|
12
|
-
The serverless/local MVP stores policy in a project-controlled JSON file and validates
|
|
13
|
-
it before a plan. There is no hidden admin override. A later hosted product can add
|
|
14
|
-
identity and retention without changing the portable policy semantics.
|
|
15
|
-
|
|
16
|
-
The current manifest implementation enforces package/repository allowlists and
|
|
17
|
-
denylists before synchronization, alongside the existing blocked-domain and
|
|
18
|
-
blocked-command rules. Violations are included in the dry-run plan and stop apply.
|
|
Binary file
|