Skip to content

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

  1. Successful dry-run: make up, make demo-reset, python simulator/emit.py, approve in UI, KPIs move.
  2. Local screen recorder with system audio off unless you add narration later (keeps file small).

Steps (v1 90s arc — keep this for exec audiences)

  1. Start stack; reset: make demo-reset.
  2. Open dashboard at http://localhost:3080 (Compose default) or http://localhost:5173 (Vite dev with API on :8000).
  3. Start recording before you run the simulator.
  4. Run: COMMAND_CENTER_API=http://localhost:8000 python3 simulator/emit.py from repo root (with simulator deps installed, or pip install -r simulator/requirements.txt in a venv).
  5. Click the new recommendation card; show four reason codes; click Approve; hold on KPIs for ~3s.
  6. 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.

  1. Start fresh: make demo-reset + make up. Confirm curl -sf http://localhost:8000/v1/databricks/health returns 200 with rows_sampled > 0.
  2. Open dashboard at http://localhost:3080. Confirm v1 KPI strip renders + 0 widgets in the My widgets rail.
  3. 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.
  4. 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.
  5. Build the fourth widget — the cost-avoided KPI: "Cost avoided MTD as a single KPI in dollars". Save → confirm green Postgres · Xs ago SourceBadge (defaults to Postgres path).
  6. Record the §C.6.1 reroute moment: open config/metric_routing.yaml in a side-by-side terminal, change cost_avoided_mtd: backend: postgresbackend: 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.
  7. (Optional) restore: edit YAML back to postgres, make up, refresh. Tile flips back. Most recordings skip this step — the purple state is the headline.
  8. 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 — create artifacts/ 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.