The sphere admin tool is a catalog manager (2026-06-11) (Snow Globe Harvard Spheres)

**Note** from Bead: Snow Globe Harvard Spheres · [canonical source](https://redfish.acequia.io/guerin/.agents/6a8f0a99-c255-4a5c-9c4a-9097d0ee9cd8/2026-06-11/notes/05-sphere-admin-as-catalog-manager.md) · session 2026-06-11 · discussion: Talk: Snow Globe Harvard Spheres

Stephen's directive: *mount beads that have to do with catalog and cataloging — your admin tool is a catalog manager.* Mount table: [namespace.json](../../namespace.json); local names: [names.json](../../names.json). This note reads the sphere CMS through the mounted catalog frame.

## The recognition The sphere "CMS" surveyed in [00-sphere-namespace-survey.md](00-sphere-namespace-survey.md) is not a one-off — it is an *instance* of the catalog/cataloging model worked out in incident-cataloging and catalog: | Sphere CMS | Catalog frame | |---|---| | `playlists/items/<id>.json` (type, url, thumbnail, duration, credits) | **Catalog Item** — typed entry with assets (content URL + thumbnail) and properties | | `media/` | Asset store | | `playlists/approved/<id>.json` (ordered itemId list + per-entry durations) | **Collection / sequence** — a *composition* of Items | | `active/current.json` | **Binding** of one collection to one display resource (the globe) | | propose → admin approve | The **cataloging verb's governance lane** (who may connect what) | | `sphere-admin.html` | **Catalog manager** — same role as `santafe-live-catalog-manager.md` in incident-cataloging's artifacts | | `sphere-viewer.html` | One **consumer/projection** of the catalog | And the playlist itself is *cataloging-as-a-verb* in miniature: composing and sequencing layers onto a display over time — exactly the "connect/compose/subscribe" dual of catalog-search that catalog records (`search ↦ subscribe`, `GET ↦ observe`).

## What the catalog frame fixes that the audit found The [flow audit](03-controller-flow-audit.md) bugs are *catalog-schema problems*, and the catalog model already has their answers: - **`status:"pending"` baked into the record** (audit #1) — the catalog model says status is **location in the tree** (`items-proposed/` vs `items/`), not a field that must be remembered and stripped. Drop the field; the bug class disappears. This is the same lesson as `catalog-schema-drift.md` in incident-cataloging. - **`src` vs `url` mismatch** (audit #2) — schema drift between producer and approver, the precise failure mode the view/controller-agnostic *format* exists to prevent: one schema, one content pointer. - **GET+PUT+DELETE promote** (audit #10) — catalog ops (catalog-ops territory) on a WebDAV store should be `MOVE`: atomic re-cataloging, not copy-out/copy-in.

## Where this should go (design direction, not tasked) 1. **Sphere items become STAC Items.** Per catalog's decision, don't reinvent: item → STAC Item (`assets: {content, thumbnail}`, `properties: {duration, credits, …}`), playlist → a sequence-bearing Collection. The **`companion` field ([02-companion-controller-protocol.md](02-companion-controller-protocol.md)) is a small STAC extension** — an Item declaring its control affordances, structurally parallel to the FMV pose-stream extension catalog is defining. A snow-globe Item's assets naturally extend to `{splat, glb, sdf-config}`. 2. **The sphere viewer becomes another duck-typed projection target.** catalog's whole point: one canonical catalog, each viewer sees its expected layout as a projection. `viewer-3d`, `taos-misb`, `alertLive`, `santafe.live` — and now the sphere. The sphere's playlist tree would be a *projection* of the canonical catalog, not a parallel store. 3. **Incident content on the globe falls out.** Once both speak the same catalog: a Sorrento IR raster (cataloging-incident), a fire-progression layer, or a 3DGS capture is just an Item whose assets the snow-globe/equirect renderers can consume. The snow globe becomes a *consumer* in the same pipeline that incident-viewer-app consumes — globe and TaosEngine as sibling projections of one catalog.

## Provenance of the mount Read set mounted per the proposed [bead-mount protocol](bead-mount-skill): `incident-cataloging` (priority source), then `catalog`, `cataloging-incident`, `catalog-ops`, `incident-viewer-app`; this bead is the sole create target. incident-viewer-app is the worked precedent — a bead born as the write target of exactly this kind of union.