loadout-ai 0.1.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/LICENSE +21 -0
- package/MASTER_PLAN.md +1711 -0
- package/README.md +453 -0
- package/SECURITY.md +18 -0
- package/SIMPLE_PLAN.md +44 -0
- package/catalog/discovered.json +10469 -0
- package/catalog/packages.json +1150 -0
- package/dashboard/app.js +607 -0
- package/dashboard/index.html +249 -0
- package/dashboard/styles.css +384 -0
- package/dist/src/cli.js +2735 -0
- package/dist/src/core/active-policy.js +233 -0
- package/dist/src/core/active-set.js +382 -0
- package/dist/src/core/adapters.js +254 -0
- package/dist/src/core/adopt.js +92 -0
- package/dist/src/core/agent-health-score.js +475 -0
- package/dist/src/core/agent-inspection.js +152 -0
- package/dist/src/core/agent-versions.js +131 -0
- package/dist/src/core/api.js +90 -0
- package/dist/src/core/atomic-file.js +22 -0
- package/dist/src/core/audit.js +174 -0
- package/dist/src/core/benchmark-campaign.js +496 -0
- package/dist/src/core/benchmark-evidence.js +458 -0
- package/dist/src/core/benchmark-fixtures.js +1157 -0
- package/dist/src/core/benchmark-runner.js +301 -0
- package/dist/src/core/benchmark-trust.js +795 -0
- package/dist/src/core/canary.js +77 -0
- package/dist/src/core/candidate-intelligence.js +661 -0
- package/dist/src/core/catalog-coverage.js +85 -0
- package/dist/src/core/catalog-install.js +186 -0
- package/dist/src/core/catalog-release.js +286 -0
- package/dist/src/core/catalog.js +327 -0
- package/dist/src/core/codex-mcp.js +122 -0
- package/dist/src/core/community.js +86 -0
- package/dist/src/core/compatibility-intelligence.js +465 -0
- package/dist/src/core/completion.js +160 -0
- package/dist/src/core/components.js +138 -0
- package/dist/src/core/conversion.js +56 -0
- package/dist/src/core/credentials.js +377 -0
- package/dist/src/core/demo.js +136 -0
- package/dist/src/core/diff.js +83 -0
- package/dist/src/core/discovery-connector.js +165 -0
- package/dist/src/core/doctor.js +95 -0
- package/dist/src/core/ecosystem-import.js +1072 -0
- package/dist/src/core/evaluate.js +72 -0
- package/dist/src/core/file-lock.js +140 -0
- package/dist/src/core/freshness-alerts.js +230 -0
- package/dist/src/core/github-discovery.js +97 -0
- package/dist/src/core/github.js +148 -0
- package/dist/src/core/head-to-head.js +437 -0
- package/dist/src/core/health-score-evidence.js +169 -0
- package/dist/src/core/health.js +129 -0
- package/dist/src/core/improve.js +223 -0
- package/dist/src/core/install.js +233 -0
- package/dist/src/core/intelligence-feed-build.js +59 -0
- package/dist/src/core/intelligence-feed.js +353 -0
- package/dist/src/core/loadout-badge.js +55 -0
- package/dist/src/core/loadout-card.js +87 -0
- package/dist/src/core/manifest.js +307 -0
- package/dist/src/core/mcp-recipes.js +419 -0
- package/dist/src/core/mcp-registry-discovery.js +455 -0
- package/dist/src/core/mcp.js +287 -0
- package/dist/src/core/model-config.js +102 -0
- package/dist/src/core/observations.js +87 -0
- package/dist/src/core/outcomes.js +164 -0
- package/dist/src/core/package.js +225 -0
- package/dist/src/core/paths.js +214 -0
- package/dist/src/core/portable.js +130 -0
- package/dist/src/core/private-discovery.js +45 -0
- package/dist/src/core/profiles.js +255 -0
- package/dist/src/core/provenance.js +278 -0
- package/dist/src/core/ranking.js +104 -0
- package/dist/src/core/recommend.js +181 -0
- package/dist/src/core/registry-api.js +97 -0
- package/dist/src/core/registry.js +316 -0
- package/dist/src/core/release-claims.js +175 -0
- package/dist/src/core/remove.js +122 -0
- package/dist/src/core/review-queue.js +200 -0
- package/dist/src/core/runtime-tool-recipe.js +315 -0
- package/dist/src/core/runtime-tools.js +453 -0
- package/dist/src/core/safety.js +234 -0
- package/dist/src/core/sandbox.js +78 -0
- package/dist/src/core/scheduler.js +264 -0
- package/dist/src/core/share-report.js +85 -0
- package/dist/src/core/signing.js +115 -0
- package/dist/src/core/skill-compare.js +239 -0
- package/dist/src/core/skill-inventory.js +193 -0
- package/dist/src/core/skill-security.js +340 -0
- package/dist/src/core/skills-sh-discovery.js +336 -0
- package/dist/src/core/skills.js +208 -0
- package/dist/src/core/snapshot.js +210 -0
- package/dist/src/core/source.js +305 -0
- package/dist/src/core/state.js +300 -0
- package/dist/src/core/sync.js +348 -0
- package/dist/src/core/terminal.js +53 -0
- package/dist/src/core/transaction.js +211 -0
- package/dist/src/core/update-watch.js +39 -0
- package/dist/src/core/update.js +216 -0
- package/dist/src/core/upgrade.js +207 -0
- package/dist/src/dashboard.js +418 -0
- package/dist/src/shared/schemas.js +336 -0
- package/dist/src/shared/types.js +1 -0
- package/docs/ACTIVE_SET.md +53 -0
- package/docs/ACTIVE_SET_POLICY.md +45 -0
- package/docs/CANDIDATE_INTELLIGENCE.md +139 -0
- package/docs/CATALOG.md +78 -0
- package/docs/CATALOG_POLICY.md +41 -0
- package/docs/COMMUNITY_DISCOVERY.md +14 -0
- package/docs/COMPATIBILITY_POLICY.md +22 -0
- package/docs/CONVERSION_AND_SANDBOX.md +27 -0
- package/docs/CREDENTIAL_AND_UPDATE_POLICY.md +31 -0
- package/docs/DISCOVERED.md +280 -0
- package/docs/EVALUATION_PROTOCOL.md +40 -0
- package/docs/EVALUATION_PROTOCOL_V1.md +300 -0
- package/docs/FEATURE_TEST_MATRIX.md +802 -0
- package/docs/GITHUB_AUTHORIZATION.md +38 -0
- package/docs/HEAD_TO_HEAD_EVALUATION.md +79 -0
- package/docs/PROVENANCE_AND_COMPARISON.md +72 -0
- package/docs/PROVIDER_CONFIGURATION.md +45 -0
- package/docs/RELEASE_REVIEW.md +117 -0
- package/docs/SAFE_UPDATE_DEMO.md +25 -0
- package/docs/SCHEMA_DECISIONS.md +25 -0
- package/docs/TEAM_POLICY.md +18 -0
- package/docs/TESTING.md +190 -0
- package/package.json +82 -0
package/MASTER_PLAN.md
ADDED
|
@@ -0,0 +1,1711 @@
|
|
|
1
|
+
# Loadout Master Plan
|
|
2
|
+
|
|
3
|
+
Status: Approved baseline for implementation
|
|
4
|
+
Hackathon: OpenAI Build Week 2026
|
|
5
|
+
Category: Developer Tools
|
|
6
|
+
Team size: 3
|
|
7
|
+
Target submission: July 21, 2026 at 5:00 PM Pacific / July 22 at 4:00 AM Dubai
|
|
8
|
+
|
|
9
|
+
## 1. Executive summary
|
|
10
|
+
|
|
11
|
+
Loadout is a universal extension manager for AI coding agents. It detects the agents
|
|
12
|
+
installed on a user's computer, discovers trusted skills and MCP tools from official
|
|
13
|
+
catalogs and high-signal GitHub repositories, installs them in the correct format,
|
|
14
|
+
keeps configurations synchronized, checks for updates, and restores a known-good
|
|
15
|
+
snapshot if an update fails.
|
|
16
|
+
|
|
17
|
+
The product is intentionally consumer-first and CLI-first. A user should not need to
|
|
18
|
+
understand `SKILL.md`, MCP configuration, plugin manifests, platform-specific
|
|
19
|
+
directories, or GitHub repository layouts. Interactive setup starts with one command:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx loadout-ai
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Choose a loadout: [1] Stable Boost (recommended), [2] Maximum Library, [3] Custom
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The executable installed by the package is still named `loadout`. The `loadout` npm
|
|
30
|
+
package name belongs to an unrelated project, so the publishable package is
|
|
31
|
+
`loadout-ai`.
|
|
32
|
+
|
|
33
|
+
The hackathon MVP proves the safe package lifecycle with a curated catalog. The
|
|
34
|
+
product-defining loop is broader: scan what the user already has -> discover and
|
|
35
|
+
review candidates -> compare evidence -> recommend a small active set -> install or
|
|
36
|
+
activate -> verify -> update -> block an unsafe or incompatible update -> rollback.
|
|
37
|
+
|
|
38
|
+
## 2. Product thesis
|
|
39
|
+
|
|
40
|
+
Developers increasingly use multiple AI coding agents, but the ecosystem of skills,
|
|
41
|
+
plugins, agents, rules, and MCP tools is fragmented across GitHub, official
|
|
42
|
+
marketplaces, social media, and independent registries. Existing package managers
|
|
43
|
+
focus on files and packages. Loadout focuses on the outcome a user wants: make every
|
|
44
|
+
installed agent more capable without requiring manual discovery or configuration.
|
|
45
|
+
|
|
46
|
+
Loadout wins through:
|
|
47
|
+
|
|
48
|
+
1. A one-command consumer experience.
|
|
49
|
+
2. Broad agent and operating-system support.
|
|
50
|
+
3. A maintained Stable and Trending catalog.
|
|
51
|
+
4. A large reviewed library plus a small conflict-aware active set instead of blindly
|
|
52
|
+
exposing every downloaded package to every agent.
|
|
53
|
+
5. Human-readable update and permission diffs.
|
|
54
|
+
6. Snapshots and rollback.
|
|
55
|
+
7. Optional project-aware recommendations without requiring GitHub access.
|
|
56
|
+
|
|
57
|
+
## 3. Product and delivery scope
|
|
58
|
+
|
|
59
|
+
### 3.1 Submission-critical vertical slice
|
|
60
|
+
|
|
61
|
+
- TypeScript CLI packaged for `npx loadout-ai` after an owner publishes it to npm.
|
|
62
|
+
- CLI-first interactive and non-interactive Stable/Maximum/Custom setup.
|
|
63
|
+
- CLI-only primary experience. The existing framework-free loopback dashboard is a
|
|
64
|
+
secondary diagnostic surface and is not required for onboarding or daily use.
|
|
65
|
+
- Windows 11, macOS, and Linux support.
|
|
66
|
+
- Agent detection for:
|
|
67
|
+
- Claude Code
|
|
68
|
+
- Codex
|
|
69
|
+
- Cursor
|
|
70
|
+
- Gemini CLI
|
|
71
|
+
- OpenCode
|
|
72
|
+
- Hermes
|
|
73
|
+
- Windsurf
|
|
74
|
+
- Cline
|
|
75
|
+
- GitHub Copilot
|
|
76
|
+
- Roo Code
|
|
77
|
+
- Kiro CLI
|
|
78
|
+
- Junie
|
|
79
|
+
- Skill installation for all twelve agents where their documented layout is known.
|
|
80
|
+
- MCP configuration for Claude Code, Codex, and Cursor.
|
|
81
|
+
- Curated catalog containing 50 pinned real repositories.
|
|
82
|
+
- Stable, Trending, Official, and Community tier support; the current bundled review
|
|
83
|
+
set contains Official and Stable records.
|
|
84
|
+
- Stable Boost, Maximum Boost, and Custom modes.
|
|
85
|
+
- Immutable package records pinned by Git commit SHA.
|
|
86
|
+
- Snapshot before the first mutation.
|
|
87
|
+
- Update detection and human-readable diff.
|
|
88
|
+
- Block at least one incompatible or risky update in the demo.
|
|
89
|
+
- One-command rollback.
|
|
90
|
+
- No GitHub login required for the core experience.
|
|
91
|
+
- Optional local-folder scan for project-aware recommendations.
|
|
92
|
+
- Clear display of `native`, `adapted`, and `unsupported` components.
|
|
93
|
+
|
|
94
|
+
### 3.2 Committed full-product scope
|
|
95
|
+
|
|
96
|
+
These are committed capabilities, not disposable ideas. The team attempts them after
|
|
97
|
+
the submission-critical vertical slice is integrated and passing. Any capability that
|
|
98
|
+
is incomplete at submission must remain behind an experimental flag rather than being
|
|
99
|
+
presented as production-ready.
|
|
100
|
+
|
|
101
|
+
- GitHub OAuth for private repositories and personalized discovery, using minimal
|
|
102
|
+
read-only scopes by default.
|
|
103
|
+
- Community Loadout publishing, sharing, importing, versioning, and reporting.
|
|
104
|
+
- Historical star, fork, contributor, release, and download velocity charts.
|
|
105
|
+
- Model/provider configuration and comparison, including OpenRouter.
|
|
106
|
+
- Automated category-specific evaluations with repeatable fixtures and confidence
|
|
107
|
+
information.
|
|
108
|
+
- Background catalog and update notifications.
|
|
109
|
+
- Signed catalog snapshots and signature verification in the client.
|
|
110
|
+
- Best-effort compilation of hooks, commands, agents, and subagents between platforms,
|
|
111
|
+
with explicit loss reports instead of false compatibility claims.
|
|
112
|
+
- Sandboxed execution for third-party installers that genuinely require execution,
|
|
113
|
+
with no host credentials and no automatic promotion from the sandbox.
|
|
114
|
+
- A user-controlled encrypted credential vault backed by the operating-system keychain;
|
|
115
|
+
the service must not store plaintext user secrets.
|
|
116
|
+
- Policy-gated autonomous updates for MCP servers, hooks, and executables after
|
|
117
|
+
sandbox tests, permission comparison, and rollback preparation.
|
|
118
|
+
- An adapter SDK and community adapter registry for broad agent support.
|
|
119
|
+
- Category-specific capability scoring and comparison; never one misleading universal
|
|
120
|
+
number claiming scientific certainty across unrelated tasks.
|
|
121
|
+
- Discovery connectors for major social and community sources where their APIs and
|
|
122
|
+
terms permit access.
|
|
123
|
+
- Team and enterprise policy administration, including allowlists, denylists, required
|
|
124
|
+
versions, audit history, and shared Loadouts.
|
|
125
|
+
|
|
126
|
+
### 3.3 Non-negotiable safety boundaries
|
|
127
|
+
|
|
128
|
+
The ambitious scope does not authorize unsafe shortcuts:
|
|
129
|
+
|
|
130
|
+
- Never execute untrusted installation scripts directly on the host during discovery.
|
|
131
|
+
- Never store plaintext secrets in the repository, catalog, logs, analytics, or hosted
|
|
132
|
+
database.
|
|
133
|
+
- Never claim perfect conversion when platform semantics differ; show a loss report.
|
|
134
|
+
- Never silently grant new filesystem, network, account, hook, or executable powers.
|
|
135
|
+
- Never market a category score as universal scientific truth.
|
|
136
|
+
- Never scrape a source in violation of its API rules, robots policy, or terms.
|
|
137
|
+
- Never claim support for an agent until its adapter passes the published conformance
|
|
138
|
+
suite.
|
|
139
|
+
|
|
140
|
+
## 4. Primary users
|
|
141
|
+
|
|
142
|
+
### 4.1 Multifunctional power user
|
|
143
|
+
|
|
144
|
+
Uses Claude, Codex, Cursor, or other agents for many kinds of work and wants the
|
|
145
|
+
largest useful capability set without manually visiting repositories.
|
|
146
|
+
|
|
147
|
+
Default path: audit the existing setup, retain a broad reviewed library, and activate
|
|
148
|
+
only the best evidence-backed global and project-specific subset. Maximum Library is
|
|
149
|
+
explicit stress/power-user mode, not the default active set.
|
|
150
|
+
|
|
151
|
+
### 4.2 New agent user
|
|
152
|
+
|
|
153
|
+
Has installed one or more agents but does not understand extension formats or MCP.
|
|
154
|
+
|
|
155
|
+
Default path: Stable Boost.
|
|
156
|
+
|
|
157
|
+
### 4.3 Project-focused developer
|
|
158
|
+
|
|
159
|
+
Wants recommendations for a particular local repository.
|
|
160
|
+
|
|
161
|
+
Default path: Stable or Maximum Boost plus optional local-folder analysis.
|
|
162
|
+
|
|
163
|
+
### 4.4 Team
|
|
164
|
+
|
|
165
|
+
Wants a reproducible configuration shared through source control.
|
|
166
|
+
|
|
167
|
+
Post-MVP path: commit `loadout.lock` and restore it on another machine.
|
|
168
|
+
|
|
169
|
+
## 5. User experience
|
|
170
|
+
|
|
171
|
+
### 5.1 First run
|
|
172
|
+
|
|
173
|
+
1. User runs `npx loadout-ai` after publication, or `npx .` from a clone.
|
|
174
|
+
2. Loadout detects supported installed agents and read-only scans their existing
|
|
175
|
+
skills, separating Loadout-managed content from unmanaged content without assuming
|
|
176
|
+
unmanaged means unsafe.
|
|
177
|
+
3. It recommends Stable, Maximum Library, Custom, or an evidence-backed optimization
|
|
178
|
+
of the existing setup. It filters out components that require explicit
|
|
179
|
+
credentials/configuration, then
|
|
180
|
+
concurrently fetches only reviewed skill repositories at their pinned commits.
|
|
181
|
+
4. It resolves overlapping skill targets deterministically, keeps the higher-ranked
|
|
182
|
+
reviewed source, and reports every deferred duplicate.
|
|
183
|
+
5. It shows repository counts, actual skill-directory counts, safety findings,
|
|
184
|
+
deferred MCP/executable packages, and detected targets before mutation.
|
|
185
|
+
6. The user confirms the loadout and separately approves script/domain/instruction
|
|
186
|
+
findings when present.
|
|
187
|
+
7. Loadout snapshots all targets and installs the entire loadout as one durable,
|
|
188
|
+
rollback-safe transaction; caught or interrupted failures restore prior state.
|
|
189
|
+
8. Daily use continues through `scan`, `status`, fast local `health`, `update`,
|
|
190
|
+
`discover`, `recommend`, `compare`, `optimize`, `remove`, and `rollback`. Commands
|
|
191
|
+
not yet implemented remain Phase 12 backlog items. The dashboard remains optional.
|
|
192
|
+
|
|
193
|
+
### 5.2 Normal use
|
|
194
|
+
|
|
195
|
+
- `loadout status`: agents, packages, conflicts, and update health.
|
|
196
|
+
- `loadout scan`: read-only inventory of existing skills, ownership, fingerprints,
|
|
197
|
+
duplicates, and capacity warnings.
|
|
198
|
+
- `loadout setup --mode stable`: preview the small reviewed daily-use foundation.
|
|
199
|
+
- `loadout setup --mode maximum`: preview the broad reviewed loadout.
|
|
200
|
+
- `loadout setup --mode maximum --yes --approve-risk`: install it non-interactively
|
|
201
|
+
after review.
|
|
202
|
+
- `loadout add <package>`: plan and add a package.
|
|
203
|
+
- `loadout remove <package>`: remove only files managed by Loadout.
|
|
204
|
+
- `loadout update`: fetch package update information and display a read-only plan by
|
|
205
|
+
default.
|
|
206
|
+
- `loadout rollback`: restore the previous snapshot.
|
|
207
|
+
- `loadout doctor`: validate configurations and dependencies.
|
|
208
|
+
- `loadout dashboard`: optional secondary diagnostic surface; never required by the
|
|
209
|
+
CLI-first journey.
|
|
210
|
+
|
|
211
|
+
### 5.3 No-account guarantee
|
|
212
|
+
|
|
213
|
+
The following must work without signup or GitHub OAuth:
|
|
214
|
+
|
|
215
|
+
- Agent detection
|
|
216
|
+
- Catalog browsing
|
|
217
|
+
- Stable and Maximum Boost
|
|
218
|
+
- Public package installation
|
|
219
|
+
- Updates
|
|
220
|
+
- Local snapshots
|
|
221
|
+
- Rollback
|
|
222
|
+
|
|
223
|
+
GitHub access is optional and used only for private repositories, GitHub operations,
|
|
224
|
+
or personalized project discovery.
|
|
225
|
+
|
|
226
|
+
## 6. Catalog policy
|
|
227
|
+
|
|
228
|
+
### 6.1 Admission tiers
|
|
229
|
+
|
|
230
|
+
#### Official
|
|
231
|
+
|
|
232
|
+
Accepted without a star minimum when publisher identity is verifiable and the source
|
|
233
|
+
is an official vendor or standards organization.
|
|
234
|
+
|
|
235
|
+
#### Stable
|
|
236
|
+
|
|
237
|
+
Default discovery has no star floor. Stable normally requires:
|
|
238
|
+
|
|
239
|
+
- At least 1,000 GitHub stars, or a documented exception based on verified publisher,
|
|
240
|
+
package adoption, maintainer reputation, or independent evaluation.
|
|
241
|
+
- Clear installable component.
|
|
242
|
+
- Non-archived repository.
|
|
243
|
+
- Recent meaningful maintenance.
|
|
244
|
+
- License metadata present or explicitly reviewed.
|
|
245
|
+
- Supported source can be pinned to an immutable commit.
|
|
246
|
+
- Basic security and compatibility checks pass.
|
|
247
|
+
|
|
248
|
+
Packages above 5,000 stars receive a `Popular` signal, not automatic trust or an
|
|
249
|
+
exclusive right to enter the catalog.
|
|
250
|
+
|
|
251
|
+
#### Trending
|
|
252
|
+
|
|
253
|
+
- Normally at least 100 stars, or an explicitly approved exception for an official or
|
|
254
|
+
independently verified release.
|
|
255
|
+
- Strong recent star velocity or adoption signal.
|
|
256
|
+
- Active maintenance.
|
|
257
|
+
- Basic safety and compatibility checks pass.
|
|
258
|
+
- Never enabled silently in Stable mode.
|
|
259
|
+
|
|
260
|
+
#### Community
|
|
261
|
+
|
|
262
|
+
- Any star count, including zero-star newly published packages.
|
|
263
|
+
- Searchable or manually installable.
|
|
264
|
+
- Requires explicit user selection.
|
|
265
|
+
|
|
266
|
+
### 6.2 Discovery sources
|
|
267
|
+
|
|
268
|
+
MVP:
|
|
269
|
+
|
|
270
|
+
- Curated seed list in the repository.
|
|
271
|
+
- GitHub Search API for known filenames and topics.
|
|
272
|
+
- OpenAI skills catalog.
|
|
273
|
+
- Anthropic official plugin marketplace.
|
|
274
|
+
- Official MCP Registry.
|
|
275
|
+
- skills.sh metadata where permitted.
|
|
276
|
+
|
|
277
|
+
Full-product ingestion:
|
|
278
|
+
|
|
279
|
+
- GitHub star snapshots and acceleration.
|
|
280
|
+
- GitHub release feeds.
|
|
281
|
+
- npm and PyPI download/release signals.
|
|
282
|
+
- Hacker News API.
|
|
283
|
+
- Reddit and other community sources where API terms permit.
|
|
284
|
+
|
|
285
|
+
### 6.3 Search signatures
|
|
286
|
+
|
|
287
|
+
- `SKILL.md`
|
|
288
|
+
- `.claude-plugin/plugin.json`
|
|
289
|
+
- `.codex-plugin/plugin.json`
|
|
290
|
+
- `.mcp.json`
|
|
291
|
+
- `mcp.json`
|
|
292
|
+
- `topic:agent-skills`
|
|
293
|
+
- `topic:claude-code`
|
|
294
|
+
- `topic:codex`
|
|
295
|
+
- `topic:mcp-server`
|
|
296
|
+
|
|
297
|
+
### 6.4 Ranking
|
|
298
|
+
|
|
299
|
+
Do not compare packages from unrelated categories. Rank within a capability category.
|
|
300
|
+
|
|
301
|
+
Initial score:
|
|
302
|
+
|
|
303
|
+
- 30% community adoption: logarithmic stars, forks, contributors.
|
|
304
|
+
- 20% momentum: recent growth and releases.
|
|
305
|
+
- 20% maintenance: meaningful recency, responsiveness, multiple maintainers.
|
|
306
|
+
- 15% compatibility: agents, operating systems, clean install result.
|
|
307
|
+
- 15% trust: official identity, license, pinned dependencies, absence of risky patterns.
|
|
308
|
+
|
|
309
|
+
The score is a recommendation aid, not a claim of objective superiority.
|
|
310
|
+
|
|
311
|
+
## 7. Default catalog categories
|
|
312
|
+
|
|
313
|
+
- Engineering workflow
|
|
314
|
+
- Documentation retrieval
|
|
315
|
+
- Codebase intelligence
|
|
316
|
+
- Browser automation and verification
|
|
317
|
+
- Frontend design
|
|
318
|
+
- Context and token optimization
|
|
319
|
+
- Memory
|
|
320
|
+
- Source-control integrations
|
|
321
|
+
- Security
|
|
322
|
+
- Research
|
|
323
|
+
- Data and documents
|
|
324
|
+
- Product and marketing
|
|
325
|
+
|
|
326
|
+
The initial catalog should include representative packages discussed during product
|
|
327
|
+
research, such as Superpowers, ECC, Karpathy-inspired guidance, Context7, Graphify,
|
|
328
|
+
Serena, Playwright MCP, Chrome DevTools MCP, UI UX Pro Max, Taste Skill, RTK, GitHub
|
|
329
|
+
MCP, Planning with Files, and official OpenAI and Anthropic catalogs. Exact inclusion
|
|
330
|
+
requires license and install-shape verification.
|
|
331
|
+
|
|
332
|
+
## 8. Conflict policy
|
|
333
|
+
|
|
334
|
+
Loadout may download or register many packages but should not activate overlapping
|
|
335
|
+
packages blindly.
|
|
336
|
+
|
|
337
|
+
Initial conflict families:
|
|
338
|
+
|
|
339
|
+
- Major workflow harnesses: Superpowers, ECC, GSD, Compound Engineering.
|
|
340
|
+
- Codebase intelligence: Graphify, Serena, Understand Anything, Codebase Memory.
|
|
341
|
+
- Browser control: Playwright MCP, Chrome DevTools MCP, Browser MCP.
|
|
342
|
+
- Frontend guidance: UI UX Pro Max, Taste Skill, Hallmark.
|
|
343
|
+
- Persistent memory: Claude Mem, Beads, Agent Memory, Engram.
|
|
344
|
+
- Output compression: RTK, Headroom, Context Mode, Caveman.
|
|
345
|
+
|
|
346
|
+
Rules:
|
|
347
|
+
|
|
348
|
+
1. Stable Boost selects at most one primary package in each conflicting family.
|
|
349
|
+
2. Maximum Boost may download all approved candidates but activates one default.
|
|
350
|
+
3. Custom mode may override a soft conflict after a warning.
|
|
351
|
+
4. Hard conflicts block confirmation until one candidate is removed.
|
|
352
|
+
5. Conflict explanations must use plain language.
|
|
353
|
+
|
|
354
|
+
## 9. Technical architecture
|
|
355
|
+
|
|
356
|
+
### 9.1 Implemented repository layout
|
|
357
|
+
|
|
358
|
+
```text
|
|
359
|
+
loadout/
|
|
360
|
+
├── src/
|
|
361
|
+
│ ├── cli.ts # Commands and packaged executable
|
|
362
|
+
│ ├── dashboard.ts # Loopback HTTP server and authenticated API
|
|
363
|
+
│ ├── core/ # Catalog, adapters, transactions, policy, registry
|
|
364
|
+
│ └── shared/ # Types and runtime schemas
|
|
365
|
+
├── dashboard/ # Dependency-free HTML, CSS, and JavaScript UI
|
|
366
|
+
├── catalog/
|
|
367
|
+
│ └── packages.json # Reviewed catalog with immutable source evidence
|
|
368
|
+
├── docs/ # Security, compatibility, and operating policies
|
|
369
|
+
├── tests/ # Unit, integration, fixtures, and Playwright E2E
|
|
370
|
+
├── README.md
|
|
371
|
+
├── MASTER_PLAN.md
|
|
372
|
+
└── package.json
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
The flat package is deliberate for the hackathon: it avoids workspace build and
|
|
376
|
+
publishing complexity while keeping modules separated by responsibility.
|
|
377
|
+
|
|
378
|
+
### 9.2 Implemented stack
|
|
379
|
+
|
|
380
|
+
- Node.js 20+
|
|
381
|
+
- TypeScript
|
|
382
|
+
- npm with a committed lockfile
|
|
383
|
+
- Commander for CLI
|
|
384
|
+
- Browser-native HTML, CSS, and JavaScript for the dashboard
|
|
385
|
+
- Zod for runtime schemas
|
|
386
|
+
- Vitest for unit/integration tests
|
|
387
|
+
- Playwright for dashboard end-to-end tests
|
|
388
|
+
- Conservative append-only Codex TOML support and unrelated-key-preserving JSON writes
|
|
389
|
+
- GitHub Actions on Windows, macOS, and Linux
|
|
390
|
+
|
|
391
|
+
### 9.3 Local state
|
|
392
|
+
|
|
393
|
+
```text
|
|
394
|
+
~/.loadout/
|
|
395
|
+
├── cache/<package>/<commit>/
|
|
396
|
+
├── snapshots/<timestamp>/
|
|
397
|
+
├── staging/<transaction-id>/
|
|
398
|
+
├── catalog.json
|
|
399
|
+
├── state.json
|
|
400
|
+
└── logs/
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
Never store secret values in state, logs, snapshots, or telemetry.
|
|
404
|
+
|
|
405
|
+
## 10. Core data models
|
|
406
|
+
|
|
407
|
+
### 10.1 Catalog package
|
|
408
|
+
|
|
409
|
+
```ts
|
|
410
|
+
type CatalogPackage = {
|
|
411
|
+
id: string;
|
|
412
|
+
displayName: string;
|
|
413
|
+
source: { type: "github"; repo: string; ref: string };
|
|
414
|
+
tier: "official" | "stable" | "trending" | "community";
|
|
415
|
+
category: string;
|
|
416
|
+
description: string;
|
|
417
|
+
license?: string;
|
|
418
|
+
stars?: number;
|
|
419
|
+
components: Component[];
|
|
420
|
+
platforms: Record<PlatformId, "native" | "adapted" | "unsupported">;
|
|
421
|
+
operatingSystems: Array<"windows" | "macos" | "linux">;
|
|
422
|
+
permissions: PermissionSummary;
|
|
423
|
+
conflicts: string[];
|
|
424
|
+
};
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### 10.2 Installed package
|
|
428
|
+
|
|
429
|
+
```ts
|
|
430
|
+
type InstalledPackage = {
|
|
431
|
+
id: string;
|
|
432
|
+
source: string;
|
|
433
|
+
commit: string;
|
|
434
|
+
files: Array<{ path: string; sha256: string }>;
|
|
435
|
+
installedAt: string;
|
|
436
|
+
platforms: PlatformId[];
|
|
437
|
+
snapshotId: string;
|
|
438
|
+
};
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### 10.3 Mutation plan
|
|
442
|
+
|
|
443
|
+
```ts
|
|
444
|
+
type MutationPlan = {
|
|
445
|
+
id: string;
|
|
446
|
+
creates: PlannedFile[];
|
|
447
|
+
updates: PlannedFile[];
|
|
448
|
+
deletes: PlannedFile[];
|
|
449
|
+
configChanges: ConfigChange[];
|
|
450
|
+
warnings: PlanWarning[];
|
|
451
|
+
requiresRestart: PlatformId[];
|
|
452
|
+
};
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
## 11. Adapter contract
|
|
456
|
+
|
|
457
|
+
Each adapter must implement:
|
|
458
|
+
|
|
459
|
+
```ts
|
|
460
|
+
interface AgentAdapter {
|
|
461
|
+
id: PlatformId;
|
|
462
|
+
detect(): Promise<DetectionResult>;
|
|
463
|
+
inspect(): Promise<InstalledComponent[]>;
|
|
464
|
+
planInstall(pkg: NormalizedPackage): Promise<AdapterPlan>;
|
|
465
|
+
planRemove(pkg: InstalledPackage): Promise<AdapterPlan>;
|
|
466
|
+
validate(plan: AdapterPlan): Promise<ValidationResult>;
|
|
467
|
+
smokeTest(): Promise<SmokeTestResult>;
|
|
468
|
+
}
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
Adapters must never directly write during `planInstall`. The core transaction engine
|
|
472
|
+
owns all mutations.
|
|
473
|
+
|
|
474
|
+
## 12. Installation transaction
|
|
475
|
+
|
|
476
|
+
1. Resolve package to an immutable commit.
|
|
477
|
+
2. Download without executing repository scripts.
|
|
478
|
+
3. Reject paths escaping the package root.
|
|
479
|
+
4. Parse and normalize supported components.
|
|
480
|
+
5. Ask adapters for mutation plans.
|
|
481
|
+
6. Merge plans and detect collisions.
|
|
482
|
+
7. Display preview.
|
|
483
|
+
8. Snapshot every target file that exists.
|
|
484
|
+
9. Write new files to staging.
|
|
485
|
+
10. Validate staged files and configuration.
|
|
486
|
+
11. Commit changes.
|
|
487
|
+
12. Run smoke tests.
|
|
488
|
+
13. On failure, automatically restore snapshot.
|
|
489
|
+
14. On success, update lockfile and state.
|
|
490
|
+
|
|
491
|
+
## 13. Update and rollback
|
|
492
|
+
|
|
493
|
+
### 13.1 Update
|
|
494
|
+
|
|
495
|
+
1. Fetch catalog update.
|
|
496
|
+
2. Resolve installed package source.
|
|
497
|
+
3. Compare pinned commit with candidate commit.
|
|
498
|
+
4. Download candidate to cache.
|
|
499
|
+
5. Produce file, instruction, command, domain, and permission diff.
|
|
500
|
+
6. Run static checks.
|
|
501
|
+
7. Plan install as a replacement transaction.
|
|
502
|
+
8. Require approval for scripts, hooks, MCP changes, executables, new domains, or new
|
|
503
|
+
environment-variable requirements.
|
|
504
|
+
9. Apply transaction.
|
|
505
|
+
10. Run smoke tests.
|
|
506
|
+
11. Restore automatically if verification fails.
|
|
507
|
+
|
|
508
|
+
### 13.2 Rollback acceptance criterion
|
|
509
|
+
|
|
510
|
+
After `loadout rollback`, every file touched by the last transaction must equal its
|
|
511
|
+
pre-transaction bytes. Files not managed by Loadout must remain untouched.
|
|
512
|
+
|
|
513
|
+
## 14. Security baseline
|
|
514
|
+
|
|
515
|
+
Reject or flag:
|
|
516
|
+
|
|
517
|
+
- Absolute paths or `../` traversal escaping package root.
|
|
518
|
+
- Symlinks escaping package root.
|
|
519
|
+
- Embedded secrets.
|
|
520
|
+
- Obfuscated executable payloads.
|
|
521
|
+
- `curl | bash` and equivalent remote bootstrap execution.
|
|
522
|
+
- Package-manager lifecycle scripts during discovery/install.
|
|
523
|
+
- Newly introduced hooks, binaries, domains, environment-variable reads, or broad
|
|
524
|
+
filesystem permissions.
|
|
525
|
+
- Unpinned remote dependencies where pinning is expected.
|
|
526
|
+
|
|
527
|
+
Rules:
|
|
528
|
+
|
|
529
|
+
- Never execute third-party code during catalog ingestion.
|
|
530
|
+
- Never log secret values.
|
|
531
|
+
- Never auto-approve new permissions.
|
|
532
|
+
- Pin installed packages to commits and store per-file hashes.
|
|
533
|
+
- Keep at least the previous known-good snapshot.
|
|
534
|
+
- Treat star count as popularity, not proof of safety.
|
|
535
|
+
|
|
536
|
+
## 15. Dashboard requirements
|
|
537
|
+
|
|
538
|
+
### 15.1 Home
|
|
539
|
+
|
|
540
|
+
- Detected agents.
|
|
541
|
+
- Operating system.
|
|
542
|
+
- Stable/Maximum/Custom call to action.
|
|
543
|
+
- Installed package count.
|
|
544
|
+
- Updates and conflicts.
|
|
545
|
+
- Last known-good snapshot.
|
|
546
|
+
|
|
547
|
+
### 15.2 Discover
|
|
548
|
+
|
|
549
|
+
- Outcome-first categories.
|
|
550
|
+
- Stable, Trending, Official badges.
|
|
551
|
+
- Stars, publisher, platforms, permissions.
|
|
552
|
+
- Add/Remove action.
|
|
553
|
+
- Technical details drawer.
|
|
554
|
+
|
|
555
|
+
### 15.3 Installed
|
|
556
|
+
|
|
557
|
+
- Package list.
|
|
558
|
+
- Active platforms.
|
|
559
|
+
- Native/adapted/unsupported labels.
|
|
560
|
+
- Exact pinned commit.
|
|
561
|
+
- Remove and inspect actions.
|
|
562
|
+
|
|
563
|
+
### 15.4 Updates
|
|
564
|
+
|
|
565
|
+
- Old and candidate versions.
|
|
566
|
+
- Plain-language summary.
|
|
567
|
+
- File/config/permission diff.
|
|
568
|
+
- Update, ignore, or rollback.
|
|
569
|
+
|
|
570
|
+
### 15.5 Design constraints
|
|
571
|
+
|
|
572
|
+
- Local-only application for MVP.
|
|
573
|
+
- No signup wall.
|
|
574
|
+
- First meaningful screen in under five seconds after server launch.
|
|
575
|
+
- Keyboard accessible.
|
|
576
|
+
- Responsive down to tablet width.
|
|
577
|
+
- Never expose secret values in UI.
|
|
578
|
+
|
|
579
|
+
## 16. Work allocation
|
|
580
|
+
|
|
581
|
+
### Track A: Catalog and discovery — Member 1
|
|
582
|
+
|
|
583
|
+
Owns catalog schema, initial package records, GitHub metadata retrieval, tiers,
|
|
584
|
+
scoring, conflict families, and static source checks.
|
|
585
|
+
|
|
586
|
+
### Track B: Core and adapters — Member 2
|
|
587
|
+
|
|
588
|
+
Owns CLI, detection, transaction engine, snapshots, lockfile, updates, rollback, and
|
|
589
|
+
agent adapters.
|
|
590
|
+
|
|
591
|
+
### Track C: Dashboard and submission — Member 3
|
|
592
|
+
|
|
593
|
+
Owns dashboard, onboarding, API contract integration, visual polish, demo fixtures,
|
|
594
|
+
README/setup instructions, video, and Devpost content.
|
|
595
|
+
|
|
596
|
+
Shared decisions require a short decision record in the PR or `docs/decisions/`.
|
|
597
|
+
|
|
598
|
+
## 17. Model delegation guide
|
|
599
|
+
|
|
600
|
+
Task labels:
|
|
601
|
+
|
|
602
|
+
- `[LUNA]`: bounded, mechanical, clear expected output, low architectural judgment.
|
|
603
|
+
- `[TERRA]`: normal feature implementation with defined interfaces and tests.
|
|
604
|
+
- `[SOL]`: architecture, security, ambiguous integration, conflict resolution, or
|
|
605
|
+
cross-cutting review.
|
|
606
|
+
- `[HUMAN]`: product choice, external permission, legal/licensing judgment, final
|
|
607
|
+
acceptance, or credential handling.
|
|
608
|
+
|
|
609
|
+
Luna tasks must include exact files, inputs, expected output, and acceptance checks.
|
|
610
|
+
Terra tasks must include an interface or behavior contract and test expectations.
|
|
611
|
+
Sol tasks should produce a decision or implementation plus tradeoffs and failure
|
|
612
|
+
modes.
|
|
613
|
+
|
|
614
|
+
## 18. Detailed backlog
|
|
615
|
+
|
|
616
|
+
### Phase 0: Repository and team setup
|
|
617
|
+
|
|
618
|
+
- [x] `P0-01 [LUNA]` Add the npm/TypeScript project skeleton matching section 9.1.
|
|
619
|
+
- Acceptance: `npm ci`, build, lint, typecheck, and tests succeed from the root.
|
|
620
|
+
- [x] `P0-02 [LUNA]` Add `.gitignore`, `.editorconfig`, Prettier, and ESLint defaults.
|
|
621
|
+
- Acceptance: formatting and lint commands run at repository root.
|
|
622
|
+
- [x] `P0-03 [TERRA]` Add GitHub Actions matrix for Node on Windows, macOS, Linux.
|
|
623
|
+
- Acceptance: install, lint, typecheck, and tests run on all three.
|
|
624
|
+
- [x] `P0-04 [HUMAN]` Add all three teammates to the private repository.
|
|
625
|
+
- Verified collaborators: `VirajMishra1`, `cars3`, and `reddynitish`.
|
|
626
|
+
- [ ] `P0-05 [HUMAN]` Protect `main` after the first working CI run.
|
|
627
|
+
- Blocked by GitHub's branch-protection restriction for this private repository on
|
|
628
|
+
the current plan (API returned HTTP 403). Revisit after making the repository
|
|
629
|
+
public or enabling a plan that supports protection.
|
|
630
|
+
|
|
631
|
+
### Phase 1: Shared types and catalog
|
|
632
|
+
|
|
633
|
+
- [x] `P1-01 [SOL]` Finalize catalog, installed-state, plan, and lockfile schemas.
|
|
634
|
+
- Acceptance: schema decision documented; no secret-value fields exist.
|
|
635
|
+
- [x] `P1-02 [TERRA]` Implement Zod schemas and inferred TypeScript types.
|
|
636
|
+
- Acceptance: valid fixtures parse; invalid fixtures fail with actionable errors.
|
|
637
|
+
- [x] `P1-03 [LUNA]` Create valid/invalid catalog fixtures.
|
|
638
|
+
- Acceptance: at least five valid and ten invalid cases.
|
|
639
|
+
- [x] `P1-04 [TERRA]` Implement seed catalog loader.
|
|
640
|
+
- Acceptance: loads bundled catalog offline and returns categories/packages.
|
|
641
|
+
- [x] `P1-05 [LUNA]` Add first ten verified catalog records.
|
|
642
|
+
- Acceptance: source, category, tier, license, commit/ref, components, platforms.
|
|
643
|
+
- [x] `P1-06 [LUNA]` Add next ten verified catalog records.
|
|
644
|
+
- [x] `P1-07 [TERRA]` Implement GitHub metadata fetch with cache and rate-limit errors.
|
|
645
|
+
- [x] `P1-08 [TERRA]` Implement tier and ranking functions.
|
|
646
|
+
- [x] `P1-09 [SOL]` Review scoring for obvious gaming and bias failure modes.
|
|
647
|
+
- [x] `P1-10 [TERRA]` Implement conflict-family resolver.
|
|
648
|
+
- Acceptance: Stable picks one default; hard conflicts block; Custom can override
|
|
649
|
+
soft conflicts.
|
|
650
|
+
- [x] `P1-11 [TERRA]` Expand from 20 to at least 50 fully reviewed catalog records.
|
|
651
|
+
- Every record needs immutable commit, license review, component evidence, platform
|
|
652
|
+
evidence, and an install/config path; popularity alone is insufficient.
|
|
653
|
+
- Fifty evidence-complete records now pin immutable commits. All new skill-bearing
|
|
654
|
+
repositories passed real Loadout discovery/frontmatter inspection; unsafe symlinked
|
|
655
|
+
collections were rejected rather than weakened into the catalog.
|
|
656
|
+
|
|
657
|
+
### Phase 2: Agent detection
|
|
658
|
+
|
|
659
|
+
- [x] `P2-01 [SOL]` Finalize adapter contract and platform capability matrix.
|
|
660
|
+
- [x] `P2-02 [TERRA]` Implement shared filesystem/path utilities.
|
|
661
|
+
- Acceptance: tests cover Windows paths, POSIX paths, WSL distinction, home dirs.
|
|
662
|
+
- [x] `P2-03 [LUNA]` Add fake home-directory fixtures for all platforms.
|
|
663
|
+
- [x] `P2-04 [TERRA]` Implement Claude Code detection and inspection.
|
|
664
|
+
- [x] `P2-05 [TERRA]` Implement Codex detection and inspection.
|
|
665
|
+
- [x] `P2-06 [TERRA]` Implement Cursor detection and inspection.
|
|
666
|
+
- [x] `P2-07 [LUNA]` Implement Gemini CLI detection from approved path table.
|
|
667
|
+
- [x] `P2-08 [LUNA]` Implement OpenCode detection from approved path table.
|
|
668
|
+
- [x] `P2-09 [LUNA]` Implement Hermes detection from approved path table.
|
|
669
|
+
- [x] `P2-10 [TERRA]` Build `loadout doctor` detection report.
|
|
670
|
+
|
|
671
|
+
### Phase 3: Package parsing and normalization
|
|
672
|
+
|
|
673
|
+
- [x] `P3-01 [SOL]` Define normalized package/component representation.
|
|
674
|
+
- [x] `P3-02 [TERRA]` Implement `SKILL.md` parser and validation.
|
|
675
|
+
- [x] `P3-03 [TERRA]` Implement Claude plugin manifest parser.
|
|
676
|
+
- [x] `P3-04 [TERRA]` Implement Codex plugin manifest parser.
|
|
677
|
+
- [x] `P3-05 [TERRA]` Implement MCP JSON parser.
|
|
678
|
+
- [x] `P3-06 [LUNA]` Add parser fixtures from sanitized real layouts.
|
|
679
|
+
- [x] `P3-07 [TERRA]` Map parsed skills to universal component records.
|
|
680
|
+
- [x] `P3-08 [SOL]` Define native/adapted/unsupported rules for MVP platforms.
|
|
681
|
+
- [x] `P3-09 [TERRA]` Generate compatibility summary from normalized package.
|
|
682
|
+
|
|
683
|
+
### Phase 4: Transaction engine
|
|
684
|
+
|
|
685
|
+
- [x] `P4-01 [SOL]` Threat-model the mutation transaction.
|
|
686
|
+
- [x] `P4-02 [TERRA]` Implement immutable package cache by commit.
|
|
687
|
+
- [x] `P4-03 [TERRA]` Implement per-file SHA-256 calculation.
|
|
688
|
+
- [x] `P4-04 [TERRA]` Implement snapshot creator and manifest.
|
|
689
|
+
- [x] `P4-05 [TERRA]` Implement staging directory and planned writes.
|
|
690
|
+
- [x] `P4-06 [TERRA]` Implement path traversal and escaping-symlink rejection.
|
|
691
|
+
- [x] `P4-07 [TERRA]` Implement plan collision detection.
|
|
692
|
+
- [x] `P4-08 [SOL]` Review atomic commit behavior across all three operating systems.
|
|
693
|
+
- Accepted for the supported local-filesystem scope after CI run `29401149042` exercised the atomic and transaction suites on Node 20/22 for Windows, macOS, and Linux. See `docs/RELEASE_REVIEW.md` for the explicit power-loss boundary.
|
|
694
|
+
- [x] `P4-09 [TERRA]` Implement commit with automatic restore on failure.
|
|
695
|
+
- [x] `P4-10 [TERRA]` Implement `loadout rollback`.
|
|
696
|
+
- [x] `P4-11 [LUNA]` Add interrupted-write and corrupted-stage fixtures.
|
|
697
|
+
- [x] `P4-12 [TERRA]` Verify rollback restores byte-identical files.
|
|
698
|
+
|
|
699
|
+
### Phase 5: Agent adapters
|
|
700
|
+
|
|
701
|
+
- [x] `P5-01 [TERRA]` Claude skill install/remove planner.
|
|
702
|
+
- [x] `P5-02 [TERRA]` Codex skill install/remove planner.
|
|
703
|
+
- [x] `P5-03 [TERRA]` Cursor skill install/remove planner.
|
|
704
|
+
- [x] `P5-04 [LUNA]` Gemini skill planner using approved layout.
|
|
705
|
+
- [x] `P5-05 [LUNA]` OpenCode skill planner using approved layout.
|
|
706
|
+
- [x] `P5-06 [LUNA]` Hermes skill planner using approved layout.
|
|
707
|
+
- [x] `P5-07 [SOL]` Review adapters for lossy or false compatibility claims.
|
|
708
|
+
- [x] `P5-08 [TERRA]` Claude MCP config planner preserving unrelated entries.
|
|
709
|
+
- [x] `P5-09 [TERRA]` Codex MCP config planner preserving unrelated entries/comments.
|
|
710
|
+
- Implementation appends only new official TOML tables; replacement of an existing table remains intentionally unsupported until a comment-preserving TOML editor is added.
|
|
711
|
+
- [x] `P5-10 [TERRA]` Cursor MCP config planner preserving unrelated entries.
|
|
712
|
+
- [x] `P5-11 [TERRA]` Smoke-test interface and results.
|
|
713
|
+
- The native-skill adapter smoke suite plans, installs, and removes a real `SKILL.md` fixture for each declared filesystem layout. It does not claim plugin, hook, MCP, or executable runtime support beyond the capability matrix.
|
|
714
|
+
|
|
715
|
+
### Phase 6: CLI
|
|
716
|
+
|
|
717
|
+
- [x] `P6-01 [TERRA]` CLI bootstrap, version, help, structured error handling.
|
|
718
|
+
- [x] `P6-02 [TERRA]` `loadout status`.
|
|
719
|
+
- [x] `P6-03 [TERRA]` `loadout doctor`.
|
|
720
|
+
- [x] `P6-04 [TERRA]` `loadout plan --mode stable|maximum|custom`.
|
|
721
|
+
- [x] `P6-05 [TERRA]` Confirmed `loadout install --yes` and `loadout sync --yes`
|
|
722
|
+
mutation paths.
|
|
723
|
+
- [x] `P6-06 [TERRA]` `loadout add` and `loadout remove`.
|
|
724
|
+
- [x] `P6-07 [TERRA]` Read-only `loadout update` planning by default.
|
|
725
|
+
- [x] `P6-08 [TERRA]` `loadout rollback`.
|
|
726
|
+
- [x] `P6-09 [LUNA]` CLI snapshot tests for help and error messages.
|
|
727
|
+
- [x] `P6-10 [SOL]` Review destructive command confirmation and recovery behavior.
|
|
728
|
+
- [x] `P6-11 [TERRA]` Make interactive CLI setup the primary product path.
|
|
729
|
+
- Maximum/Stable/Custom detect targets, concurrently prepare pinned reviewed
|
|
730
|
+
commits, defer explicit MCP setup, resolve lower-ranked duplicate skill targets,
|
|
731
|
+
show safety findings, and install as one transaction.
|
|
732
|
+
|
|
733
|
+
### Phase 7: Local API and dashboard
|
|
734
|
+
|
|
735
|
+
- [x] `P7-01 [SOL]` Define local API contract and threat boundary.
|
|
736
|
+
- [x] `P7-02 [TERRA]` Start local server on random loopback port with session token.
|
|
737
|
+
- [x] `P7-03 [TERRA]` Agents/status endpoint.
|
|
738
|
+
- [x] `P7-04 [TERRA]` Catalog/list/detail endpoints.
|
|
739
|
+
- [x] `P7-05 [TERRA]` Plan/apply/progress endpoints.
|
|
740
|
+
- [x] `P7-06 [TERRA]` Updates/diff/rollback endpoints.
|
|
741
|
+
- [x] `P7-07 [LUNA]` Dashboard shell, routing, typography, color tokens.
|
|
742
|
+
- [x] `P7-08 [TERRA]` Home screen.
|
|
743
|
+
- [x] `P7-09 [TERRA]` Discover screen.
|
|
744
|
+
- [x] `P7-10 [TERRA]` Installed screen.
|
|
745
|
+
- [x] `P7-11 [TERRA]` Updates and diff screen.
|
|
746
|
+
- [x] `P7-12 [LUNA]` Empty, loading, and error states.
|
|
747
|
+
- [x] `P7-13 [LUNA]` Keyboard and accessible-label pass.
|
|
748
|
+
- [x] `P7-14 [TERRA]` Playwright first-run happy-path test.
|
|
749
|
+
- Runs Chromium against the real loopback dashboard with an empty disposable Loadout home; it previews and applies a safe first-run manifest without touching user configuration.
|
|
750
|
+
- [x] `P7-15 [SOL]` Product and security review of complete flow.
|
|
751
|
+
- Reviewed 2026-07-15; see `docs/RELEASE_REVIEW.md` for boundaries, fixes, and release conditions.
|
|
752
|
+
|
|
753
|
+
### Phase 8: Updates and safety demo
|
|
754
|
+
|
|
755
|
+
- [x] `P8-01 [TERRA]` Detect candidate commit for installed package.
|
|
756
|
+
- [x] `P8-02 [TERRA]` Generate changed-file diff.
|
|
757
|
+
- [x] `P8-03 [TERRA]` Generate instruction/script/domain/env summary.
|
|
758
|
+
- [x] `P8-04 [TERRA]` Implement approval policy for sensitive changes.
|
|
759
|
+
- [x] `P8-05 [LUNA]` Create benign Ponytail-style update fixture.
|
|
760
|
+
- [x] `P8-06 [LUNA]` Create risky update fixture adding a hook and domain.
|
|
761
|
+
- [x] `P8-07 [TERRA]` Demonstrate safe update acceptance.
|
|
762
|
+
- [x] `P8-08 [TERRA]` Demonstrate risky update quarantine.
|
|
763
|
+
- [x] `P8-09 [TERRA]` Demonstrate rollback after simulated smoke-test failure.
|
|
764
|
+
|
|
765
|
+
### Phase 9: Cross-platform verification
|
|
766
|
+
|
|
767
|
+
- [x] `P9-01 [TERRA]` Windows native install test.
|
|
768
|
+
- CI run `29401149042` passed on `windows-latest` with Node 20 and 22. The native-filesystem smoke test used disposable `LOADOUT_USER_HOME` and `LOADOUT_HOME` directories to plan, install, byte-verify, and remove a real skill through every declared agent-owned skills layout.
|
|
769
|
+
- [x] `P9-02 [TERRA]` WSL behavior test or documented compatibility boundary.
|
|
770
|
+
- [x] `P9-03 [TERRA]` macOS install test.
|
|
771
|
+
- CI run `29401149042` passed on `macos-latest` with Node 20 and 22 using the host path implementation, not a simulated layout.
|
|
772
|
+
- [x] `P9-04 [TERRA]` Linux install test.
|
|
773
|
+
- CI run `29401149042` passed on `ubuntu-latest` with Node 20 and 22 using the host path implementation, not a simulated layout.
|
|
774
|
+
- [x] `P9-05 [LUNA]` CRLF/LF fixture coverage.
|
|
775
|
+
- [x] `P9-06 [LUNA]` `.cmd` executable-resolution fixture coverage.
|
|
776
|
+
- [x] `P9-07 [SOL]` Cross-platform go/no-go review.
|
|
777
|
+
- Reviewed 2026-07-15 after successful CI run `29401149042`: go for the bounded claim that Loadout can plan, install, verify, and remove native `SKILL.md` directories on Windows, macOS, and Linux. No-go remains for a universal runtime claim covering plugins, hooks, executables, or arbitrary MCP servers.
|
|
778
|
+
|
|
779
|
+
### Phase 10: Submission
|
|
780
|
+
|
|
781
|
+
- [x] `P10-01 [LUNA]` Expand README with install and supported-platform table.
|
|
782
|
+
- [x] `P10-02 [LUNA]` Add sample catalog data and judge test instructions.
|
|
783
|
+
- [x] `P10-03 [TERRA]` Add one-command demo mode using isolated fake home dirs.
|
|
784
|
+
- [x] `P10-04 [SOL]` Final architecture and threat-model review.
|
|
785
|
+
- [ ] `P10-05 [HUMAN]` Verify licenses and attribution for included sources.
|
|
786
|
+
- [ ] `P10-06 [HUMAN]` Record under-three-minute demo.
|
|
787
|
+
- [ ] `P10-07 [HUMAN]` Explain where Codex and GPT-5.6 were used.
|
|
788
|
+
- [ ] `P10-08 [HUMAN]` Capture required `/feedback` Codex session ID.
|
|
789
|
+
- [ ] `P10-09 [HUMAN]` Complete Devpost description, category, repository, and video.
|
|
790
|
+
- [ ] `P10-10 [HUMAN]` Submit before deadline with buffer.
|
|
791
|
+
|
|
792
|
+
### Phase 11: Advanced committed capabilities
|
|
793
|
+
|
|
794
|
+
- [x] `P11-01 [SOL]` Design GitHub OAuth and minimal-scope authorization model.
|
|
795
|
+
- [x] `P11-02 [TERRA]` Implement optional private-repository discovery.
|
|
796
|
+
- `loadout discover --private` uses an explicit caller-provided `GITHUB_TOKEN`, returns metadata only, and never persists or logs the token; OAuth/App brokering remains deployment-configured per `docs/GITHUB_AUTHORIZATION.md`.
|
|
797
|
+
- [x] `P11-03 [TERRA]` Implement Community Loadout export/import with versioning.
|
|
798
|
+
- [x] `P11-04 [TERRA]` Implement star/release/download snapshot storage and charts.
|
|
799
|
+
- [x] `P11-05 [SOL]` Define provider-neutral model configuration schema.
|
|
800
|
+
- [x] `P11-06 [TERRA]` Implement OpenRouter provider adapter without storing keys in
|
|
801
|
+
application state.
|
|
802
|
+
- The adapter resolves a credential reference at request time and never serializes or logs the raw token.
|
|
803
|
+
- [x] `P11-07 [SOL]` Define category-specific evaluation protocol and uncertainty.
|
|
804
|
+
- [x] `P11-08 [TERRA]` Implement first two automated evaluation categories.
|
|
805
|
+
- Static skill hygiene and MCP manifest evaluations are deterministic and never execute package code; see `docs/EVALUATION_PROTOCOL.md`.
|
|
806
|
+
- [x] `P11-09 [TERRA]` Implement a read-only update watcher and notifications.
|
|
807
|
+
- `loadout watch` performs read-only interval checks and emits human or JSON notifications; it never applies updates automatically.
|
|
808
|
+
- [x] `P11-10 [SOL]` Define catalog signing, rotation, and compromise recovery.
|
|
809
|
+
- [x] `P11-11 [TERRA]` Implement catalog signing and client-side verification tools.
|
|
810
|
+
- `keygen`, `catalog-sign`, and `catalog-verify` are covered by tests. A real release
|
|
811
|
+
key and signed-release publishing step remain owner-controlled release work; CI
|
|
812
|
+
does not contain or manufacture the production signing identity.
|
|
813
|
+
- [x] `P11-12 [SOL]` Design cross-platform hook/subagent compiler with loss reports.
|
|
814
|
+
- [x] `P11-13 [TERRA]` Implement first two hook/subagent conversion targets.
|
|
815
|
+
- `loadout convert` creates a loss-reported static skill from a subagent or a non-executable review artifact from a hook; it never synthesizes executable hook behavior and requires manual approval.
|
|
816
|
+
- [x] `P11-14 [SOL]` Design sandbox threat model for third-party installers.
|
|
817
|
+
- [x] `P11-15 [TERRA]` Implement disposable sandbox runner with no host secrets.
|
|
818
|
+
- `loadout sandbox-run` uses explicit approval, a reviewed image, read-only source mount, no network, dropped capabilities, resource limits, and a scrubbed environment; Docker remains an explicit local prerequisite.
|
|
819
|
+
- [x] `P11-16 [SOL]` Design OS-keychain-backed credential interface.
|
|
820
|
+
- [x] `P11-17 [TERRA]` Implement macOS, Windows, and Linux credential backends.
|
|
821
|
+
- `credentials` uses macOS Keychain, Linux Secret Service, or Windows Credential
|
|
822
|
+
Manager through bounded no-shell processes. Writes use stdin, errors are redacted,
|
|
823
|
+
and secret values never enter plans, arguments, snapshots, or JSON output.
|
|
824
|
+
- [x] `P11-18 [SOL]` Define autonomous-update permission policies and recovery rules.
|
|
825
|
+
- [x] `P11-19 [TERRA]` Implement a policy-gated canary planning pipeline.
|
|
826
|
+
- `loadout canary` performs a non-mutating static gate; promotion requires explicit approval plus injected verification and transaction callbacks, so it cannot silently update agent files.
|
|
827
|
+
- [x] `P11-20 [SOL]` Define the internal adapter contract and conformance tests.
|
|
828
|
+
- `src/core/adapters.ts`, the shared capability matrix, compatibility policy, and
|
|
829
|
+
conformance tests are the implemented contract. A separately versioned public SDK
|
|
830
|
+
package and community registry are not yet published.
|
|
831
|
+
- [x] `P11-21 [TERRA]` Add the next six agent adapters through the SDK.
|
|
832
|
+
- Windsurf, Cline, GitHub Copilot, Roo Code, Kiro CLI, and Junie use documented
|
|
833
|
+
vendor-specific Agent Skills roots. Only native skill support is claimed; all
|
|
834
|
+
unverified component types remain explicitly unsupported.
|
|
835
|
+
- [x] `P11-22 [TERRA]` Add compliant Hacker News and community-source connectors.
|
|
836
|
+
- Hacker News Firebase and GitHub REST repository search are read-only connectors; neither mutates the catalog or installs a lead.
|
|
837
|
+
- [x] `P11-23 [SOL]` Design team/enterprise policy and audit schemas.
|
|
838
|
+
- [x] `P11-24 [TERRA]` Implement shared Loadouts, allowlists, denylists, and audit view.
|
|
839
|
+
- Manifest policy now enforces package/repository allowlists and denylists before synchronization; existing audit output remains the read-only decision view.
|
|
840
|
+
|
|
841
|
+
### Phase 12: Best-available optimization and public beta
|
|
842
|
+
|
|
843
|
+
This phase turns the safe installer into the product thesis: Loadout continuously
|
|
844
|
+
understands what a user already has, maintains a broad reviewed library, and exposes
|
|
845
|
+
only a small evidence-backed active set for the current agent and project. “Best”
|
|
846
|
+
always means best supported choice under disclosed evidence and uncertainty, never a
|
|
847
|
+
universal or permanent truth.
|
|
848
|
+
|
|
849
|
+
- [x] `P12-01 [SOL]` Correct the default product posture from Maximum-first to
|
|
850
|
+
Stable-first.
|
|
851
|
+
- Stable is the small `superpowers + context7` foundation when those records exist.
|
|
852
|
+
Maximum remains an explicit broad-library/stress mode.
|
|
853
|
+
- [x] `P12-02 [TERRA]` Add read-only `loadout scan` for existing skill directories.
|
|
854
|
+
- Acceptance: report actual `SKILL.md` count, normalized names, content
|
|
855
|
+
fingerprints, Loadout ownership, unmanaged content, within-agent duplicates,
|
|
856
|
+
cross-agent mirrors, per-agent totals, and capacity warnings without executing or
|
|
857
|
+
changing instructions.
|
|
858
|
+
- [x] `P12-03 [TERRA]` Close integration defects found by the packaged-CLI audit.
|
|
859
|
+
- New packages include an installable skill skeleton; skipped enabled packages fail
|
|
860
|
+
synchronization rather than producing a misleading lock; absent evaluation
|
|
861
|
+
categories are `not-applicable`; empty canaries still block; signing creates parent
|
|
862
|
+
directories; portable absolute-path errors provide a remedy.
|
|
863
|
+
- [x] `P12-04 [TERRA]` Warn when a prepared loadout exceeds 30 active skill
|
|
864
|
+
directories per agent.
|
|
865
|
+
- The warning is a capacity heuristic, not a claim that the agent cannot load more.
|
|
866
|
+
- [x] `P12-05 [SOL]` Define the provenance confidence model for existing unmanaged
|
|
867
|
+
content.
|
|
868
|
+
- Levels: exact Loadout record, exact catalog hash, embedded repository/commit,
|
|
869
|
+
heuristic source match, and unknown. Never invent provenance from a folder name.
|
|
870
|
+
- [x] `P12-06 [TERRA]` Implement catalog-hash and embedded-metadata provenance
|
|
871
|
+
matching in `loadout scan`.
|
|
872
|
+
- Acceptance: every match includes evidence and confidence; network access is
|
|
873
|
+
optional; unknown remains a first-class result.
|
|
874
|
+
- [x] `P12-07 [SOL]` Define semantic duplicate and capability-family rules.
|
|
875
|
+
- Separate exact duplicate, same-name divergent content, cross-agent mirror,
|
|
876
|
+
overlapping workflow, complementary capability, and verified hard conflict.
|
|
877
|
+
- [x] `P12-08 [TERRA]` Implement `loadout compare <skill-or-package>`.
|
|
878
|
+
- Show installed candidate, reviewed alternatives, provenance, maintenance,
|
|
879
|
+
adoption velocity, permissions, compatibility, evaluation evidence, uncertainty,
|
|
880
|
+
and a plain-language recommendation. No mutation.
|
|
881
|
+
- [x] `P12-09 [SOL]` Define the reviewed-library versus active-set state model and
|
|
882
|
+
migration boundary.
|
|
883
|
+
- Downloaded/cached, reviewed, installed, active, disabled, quarantined, and removed
|
|
884
|
+
are distinct states. Existing user files are never silently adopted or deleted.
|
|
885
|
+
- [x] `P12-10 [TERRA]` Implement transactional `loadout enable` and `loadout disable`.
|
|
886
|
+
- Acceptance: only Loadout-managed links/files change; one snapshot covers a batch;
|
|
887
|
+
disabling preserves the library copy; rollback restores byte-identical state.
|
|
888
|
+
- [x] `P12-11 [TERRA]` Implement `loadout adopt` for explicitly selected unmanaged
|
|
889
|
+
skills.
|
|
890
|
+
- Preview provenance and hashes, snapshot first, preserve original content, and
|
|
891
|
+
require confirmation. Bulk adoption without review is forbidden.
|
|
892
|
+
- Adoption is one-skill-only, dry-run by default, rechecks the fingerprint before
|
|
893
|
+
the state transaction, and marks only exact catalog fingerprints as reviewed.
|
|
894
|
+
- [x] `P12-12 [SOL]` Define active-set selection policy.
|
|
895
|
+
- Inputs include user-pinned capabilities, project signals, agent compatibility,
|
|
896
|
+
conflicts, task families, capacity budget, evaluation confidence, and prior human
|
|
897
|
+
outcomes. Popularity cannot override safety or user pins.
|
|
898
|
+
- The complete ordering and neutral boundaries for not-yet-available evaluation and
|
|
899
|
+
outcome evidence are documented in `docs/ACTIVE_SET_POLICY.md`.
|
|
900
|
+
- [x] `P12-13 [TERRA]` Implement project-aware `loadout activate --project <path>`.
|
|
901
|
+
- Preview the delta between global and project active sets; do not require GitHub;
|
|
902
|
+
do not expose irrelevant library content to the agent.
|
|
903
|
+
- Selection is per skill (not per mega-repository), local-only, capacity-bounded,
|
|
904
|
+
pin-aware, agent-scoped, and dry-run by default.
|
|
905
|
+
- [x] `P12-14 [TERRA]` Implement `loadout optimize` as the primary guided workflow.
|
|
906
|
+
- Flow: scan -> explain findings -> compare alternatives -> propose active set ->
|
|
907
|
+
preview exact changes -> confirm -> verify -> provide one-command rollback.
|
|
908
|
+
- The guided CLI prints project signals, scores and reasons, equivalent-source
|
|
909
|
+
alternatives, the exact enable delta, verified snapshot id, and rollback command.
|
|
910
|
+
- [x] `P12-15 [SOL]` Design representative, category-specific head-to-head
|
|
911
|
+
evaluations.
|
|
912
|
+
- Start with workflow adherence, code-review coverage, documentation retrieval, and
|
|
913
|
+
browser-test planning. Record fixtures, rubrics, model/version, variance, cost, and
|
|
914
|
+
uncertainty; never execute untrusted host code.
|
|
915
|
+
- `docs/HEAD_TO_HEAD_EVALUATION.md` defines fixtures, weighted rubrics, trial
|
|
916
|
+
controls, variance/effect thresholds, cost evidence, uncertainty, non-execution
|
|
917
|
+
boundaries, and signed snapshot requirements for all four categories.
|
|
918
|
+
- [x] `P12-16 [TERRA]` Implement the first two head-to-head evaluation harnesses and
|
|
919
|
+
persist signed evidence snapshots.
|
|
920
|
+
- `loadout head-to-head` scores synthetic workflow-adherence and code-review-coverage
|
|
921
|
+
trial observations against declared fixtures, persists an Ed25519-signed evidence
|
|
922
|
+
envelope, and never executes candidate content. Results do not silently replace a
|
|
923
|
+
user's active capability.
|
|
924
|
+
- [x] `P12-17 [TERRA]` Add daily candidate ingestion and review queues.
|
|
925
|
+
- Combine official sources, GitHub search, release/activity observations, star
|
|
926
|
+
velocity, compliant community connectors, deduplication, rate-limit handling, and
|
|
927
|
+
a human promotion gate. Discovery never installs automatically.
|
|
928
|
+
- `discover --source all --queue` aggregates the documented GitHub REST and
|
|
929
|
+
Hacker News Firebase sources, preserves partial-source failures, deduplicates
|
|
930
|
+
leads, and keeps human shortlist/ignore decisions. Repeated GitHub observations
|
|
931
|
+
calculate disclosed per-day star velocity; `schedule --job discovery` runs only
|
|
932
|
+
this read-only candidate queue refresh. Discovery never installs or promotes a
|
|
933
|
+
candidate.
|
|
934
|
+
- [x] `P12-18 [TERRA]` Add freshness and replacement alerts.
|
|
935
|
+
- Explain when an installed source is archived, materially stale, permission-expanded,
|
|
936
|
+
superseded, or outperformed by reviewed evidence. Offer compare/ignore/pin actions.
|
|
937
|
+
- `alerts` reports archived, one-year-stale, reviewed-commit-change,
|
|
938
|
+
permission-expansion, and verified signed-evidence outperformance findings with
|
|
939
|
+
compare/update/disable actions and local ignore. `alert-pin`, `alert-unpin`, and
|
|
940
|
+
`alert-pins` persist explicit local replacement preferences without changing the
|
|
941
|
+
active set.
|
|
942
|
+
- [x] `P12-19 [SOL]` Define privacy-preserving local outcome signals.
|
|
943
|
+
- Default local-only: explicit accept/reject, rollback, disable, repeated activation,
|
|
944
|
+
and task-category success. No source code, prompts, filenames, or secrets leave the
|
|
945
|
+
machine without separate informed consent.
|
|
946
|
+
- The bounded local store accepts only exact package/skill selectors, agent ids,
|
|
947
|
+
task families, outcome enums, and timestamps; paths and arbitrary notes are rejected.
|
|
948
|
+
- [x] `P12-20 [TERRA]` Connect improvement feedback to ranking evidence without
|
|
949
|
+
creating a popularity feedback loop.
|
|
950
|
+
- Human outcomes are scoped by task and agent; one user's preference cannot globally
|
|
951
|
+
crown a package.
|
|
952
|
+
- The active-set policy applies capped adjustments only to the same selector,
|
|
953
|
+
agent, and task family. Strong rejection/rollback evidence suppresses automatic
|
|
954
|
+
selection, while an explicit pin remains the user's override.
|
|
955
|
+
- [x] `P12-21 [TERRA]` Expose provider-neutral model/OpenRouter configuration through
|
|
956
|
+
validated CLI commands.
|
|
957
|
+
- The current adapter is library-level only. Acceptance requires plan/apply/status,
|
|
958
|
+
redacted output, credential references, and disposable mocked-network tests before
|
|
959
|
+
any real-key test.
|
|
960
|
+
- `loadout models set/status/verify` stores only validated metadata and credential
|
|
961
|
+
references; apply is snapshotted, output is redacted, and provider requests resolve
|
|
962
|
+
an environment or native OS credential only at the explicit verification boundary.
|
|
963
|
+
- [x] `P12-22 [TERRA]` Add reviewed MCP setup recipes and connection verification.
|
|
964
|
+
- `mcp-recipe` provides immutable, source-linked Playwright and GitHub read-only recipes,
|
|
965
|
+
previews commands, permissions, environment names, and target config without
|
|
966
|
+
printing values, and separates authorization from configuration. It preserves
|
|
967
|
+
unrelated JSON keys and verifies configured references without launching. An
|
|
968
|
+
explicitly approved `--connect` path starts only the exact reviewed npm version or
|
|
969
|
+
OCI digest, resolves credentials just-in-time, performs a bounded MCP initialize
|
|
970
|
+
handshake, redacts failures, and cleans up the process; the existing Codex MCP
|
|
971
|
+
planner remains the TOML-preserving path.
|
|
972
|
+
- [x] `P12-23 [TERRA]` Complete P11-17 keychain backends and connect them to provider,
|
|
973
|
+
private-discovery, registry, and MCP workflows.
|
|
974
|
+
- Provider verification, private GitHub discovery, remote registry publishing/
|
|
975
|
+
serving, and explicit MCP connection checks share environment/native-keychain
|
|
976
|
+
references. MCP secrets enter only the short-lived verified subprocess environment
|
|
977
|
+
and are never written into agent configuration or Loadout state.
|
|
978
|
+
- [x] `P12-24 [SOL]` Design a cross-platform daily scheduler that invokes read-only
|
|
979
|
+
discovery/update checks.
|
|
980
|
+
- macOS LaunchAgent, Windows Task Scheduler, and Linux systemd/cron implementations
|
|
981
|
+
must be opt-in, inspectable, removable, rate-limited, and unable to apply updates.
|
|
982
|
+
- The native plans schedule only `loadout watch --once --json`; generated files and
|
|
983
|
+
native actions are shown in the dry run, and no apply-capable command is present.
|
|
984
|
+
- [x] `P12-25 [TERRA]` Implement `loadout schedule` and `loadout unschedule` with native
|
|
985
|
+
disposable/configuration tests.
|
|
986
|
+
- macOS LaunchAgent, Linux systemd user timer, and Windows Task Scheduler XML are
|
|
987
|
+
generated natively, snapshotted, installed only with `--yes`, and removable.
|
|
988
|
+
- [x] `P12-26 [TERRA]` Polish the CLI as the sole required product surface.
|
|
989
|
+
- Consistent progress, compact tables, accessible color/no-color output, actionable
|
|
990
|
+
errors, interruption handling, shell completion, noninteractive JSON, and terminal
|
|
991
|
+
widths from 80 to 200 columns.
|
|
992
|
+
- Bash, Zsh, Fish, and PowerShell completion cover top-level and nested credential/
|
|
993
|
+
model commands. Help flushes fully through pipes; automation can request structured
|
|
994
|
+
JSON errors; capability tables are deterministic, ANSI-free, and bounded at 80,
|
|
995
|
+
120, and 200 columns. Long-running services clean up signals, and mutations retain
|
|
996
|
+
transactional interruption recovery.
|
|
997
|
+
- [x] `P12-27 [LUNA]` Reframe README, testing, and demo around scan/compare/optimize;
|
|
998
|
+
move dashboard instructions to an optional diagnostics section.
|
|
999
|
+
- README and disposable testing now lead with the scan -> compare -> optimize ->
|
|
1000
|
+
rollback workflow; dashboard instructions are explicitly optional diagnostics.
|
|
1001
|
+
- [x] `P12-28 [TERRA]` Add a privacy-safe `loadout report`/`loadout share` artifact.
|
|
1002
|
+
- Default output contains package ids, versions, evidence, and compatibility only;
|
|
1003
|
+
exclude usernames, absolute paths, private repositories, project names, and secrets.
|
|
1004
|
+
- The artifact contains package ids, commits, agent compatibility, aggregate
|
|
1005
|
+
activation/review counts, and MCP package ids; repository names, server names,
|
|
1006
|
+
paths, filenames, projects, prompts, code, and credential data are excluded.
|
|
1007
|
+
- [x] `P12-29 [TERRA]` Complete P1-11 with at least 50 reviewed records and capability
|
|
1008
|
+
coverage metrics.
|
|
1009
|
+
- Measure unique capabilities, overlap, licenses, immutable commits, install shape,
|
|
1010
|
+
platforms, activity, and evaluation readiness rather than raw repository count.
|
|
1011
|
+
- `catalog --coverage [--json]` reports 50 immutable records across 37 categories,
|
|
1012
|
+
including component/install shapes, overlaps, licenses, source-inspection platforms,
|
|
1013
|
+
activity observations, and evaluation readiness.
|
|
1014
|
+
- [ ] `P12-30 [HUMAN]` Complete legal/license attribution review, including all current
|
|
1015
|
+
`NOASSERTION` records, before distribution.
|
|
1016
|
+
- [ ] `P12-31 [TERRA]` Publish `loadout-ai` to npm and run clean-machine package tests
|
|
1017
|
+
from outside the repository on macOS, Windows, Linux, and Node 20/22.
|
|
1018
|
+
- Partial: a real tarball is packed, installed outside the repository, executed,
|
|
1019
|
+
catalog-checked, used for install, and rolled back. CI contains an opt-in OS/Node
|
|
1020
|
+
matrix and an owner-controlled OIDC/provenance release workflow. The hosted
|
|
1021
|
+
macOS/Windows/Linux Node 20/22 matrix passes; actual npm publication and the
|
|
1022
|
+
post-publication clean external package checks remain release-owner actions.
|
|
1023
|
+
- [ ] `P12-32 [HUMAN]` Run moderated founder testing on the real Claude and Codex
|
|
1024
|
+
profiles with snapshots and explicit rollback checkpoints.
|
|
1025
|
+
- [ ] `P12-33 [HUMAN]` Run at least ten external user tests spanning new users, power
|
|
1026
|
+
users, Windows, macOS, Linux, one-agent, and multi-agent setups.
|
|
1027
|
+
- [ ] `P12-34 [SOL]` Public-beta go/no-go review.
|
|
1028
|
+
- Required: zero known destructive data-loss defects; every mutation previewed and
|
|
1029
|
+
recoverable; no false “best” or compatibility claims; install/optimize/rollback
|
|
1030
|
+
success on all supported platforms; p95 local scan under five seconds for 1,000
|
|
1031
|
+
skills; actionable failure messages; npm provenance and attribution complete.
|
|
1032
|
+
- Partial evidence: seven real CLI runs over 1,000 on-disk skills measured a local
|
|
1033
|
+
p95 of 1.28 seconds on 2026-07-16. A disposable real Maximum flow also prepared all
|
|
1034
|
+
31 skill-bearing repositories, exposed 1,219 skill directories, resolved 48
|
|
1035
|
+
overlaps, exercised optimization/apply/rollback, and left no test profile behind.
|
|
1036
|
+
Transaction, rollback, package-tarball, and CLI product-flow gates pass locally;
|
|
1037
|
+
hosted OS/Node release evidence and attribution approval remain required before
|
|
1038
|
+
go-live.
|
|
1039
|
+
|
|
1040
|
+
### Phase 13: Pre-testing hardening and continuous discovery
|
|
1041
|
+
|
|
1042
|
+
- [x] `P13-01 [TERRA]` Repair default GitHub discovery against the live API.
|
|
1043
|
+
- Replace the ineffective parenthesized topic query with three valid rolling topic
|
|
1044
|
+
searches, merge case-insensitive duplicates, rank deterministically, preserve
|
|
1045
|
+
exact custom-query semantics, and test rate-limit and malformed-response failures.
|
|
1046
|
+
- [x] `P13-02 [TERRA]` Publish a bounded daily discovery evidence feed.
|
|
1047
|
+
- One five-minute GitHub Actions job performs eight real GitHub searches, records
|
|
1048
|
+
current and retained candidates in `catalog/discovered.json`, and regenerates
|
|
1049
|
+
`docs/DISCOVERED.md` without installing or promoting a repository.
|
|
1050
|
+
- Day-one ordering uses an explicitly labelled lifetime star average; after one
|
|
1051
|
+
complete day, real observed star velocity takes precedence. Empty or malformed
|
|
1052
|
+
runs cannot replace the last healthy artifact, and CI validates every generated
|
|
1053
|
+
record.
|
|
1054
|
+
- [x] `P13-03 [LUNA]` Rebuild the README and credit every reviewed upstream source.
|
|
1055
|
+
- The README is CLI-first, accurately distinguishes preview/network/mutation
|
|
1056
|
+
boundaries, links the daily candidate feed, and avoids claiming npm publication.
|
|
1057
|
+
- `docs/CATALOG.md` links all 50 repositories and all 50 immutable reviewed commits;
|
|
1058
|
+
CI prevents silent attribution drift and identifies six `NOASSERTION` records for
|
|
1059
|
+
human legal review.
|
|
1060
|
+
- [x] `P13-04 [TERRA]` Harden beginner test-drive and rollback recovery.
|
|
1061
|
+
- Catalog-backed demos fetch the exact reviewed commit, `test-drive` aliases the
|
|
1062
|
+
isolated install/rollback exercise, and all `--agents` arguments use one validated
|
|
1063
|
+
parser.
|
|
1064
|
+
- Rollback lists snapshots read-only and rejects traversal, malformed bytes,
|
|
1065
|
+
filesystem/home/state roots, overlapping roots, escaping paths, duplicates, and
|
|
1066
|
+
inconsistent persisted records before mutation.
|
|
1067
|
+
- [x] `P13-05 [SOL]` Document an executable full-feature founder test matrix.
|
|
1068
|
+
- `docs/FEATURE_TEST_MATRIX.md` covers every top-level command, authority boundary,
|
|
1069
|
+
network/process/credit side effect, expected result, platform integration, and
|
|
1070
|
+
cleanup path using disposable profiles wherever possible.
|
|
1071
|
+
- [x] `P13-06 [TERRA]` Pass the integrated pre-testing gate and repeat the real live
|
|
1072
|
+
discovery plus immutable isolated test-drive after all Phase 13 changes.
|
|
1073
|
+
- `npm run verify` passes 73 test files/270 tests, CLI E2E, installed-tarball
|
|
1074
|
+
smoke, generated-evidence validation, and a 1,000-skill p95 of 0.97 seconds.
|
|
1075
|
+
Playwright passes independently; live discovery returns real leads; the reviewed
|
|
1076
|
+
two-agent test-drive installs at the pinned Superpowers commit and rolls back its
|
|
1077
|
+
temporary profile.
|
|
1078
|
+
|
|
1079
|
+
### Phase 14: Candidate intelligence and trusted catalog delivery
|
|
1080
|
+
|
|
1081
|
+
- [x] `P14-01 [TERRA]` Turn the generated discovery feed into an explainable candidate
|
|
1082
|
+
triage CLI.
|
|
1083
|
+
- `candidate list` validates the feed, supports bounded search/limits, distinguishes
|
|
1084
|
+
measured velocity from lifetime averages, and discloses that adoption evidence is
|
|
1085
|
+
not quality or safety evidence.
|
|
1086
|
+
- [x] `P14-02 [TERRA]` Build immutable static candidate dossiers.
|
|
1087
|
+
- `candidate inspect` resolves a real public repository to a full commit and records
|
|
1088
|
+
portable component paths, static evaluation, license, growth, catalog overlap,
|
|
1089
|
+
uncertainty, and human-review blockers without executing candidate content.
|
|
1090
|
+
- Git fetch is time-bounded; system/global Git config, templates, hooks, credential
|
|
1091
|
+
helpers, inherited `GIT_*` overrides, and LFS smudging are isolated. A bounded
|
|
1092
|
+
GitHub tree-API preflight must prove every blob size and a total below 100 MiB and
|
|
1093
|
+
20,000 files before checkout.
|
|
1094
|
+
- [x] `P14-03 [TERRA]` Add a human-gated catalog proposal boundary.
|
|
1095
|
+
- Blocked dossiers cannot produce proposals; platform/category/id claims are
|
|
1096
|
+
explicit; the pinned source inspection and evaluation are recomputed before
|
|
1097
|
+
admission; preview is default; approved output remains an isolated record and
|
|
1098
|
+
never mutates the catalog or installs the source.
|
|
1099
|
+
- [x] `P14-04 [TERRA]` Make signed remote catalog releases operational.
|
|
1100
|
+
- `catalog-update` accepts local files or bounded HTTPS, verifies Ed25519 signatures
|
|
1101
|
+
and complete immutable evidence, previews exact additions/updates/removals, blocks
|
|
1102
|
+
replay and implicit removals, then snapshots and atomically applies trusted state.
|
|
1103
|
+
- Apply revalidates and recomputes under an exclusive lock, pins the first signing
|
|
1104
|
+
key, preserves replay high-water across catalog rollback, and never lets unsigned
|
|
1105
|
+
cached metadata clear a signed archive decision.
|
|
1106
|
+
- Effective catalog loads re-verify the persisted envelope and merge only mutable
|
|
1107
|
+
GitHub refresh metadata over the trusted signed base.
|
|
1108
|
+
- [x] `P14-05 [TERRA]` Connect local outcomes to normal recommendations and expose
|
|
1109
|
+
adapter expansion gaps honestly.
|
|
1110
|
+
- `recommend --agent` applies capped agent/task-scoped local evidence without adding
|
|
1111
|
+
unreviewed candidates. `capabilities --gaps` lists unsupported combinations and
|
|
1112
|
+
the documentation, preservation, transaction, and smoke evidence required before
|
|
1113
|
+
support can be claimed.
|
|
1114
|
+
- [x] `P14-06 [TERRA]` Pass the full integrated gate and a live candidate dossier flow.
|
|
1115
|
+
- Required: full verify, package smoke, CLI product flow, real current-feed list, one
|
|
1116
|
+
live immutable candidate inspection, no source execution, and clean git state.
|
|
1117
|
+
- `npm run verify:full` passes 77 test files/310 tests, evidence validation, CLI
|
|
1118
|
+
product flow, package smoke, a 1,000-skill p95 of 1.54 seconds, and Playwright;
|
|
1119
|
+
the catalog carries 50 credited immutable records and the current discovery feed
|
|
1120
|
+
contains 242 validated leads. A disposable live inspection pinned
|
|
1121
|
+
`Leonxlnx/taste-skill` at commit
|
|
1122
|
+
`b17742737e796305d829b3ad39eda3add0d79060`, found 13 skills and one plugin,
|
|
1123
|
+
surfaced script/network/environment review findings and five catalog overlaps,
|
|
1124
|
+
and executed or installed none of the source.
|
|
1125
|
+
|
|
1126
|
+
### Phase 15: Stable release candidate and daily autopilot
|
|
1127
|
+
|
|
1128
|
+
- [x] `P15-01 [TERRA]` Make Stable the strongest low-risk default, not a minimal demo.
|
|
1129
|
+
- Stable now selects 30 high-value engineering, documentation, frontend,
|
|
1130
|
+
observability, performance, planning, testing, review, Git, architecture, and
|
|
1131
|
+
current-documentation skills from four immutable SPDX-identified sources.
|
|
1132
|
+
- A live Codex-targeted preparation found zero static-risk approvals, collisions,
|
|
1133
|
+
or skipped components. Power and Maximum remain broader opt-in libraries.
|
|
1134
|
+
- [x] `P15-02 [TERRA]` Separate technical screening from recommendation trust.
|
|
1135
|
+
- The catalog and coverage API expose `discovered`, `inspected`, `human-reviewed`,
|
|
1136
|
+
`benchmarked`, and `recommended` stages. The bundled release reports 50
|
|
1137
|
+
technically screened records and four recommended Stable sources without
|
|
1138
|
+
manufacturing human-review or benchmark evidence.
|
|
1139
|
+
- [x] `P15-03 [TERRA]` Correct candidate installability and runtime-tool detection.
|
|
1140
|
+
- Candidate dossiers classify `portable-components`, `explicit-runtime-setup`, or
|
|
1141
|
+
`unsupported-source-shape`. Conventional component directories accept real
|
|
1142
|
+
manifest files only, preventing nested reference folders from being mislabeled
|
|
1143
|
+
as agents; the live Graphify inspection now reports an unsupported runtime-tool
|
|
1144
|
+
shape instead of a portable agent bundle.
|
|
1145
|
+
- [x] `P15-04 [TERRA]` Add one-command daily autopilot on macOS, Linux, and Windows.
|
|
1146
|
+
- `autopilot` previews, transactionally applies, or removes both daily update and
|
|
1147
|
+
discovery schedules. Scheduled commands use the pinned npm package version and
|
|
1148
|
+
remain read-only: they never install, promote, or update content automatically.
|
|
1149
|
+
- [x] `P15-05 [TERRA]` Harden npm release metadata and trusted-publishing workflow.
|
|
1150
|
+
- The package has normalized repository metadata, Node 24/npm 11 trusted-publish
|
|
1151
|
+
tooling, full `npm run verify`, tag/version consistency, public provenance, and a
|
|
1152
|
+
first-publish token fallback.
|
|
1153
|
+
- [x] `P15-05A [TERRA]` Pass the complete local release-candidate gate.
|
|
1154
|
+
- `npm run verify` passes 79 test files/317 tests, catalog/discovery attribution,
|
|
1155
|
+
the real CLI product flow, installed npm-tarball smoke, and seven real scans of
|
|
1156
|
+
1,000 on-disk skills at a 1.29-second p95 on macOS/Node 23.
|
|
1157
|
+
- [ ] `P15-06 [HUMAN]` Approve public repository visibility, complete the six
|
|
1158
|
+
`NOASSERTION` license decisions, authenticate npm, and publish `loadout-ai`.
|
|
1159
|
+
- [x] `P15-07A [TERRA]` Run the hosted macOS/Windows/Linux Node matrix.
|
|
1160
|
+
- GitHub Actions run `29502324100` passes fast verification, dashboard browser
|
|
1161
|
+
diagnostics, and native install/package flows on Windows, macOS, and Ubuntu with
|
|
1162
|
+
Node 20 and 22. The first run exposed a Windows-only root-path test assumption;
|
|
1163
|
+
the portable regression fix passes on both Windows versions.
|
|
1164
|
+
- [ ] `P15-07B [HUMAN]` After npm publication, verify a clean external
|
|
1165
|
+
`npx loadout-ai` installation on Windows, macOS, and Linux.
|
|
1166
|
+
- [x] `P15-08 [SOL]` Implement the first bounded explicit runtime-tool recipe.
|
|
1167
|
+
- `loadout tool graphify` previews and installs Graphify 0.9.17 from an exact
|
|
1168
|
+
SHA-256-pinned PyPI wheel linked to a reviewed Git commit. It uses an isolated
|
|
1169
|
+
`uv` tool directory, fixed commands, a five-minute timeout, a credential-stripped
|
|
1170
|
+
subprocess environment, exact agent targets, version verification, generated
|
|
1171
|
+
runtime pinning, snapshots, rollback on failure, and reversible removal.
|
|
1172
|
+
- A real disposable Codex-profile exercise installed the pinned wheel, generated
|
|
1173
|
+
the skill, verified version 0.9.17 and the pinned lookup, removed it, restored the
|
|
1174
|
+
prior profile, and left no runtime or active-profile residue.
|
|
1175
|
+
- [ ] `P15-09 [SOL]` Generalize the reviewed runtime-recipe schema only as new tools
|
|
1176
|
+
earn admission. Add OS sandbox backends where available; never execute an
|
|
1177
|
+
arbitrary candidate repository installer or inherit provider credentials.
|
|
1178
|
+
|
|
1179
|
+
### Phase 16: Evidence-driven product moat and simple upgrade journey
|
|
1180
|
+
|
|
1181
|
+
Phase 16 changes the product category from “another agent package manager” into the
|
|
1182
|
+
trust, discovery, evaluation, optimization, and rollback layer above skills.sh,
|
|
1183
|
+
OpenPackage, Microsoft APM, the official MCP Registry, and raw GitHub repositories.
|
|
1184
|
+
Loadout may ingest those ecosystems as read-only evidence sources or use their
|
|
1185
|
+
declarative formats as inputs, but it must not duplicate mature dependency-manager
|
|
1186
|
+
behavior merely to increase its command or repository count.
|
|
1187
|
+
|
|
1188
|
+
#### Phase 16 model-routing and credit policy
|
|
1189
|
+
|
|
1190
|
+
- **Sol** owns ambiguous, security-sensitive, research-heavy, or product-defining
|
|
1191
|
+
work: evaluation methodology, threat models, ranking/promotion policy,
|
|
1192
|
+
compatibility semantics, runtime execution boundaries, and final integration
|
|
1193
|
+
reviews. Sol work must produce decisions, invariants, adversarial cases, or review
|
|
1194
|
+
evidence—not bulk mechanical edits.
|
|
1195
|
+
- **Terra** owns the main implementation path: CLI orchestration, connectors,
|
|
1196
|
+
schemas, state machines, transactions, provider adapters, scoring engines,
|
|
1197
|
+
cross-platform integration, and regression fixes. Terra is the default for
|
|
1198
|
+
production code with clear acceptance criteria.
|
|
1199
|
+
- **Luna** owns bounded repeatable work: fixtures, schema examples, deterministic
|
|
1200
|
+
transforms, documentation matrices, command completion, generated reports, and
|
|
1201
|
+
repetitive adapter tests. Luna output still requires Terra or Sol integration
|
|
1202
|
+
review when it affects trust, mutation, or public claims.
|
|
1203
|
+
- Prefer Standard speed. Fast mode is reserved for a submission-critical wall-clock
|
|
1204
|
+
emergency because GPT-5.6 Fast consumes credits at a higher multiplier.
|
|
1205
|
+
- Reserve at least 15% of remaining Codex credit for integration failures, founder
|
|
1206
|
+
feedback, cross-platform regressions, release review, and submission polish.
|
|
1207
|
+
- ChatGPT/Codex credit must not be represented as OpenAI API credit. A model-backed
|
|
1208
|
+
evaluation runner may be built without credentials, but paid benchmark execution
|
|
1209
|
+
requires a separately verified provider credential and explicit per-run budget.
|
|
1210
|
+
- No task may consume credit merely to exhaust the grant. Every model-backed run must
|
|
1211
|
+
have a hypothesis, maximum trials/tokens/cost, deterministic acceptance test, and
|
|
1212
|
+
persisted evidence artifact.
|
|
1213
|
+
|
|
1214
|
+
#### Product contract
|
|
1215
|
+
|
|
1216
|
+
The default journey must answer, in order:
|
|
1217
|
+
|
|
1218
|
+
1. What agents and extensions are already installed?
|
|
1219
|
+
2. Which files are owned, duplicated, stale, unsupported, or risky?
|
|
1220
|
+
3. Which reviewed additions fit this project and agent?
|
|
1221
|
+
4. Why is each addition preferred to a real alternative?
|
|
1222
|
+
5. What exact permissions and filesystem changes will occur?
|
|
1223
|
+
6. Can the complete change be restored byte-for-byte?
|
|
1224
|
+
7. Did the resulting loadout improve a measurable task outcome?
|
|
1225
|
+
|
|
1226
|
+
The intended first-run surface is one command, with advanced commands retained:
|
|
1227
|
+
|
|
1228
|
+
```text
|
|
1229
|
+
loadout upgrade
|
|
1230
|
+
-> scan
|
|
1231
|
+
-> diagnose and score
|
|
1232
|
+
-> recommend and compare
|
|
1233
|
+
-> preview permissions and exact targets
|
|
1234
|
+
-> snapshot and transactionally apply
|
|
1235
|
+
-> optimize the bounded active set
|
|
1236
|
+
-> verify health
|
|
1237
|
+
-> show an evidence-linked before/after report
|
|
1238
|
+
```
|
|
1239
|
+
|
|
1240
|
+
- [x] `P16-01 [SOL]` Specify the Loadout Evaluation Protocol v1.
|
|
1241
|
+
- Define paired baseline-versus-skill trials, pinned repositories, task families,
|
|
1242
|
+
hidden or immutable acceptance tests, randomized run ordering, minimum repeats,
|
|
1243
|
+
model/provider/version capture, temperature/reasoning capture where available,
|
|
1244
|
+
latency, tokens, reported cost, pass rate, regressions, and uncertainty.
|
|
1245
|
+
- Separate deterministic task verification from model-based judging. A model judge
|
|
1246
|
+
can annotate qualitative dimensions but cannot override a failed executable test.
|
|
1247
|
+
- Define contamination, prompt-injection, evaluator-tampering, flaky-test, timeout,
|
|
1248
|
+
and partial-result policies before executing a community skill.
|
|
1249
|
+
- Acceptance: the protocol is versioned, fixture-hash bound, reproducible, privacy
|
|
1250
|
+
bounded, and explicit about what it cannot prove.
|
|
1251
|
+
- Completed 2026-07-16 in `docs/EVALUATION_PROTOCOL_V1.md` with strict campaign and
|
|
1252
|
+
resumable-run schemas, deterministic paired scheduling, blinded order, content
|
|
1253
|
+
hashes, retry-inclusive budgets, interruption/tamper rules, privacy boundaries,
|
|
1254
|
+
and nine adversarial protocol tests.
|
|
1255
|
+
|
|
1256
|
+
- [ ] `P16-02 [TERRA]` Implement a provider-neutral benchmark run schema and budget
|
|
1257
|
+
gate.
|
|
1258
|
+
- Add exact model/provider/endpoint references without persisting secrets; store
|
|
1259
|
+
input/output token counts, latency, reported cost, exit state, fixture hash,
|
|
1260
|
+
candidate hash, agent version, and trial seed.
|
|
1261
|
+
- Require `--max-cost`, `--max-trials`, and `--approve-model-spend` before a paid
|
|
1262
|
+
runner starts. Preview must calculate the maximum possible spend and run count.
|
|
1263
|
+
- Resume an interrupted campaign without duplicating completed trials; atomically
|
|
1264
|
+
persist append-only evidence and reject edited or mismatched artifacts.
|
|
1265
|
+
- Acceptance: no API key, prompt content, project source, or credential value enters
|
|
1266
|
+
logs, lockfiles, reports, snapshots, or signed public evidence.
|
|
1267
|
+
- Engineering complete 2026-07-16: campaign/run validation, canonical hashes,
|
|
1268
|
+
deterministic recovery, worst-case budget preview, mode-0600 metadata, and
|
|
1269
|
+
`loadout benchmark plan` are implemented. The runner adds a strict JSONL hash
|
|
1270
|
+
chain, fsync, a cross-process lock, hard aggregate ceilings, retry accounting,
|
|
1271
|
+
output hashes only, tamper/torn-log rejection, and explicit interrupted-provider
|
|
1272
|
+
reconciliation. It has no default provider or secret-bearing endpoint.
|
|
1273
|
+
- Acceptance still open: a real paid-provider adapter and live reconciliation run
|
|
1274
|
+
must prove provider usage agrees with the local ceilings.
|
|
1275
|
+
|
|
1276
|
+
- [ ] `P16-03 [SOL+TERRA]` Implement the isolated paired evaluation runner.
|
|
1277
|
+
- Use disposable worktrees or copied fixtures and the strongest available local OS
|
|
1278
|
+
sandbox. Network is denied by default; any required domain is declared and
|
|
1279
|
+
separately approved. Candidate install scripts are never run implicitly.
|
|
1280
|
+
- Run baseline and candidate with identical repository bytes, acceptance tests,
|
|
1281
|
+
model settings, budgets, and tool policy; randomize ordering and record failures.
|
|
1282
|
+
- Candidate output cannot edit evaluator code, hidden tests, prior evidence, or the
|
|
1283
|
+
opposing trial. Restore or destroy the sandbox after every trial.
|
|
1284
|
+
- Acceptance: adversarial fixtures prove evaluator isolation, timeout, budget,
|
|
1285
|
+
interruption recovery, and tamper rejection on macOS, Linux, and Windows-capable
|
|
1286
|
+
fallback paths.
|
|
1287
|
+
- Engineering complete 2026-07-16: the provider-neutral runner requires injected
|
|
1288
|
+
provider/isolation executors plus explicit spend approval, randomizes deterministic
|
|
1289
|
+
pairs, pauses on unknown paid-provider state, hashes outputs, tears down every
|
|
1290
|
+
request, and selects Docker then Podman with no host fallback. Acceptance remains
|
|
1291
|
+
open for a concrete container/worktree executor and live cross-platform matrix.
|
|
1292
|
+
|
|
1293
|
+
- [ ] `P16-04 [LUNA, SOL review]` Create the first real benchmark fixture suite.
|
|
1294
|
+
- Start with planning/workflow adherence, code review, frontend accessibility,
|
|
1295
|
+
debugging, documentation freshness, API design, and safe migration tasks.
|
|
1296
|
+
- Every fixture has a pinned permissively licensed repository or synthetic source,
|
|
1297
|
+
deterministic setup, explicit acceptance criteria, expected runtime, and license.
|
|
1298
|
+
- Include negative-control skills, deliberately outdated guidance, overlapping
|
|
1299
|
+
skills, and no-skill baselines so the harness can detect zero or negative value.
|
|
1300
|
+
- Acceptance: at least five trials per compared candidate in the release evidence;
|
|
1301
|
+
fixtures themselves contain no mock performance claims or fabricated outcomes.
|
|
1302
|
+
- Engineering complete 2026-07-16: seven synthetic MIT-licensed task families plus
|
|
1303
|
+
no-skill, negative, outdated, and overlapping controls have exact file/fixture/
|
|
1304
|
+
rubric/control/suite hashes, deterministic materialization and grading, bounded
|
|
1305
|
+
cross-platform metadata, and tamper/symlink/path/inventory tests. No outcome was
|
|
1306
|
+
invented; acceptance remains open for five real paired trials per candidate.
|
|
1307
|
+
|
|
1308
|
+
- [ ] `P16-05 [SOL]` Connect benchmark evidence to trust and Stable promotion.
|
|
1309
|
+
- `benchmarked` requires signed protocol-conformant evidence; `recommended` requires
|
|
1310
|
+
human license/trust review plus no blocking security finding and meaningful gain
|
|
1311
|
+
in at least one declared task family without an unacceptable regression.
|
|
1312
|
+
- Stars, install telemetry, and popularity can prioritize evaluation but cannot
|
|
1313
|
+
establish quality. Missing evidence contributes zero rather than a neutral score.
|
|
1314
|
+
- Acceptance: catalog coverage explains every promotion/demotion and retains the
|
|
1315
|
+
prior signed evidence so a recommendation cannot silently change.
|
|
1316
|
+
- Engineering complete 2026-07-16: signed evidence validation recomputes paired
|
|
1317
|
+
task-family deltas from hash-bound completions; recommendation requires meaningful
|
|
1318
|
+
gain, no unacceptable regression, no blocking security finding, and a commit-bound
|
|
1319
|
+
signed human attestation. Hash-chained decisions retain prior evidence and demote
|
|
1320
|
+
stale revisions. Real trials and genuine human review remain external gates.
|
|
1321
|
+
|
|
1322
|
+
- [x] `P16-06 [SOL design, TERRA implementation]` Add the unified `loadout upgrade`
|
|
1323
|
+
golden path.
|
|
1324
|
+
- One preview combines scan, health, capability gaps, project signals, local
|
|
1325
|
+
outcomes, Stable/Power choices, exact alternatives, risk findings, file targets,
|
|
1326
|
+
deferred MCP/runtime steps, and the rollback point.
|
|
1327
|
+
- Apply remains explicit. It uses one durable transaction and never turns daily
|
|
1328
|
+
discovery into automatic installation. Existing unmanaged files are preserved.
|
|
1329
|
+
- Non-interactive `--json`, `--yes`, risk approval, selected-agent, and project-root
|
|
1330
|
+
behavior must be deterministic. Advanced constituent commands remain supported.
|
|
1331
|
+
- Acceptance: a new user can preview in under one minute, understand the five most
|
|
1332
|
+
important decisions, apply to a disposable profile, verify, and roll back.
|
|
1333
|
+
- Completed 2026-07-16: `loadout upgrade` combines local health, explainable
|
|
1334
|
+
scores, project signals, recommendations, immutable preparation, exact targets,
|
|
1335
|
+
collision/risk evidence, one transaction, post-apply health, JSON, selected-agent,
|
|
1336
|
+
custom-mode, and approval behavior. It includes local-outcome personalization,
|
|
1337
|
+
capability gaps, deterministic alternatives, deferred MCP/runtime actions, and a
|
|
1338
|
+
bounded-active versus disabled-library policy. A disposable network exercise
|
|
1339
|
+
installed 30 Stable skills and rolled every managed byte back; a later fresh
|
|
1340
|
+
preview again prepared all 30 without touching the real profile.
|
|
1341
|
+
|
|
1342
|
+
- [x] `P16-07 [SOL policy, TERRA implementation]` Add an explainable Agent Health
|
|
1343
|
+
Score and `loadout health --explain`.
|
|
1344
|
+
- Score only evidenced dimensions: immutable provenance, license state, safety
|
|
1345
|
+
findings, drift, duplicates, staleness, active-set capacity, native compatibility,
|
|
1346
|
+
project relevance, benchmark evidence, local outcomes, and recoverability.
|
|
1347
|
+
- Show the exact contribution, cap, evidence date, uncertainty, and remediation for
|
|
1348
|
+
every point. Never estimate a post-upgrade score from unexecuted performance.
|
|
1349
|
+
- Acceptance: deterministic fixtures cover perfect, empty, overloaded, drifted,
|
|
1350
|
+
unlicensed, incompatible, and mixed managed/unmanaged profiles.
|
|
1351
|
+
- Completed 2026-07-16: ten independently capped dimensions total 100; every
|
|
1352
|
+
dimension exposes contribution, evidence, uncertainty, remediation, and evidence
|
|
1353
|
+
coverage. Local collection uses pinned catalog/state/hash/inventory/outcome/
|
|
1354
|
+
snapshot evidence; unavailable static-risk or benchmark evidence remains unknown
|
|
1355
|
+
and earns zero. `health --explain` and upgrade before/after output share the policy.
|
|
1356
|
+
|
|
1357
|
+
- [x] `P16-08 [TERRA]` Add a read-only skills.sh discovery connector.
|
|
1358
|
+
- Ingest permitted public metadata and immutable GitHub source references; preserve
|
|
1359
|
+
source attribution, observation time, ranking meaning, and telemetry uncertainty.
|
|
1360
|
+
- Deduplicate against GitHub/Hacker News observations and the reviewed catalog.
|
|
1361
|
+
skills.sh popularity is an install signal, not safety or performance evidence.
|
|
1362
|
+
- Connector failure is partial and cannot block offline catalog use or installation.
|
|
1363
|
+
- Completed 2026-07-16 against the documented API with bounded pagination,
|
|
1364
|
+
response/time limits, attribution, rate-limit evidence, deduplication, strict
|
|
1365
|
+
schema validation, complete-cache fallback, and `discover --source skills-sh`.
|
|
1366
|
+
The current upstream contract requires a request-scoped Vercel OIDC token and
|
|
1367
|
+
exposes mutable repository identity rather than a commit, so Loadout says so and
|
|
1368
|
+
requires later immutable dossier review instead of inventing pin evidence.
|
|
1369
|
+
|
|
1370
|
+
- [x] `P16-09 [TERRA]` Add an official MCP Registry discovery connector.
|
|
1371
|
+
- Validate registry responses against a bounded schema; preserve namespace,
|
|
1372
|
+
publication version, distribution type, repository, and verification evidence.
|
|
1373
|
+
- Registry membership establishes identity/distribution evidence only. Loadout still
|
|
1374
|
+
previews credentials, permissions, transports, commands, domains, and target
|
|
1375
|
+
configurations before any MCP recipe can be admitted or applied.
|
|
1376
|
+
- Acceptance: pagination, duplicate versions, malformed records, rate limits,
|
|
1377
|
+
replay, and offline cache behavior have deterministic tests.
|
|
1378
|
+
- Completed 2026-07-16 with official v0.1 cursor pagination, bounded schemas,
|
|
1379
|
+
namespace/version/distribution/lifecycle evidence, duplicate resolution, partial
|
|
1380
|
+
results, cursor-replay defense, complete-cache fallback, and
|
|
1381
|
+
`discover --source mcp-registry`. Registry presence is never labeled popularity,
|
|
1382
|
+
safety approval, or Loadout recommendation.
|
|
1383
|
+
|
|
1384
|
+
- [x] `P16-10 [SOL design, TERRA implementation]` Treat Microsoft APM and OpenPackage
|
|
1385
|
+
as interoperable inputs rather than enemies to reimplement.
|
|
1386
|
+
- Inspect/import supported declarative manifests and lock evidence without invoking
|
|
1387
|
+
either external CLI. Map primitives loss-reportingly into Loadout capability and
|
|
1388
|
+
trust records; retain the original source and unsupported fields.
|
|
1389
|
+
- Consider an optional backend adapter only after the preview, ownership,
|
|
1390
|
+
transaction, and rollback contracts can remain true. Never claim Loadout created
|
|
1391
|
+
or independently reviewed third-party registry evidence.
|
|
1392
|
+
- Completed 2026-07-16: bounded read-only planners map Microsoft APM manifests/locks
|
|
1393
|
+
and OpenPackage manifests/workspace indexes while preserving exact bytes/SHA-256,
|
|
1394
|
+
unsupported fields, source uncertainty, and declared-but-unverified hashes.
|
|
1395
|
+
`loadout interop apm|openpackage` never invokes an external CLI, resolves a
|
|
1396
|
+
registry, writes, installs, or claims third-party review.
|
|
1397
|
+
|
|
1398
|
+
- [x] `P16-11 [SOL design, TERRA implementation]` Add agent and model compatibility
|
|
1399
|
+
intelligence.
|
|
1400
|
+
- Detect installed agent CLI/application versions using bounded read-only commands
|
|
1401
|
+
or version files with timeouts. Never start an agent session or inherit secrets.
|
|
1402
|
+
- Maintain a signed compatibility feed for path/config/format changes, deprecated
|
|
1403
|
+
surfaces, supported model/provider changes, and known recipe breakage.
|
|
1404
|
+
- Add `versions` and `compatibility` output with current version, evidence source,
|
|
1405
|
+
freshness, affected managed content, migration preview, and uncertainty.
|
|
1406
|
+
- Acceptance: fixtures cover missing binaries, prereleases, malformed output,
|
|
1407
|
+
timeouts, Windows executable resolution, offline state, and a breaking path change.
|
|
1408
|
+
- Completed 2026-07-16: `loadout versions` detects installed agent CLI versions using
|
|
1409
|
+
fixed read-only commands, a sanitized environment, five-second timeout, semantic
|
|
1410
|
+
version parsing, explicit missing/malformed/timeout evidence, prerelease
|
|
1411
|
+
uncertainty, and Windows executable resolution. Strict signed notices cover
|
|
1412
|
+
freshness/offline/stale/invalid states, version ranges, affected managed install/
|
|
1413
|
+
activation/MCP content, and approval-only migration previews. `loadout
|
|
1414
|
+
compatibility` consumes verified intelligence without mutating agent state.
|
|
1415
|
+
|
|
1416
|
+
- [ ] `P16-12 [SOL trust design, TERRA implementation]` Publish a bounded signed daily
|
|
1417
|
+
intelligence feed.
|
|
1418
|
+
- Generate discovery observations, compatibility notices, candidate inspection
|
|
1419
|
+
summaries, benchmark changes, and signed catalog-release pointers centrally.
|
|
1420
|
+
- The public feed contains no user telemetry or private repository information.
|
|
1421
|
+
Clients verify signatures, size, schema, freshness, sequence, and replay state.
|
|
1422
|
+
- Feed consumption never installs, promotes, updates, or executes a candidate.
|
|
1423
|
+
Trusted catalog membership changes only in a separately reviewed signed release.
|
|
1424
|
+
- Acceptance: local file and HTTPS preview/apply, key pinning/rotation policy,
|
|
1425
|
+
downgrade/replay rejection, stale fallback, and compromise recovery are tested.
|
|
1426
|
+
- Engineering complete 2026-07-16: strict public-only schemas, Ed25519 signing,
|
|
1427
|
+
local/HTTPS preview, bounded reads, expiry, sequence high-water marks, explicit
|
|
1428
|
+
next-key authorization, verified stale fallback, compromise reset, cache-only
|
|
1429
|
+
apply, central discovery projection, and `loadout intelligence` are tested. Apply
|
|
1430
|
+
cannot install, promote, update, or execute. Acceptance remains open until a human
|
|
1431
|
+
provisions the production signing key and public host for the daily workflow.
|
|
1432
|
+
|
|
1433
|
+
- [x] `P16-13 [SOL security design, TERRA implementation]` Upgrade skill security and
|
|
1434
|
+
specification validation.
|
|
1435
|
+
- Validate Agent Skills frontmatter, naming, size, progressive-disclosure structure,
|
|
1436
|
+
symlinks, executable files, dependencies, remote instruction loads, domains,
|
|
1437
|
+
environment references, Unicode controls, prompt-injection/exfiltration language,
|
|
1438
|
+
and capability/permission declarations.
|
|
1439
|
+
- Generate an SBOM-like inventory for executable recipes and report disagreements
|
|
1440
|
+
between deterministic and optional model-assisted scanners instead of collapsing
|
|
1441
|
+
them into an unjustified safe/unsafe label.
|
|
1442
|
+
- Acceptance: malicious and benign adversarial fixtures measure false positives and
|
|
1443
|
+
false negatives; critical findings fail closed unless a narrowly scoped explicit
|
|
1444
|
+
override is supported and recorded.
|
|
1445
|
+
- Completed 2026-07-16: `loadout skill-audit` validates Agent Skills metadata and
|
|
1446
|
+
disclosure bounds, symlinks, executables, dependencies, remote loads, domains,
|
|
1447
|
+
environment names, Unicode controls, injection/exfiltration patterns, and declared
|
|
1448
|
+
capabilities. It emits a content-hashed SBOM-like inventory and reports assisted
|
|
1449
|
+
scanner disagreement separately. Selected critical content fails closed; allowlist
|
|
1450
|
+
selection happens before validation so unselected collection bytes cannot enter or
|
|
1451
|
+
block a plan. Benign/malicious regression fixtures record expected error counts.
|
|
1452
|
+
|
|
1453
|
+
- [ ] `P16-14 [TERRA, LUNA fixtures]` Create privacy-safe viral CLI artifacts.
|
|
1454
|
+
- Add a deterministic Markdown/JSON `loadout card` with agents, active skills,
|
|
1455
|
+
provenance coverage, health dimensions, update date, and zero project paths,
|
|
1456
|
+
prompts, code, repository names from private sources, or secrets.
|
|
1457
|
+
- Add `compare-loadouts` for two explicit privacy-safe reports and a static badge
|
|
1458
|
+
endpoint specification that does not require telemetry.
|
|
1459
|
+
- Acceptance: snapshot/redaction tests and a beginner comprehension test prove that
|
|
1460
|
+
the artifact is useful without implying a universal quality score.
|
|
1461
|
+
- Engineering complete 2026-07-16: deterministic Markdown/JSON `loadout card` and aggregate-only
|
|
1462
|
+
`compare-loadouts` are implemented with redaction tests, evidence coverage, claim
|
|
1463
|
+
boundaries, and zero project/repository/path/prompt/code/credential detail. A
|
|
1464
|
+
telemetry-free Shields endpoint artifact covers evidence, active-skill,
|
|
1465
|
+
managed-package, and MCP aggregates. Only the real beginner comprehension study
|
|
1466
|
+
remains open.
|
|
1467
|
+
|
|
1468
|
+
- [ ] `P16-15 [SOL design, TERRA implementation]` Generalize reviewed runtime recipes.
|
|
1469
|
+
- Define a versioned declarative schema for exact artifacts, hashes/signatures,
|
|
1470
|
+
dependency cutoffs, permissions, sanitized environment, fixed commands, health
|
|
1471
|
+
checks, agent targets, timeouts, snapshot roots, removal, and supported OSes.
|
|
1472
|
+
- Migrate Graphify without changing its current reviewed behavior. Admit another
|
|
1473
|
+
tool only after independent usefulness, license, security, and rollback review.
|
|
1474
|
+
- Acceptance: schema validation, Graphify parity, malicious recipe rejection,
|
|
1475
|
+
Windows path behavior, failure rollback, and removal restoration pass.
|
|
1476
|
+
- Engineering complete 2026-07-16: a strict v1 schema covers exact artifacts and
|
|
1477
|
+
hashes, source/license/trust, dependency cutoffs, permissions, sanitized env,
|
|
1478
|
+
direct commands, health checks, agent targets, timeouts, snapshots/removal, and OS
|
|
1479
|
+
binaries. Graphify generates the prior exact plan/SKILL bytes; malicious recipe,
|
|
1480
|
+
plan-integrity, Windows path, rollback, and removal tests pass. An independently
|
|
1481
|
+
reviewed second tool and a live Windows install remain open.
|
|
1482
|
+
|
|
1483
|
+
- [ ] `P16-16 [TERRA implementation, LUNA fixtures]` Deepen adapters only where
|
|
1484
|
+
official documentation and user demand justify it.
|
|
1485
|
+
- Prioritize commands/agents/rules/plugins/MCP gaps for the agents actually observed
|
|
1486
|
+
in founder tests. Every claim needs source documentation, preservation fixtures,
|
|
1487
|
+
transaction coverage, and a real disposable smoke test.
|
|
1488
|
+
- Do not broaden a compatibility badge merely because a directory can be copied.
|
|
1489
|
+
- Waiting on P16-18 evidence by design: the generic capability-gap report and
|
|
1490
|
+
preservation/transaction fixtures exist, but no new adapter surface is claimed
|
|
1491
|
+
until founder demand and official documentation justify it.
|
|
1492
|
+
|
|
1493
|
+
- [x] `P16-17 [SOL]` Add a supply-chain and product claim review gate.
|
|
1494
|
+
- Verify every “best,” “safe,” “compatible,” “daily,” “official,” and “supported”
|
|
1495
|
+
statement against current stored evidence. Reject release artifacts containing
|
|
1496
|
+
stale counts, fabricated benchmark data, unreviewed licenses, or silent execution.
|
|
1497
|
+
- Produce a machine-readable release evidence index linking claims to tests,
|
|
1498
|
+
immutable sources, benchmark artifacts, and human decisions.
|
|
1499
|
+
- Completed 2026-07-16: `loadout claims` and `npm run check:evidence` emit a
|
|
1500
|
+
machine-readable six-claim index, verify catalog counts/evidence files and
|
|
1501
|
+
universal-best/no-benchmark boundaries, and reject unsupported release claims.
|
|
1502
|
+
|
|
1503
|
+
- [ ] `P16-18 [HUMAN+SOL]` Complete founder and external product validation.
|
|
1504
|
+
- Run the complete matrix first in disposable profiles, then with snapshots on the
|
|
1505
|
+
founder's real Codex and Claude installations. Record confusion and time-to-value,
|
|
1506
|
+
not only command success.
|
|
1507
|
+
- Run at least ten external sessions across beginners, power users, one/many agents,
|
|
1508
|
+
and Windows/macOS/Linux. Convert reproducible failures into regression tests.
|
|
1509
|
+
- Public beta requires zero known destructive-loss defects, successful rollback,
|
|
1510
|
+
provenance publication, license decisions, and no unsupported universal-best claim.
|
|
1511
|
+
|
|
1512
|
+
#### Phase 16 execution waves
|
|
1513
|
+
|
|
1514
|
+
Integration checkpoint 2026-07-16: the complete required gate passes 101 test files/
|
|
1515
|
+
448 tests, catalog and discovery attribution, the real CLI product flow, installed
|
|
1516
|
+
npm-tarball smoke, and seven 1,000-skill scans at a 1.27-second p95. The optional
|
|
1517
|
+
Chromium first-run test and `npm publish --dry-run` also pass. Live bounded smoke tests
|
|
1518
|
+
returned current official MCP Registry records, failed skills.sh closed without its
|
|
1519
|
+
required token, installed and rolled back all 30 Stable skills in a disposable Codex
|
|
1520
|
+
profile, and changed no real agent profile. A fresh post-security-upgrade preview
|
|
1521
|
+
prepared all 30 selected Stable directories from four immutable pins; its first run
|
|
1522
|
+
exposed and then regression-tested selection-before-validation for collection repos.
|
|
1523
|
+
|
|
1524
|
+
1. **Wave A — proof foundation:** P16-01 through P16-05.
|
|
1525
|
+
2. **Wave B — killer first run:** P16-06 and P16-07.
|
|
1526
|
+
3. **Wave C — ecosystem intelligence:** P16-08 through P16-12.
|
|
1527
|
+
4. **Wave D — trust depth and sharing:** P16-13 through P16-17.
|
|
1528
|
+
5. **Wave E — validation and release:** P16-18, P12-30 through P12-34, and P15-06/07B.
|
|
1529
|
+
|
|
1530
|
+
Work in later waves may scaffold interfaces in parallel, but public claims and
|
|
1531
|
+
recommendation promotion cannot bypass earlier evidence/trust gates. More catalog
|
|
1532
|
+
records, a new frontend, automatic candidate installation, and broad arbitrary
|
|
1533
|
+
runtime execution are explicitly lower priority than these waves.
|
|
1534
|
+
|
|
1535
|
+
## 19. Seven-day schedule
|
|
1536
|
+
|
|
1537
|
+
### Day 1: Foundation
|
|
1538
|
+
|
|
1539
|
+
- Repository, CI, schemas, fixtures, adapter contract, dashboard wireframe.
|
|
1540
|
+
- Freeze MVP decisions by end of day.
|
|
1541
|
+
|
|
1542
|
+
### Day 2: Detection and catalog
|
|
1543
|
+
|
|
1544
|
+
- Six agent detectors.
|
|
1545
|
+
- Seed catalog and conflict families.
|
|
1546
|
+
- Dashboard shell and agent status.
|
|
1547
|
+
|
|
1548
|
+
### Day 3: Installation
|
|
1549
|
+
|
|
1550
|
+
- Package parsing, cache, transaction, snapshots.
|
|
1551
|
+
- Claude and Codex skill adapters.
|
|
1552
|
+
|
|
1553
|
+
### Day 4: Breadth
|
|
1554
|
+
|
|
1555
|
+
- Remaining skill adapters.
|
|
1556
|
+
- Claude/Codex/Cursor MCP planning.
|
|
1557
|
+
- Stable and Maximum flows.
|
|
1558
|
+
|
|
1559
|
+
### Day 5: Updates and UI
|
|
1560
|
+
|
|
1561
|
+
- Update diff, sensitive-change policy, rollback.
|
|
1562
|
+
- Finish four dashboard screens.
|
|
1563
|
+
|
|
1564
|
+
### Day 6: Verification
|
|
1565
|
+
|
|
1566
|
+
- Windows/macOS/Linux tests.
|
|
1567
|
+
- Demo mode, risky update fixture, polish.
|
|
1568
|
+
- Put incomplete advanced capabilities behind explicit experimental flags; preserve
|
|
1569
|
+
their backlog and code without exposing broken paths in the judge experience.
|
|
1570
|
+
|
|
1571
|
+
### Day 7: Submission
|
|
1572
|
+
|
|
1573
|
+
- Fix only critical defects.
|
|
1574
|
+
- README, video, Devpost, feedback session ID.
|
|
1575
|
+
- Submit with several hours of buffer.
|
|
1576
|
+
|
|
1577
|
+
## 20. Definition of done
|
|
1578
|
+
|
|
1579
|
+
The MVP is done only when a judge can:
|
|
1580
|
+
|
|
1581
|
+
1. Clone the repository.
|
|
1582
|
+
2. Run documented setup successfully.
|
|
1583
|
+
3. Launch Loadout without providing an account.
|
|
1584
|
+
4. See detected agents or use isolated demo mode.
|
|
1585
|
+
5. Scan existing skills and select Stable, Maximum Library, or Custom.
|
|
1586
|
+
6. Preview exact planned changes.
|
|
1587
|
+
7. Apply a real skill to at least Claude and Codex fixtures or installations.
|
|
1588
|
+
8. Verify unrelated configuration survives.
|
|
1589
|
+
9. View an update diff.
|
|
1590
|
+
10. See a risky update blocked.
|
|
1591
|
+
11. Roll back to byte-identical prior configuration.
|
|
1592
|
+
12. Understand supported platforms and limitations from the UI and README.
|
|
1593
|
+
|
|
1594
|
+
## 21. Required tests
|
|
1595
|
+
|
|
1596
|
+
- Catalog schema validation.
|
|
1597
|
+
- Ranking determinism.
|
|
1598
|
+
- Conflict selection.
|
|
1599
|
+
- Platform path resolution.
|
|
1600
|
+
- Agent detection in fake home directories.
|
|
1601
|
+
- Existing-skill inventory, ownership, fingerprint, duplicate, and capacity reporting.
|
|
1602
|
+
- Skill parsing.
|
|
1603
|
+
- MCP parsing.
|
|
1604
|
+
- Path traversal rejection.
|
|
1605
|
+
- Escaping-symlink rejection.
|
|
1606
|
+
- Plan collision detection.
|
|
1607
|
+
- Snapshot integrity.
|
|
1608
|
+
- Interrupted transaction recovery.
|
|
1609
|
+
- Unrelated config preservation.
|
|
1610
|
+
- Idempotent second install.
|
|
1611
|
+
- Tampered cache/hash rejection.
|
|
1612
|
+
- Sensitive update classification.
|
|
1613
|
+
- Rollback byte equality.
|
|
1614
|
+
- Dashboard first-run flow.
|
|
1615
|
+
- Windows, macOS, Linux CI.
|
|
1616
|
+
|
|
1617
|
+
## 22. Demo script
|
|
1618
|
+
|
|
1619
|
+
1. Show Claude, Codex, and Cursor with inconsistent/manual setup.
|
|
1620
|
+
2. Run `npx loadout-ai` after npm publication, or `npx .` from the cloned repository.
|
|
1621
|
+
3. Run the read-only scan and show actual skills, unmanaged content, duplicates, and
|
|
1622
|
+
overloaded profiles without changing anything.
|
|
1623
|
+
4. Select Stable for daily use; show Maximum Library as an explicit stress/power-user
|
|
1624
|
+
option rather than the default.
|
|
1625
|
+
5. Review repository count, actual skill count, overlaps, deferred MCP setup, and
|
|
1626
|
+
safety findings.
|
|
1627
|
+
6. Approve; show the single-transaction success and restore point.
|
|
1628
|
+
7. Show a newly discovered Trending repository.
|
|
1629
|
+
8. Show a benign update and approve it.
|
|
1630
|
+
9. Show a second update adding a hook and external domain; Loadout blocks it.
|
|
1631
|
+
10. Trigger rollback and show restored healthy state.
|
|
1632
|
+
11. Close with supported agents, operating systems, and future catalog vision.
|
|
1633
|
+
|
|
1634
|
+
## 23. Risks and mitigations
|
|
1635
|
+
|
|
1636
|
+
### Too much platform breadth
|
|
1637
|
+
|
|
1638
|
+
Mitigation: full skill support for six; MCP only for three; mark unsupported honestly.
|
|
1639
|
+
|
|
1640
|
+
### Corrupting user configuration
|
|
1641
|
+
|
|
1642
|
+
Mitigation: plan-only adapters, snapshots, staging, validation, automatic restore,
|
|
1643
|
+
fixture-based tests, demo mode isolated from the real home directory.
|
|
1644
|
+
|
|
1645
|
+
### Supply-chain risk
|
|
1646
|
+
|
|
1647
|
+
Mitigation: curated catalog, immutable commits, hashes, no lifecycle scripts, static
|
|
1648
|
+
checks, approval for new powers, no claims that stars imply safety.
|
|
1649
|
+
|
|
1650
|
+
### Weak differentiation from OpenPackage/skills installers
|
|
1651
|
+
|
|
1652
|
+
Mitigation: lead with one-command diagnosis of what the user already has, honest
|
|
1653
|
+
provenance, evidence-backed comparison, reviewed-library versus active-set separation,
|
|
1654
|
+
project optimization, automatic discovery tiers, update explanation, and rollback.
|
|
1655
|
+
|
|
1656
|
+
### Dashboard consumes too much time
|
|
1657
|
+
|
|
1658
|
+
Mitigation: stop feature investment in the dashboard for the hackathon. The CLI is the
|
|
1659
|
+
only required surface; the existing dashboard remains optional diagnostics.
|
|
1660
|
+
|
|
1661
|
+
### GitHub API rate limits
|
|
1662
|
+
|
|
1663
|
+
Mitigation: bundled offline catalog, caching, authenticated CI bot later, graceful
|
|
1664
|
+
stale-data indicator.
|
|
1665
|
+
|
|
1666
|
+
### Team integration failure
|
|
1667
|
+
|
|
1668
|
+
Mitigation: shared schemas on day one, daily integration, ownership boundaries, CI,
|
|
1669
|
+
small PRs, no long-lived branches.
|
|
1670
|
+
|
|
1671
|
+
## 24. Git workflow
|
|
1672
|
+
|
|
1673
|
+
- Default branch: `main`.
|
|
1674
|
+
- Branches: `codex/<short-task>` or `<member>/<short-task>`.
|
|
1675
|
+
- One backlog ID per PR where practical.
|
|
1676
|
+
- PR description includes task ID, test evidence, screenshots for UI, and risks.
|
|
1677
|
+
- Rebase or update before merge.
|
|
1678
|
+
- Do not commit secrets, tokens, generated caches, or real user configuration.
|
|
1679
|
+
- Require one teammate review for core transaction/security changes.
|
|
1680
|
+
- Tag demo-ready checkpoints.
|
|
1681
|
+
|
|
1682
|
+
## 25. Immediate next tasks
|
|
1683
|
+
|
|
1684
|
+
The next engineering wave deliberately precedes npm, Devpost, and repository-visibility
|
|
1685
|
+
work. Preserve the Sol/Terra/Luna routing and credit policy above.
|
|
1686
|
+
|
|
1687
|
+
1. `P16-02/03`: add a concrete disposable fixture executor and one explicit provider
|
|
1688
|
+
adapter only after the user supplies separate API credit and approves the exact
|
|
1689
|
+
maximum spend. Run provider reconciliation and the hosted Linux/Windows matrix; do
|
|
1690
|
+
not turn Codex subscription or hackathon credit into an assumed API budget.
|
|
1691
|
+
2. `P16-04/05`: execute at least five real paired trials per compared candidate, review
|
|
1692
|
+
failures and contamination, sign the resulting evidence, and obtain genuine human
|
|
1693
|
+
license/trust approval before any `benchmarked` or `recommended` transition.
|
|
1694
|
+
3. `P16-12`: generate the production Ed25519 key outside the repository, configure the
|
|
1695
|
+
public feed location and secret-backed daily publisher, test first-pin/rotation/
|
|
1696
|
+
recovery operationally, and publish no private or unsigned artifact.
|
|
1697
|
+
4. `P16-14`: run the beginner comprehension session for card/compare/badge wording and
|
|
1698
|
+
convert every reproducible misunderstanding into a fixture or copy regression.
|
|
1699
|
+
5. `P16-15`: independently review usefulness, license, security, dependencies,
|
|
1700
|
+
Windows behavior, rollback, and removal for a second runtime tool before admission.
|
|
1701
|
+
6. `P16-16`: run founder testing first, then implement only observed adapter gaps with
|
|
1702
|
+
official-source evidence, preservation fixtures, transaction coverage, and a real
|
|
1703
|
+
disposable smoke test.
|
|
1704
|
+
7. `P16-18`: run the full founder matrix on disposable profiles before the real Codex
|
|
1705
|
+
and Claude profiles, followed by ten external sessions across experience levels and
|
|
1706
|
+
Windows/macOS/Linux. Convert reproducible failures into regression tests.
|
|
1707
|
+
8. Rerun `npm run verify`, the complete disposable feature matrix, npm dry-run, hosted
|
|
1708
|
+
cross-platform jobs, and clean external tarball installs after those external gates.
|
|
1709
|
+
9. Human release work remains last: P12-30 license decisions, P15-06 public visibility
|
|
1710
|
+
and npm publication, P15-07B clean external installs, branch protection, demo/video,
|
|
1711
|
+
feedback, Devpost fields, and final review.
|