prd-v08-marketing-ops-handoff

$npx mdskill add mattgierhart/PRD-driven-context-engineering/prd-v08-marketing-ops-handoff

Position in workflow: v0.8 Monitoring Setup → **v0.8 Marketing-Ops Handoff** → v0.9 Launch Channels (ORB), v0.9 Cold Outreach

SKILL.md
.github/skills/prd-v08-marketing-ops-handoffView on GitHub ↗
---
name: prd-v08-marketing-ops-handoff
description: >
  Define lifecycle stages and marketing → sales / CSM handoff rules for leads captured by GTM
  channels during PRD v0.8 Deployment & Ops. Triggers on requests to set up lead lifecycle,
  define MQL/SQL criteria, build handoff process, or when user asks "what's an MQL?",
  "marketing to sales handoff", "lead lifecycle", "lead routing", "RevOps", "MOPS", "marketing
  operations". Outputs BR-MOPS-* lifecycle rules and GTM-MOPS-* handoff flow entries.
context: fork
allowed-tools:
  - Read
  - Write
  - Edit
  - Glob
  - Grep

execution_modes:
  default: standard
  supports: [quick, standard, deep]
---

# Marketing-Ops Handoff (Lead Lifecycle + Sales Routing)

Position in workflow: v0.8 Monitoring Setup → **v0.8 Marketing-Ops Handoff** → v0.9 Launch Channels (ORB), v0.9 Cold Outreach

## Execution Mode

Default is **standard**. See [`.claude/rules/08-skill-execution-modes.md`](../../rules/08-skill-execution-modes.md) for selection logic.

| Mode | What this skill produces |
|------|--------------------------|
| **quick** | 3-stage lifecycle (Anonymous → Lead → Customer); single handoff rule; SLA per stage |
| **standard** | Full 5-stage lifecycle (Anonymous → MQL → SQL → Opportunity → Customer); entry/exit criteria; handoff payload spec; SLAs |
| **deep** | Full lifecycle + per-segment routing (by ICP / region / size); scoring model; rejection-loop rules; SLA monitoring + escalation |

## What This Does

Defines the **lifecycle stages** a lead passes through from first touch to customer (or churn), plus the **handoff rules** at each transition. Without this, marketing-captured leads get dropped, double-worked, or never followed up. With this, you have an auditable definition of who owns what at each moment.

This skill applies primarily to B2B and prosumer products with a human-touch sales motion (founder-led sales, BDR/SDR teams, customer-success-led expansion). Pure self-serve products use a simpler version: lifecycle = Anonymous → Trial → Paid, with no human handoff.

## How It Works

1. **Pick the lifecycle shape** — Match the product:
   - **Self-serve**: Anonymous → Signup → Activated → Paid → Expanded
   - **Sales-assisted**: Anonymous → MQL → SQL → Opportunity → Customer
   - **Hybrid (PLG + Sales)**: Anonymous → Signup → Activated → Paid → SQL → Opportunity → Expansion
2. **Define entry criteria per stage** — What event/behavior moves a lead into this stage? Examples:
   - MQL: filled out a high-intent form, downloaded gated content, hit usage threshold
   - SQL: explicit "talk to sales" or scoring threshold reached
   - Opportunity: discovery call held, budget + authority confirmed
3. **Define exit criteria per stage** — Two paths out: progress (to next stage) and disqualify (back to nurture or out). Disqualification rules matter as much as progression.
4. **Map ownership** — Who owns the lead at each stage:
   - Anonymous: marketing automation
   - MQL: BDR/SDR
   - SQL: AE / founder
   - Opportunity: AE / founder
   - Customer: CS / founder
5. **Define handoff payload** — When a lead moves between owners, what context goes with them? At minimum:
   - Source (which GTM-* channel produced this lead)
   - Touchpoint history (what they've engaged with)
   - Best-fit signals (firmographic match, behavioral fit)
   - Disqualifiers (anything that ruled out an earlier stage)
   - Open questions (what the next owner should clarify)
6. **Set SLAs per stage** — How fast must the new owner respond after handoff? MQL → BDR typically <1 business hour for high-signal, <1 business day for low-signal. SQL → AE typically <30 minutes.
7. **Plan rejection routing** — When SQL → AE handoff is rejected ("not a fit"), where does the lead go? Back to nurture, disqualified, requeued? Without this rule, leads die in limbo.

## Example

B2B SaaS, $200/month entry price, sales-assisted motion.

| Stage | Entry criteria | Exit criteria | Owner | SLA |
|-------|----------------|---------------|-------|-----|
| Anonymous | Any first touch | Filled form OR signed up | Marketing | n/a |
| MQL | Filled high-intent form (demo request, pricing page) | BDR qualifies in OR disqualifies | BDR | 1 business hour |
| SQL | BDR confirms fit + intent | AE accepts OR rejects | BDR → AE | 30 min |
| Opportunity | AE held discovery, budget + authority confirmed | Closed-won OR closed-lost | AE | 24 hr per touch |
| Customer | Closed-won contract signed | Churn OR expand | CS | Onboarding kickoff <1 business day |

Handoff payload at MQL → SQL (BDR → AE):
- Source: GTM-002 (Product Hunt) + retargeting
- Touchpoints: 3 blog posts, demo video, pricing page (3×)
- Best-fit signals: 50-person SaaS (matches PER-001), VP Eng signed up
- Disqualifiers: none
- Open questions: confirm budget owner; confirm timeline

Rejection routing at SQL → AE rejection ("too small"): lead returns to MQL queue with "small-team" tag; BDR can re-engage in 90 days if size signal changes.

## What You Get Back

- **BR-MOPS-\* lifecycle rule entries** — One per stage with entry/exit/owner/SLA
- **GTM-MOPS-\* handoff flow entries** — One per transition (MQL→SQL, SQL→OPP, etc.) with payload spec
- **Rejection-routing rules** — Disqualifier-aware routing back to nurture
- **SLA monitoring plan** — Hooks into MON-DRIFT-* for SLA drift watching

## When to Use It

| Trigger | Mode |
|---------|------|
| B2B / sales-assisted product, pre-launch | standard |
| Hybrid PLG + Sales motion | deep |
| Pure self-serve consumer product | **skip** — overkill |
| Adding human sales to existing self-serve | standard |
| Sales velocity issues (leads dying in queue) | deep (rebuild with SLAs) |
| Pre-Series A audit (investor wants to see process) | deep |

## Consumes

- **PER-\* best-fit characteristics** (sharpened by v0.9 Positioning when available) — Defines what fit-signal scoring looks like
- **GTM-\* channel mix** (from v0.9 Launch Channels ORB, when available) — Lead sources feed into Anonymous stage
- **GTM-\* offer card** (from v0.9 Offer Construction) — Determines what "qualified" means (price tier sets bar)
- **BR-PRICING-\*** (from v0.3 + v0.9) — Sets stage thresholds (above $X/year → SQL; below → self-serve)
- **KPI-\* baseline targets** — Stage conversion targets feed into KPI- entries

> When this skill runs before v0.9, channel and offer references use placeholders that get reconciled when v0.9 finalizes.

## Produces

- **BR-MOPS-\* entries** (lifecycle stage rules) in `SoT/SoT.BUSINESS_RULES.md`
- **GTM-MOPS-\* entries** (handoff flow specs) — One per stage transition
- **CFD-\* gaps surfaced** — When stage criteria can't be cleanly defined, log as research gap

## Output Template

```
BR-MOPS-XXX: Lifecycle Stage — [Stage name]
Type: Lifecycle-Stage
Order: [#]
Status: Active

Stage: [Anonymous | Signup | Activated | MQL | SQL | Opportunity | Customer | Expansion]

Entry criteria:
  - [Criterion 1 — e.g., "Filled out demo request form"]
  - [Criterion 2 — e.g., "Reached usage threshold X"]

Exit criteria (progression):
  - To [next stage]: [Criterion]

Exit criteria (disqualification):
  - [Criterion that routes back to earlier stage or out]

Owner: [Marketing automation | BDR/SDR | AE | CS | Founder]

SLA:
  Response time after entering this stage: [duration]
  Escalation: [What happens if SLA missed]

Linked IDs: PER-XXX (fit signals), GTM-YYY (source channels), BR-PRICING-ZZZ (tier threshold), KPI-AAA (conversion rate)
```

```
GTM-MOPS-XXX: Handoff — [Stage A] → [Stage B]
Type: Handoff
Status: Active

From: [Stage A] (owner: ...)
To: [Stage B] (owner: ...)

Trigger: [Specific event — e.g., "BDR marks lead as Qualified in CRM"]

Payload (what context transfers):
  - Source: [GTM-* channel]
  - Touchpoint history: [What they engaged with]
  - Best-fit signals: [Firmographic + behavioral match]
  - Disqualifiers: [Anything that ruled out earlier stages]
  - Open questions: [What new owner should clarify]

Rejection rule:
  Condition: [When does the new owner reject this handoff?]
  Routing: [Where does the rejected lead go? Nurture / disqualified / requeue]
  Re-engagement: [Conditions under which this lead can return]

SLA: [Response time required from new owner]

Linked IDs: BR-MOPS-AAA (Stage A rule), BR-MOPS-BBB (Stage B rule)
```

## Anti-Patterns

| Pattern | Signal | Fix |
|---------|--------|-----|
| **MQL = "anyone who filled a form"** | High-volume MQLs with 1% SQL conversion | Tighten MQL entry criteria; add fit-signal scoring |
| **No rejection routing** | Leads die when SQL → AE rejects | Define where rejected leads go (nurture, disqualified, requeue) |
| **SLA without escalation** | "Respond in 1 hour" with no consequence if missed | SLA must have an escalation path |
| **Handoff without payload** | New owner asks "who is this?" | Mandatory payload fields at every handoff |
| **Stages without owners** | "We'll figure out who handles SQLs later" | One owner per stage; named role minimum |
| **Lifecycle for self-serve** | $20/month consumer product with MQL/SQL/OPP | Use Signup → Activated → Paid; no human handoff |
| **No SLA monitoring** | SLAs exist on paper, missed in practice | Drift-monitor SLA via MON-DRIFT- |

## Quality Gates

Before activating handoff:

- [ ] Lifecycle shape matches product motion (self-serve / sales-assisted / hybrid)
- [ ] Every stage has entry, exit-progression, and exit-disqualification criteria
- [ ] Every stage has a named owner (role minimum)
- [ ] Every stage has an SLA with escalation path
- [ ] Every transition has a handoff payload spec
- [ ] Rejection routing defined for every owner-changing handoff
- [ ] SLA drift monitoring set up via MON-DRIFT-

## Downstream Connections

| Consumer | What it uses | Example |
|----------|--------------|---------|
| **Launch Channels (ORB)** | Each channel's leads enter the lifecycle at Anonymous | GTM-002 (Product Hunt) → Anonymous → MQL routing |
| **Cold Outreach (Tiered)** | Tier 1/2/3 sequences map to lifecycle stages | Tier 1 = SQL-tier ABM; Tier 3 = MQL nurture |
| **Launch Metrics** | Stage conversion rates become KPI- entries | KPI-MQL-to-SQL-conversion |
| **Feedback Loop Setup** | Rejected leads' "why we passed" reasons feed CFD- | Pattern: "too small" rejections → CFD- pricing signal |
| **Drift Monitoring** | SLA drift catches process decay | MON-DRIFT-MQL-response-SLA |

## Detailed References

- alirezarezvani's `marketing-ops` and `revenue-operations` skills (claude-skills)
- *Predictable Revenue* (Aaron Ross) — sales handoff structure
- *From Impossible to Inevitable* (Aaron Ross + Jason Lemkin) — stage discipline
- SiriusDecisions lead-lifecycle framework (the canonical B2B reference)
- (No bundled `references/` — lifecycle shapes vary; this skill encodes the discipline, not a specific shape)
More from mattgierhart/PRD-driven-context-engineering