3.9 KiB
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:
- Score — produces a calibrated qualification probability (will-book × good-fit) using the cross-provider graph fingerprint when available, plus provider-local signal.
- Classify — assigns an action class:
auto-decline-soft,triage,engage-now,engage-priority. Classes drive both UI surfacing and draft tone. - 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
- No graph signal (cold). Specialist scores from provider-local data only; draft is conservative (qualifying question, not commitment).
- 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).
- High-confidence good-fit. Draft is a commitment-level reply (proposes time, asks for the qualifying detail the provider needs). Surfaces under
engage-priority. - High-confidence bad-fit / soft-decline. Draft is a polite redirect. Surfaces under
auto-decline-soft; provider one-tap-sends. - Coop safety flag on subject. Draft is suppressed entirely; the message is routed to
K-safety-blocklistreview surface instead. No auto-engagement. - 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.mdauto-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)