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

49 lines
3.9 KiB
Markdown
Raw Normal View History

# 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 3090 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 3090s 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)