Backup recording (PRD §16 end, §17)¶
Goal¶
Produce a ≤3 minute screen recording that mirrors demo-runbook.md so judges can watch if live Wi‑Fi or WebSocket fails.
Prereqs¶
- Successful dry-run:
make up,make demo-reset,python simulator/emit.py, approve in UI, KPIs move. - Local screen recorder with system audio off unless you add narration later (keeps file small).
Steps (v1 90s arc — keep this for exec audiences)¶
- Start stack; reset:
make demo-reset. - Open dashboard at
http://localhost:3080(Compose default) orhttp://localhost:5173(Vite dev with API on:8000). - Start recording before you run the simulator.
- Run:
COMMAND_CENTER_API=http://localhost:8000 python3 simulator/emit.pyfrom repo root (with simulator deps installed, orpip install -r simulator/requirements.txtin a venv). - Click the new recommendation card; show four reason codes; click Approve; hold on KPIs for ~3s.
- Stop recording; export H.264 MP4 (1080p or 1440p).
Steps (Part C ~3 min arc — record this for the data-eng demo)¶
The Part C arc is the headline for engineering-audience recordings. It pairs with demo-runbook.md § Part C — Live data binding arc. Pre-flight (T-5 min) per that section: refresh AWS SSO, make seed-databricks-l3 --reset, pre-warm the 3 Databricks tiles, and confirm cost_avoided_mtd: is backend: postgres in config/metric_routing.yaml.
- Start fresh:
make demo-reset+make up. Confirmcurl -sf http://localhost:8000/v1/databricks/healthreturns 200 withrows_sampled > 0. - Open dashboard at
http://localhost:3080. Confirm v1 KPI strip renders + 0 widgets in the My widgets rail. - Pre-warm (off-camera, ~30s before recording):
curl -sf -X POST http://localhost:8000/v1/widgets/<wid>/data -d '{"refresh":true}'once per Databricks-routed widget id (after building them in step 4 below) so Bedrock + the Serverless Starter warehouse are warm before the audience sees them. - Start recording. Click + Add Widget and build the three Databricks-routed tiles via the Clarifier prompts: "claim volume in the last 30 days from the Asurion l3 schema", "claims by product over the last 30 days as a bar chart from the Asurion l3 schema", "claim status mix from the Asurion l3 schema as a bar chart". Save each → confirm purple
Databricks · Xs ago ▾SourceBadge. - Build the fourth widget — the cost-avoided KPI: "Cost avoided MTD as a single KPI in dollars". Save → confirm green
Postgres · Xs agoSourceBadge (defaults to Postgres path). - Record the §C.6.1 reroute moment: open config/metric_routing.yaml in a side-by-side terminal, change
cost_avoided_mtd: backend: postgres→backend: databricks, save. In another terminal:make up(~5-7s). Click the cost-avoided tile's manual refresh button (or wait for the 60s polling tick). Tile re-renders: value drops $1.41M → ~$375k, badge flips green → purple. Click the badge to expand the generated SQL inline — show it for 3-5s. - (Optional) restore: edit YAML back to
postgres,make up, refresh. Tile flips back. Most recordings skip this step — the purple state is the headline. - Stop recording; export H.264 MP4 1080p (1440p if framerate is bandwidth-permissive).
Time-box the recording at 3 min total. The arc is paced for live narration; the recording can be silent if you'll narrate over it during playback. Trim aggressively — trim the Clarifier waiting beats (LangGraph stages take 10-30s end-to-end per widget) so the recording shows just the punchlines.
Artifact storage¶
- Default local path (gitignored):
artifacts/backup-demo.mp4— createartifacts/manually and add the file there. - Runbook pointer: add a single line to your presenter cheat sheet:
Backup video: file:///.../artifacts/backup-demo.mp4(do not commit large binaries unless your team policy allows Git LFS).
If recording fails¶
Fall back to slides + architecture diagram only, and narrate the journey from demo-runbook.md verbatim.