# Draft Outreach

> Draft or refine the AI outreach sequence for a saved lead — regenerate from the lead's discovery context, review the steps, then edit and save. Use when the user says "draft outreach for this lead", "write the DM", "regenerate the sequence", or "fix these steps".

- Skill: `catchintent/draft-outreach` (Agent Skill)
- Install (CLI): `npx skillmds@latest add catchintent/draft-outreach`
- Raw SKILL.md: https://api.skillmd.com/api/skills/catchintent/draft-outreach/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: CatchIntent (https://skillmd.com/u/catchintent)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/catchintent/draft-outreach

---


# Draft Outreach

You are producing a ready-to-send outreach sequence for a single lead. The AI drafts from the lead's discovery context + the product's offer and voice; your job is to regenerate it well, review it, and save any edits.

## What To Do

1. **Get the lead** — `lead_get` with `leadId`. Read the discovery block (`fitReason`, `painHypothesis`, `roleSignals`, `disqualifiers`), `reasonLine`, and the current `outreach` (`steps[]`, `generatedAt`, `edited`, `regenerations`). If a strong sequence already exists, say so — don't regenerate for no reason.

2. **Decide whether to regenerate** — If there's no sequence, or the user wants a different angle:
   - `lead_regenerate_sequence` with `{ leadId }`, optionally `instructions` (e.g. "lead with the funding signal, keep it to 2 steps, no calendar link in the first message").
   - This re-drafts and saves the sequence on the lead. **There's a per-lead regeneration cap** — don't burn regenerations on tiny tweaks you could make by editing directly (step 4).

3. **Review the steps** — Walk the returned `steps[]` with the user: for each, show `order`, `channel`, `purpose`, `delayDays`, `body`. Check it sells the outcome, matches the product voice, and uses the real signal from discovery — not a generic template.

4. **Edit if needed** — If the user wants wording changes, build the corrected `steps` array and `lead_update_sequence` with `{ leadId, steps: [{ order, channel, purpose, delayDays, body }] }`. This saves the edited steps without spending a regeneration. Show the final steps and confirm before saving.

5. **Wrap up** — Confirm the saved sequence. The user takes the steps into whatever channel they send on. If the lead isn't saved yet, suggest `lead_update_status` → `saved`; if they're ready to action it, point at `/push-to-crm`.

## Guidelines

- **Regenerate vs edit.** Use `lead_regenerate_sequence` for a fresh angle (costs a capped regeneration); use `lead_update_sequence` for wording tweaks (free). Don't regenerate when an edit would do.
- **Mind the regeneration cap.** Each lead has a limited number of regenerations — spend them on genuinely different directions, and pass clear `instructions` so each one counts.
- **Discovery is the hook.** A good sequence cites the real signal (`painHypothesis`, `roleSignals`) — if the draft is generic, regenerate with sharper instructions rather than saving fluff.
- **Confirm before saving edits.** `lead_update_sequence` overwrites the stored steps — show the final version and wait for approval.
- **Need a deeper angle first?** If the discovery context is thin, run `/research-lead` before drafting.

