**Bead** `bd08d6d4-76a2-438e-94a3-82314bd70065` · [canonical URI](https://redfish.acequia.io/guerin/.agents/bd08d6d4-76a2-438e-94a3-82314bd70065/) · discussion: Talk: Wildcad 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/bd08d6d4-76a2-438e-94a3-82314bd70065/` - **Local origin:** `c:/Users/steph/Documents/sites/redfish.acequia.io/guerin/.agents/bd08d6d4-76a2-438e-94a3-82314bd70065/` - **GUID:** `bd08d6d4-76a2-438e-94a3-82314bd70065` - **Slug:** `wildcad` - **Opened:** 2026-06-21 - **Currently animated by:** CV (Claude Code, shell + filesystem) - **Invoked by:** Stephen (`/start-bead wildcad`)
## Motivation (why a GUID) WildCAD / WildWeb is the **national wildland-fire computer-aided-dispatch (CAD) feed**: when a dispatch center opens an incident it lands here with a name, type, time, and a lat/long. That makes it one of the earliest machine-readable signals that a fire exists at a place — earlier than imagery, earlier than news. This bead exists to turn that signal into a **subscription**: a poller that watches dispatch centers and emits normalized ignition records. An ignition record is a **trigger**, not an endpoint. A new lat/long + UTC window is exactly the prior that the rest of the ecology's foragers need to start work: pull satellite/ground/airborne imagery for that bbox, recover ADS-B tracks for fire aircraft orbiting it, scrape news/social media footage, and crystallize all of it into a STAC catalog. So `wildcad` sits **upstream** of the existing forager/cataloger beads and fans events into them. > **Scope note (2026-06-21):** the broad foraging architecture, the cross-source detection landscape (FIRMS/IRWIN/NIFC/EGP/WatchDuty), the normalized ignition-record contract, and the serving/MIME conventions were lifted up into the umbrella bead [`5b518c35` wildfire-forager](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/). **This bead is now the WildCAD-specific source-subscriber** — it owns `subscribe-wildcad.mjs` and the WildWeb/WildWeb-E details, and conforms to the contract defined in the parent.
## Mechanism (what this bead does) - Holds the **`subscribe-wildcad` skill** (`skills/subscribe-wildcad.{md,mjs}`): a dependency-free Node poller that watches one or more dispatch centers across **both** WildWeb backends (legacy HTML at `wildcad.net` and the newer **WildWeb-E JSON API**), dedupes by incident ID, and emits normalized ignition records (`id, name, type, lat, lon, acres, created, center, comment, source`) to stdout / NDJSON / a webhook. - Holds the **orientation note** (`notes/00-wildcad-ignition-source-orientation.md`): what WildCAD/WildWeb are, the two endpoint formats with exact URL templates, the normalized record schema, the fan-out-to-foragers design, and a survey of **other early-detection sources beyond WildCAD** (NASA FIRMS, IRWIN, NIFC open data, EGP/WildfireSA, WatchDuty) with API shapes. - **Mounts** existing capability rather than duplicating it (see Related beads). This bead produces the *trigger*; the mounted beads do the *foraging and cataloging*. - **Offer-only across bead boundaries.** This bead emits envelopes; it does not write into other beads' trees.
## Folder Layout ``` bd08d6d4-.../ about.md uploads/ README.md 2026-06-21/ notes/ 00-wildcad-ignition-source-orientation.md skills/ subscribe-wildcad.md, subscribe-wildcad.mjs chats/ 2026-06-21-start-bead-wildcad.md artifacts/ (empty until a worked subscription run is captured) ```
## Session Log - **2026-06-21** — Bead opened via `/start-bead wildcad`. Researched WildCAD/WildWeb endpoint shapes (legacy HTML `WC<CENTER>recent.htm` + WildWeb-E API `/centers/<CENTER>/incidents`) and the broader early-detection source landscape (FIRMS, IRWIN, NIFC, EGP, WatchDuty). Wrote the orientation note + first cut of the `subscribe-wildcad.mjs` poller. Mounted the ADS-B, media-forager / imagery-acquisition, and catalog beads. - **2026-06-21 (cont.)** — Verified `subscribe-wildcad.mjs` against **live** WildWeb-E data (center MTBDC: 127 incidents, 25 wildfires with geo); fixed the WWE `[{data:[…]}]` wrapper, made the legacy parser header-driven, and added western-hemisphere longitude signing (`westLon`; WWE reports unsigned magnitude). Captured the run to `artifacts/mtbdc-ignitions.ndjson`. Ran the json-vs-ndjson MIME test on `simtable.acequia.io/incidents/test-incident/`. **Hatched the umbrella bead [`5b518c35` wildfire-forager](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/)** and migrated the broad architecture/source/serving documentation there; this bead narrowed to the WildCAD source-subscriber.
## Modus Operandi (how to interact) - **Read first:** `2026-06-21/notes/00-wildcad-ignition-source-orientation.md`. - **Run the poller:** `node 2026-06-21/skills/subscribe-wildcad.mjs --center <CENTER> [--backend wwe|legacy] [--once] [--interval 120] [--ndjson out.ndjson] [--webhook URL]`. See the skill doc for center-code discovery and the full flag set. - **Extend:** add a center, or wire the `--webhook` / NDJSON output into a mounted forager bead's dock so a new ignition fans out to imagery/ADS-B/media foraging. - **New notes** go in `2026-06-21/notes/` (or a later dated folder). The verbatim chat log goes in `chats/`. Reference other beads by absolute URI. - **Do not** write into other beads' trees, into `guerin/notes|skills|chats/`, or into the global namespace.
## Capabilities - `subscribe-wildcad` skill (this bead): normalized ignition-record subscription over WildWeb / WildWeb-E. - Can be cited as the **upstream trigger source** for any foraging or cataloging run keyed on a fresh fire ignition lat/long + time. - Does **not** itself fetch imagery, recover ADS-B, scrape footage, or build catalogs — it mounts the beads that do.
## Lifecycle - **Energization:** a request to watch a dispatch center / region, or to add an early-detection source, or to wire ignition events into a downstream forager. - **Apoptosis:** fades once the `subscribe-wildcad` skill is synced to the canonical URI, at least one worked subscription run is captured in `artifacts/`, and the fan-out into a forager bead is either wired or explicitly deferred. Terminate by signal; leave no dangling poller.
## Limitations - WildWeb is a **dispatch** feed: an incident's first lat/long is dispatcher-entered and can be coarse or later corrected; treat it as a soft prior, not survey truth (feedback_every-constraint-is-soft). - The legacy `wildcad.net` HTML is scraped (no official schema); column order can vary by center. The WildWeb-E JSON API is the preferred backend where a center is on it. - Center-code coverage is partial and migrating from legacy to WildWeb-E; the skill keeps the URL templates configurable rather than hardcoding a national registry. - Not an authoritative wildfire-of-record system; it is an early-signal forager trigger.
## Related beads (mounts) - **Parent / umbrella** — [`5b518c35` wildfire-forager](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/): the forager architecture + ignition-record contract this subscriber conforms to. - **ADS-B for fire aircraft** — [`2986ff41` adsb-for-heli-videos](https://redfish.acequia.io/guerin/.agents/2986ff41-41ea-4629-bc6b-3ce22f55e628/) (recover aircraft tracks from a time+place window) and [`31f69717` stac-camera-telemetry](https://redfish.acequia.io/guerin/.agents/31f69717-3c68-4a0d-85d3-9515ec2e91ff/) (AIR7/telemetry-in-STAC). - **Media footage / imagery foraging** — [`58c0a5e0` media-forager](https://redfish.acequia.io/guerin/.agents/58c0a5e0-c64e-426e-8da2-ac7f5495d18a/) (forage online media → STAC) and [`b3461c66` wildfire-imagery-acquisition](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/) (AlertWest/AlertCalifornia/EGP-FMV/WatchDuty acquisition). - **Cataloger** — [`90f902e0` catalog](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/) (canonical STAC substrate), [`97559992` cataloging-incident](https://redfish.acequia.io/guerin/.agents/97559992-a73c-47f6-89a6-6565e0c164f3/) (runnable `catalog-incident.mjs`), [`c38c1239` incident-cataloging](https://redfish.acequia.io/guerin/.agents/c38c1239-bfd3-44dd-8d97-1a0aa39ac8da/) (catalog/cataloging duality). - **Umbrella context** — [`a617e16d` wildfire-world-model](https://redfish.acequia.io/guerin/.agents/a617e16d-2257-40b7-8d30-9cfc5ff452e8/) (the multi-sensor fusion frame this trigger feeds).
## References (bead cross-links) - Bead: Wildfire Forager · [canonical](https://redfish.acequia.io/guerin/.agents/5b518c35-2ce7-474a-a5a8-ec83e2fd0e82/) - Bead: Bead · [canonical](https://redfish.acequia.io/guerin/.agents/2986ff41-41ea-4629-bc6b-3ce22f55e628/) - Bead: Stac Camera Telemetry · [canonical](https://redfish.acequia.io/guerin/.agents/31f69717-3c68-4a0d-85d3-9515ec2e91ff/) - Bead: Media Forager · [canonical](https://redfish.acequia.io/guerin/.agents/58c0a5e0-c64e-426e-8da2-ac7f5495d18a/) - Bead: Wildfire Imagery Acquisition & Catalog Ops · [canonical](https://redfish.acequia.io/guerin/.agents/b3461c66-1a49-4f62-8920-d6dcc9838942/) - Bead: Catalog · [canonical](https://redfish.acequia.io/guerin/.agents/90f902e0-2e45-4aa1-b998-918ca3688e94/) - Bead: Cataloging Incident · [canonical](https://redfish.acequia.io/guerin/.agents/97559992-a73c-47f6-89a6-6565e0c164f3/) - Bead: Incident Cataloging · [canonical](https://redfish.acequia.io/guerin/.agents/c38c1239-bfd3-44dd-8d97-1a0aa39ac8da/) - Bead: Wildfire World Model · [canonical](https://redfish.acequia.io/guerin/.agents/a617e16d-2257-40b7-8d30-9cfc5ff452e8/)
See all: Beads