**Bead** `97559992-a73c-47f6-89a6-6565e0c164f3` · [canonical URI](https://redfish.acequia.io/guerin/.agents/97559992-a73c-47f6-89a6-6565e0c164f3/) · discussion: Talk: Cataloging Incident This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
> What it means to *catalog an incident* — turn a folder of raw airborne fire-mapping products into a normalized, citable, browsable catalog. Human name: `cataloging-incident` (the bead's identity is its GUID; this is the friendly slug). Worked example: the **CA-SND-SORRENTO** (Sorrento) fire mission.
## Identity - **URI:** https://redfish.acequia.io/guerin/.agents/97559992-a73c-47f6-89a6-6565e0c164f3/ - **Local origin:** `sites/redfish.acequia.io/guerin/.agents/97559992-a73c-47f6-89a6-6565e0c164f3/` - **GUID:** `97559992-a73c-47f6-89a6-6565e0c164f3` - **Created:** 2026-06-11 - **Currently animated by:** Claude (CE / Claude Code extension — the bead scribe with WebDAV write authority) - **Invoked by:** Stephen (Stephen@redfish.com)
## Motivation (Why a GUID) This bead exists to work out the **incident-cataloging pattern** as a reusable capability, grounded in a single real example rather than designed in the abstract. The example is the Sorrento fire mission (`CA-SND-SORRENTO`), an AEVEX Imagery airborne mapping sortie (tail `N57B`, 2026-06-08) whose raw products were synced to [`simtable.acequia.io/incidents/CA-SND-SORRENTO/`](https://simtable.acequia.io/incidents/CA-SND-SORRENTO/) immediately before this bead opened. "Cataloging an incident" is the act of turning that **bag of files** — an MP4, a KLV telemetry sidecar, IR/HS image rasters as KMZ+PNG pairs, a heat-perimeter KML, and a vendor `mission.json` — into a **normalized catalog**: one record per product, with geometry, time, sensor, and local-file bindings resolved, so the incident becomes citable (stable URIs), browsable (an index), and queryable (a flat schema) by other agents and humans. It is the read/index half of the same resource-as-URI frame the rest of the ecology runs on (see *Related beads*).
## Mechanism (What this bead does) - **Holds the concept note** (`notes/00-incident-catalog-model.md`) — the incident → mission → product data model, the field schema, and how the Sorrento files map onto it. - **Holds the skill** (`skills/catalog-incident.md` + `catalog-incident.mjs`) — a dependency-free Node walker that reads `mission.json`, matches local product files, summarizes the KLV track, and emits a normalized `catalog.json`. - **Holds the verbatim chat** (`chats/`) as the path of light. - It does **not** own the incident data. The raw products live at the `simtable.acequia.io/incidents/` URI; this bead is the **workshop** where the cataloging capability is forged. Generated catalogs are *offered* for binding into the incidents namespace, not written there from here.
## Folder Layout ``` 97559992-a73c-47f6-89a6-6565e0c164f3/ ├── about.md # this file ├── uploads/ │ └── README.md # inbound dock └── 2026-06-11/ ├── chats/ │ └── 2026-06-11-cataloging-incident.md # verbatim session log ├── notes/ │ └── 00-incident-catalog-model.md # the data model + Sorrento mapping ├── skills/ │ ├── catalog-incident.md # skill doc │ └── catalog-incident.mjs # the walker (no deps) └── artifacts/ └── CA-SND-SORRENTO.catalog.json # generated catalog (worked example output) ```
## Session Log - **2026-06-11** — Bead opened. Pre-bead context: synced the Sorrento incident folder (11 files, 78 MB) up to `simtable.acequia.io/incidents/CA-SND-SORRENTO/`. Inspected `mission.json` (1 mission, 5 products) and the KLV sidecar (MISB-0601 packets). Wrote the catalog-model note + the `catalog-incident` skill, and ran the skill against Sorrento to produce the worked-example `catalog.json` in `artifacts/`.
## Modus Operandi (How to interact) - **Read order:** this `about.md` → `notes/00-incident-catalog-model.md` (the map) → `skills/catalog-incident.md` (the capability) → `chats/` when the note and the chat seem to disagree (the chat wins). - **New notes/skills** go under `2026-06-11/` (or a new dated folder for a later session), by kind. - **Cross-bead references** use absolute `https://` URIs. - **Do not write** into `guerin/notes/`, `guerin/skills/`, `guerin/chats/`, or into `simtable.acequia.io/incidents/**` from this bead — generated catalogs are offered, then bound by their owner.
## Capabilities - Can be cited for the **incident → mission → product** catalog model and field schema. - Ships a runnable skill that catalogs any incident folder of this AEVEX/`mission.json` shape into a normalized `catalog.json`. - Carries the Sorrento mission as a fully worked example (raw → catalog).
## Lifecycle - **Energization:** charged when another bead/app consumes the catalog model or the skill — e.g. an incident viewer, the MISB/incident-viewer repo, or a `simtable.acequia.io/incidents/` index page. - **Apoptosis:** if the catalog model is absorbed into a ratified incident schema served from the incidents namespace and nothing references this workshop, it may fade cleanly — it carries no running infrastructure.
## Limitations - The model is **reverse-engineered from one vendor's `mission.json`** (AEVEX Imagery) and one mission. Other vendors/sensors may carry different product types or field names; the schema is a starting normalization, not a ratified standard. - The skill summarizes KLV but does not re-derive geometry from raster pixels; it trusts the vendor-supplied `bbox`/centroid fields.
## Related beads - Bead protocol: [`.agents/beads.md`](https://redfish.acequia.io/guerin/.agents/beads.md). - MISB / incident viewer thread — [`reference_taosengine-docs-and-tooling`] and the incident-viewer repo (`Documents/src/incident-viewer/`): the consumer side of this catalog (MISB is one input type into a viewer; this bead is the index over the products). - Resource-as-URI frame: agent-as-file ducktyping and URI bind/mount — an incident folder is itself a resource that resolves to a catalog; the catalog is one *reading* of the namespace subtree.
See all: Beads