Skip to content

Phase 11 — Showcase

Defined 2026-08-24 at the goal reset (plan.md). Serves Goal C: the three showcase-script.md moments get their "wow layer". UI-led — the first phase split primarily in the climate-lama-ui repo — with a small set of backbone support features.

Ground truth (verified 2026-08-24): v1 of every moment already exists (/lookup, /portfolios/:id, /matrix + /agreement + /compare); most upgrades are UI wiring over API parameters the backbone already accepts.

Workstreams

Citizen (/lookup) — all UI-only: scenario/horizon toggle on the lookup; hazard COG overlay behind the pin (LayerPanel pattern from the Dashboard); risk-over-time mini-chart across horizons; shareable permalink (pin + settings in the URL); responsive/phone pass.

Already split (2026-08-24): the UI milestone "Phase 9b -- Risk Lookup revamp" (ui#175–ui#187, label milestone:phase-9b, split concurrently with the goal reset) IS this workstream's first wave — card anatomy, URL state, responsive, answer cell, raster overlay (ui#186, blocked on backbone #964 + #965, both homed to this phase's milestone). Build it via /phase-build phase-9b in the UI repo; don't re-split the citizen scope.

Insurer (/portfolios): portfolio asset map (UI); scenario/horizon toggle on the rollup (UI); real list metrics replacing the em-dash placeholders (UI + possibly a list-with-metrics endpoint); compute-on-portfolio — an async compute job addressed by portfolio_id producing portfolio EAD/AAI + frequency curve (backbone: the one new compute feature; today compute.py only takes exposure_dataset_id); portfolio report download (UI + report endpoint wiring).

Scientist (/matrix, /compare): scenario × horizon heatmap grid + per-cell drill-in (UI); saved/recallable matrix batches (UI + batch-list endpoint if missing); /compare nav entry (UI); per-result CSV/PDF export wiring on active surfaces (UI — the ExportButton exists, wired only into the parked Wizard).

Existing epic #367 (insurer portfolio workbench) is the parent of the insurer workstream — the split folds it in rather than duplicating it.

Prerequisites (before the first UI wave)

  • Phase 10 exit (the walk exists; UI verifies against real bootstrap, not demo scaffolding).
  • UI verification posture: a debounced UI trunk gate per wave + the same-files-isolated vitest rule pre-merge (the UI repo currently has no merge-time gate at all), and an on-demand publish.yml dispatch producing a sha-tagged image so merged UI work is walkable via UI_TAG=sha-<short> in compose without cutting a release.

Exit criteria

Each moment's Phase-11 target steps in showcase-script.md flip to live, demonstrated by walking the script against a compose stack (backbone trunk + sha-tagged UI).