Bead: Stac Manager Nextgen

**Bead** `b73189b7-e605-4473-9789-20bcff57ba35` · [canonical URI](https://redfish.acequia.io/guerin/.agents/b73189b7-e605-4473-9789-20bcff57ba35/) · discussion: Talk: Stac Manager Nextgen This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

## Identity - **URI:** `https://redfish.acequia.io/guerin/.agents/b73189b7-e605-4473-9789-20bcff57ba35/` - **Local origin:** `c:/Users/steph/Documents/sites/redfish.acequia.io/guerin/.agents/b73189b7-e605-4473-9789-20bcff57ba35/` - **GUID:** `b73189b7-e605-4473-9789-20bcff57ba35` - **Slug:** `stac-manager-nextgen` - **Opened:** 2026-06-21 - **Currently animated by:** CV (Claude Code) - **Invoked by:** Stephen

## Motivation (why a GUID) The existing STAC viewer at `santafe.live/STAC-manager.html` proves the data pipeline but is a weak *browsing experience*: a raw comma-separated URL `<input>`, an undifferentiated layer-tree, divorced space/time, and no concept of *where a catalog lives*. Stephen's brief: **make a FUN interface for seeing our different "asset catalogs"**, treat a user's **storage locations** as a first-class concept (domain/URI *or* filesystem), and build the **next generation** under git, deploying a reference at `redfish.acequia.io/guerin/apps/` first, updating santafe.live later. This bead is the design+build workshop for that next generation. It leads with **sketches** (Buxton sketch-vs-prototype, per feedback_ux-sketch-to-foreground-questions) before committing to one design. > **Reframe (Stephen, 2026-06-21) — backing down from "a STAC manager."** STAC management is so broad that *everything* we do (spatial-temporal modeling, viz, annotation) manages STACs. The deep thread is **managing links of URIs** — the web primitive cloud services hid behind proprietary DBs/UIs. A webpage is a node of links-with-metadata; a STAC is that, formalized. So **STAC management is an emergent process of using the system, not a single app.** Debbie's position (note 03): build **3 shared primitives** — the link object, the `storage.js` driver, a channel/event bus — + a small set of `--acq-*` components, and let each thin app compose them. The one thing worth *building* is a convincing worked ROP (the Sandy-Fire plume, note 02), built as a thin client to prove the library is enough and the app is disposable. The v0 reference app is now framed as exactly that disposable demo, not "the manager."

## Naming convention (Stephen, 2026-06-21) **User-facing language is "asset catalogs"; "STAC" is the implementation/technical term.** The app titles itself "Asset Catalogs"; "STAC" appears only in code, file paths, and architecture notes. (Bead slug + repo dir keep `stac-manager` as the technical name.)

## Mechanism (what this bead does) - Holds the **design record**: a senior UX critique of the current app + **4 rough interface sketches** (foregrounding the core design forks) + a storage-locations UX sketch (`notes/00`), and the **StorageLocation / acequia-sw architecture** (`notes/01`). - Hosts the **reference build** lineage: the next-gen app is git-tracked and deployed at `redfish.acequia.io/guerin/apps/stac-manager/`; santafe.live is updated later. - **Mounts** the three load-bearing beads (below) and reuses, not reinvents: the `stac-loader.js` catalog-of-catalogs union, the `<stac-menu>`/`stac-registry.json` picker seed, and the EGP bookmarklet's storage abstraction. - Offer-only across bead boundaries.

## Folder Layout ``` b73189b7-.../ about.md uploads/README.md 2026-06-21/ notes/ 00-ux-critique-and-sketches.md 01-storage-architecture.md chats/ 2026-06-21-stac-manager-nextgen.md artifacts/ (reference app lives in the deploy dir under git, not here) ```

## Session Log - **2026-06-21** — Bead opened. Mounted `90f902e0` (catalog/STAC substrate), `b2d9f6e1` (senior-architect), `f80f1929` (geospatial-ux-ui / UX senior-designer). The UX role critiqued `santafe.live/STAC-manager.html` and produced 4 sketches + a storage-locations UX (note 00). The architect designed the StorageLocation abstraction + acequia.js/acequia-sw.js → OPFS → named-Cache data flow (note 01). Built a **v0 reference app** (Catalog Shelf home + first-class storage locations + map/timeline drill-in), git-initialized, deployed to `redfish.acequia.io/guerin/apps/stac-manager/`, seeded with the live LA-fire catalogs (alertcalifornia cameras, adsb-la-fire) + the santafe dev-STAC. - **2026-06-21 (reframe)** — Stephen reframed away from a monolithic "STAC manager": STAC management = managing links of URIs, an emergent process. Added note 02 (ROP + User Story 1: Sandy-Fire plume, composing AlertWildfire cams + MISB FMV + news-heli + v1 fire progression as soft rays) and commissioned **Debbie** (uxui-senior-designer) for note 03 (the 9 modes of STAC management; position: it's a process not an app; 3 irreducible primitives). Buxton method sourced in bead [`174efbfc`](https://redfish.acequia.io/guerin/.agents/174efbfc-d73f-4754-b138-d2cdbbefed6d/). - **2026-06-21 (mount)** — Mounted [`d2798c01` social-foraging](https://redfish.acequia.io/guerin/.agents/d2798c01-dce5-412a-8be7-b85806f72214/) as the closest wildfire-foraging / personal-cataloging peer: it owns the curation/sharing surface (personal STACs → derivative STACs by space-time + relevance → event → invite) that complements this bead's storage/browsing surface over the shared catalog substrate. Also mounted [`5b518c35` wildfire-forager](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/), the automated foraging umbrella (detection → ignition record → fan-out → catalog) that produces many of the catalogs this app browses.

## Modus Operandi (how to interact) - **Read first:** `notes/00-ux-critique-and-sketches.md` (the design forks), then `notes/01-storage-architecture.md`. - **Reference app:** local `c:/Users/steph/Documents/sites/redfish.acequia.io/guerin/apps/stac-manager/` (git repo); live at `https://redfish.acequia.io/guerin/apps/stac-manager/`. - New notes in a dated `notes/`; verbatim chat in `chats/`. Reference other beads by absolute URI; do not write into other beads' trees.

## Capabilities - The next-gen STAC-manager design record + reference build. - Cited for: how we browse multiple asset catalogs, and how storage locations (domain/URI vs FS, OPFS+Cache) work in the UI.

## Lifecycle - **Energization:** design decisions on the two open forks; build iterations; santafe.live cutover. - **Apoptosis:** when the next-gen app is the canonical STAC-manager on both redfish and santafe.live, and the storage layer is folded into acequia.js/acequia-sw.js.

## Limitations - v0 reference is a sketch-in-code, not the settled design — the two forks (catalog-first vs item-on-shared-surface; flat storage list vs composable mounts) are unresolved. - `acequia-sw.js` does not exist yet (net-new, see note 01); v0 uses direct fetch + localStorage, not the full OPFS/Cache staging.

## Related beads (mounts) - **STAC substrate** — [`90f902e0` catalog](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/) (the STAC catalog manager / duck-typing substrate this app is the UI for). - **Senior architect** — [`b2d9f6e1` senior-architect](https://redfish.acequia.io/guerin/.agents/b2d9f6e1-4c3a-4e58-8a1f-7d0c5b9e2a64/) (storage/convergence-plane architecture). - **UX/UI senior designer** — [`f80f1929` geospatial-ux-ui](https://redfish.acequia.io/guerin/.agents/f80f1929-57ee-43d6-b6c1-4ef594f5fa8e/) (shared UX grammar, design tokens, the critique + sketches). - **Storage seed** — [`35e928bc` egp-missions](https://redfish.acequia.io/guerin/.agents/35e928bc-200c-4eb7-8248-e7bca9b07859/) (the bookmarklet's basic storage picker generalized here). - **Live catalogs seeded into the app** — [`b3461c66`](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/) (alertcalifornia cameras) + [`2986ff41`](https://redfish.acequia.io/guerin/.agents/2986ff41-41ea-4629-bc6b-3ce22f55e628/) (adsb-la-fire). - **Personal/social curation peer** — [`d2798c01` social-foraging](https://redfish.acequia.io/guerin/.agents/d2798c01-dce5-412a-8be7-b85806f72214/) (the human side of the same coin: see-your-STACs, make derivative STACs by space-time + relevance, create an event, invite & share). This bead is the storage/browsing surface; `social-foraging` is the curation/sharing surface over the same catalog substrate ([`90f902e0`](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/)). Mounted 2026-06-21. - **Automated foraging umbrella** — [`5b518c35` wildfire-forager](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/) (detection source → normalized ignition record → fan-out into foragers → catalog). The upstream pipeline that *produces* many of the catalogs this app browses; `social-foraging` is its human counterpart. Mounted 2026-06-21.

## References (bead cross-links) - Bead: Bill Buxton Sketching · [canonical](https://redfish.acequia.io/guerin/.agents/174efbfc-d73f-4754-b138-d2cdbbefed6d/) - Bead: Social Foraging · [canonical](https://redfish.acequia.io/guerin/.agents/d2798c01-dce5-412a-8be7-b85806f72214/) - Bead: Wildfire Forager · [canonical](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/) - Bead: Catalog · [canonical](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/) - Bead: Senior Architect · [canonical](https://redfish.acequia.io/guerin/.agents/b2d9f6e1-4c3a-4e58-8a1f-7d0c5b9e2a64/) - Bead: Geospatial Ux Ui · [canonical](https://redfish.acequia.io/guerin/.agents/f80f1929-57ee-43d6-b6c1-4ef594f5fa8e/) - Bead: Egp Missions · [canonical](https://redfish.acequia.io/guerin/.agents/35e928bc-200c-4eb7-8248-e7bca9b07859/) - Bead: Wildfire Imagery Acquisition & Catalog Ops · [canonical](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/) - Bead: Bead · [canonical](https://redfish.acequia.io/guerin/.agents/2986ff41-41ea-4629-bc6b-3ce22f55e628/)

See all: Beads