Portfolio
Generated
This page is generated from qa/customer/specs/portfolio.md — the source of truth. Edit the spec, not this page.
Last run: not yet recorded (run the replay suite to populate status).
Overview
The All-workspaces portfolio is the customer’s landing at / when no domain is
selected (gate semantics: memberships-without-a-selection land here, never
forbidden). It is the cross-workspace home: aggregate metrics across every member
domain (decisions made, domains live, “need a look” = held + blocked), a card per
domain (name, live version, decision count, its own four-state outcome bar, and an
attention badge with an Enter affordance), and a unified “Needs your attention” list
spanning all domains. Entering a domain re-scopes the session and reveals the four
section tabs; an attention item jumps to that decision’s deep-dive in its domain.
This spec verifies the landing’s aggregate read, the per-domain cards, and the
cross-domain attention queue. It reads the org-portfolio endpoint (/646) —
no per-domain selection required.
Preconditions
- Signed in as the seeded QA customer (see CUST-AUTH-GATING scenario 2).
- The customer’s domain is bound to a deployed world model version (seeded;
produced by the operator journey +
seed_customer_fixture), so at least one member workspace reports a live version and a decision count.
Scenarios
1. The portfolio landing renders its aggregate read
- After sign-in, stay on
/ - Expected: The portfolio landing renders the aggregate metrics tiles (Decisions made, Domains live, Need a look) — not a blank page or a bare selector.
2. A card per member workspace
- On the portfolio landing
- Expected: The workspace grid renders at least one workspace card carrying the domain name and, for a live domain, its live version and decision count.
3. The cross-workspace attention section renders
- On the portfolio landing
- Expected: The “Needs your attention” section renders — either a list of held/blocked decisions spanning domains, or an explicit “nothing needs a look” empty state.
4. Entering a domain from a card reveals the section tabs
- Click the first workspace card’s Enter affordance
- Expected: The session re-scopes into that domain and the section tabs (Overview · Decisions · Rules · Trust) become visible.
5. No internal identifiers leak into the portfolio markup
- On the portfolio landing
- Expected: No raw UUID-shaped internal id (domain id, decision id) appears as visible text in the portfolio surface — identifiers are masked per the customer convention.
6. Alpha-preview footer on the portfolio
- On the portfolio landing
- Expected: The non-dismissible alpha-preview footer is present.
Test Data
| Label | Value | Notes |
|---|---|---|
| Deployed world | (bound via seed_customer_fixture) | Customer domain → deployed version; drives a live card + decision count |