# auto-qualify-draft.brief **Subfeature of:** `prospecting` **Code-name:** `auto-qualify-draft` **Specialist:** `specialist-auto-qualify` **Status:** P5, ships first alongside `cross-provider-graph`. The primary free-time lever. ## Problem Every inbound prospect costs a provider 30–90 seconds before they've decided whether to engage: read the message, infer who this is, check whether they've talked before, write a reply that's either a brush-off or a qualifying question. Multiplied across a workday this is the single biggest sink of attention. ## Solution For every inbound message that creates or touches a prospect, `specialist-auto-qualify` does three things in parallel within 5 seconds: 1. **Score** — produces a calibrated qualification probability (will-book × good-fit) using the cross-provider graph fingerprint when available, plus provider-local signal. 2. **Classify** — assigns an action class: `auto-decline-soft`, `triage`, `engage-now`, `engage-priority`. Classes drive both UI surfacing and draft tone. 3. **Draft** — composes a reply tuned to the action class and the provider's voice (per `00-system-voice.md`). The draft is one-tap approve / one-edit ship. The provider's interaction reduces to: glance at the draft, tap **send** (or **edit**, or **decline**). Provider time per prospect drops from 30–90s to ~5s for high-confidence cases. ## States 1. **No graph signal (cold).** Specialist scores from provider-local data only; draft is conservative (qualifying question, not commitment). 2. **Graph signal available.** Draft can reference network-known prefs (without exposing them in user-visible text — e.g., if the prospect typically prefers weekend bookings, the draft proposes weekend slots first). 3. **High-confidence good-fit.** Draft is a commitment-level reply (proposes time, asks for the qualifying detail the provider needs). Surfaces under `engage-priority`. 4. **High-confidence bad-fit / soft-decline.** Draft is a polite redirect. Surfaces under `auto-decline-soft`; provider one-tap-sends. 5. **Coop safety flag on subject.** Draft is suppressed entirely; the message is routed to `K-safety-blocklist` review surface instead. No auto-engagement. 6. **Audit replay.** Provider can replay why the draft proposed what it proposed (which signals fed it). ## Constraints - **Never auto-send.** A draft is a draft; the human tap is the send. Hard rule, matches the warm-intros human-on-the-loop principle. - **Draft attribution is transparent.** The composing copilot surfaces a one-line "why this draft" rationale under every surfaced draft; tap expands to full reasoning. - **Voice fidelity.** Drafts must match the provider's voice (vocab, formality, signature patterns) per `specialist-ai-copilot.contract.md` + `00-system-voice.md`. A draft that reads as "AI-generic" is a defect. - **Correction-fed.** Every send / edit / decline / suppress is a labeled correction for `mcp__quinn-prospector__*`. The model improves per-provider over time. - **Latency budget: 5s p95.** Above that, surface a partial response (score + class but no draft) rather than block the inbox. - **No PII leakage through drafts.** Drafts never quote another provider's content, never name a peer, never reference graph contributors. ## Related docs - `prospecting.brief.md`, `cross-provider-graph.brief.md` - `auto-qualify-draft.contract.md`, `auto-qualify-draft.screen.md` - `@features/ai-copilot/docs/specialist-triage.contract.md` (the existing auto-responder; this specialist is its successor at the qualification layer — triage routes, auto-qualify scores+drafts) - `@features/ai-copilot/docs/specialist-prospect-resolver.contract.md` (row-level dedup; runs before auto-qualify) - `@features/ai-copilot/docs/00-system-voice.md` (draft voice rules) - `@features/ai-copilot/docs/K-safety-blocklist.brief.md` (suppression path) - `@features/ai-copilot/docs/approval-card.screen.md` (the existing one-tap-approve primitive)