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-9bin 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.ymldispatch producing a sha-tagged image so merged UI work is walkable viaUI_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).