Worker Portal Screenshots
On this page
This page is the on-ramp for new contributors and reviewers who haven’t spun up devstack. Each screenshot below is captured from the live worker portal via Playwright, against the deterministic seed (cargo xtask seed --households 50 --seed 42), so what you see here is what a caseworker sees after login.
Refreshing the screenshots
# 1. Bring up devstack and seed it.
cargo xtask dev start
cargo xtask seed --households 50 --seed 42
# 2. Capture + copy into the Antora assets dir.
cargo xtask docs screenshots
The capture spec lives at tests/e2e/specs/screenshots.spec.ts; the canonical filename list is EXPECTED_SCREENSHOTS in xtask/src/cmd/docs.rs::run_screenshots. Adding a new module screenshot needs an edit in both places — the xtask command warns when an expected PNG is missing.
Dashboard
The dashboard surfaces four aggregate stat cards (Pending Applications, Renewals Due, Appeals Pending, Interim Contacts Due) plus per-program case-count cards (one per configured program service — #393). Each program card is a deep-link into /cases?program=<slug>.
Case Search
Live htmx search across seeded households. The search field debounces input and renders results inline; clicking a row opens the case detail.
Case Detail (SNAP)
Per-household case view with program selector across the top (SNAP / TANF / Medicaid / CAPS / WIC / All Programs — the last from #394). The six htmx tabs (Household, Income, Determination, Notices, Appeals, Activity) plus program-specific extras (ABAWD on SNAP, Work Requirements on TANF, etc.) render below the case summary bar.
Case Detail (Cross-Program Summary)
The ?program=all short-circuit renders a matrix of program × status × last-determination-date with deep-links into each program’s own tab view. Programs whose service is unconfigured render as "Not configured" rather than being hidden so the matrix stays visually consistent.
Appeals Queue
Active appeals with their PAMMS 1525 / 7 CFR 273.15 90-day decision clocks; rows close to the deadline render with the approaching badge (shared.timing.approaching_deadline_warning_days).
Notices Queue
Generated NOAs (Notice of Action) awaiting review or already mailed. PDFs are rendered by canopy-typst and stored in S3-compatible object storage (Garage in devstack).
Design reference
For per-module Mermaid layout diagrams + Orchard color-token annotations, see Worker Portal Design Mockups (#420). This screenshots page shows the live UI; the mockups page shows the structural intent.