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

3.9 KiB
Raw Blame 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.
  • 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)