openspec/changes/archive/2026-09-10-add-cartridge-model/proposal.md
add-cartridge-model
ACTIVE BUILD
Rigor: architecture
Why
Named modes already pick one extra and unload the rest. The operator
wants to slot models and plugins like game carts. Without a catalog of
costs and shelves, a packer cannot refuse an illegal seat, and /bay cannot draw the board.
What
- ADD capability
cartridge-runtime - Catalog JSON: id, kind (model|plugin), shelf, costs per box, exclusive tags
- Named modes are preset arrays of cartridge ids
- Envelope id parameterizes the pack target (live brick vs T4000 second scale)
- Names from web3d-space MODELS.md / MODES.md; 3090 FACT costs from this repo
Impact
- Capabilities: ADDED
cartridge-runtime - ADRs: none yet (shape is a catalog + later packer; ARCHITECTURE.md still empty)
User journey & surfaces
No new UI because the slot board is add-cartridge-glass on /bay. This
change is the catalog contract the packer and glass will read. A filmmaker
on /bay later seats a cart; bounce is add-cartridge-pack.
Out of scope
- Binpacker algorithm (
add-cartridge-pack) - 3090 loader (
add-3090-cartridge-load) - Slot-board glass (
add-cartridge-glass) - Qwen3.5-9B install on fractal1
- Forking product ground out of web3d-space MODELS.md / MODES.md