cocottetech/@platform/codebase/@features/prospecting/docs/auto-qualify-draft.screen.md

5.8 KiB

auto-qualify-draft.screen — web FE

Priority: Low. The primary surface is the existing inline approval-card (in chat/voice). This screen exists for batch-review and policy tuning.

Surface: quinn.prospecting/auto-qualify route. Calls: platform.api only.

Layout — batch inbox

┌────────────────────────────────────────────────────────────────────┐
│  Auto-qualify queue            [class ▾]  [confidence ▾]  [policy]  │
├────────────────────────────────────────────────────────────────────┤
│  engage-priority   (5)                                              │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │ prospect-2014  • score 0.86  • graph: high-rep returning      │  │
│  │ inbound: "Hi, available Sat evening?"                         │  │
│  │ draft:   "Yes — 8pm or 10pm Sat. Same arrangements as last?"  │  │
│  │ why this draft  ▾                                              │  │
│  │   • graph fingerprint: weekend-only, returning, pre-verified  │  │
│  │   • local touchpoint: 3 prior, last conversion 6w ago         │  │
│  │   • calendar: Sat 8pm + 10pm currently open                   │  │
│  │ [send]  [edit]  [decline]  [wrong score]                       │  │
│  └──────────────────────────────────────────────────────────────┘  │
├────────────────────────────────────────────────────────────────────┤
│  engage-now        (11)        triage     (4)                       │
│  auto-decline-soft (3, 2 already approved-sent)                     │
└────────────────────────────────────────────────────────────────────┘

Layout — policy editor

┌────────────────────────────────────────────────────────────────────┐
│  Auto-qualify policy                                                │
├────────────────────────────────────────────────────────────────────┤
│  Qualifying questions I always need:                                │
│   [photo / age verification] [budget] [time window]    [add+]      │
│  Voice profile:        [calibrating · 32/50 sends]  [retrain]      │
│  Class thresholds:                                                  │
│   engage-priority   ≥ [0.75]                                        │
│   engage-now        ≥ [0.50]                                        │
│   triage            ≥ [0.25]                                        │
│   auto-decline-soft <   0.25                                        │
│  Graph dependency: [allow] / [require] / [ignore]                   │
└────────────────────────────────────────────────────────────────────┘

Gestures

  • Tap [send] → submits draft as-is (positive label).
  • Tap [edit] → opens inline editor; edit-and-send records the diff as a correction.
  • Tap [decline] → record class override; surfaces a class-correction prompt.
  • Tap [wrong score] → score correction with reason picker.
  • Tap why this draft ▾ → expands feature provenance (per qualify_replay).
  • Long-press class header → bulk action ("send all in this class as-drafted") for high-trust periods. Requires per-session re-consent; never persistent.

States

State Behaviour
Cold voice profile Draft cards carry an explicit "voice calibrating" badge. Conservative defaults.
Graph offline Cards show "graph offline" badge; scores rendered with widened error bars.
Safety-flagged touchpoint Does not appear in this queue at all; routed to K-safety-blocklist.
Score-only (latency breach) Card renders without a draft; provider sees score+class and must compose manually.
Audit replay Per-card replay shows feature provenance as of the original score timestamp.
Bulk-send mode A persistent banner names the active bulk session and offers one-tap cancel; bulk auto-revokes after 10 minutes.

Privacy invariants

  • "Why this draft" never names a graph contributor.
  • Drafts never quote another provider's content; the editor cannot paste cross-tenant text.
  • Bulk-send is gated; never sticky across sessions.
  • Voice-profile retraining uses only the provider's own past sent messages; never cross-tenant.
  • auto-qualify-draft.brief.md, auto-qualify-draft.contract.md
  • @features/ai-copilot/docs/approval-card.screen.md (the primary inline surface)
  • @features/ai-copilot/docs/chat-home.screen.md (conversational entry point)
  • @features/ai-copilot/docs/00-system-voice.md
  • @features/ai-copilot/docs/K-safety-blocklist.brief.md