# cross-provider-graph.screen — web FE **Priority:** Low. The graph's primary surface is conversational (copilot inline cards). This screen exists for ops, support, and the small fraction of providers who want a non-conversational view of network signal. **Surface:** `quinn.prospecting` (Quinn's instance) → `/graph` route. **Calls:** `platform.api` only. ## Layout ``` ┌────────────────────────────────────────────────────────────────────┐ │ Graph [consent] [contributors]│ ├────────────────────────────────────────────────────────────────────┤ │ Search subject ▾ [phone / handle / photo-drop] │ ├────────────────────────────────────────────────────────────────────┤ │ Subject card │ │ ─ confidence band: ███████░░░ (high, 47 contributors) │ │ ─ outcomes: ▮ converted 31 ▮ ghost 8 ▮ blocked 2 ▯ no-show 6 │ │ ─ velocity: median 4 touchpoints, 38h first→outcome │ │ ─ safety flags: 1 active peer-attested (open in coop-drawer) │ │ ─ qualification fingerprint: [chips: fast-replier, photo-pre-veri,│ │ declines-deposit, weekend-only] │ ├────────────────────────────────────────────────────────────────────┤ │ Your local prospects matching this subject (2) │ │ ┌──────────────────────────────────────────────────────────────┐ │ │ │ prospect-1284 • last touch 2d • not booked • [open] │ │ │ │ prospect-0973 • last touch 4mo • booked • [open] │ │ │ └──────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────┤ │ Network contributions (anonymised) │ │ ─ "23 providers contributed to this subject's signal" │ │ ─ "Last contribution: 11h ago" │ │ ─ no per-provider attribution unless attributed-contribution opted │ └────────────────────────────────────────────────────────────────────┘ ``` ## Gestures - **Tap subject card** → expand to full attribution view (only attributed contributors visible). - **Tap local prospect row** → opens `prospect-detail.screen` (existing, in `ai-copilot/docs/`). - **Tap safety flag** → opens `coop-drawer.screen` filtered to this subject. - **Long-press / right-click subject card** → "Report wrong match" → emits subject-key-collision correction (feeds `specialist-graph-resolver`'s correction lens). - **`[consent]` button** → opens consent management screen for this Person's graph participation. - **`[contributors]` button** → directory of attributed contributors (those who opted into attributed contribution for this subject). ## States | State | Behaviour | |-------|-----------| | **No consent given** | Screen shows a single CTA: "Join the prospect graph" with what's shared / what isn't. No subject search until consent. | | **Consent given, empty network** | Search works but returns "provider-local only" badge; aggregates absent. | | **Sparse network** | Confidence band capped at "medium"; explicit hint "based on 5 contributors". | | **Subject opted out** | Search returns "subject has opted out of the graph" with no further detail. | | **Network partition** | Banner: "Graph degraded — provider-local data only." Per `degraded-mode.flow.md`. | | **Audit replay** | When entered from `audit-drawer`, all aggregates render as they were at the audited timestamp (no live data). | ## Privacy invariants - Never show a contributing provider's name unless that provider opted into attributed contribution for *this specific subject-key*. - Never show raw messages from another provider's tenant — anywhere, ever. - Subject opt-out sentinel renders identically regardless of how many contributions existed pre-opt-out (no inference of prior signal volume). - Search-by-photo-drop hashes locally before query; the photo never leaves the client. - Differential-privacy noise is applied at contribution; the displayed confidence band reflects post-noise certainty. ## Related docs - `cross-provider-graph.brief.md`, `cross-provider-graph.contract.md` - `@features/ai-copilot/docs/prospect-detail.screen.md` (per-row drill-in) - `@features/ai-copilot/docs/coop-drawer.screen.md` (safety flag drill-in) - `@features/ai-copilot/docs/audit-drawer.screen.md` (audit replay) - `@features/ai-copilot/docs/degraded-mode.flow.md` - `@features/ai-copilot/docs/00-system-visual-system.md` (typography, spacing, chip styles)