Source profileQuality 84/100

gethouston/houston/store/agents/outbound/.agents/skills/cold-email-sequence/SKILL.md

cold-email-sequence

Co-write a 3-email cold outreach sequence with you, one email at a time, using the James Shields framework: personalized subject (not body), 3 sentences plus PS, irresistible offer, low-friction reply CTA. I lock each email with you before moving to the next so voice, social proof, and offer all stay tight. Phase 4 of both pipelines, also runnable standalone if you have a verified contact list and want fresh copy.

Source repository stars
91
Declared platforms
0
Static risk flags
1
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Co-write a 3-email cold outreach sequence one email at a time. The sequence follows the James Shields framework: trigger-based subject, three-sentence body, irresistible no-strings offer, one-word reply CTA. I present each draft, refine with you, and lock it before moving to the…

Best for

  • "Write me a cold email sequence for these contacts".
  • "Draft 3-email outreach for {audience}".
  • Phase 4 of either LinkedIn pipeline.

Not for

  • Warm leads who already know you - use a direct one-off email, not a 3-step cold sequence.
  • Lifecycle / onboarding / nurture for existing users - that's a different motion (and lives in the Marketing agent).

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/gethouston/houston --skill "store/agents/outbound/.agents/skills/cold-email-sequence"
Safe inspection promptEditorial

Inspect the Agent Skill "cold-email-sequence" from https://github.com/gethouston/houston/blob/10d9551da3a639803421a9004117f9e5633ce3a1/store/agents/outbound/.agents/skills/cold-email-sequence/SKILL.md at commit 10d9551da3a639803421a9004117f9e5633ce3a1. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Step 1: Gather inputs

    Ask once, capture in the run notes. If anything's already in config/context-ledger.json (sender, voice, social proof bank), use it without re-asking. Confirm the trigger and the offer, since those change per campaign.

    Ask once, capture in the run notes. If anything's already in config/context-ledger.json (sender, voice, social proof bank), use it without re-asking. Confirm the trigger and the offer, since those change per campaign.
  2. 02

    Step 2: Email 1 - the opener (Day 0)

    Present to user. Refine until approved. Do NOT proceed until locked.

    Present to user. Refine until approved. Do NOT proceed until locked.
  3. 03

    Step 3: Email 2 - the follow-up (Day 3)

    Shorter than Email 1 (no PS). NEW social proof - never repeat from Email 1.

    Shorter than Email 1 (no PS). NEW social proof - never repeat from Email 1.Present to user. Refine until approved. Do NOT proceed until locked.
  4. 04

    Step 4: Email 3 - the breakup (Day 7)

    4 sentences max. "I won't email again" creates urgency. No new pitch.

    4 sentences max. "I won't email again" creates urgency. No new pitch.Present to user. Refine until approved.
  5. 05

    Step 5: Save the locked sequence

    Write to sequences/{runId}-sequence.md if called from an orchestrator (the orchestrator passes runId); otherwise sequences/{YYYY-MM-DD}-{campaign-slug}-sequence.md.

    Write to sequences/{runId}-sequence.md if called from an orchestrator (the orchestrator passes runId); otherwise sequences/{YYYY-MM-DD}-{campaign-slug}-sequence.md.

Permission review

Static risk signals and limitations

Reads files

low · line 190

The documentation asks the agent to read local files, directories, or repositories.

`outputs.json` row: `{type: "sequence", title: "{Campaign name} sequence", summary: "3-email locked sequence ready for Instantly load.", path: "sequences/{file}", status: "locked", domain: "sequence"}`.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score84/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars91SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
gethouston/houston
Skill path
store/agents/outbound/.agents/skills/cold-email-sequence/SKILL.md
Commit
10d9551da3a639803421a9004117f9e5633ce3a1
License
MIT
Collected
2026-08-04
Default branch
main
View the original SKILL.md

Cold Email Sequence

Co-write a 3-email cold outreach sequence one email at a time. The sequence follows the James Shields framework: trigger-based subject, three-sentence body, irresistible no-strings offer, one-word reply CTA. I present each draft, refine with you, and lock it before moving to the next - voice, social proof, and offer all stay tight that way.

James Shields framework - a widely-used outbound playbook that rejects the "book a demo" CTA in favor of trigger-based subjects, three-sentence bodies, free no-strings offers, and one-word reply CTAs. Optimized for reply rate, not impression count.

When to use

  • "Write me a cold email sequence for these contacts".
  • "Draft 3-email outreach for {audience}".
  • Phase 4 of either LinkedIn pipeline.
  • You have a verified contact list (from Apollo, Clay, Hunter, or anywhere else) and want fresh copy.
  • You want to refresh tired cold email copy with a proven framework.

When NOT to use

  • Warm leads who already know you - use a direct one-off email, not a 3-step cold sequence.
  • Lifecycle / onboarding / nurture for existing users - that's a different motion (and lives in the Marketing agent).
  • Transactional emails (receipts, password resets, notifications).
  • Post-call follow-ups - use the Sales agent's write-my-outreach with stage=followup.
  • Newsletters or content emails - use the Marketing agent's content skills.

Connections I need

  • None. This skill writes locally and produces a sequence file. Connections come back into play in instantly-campaign (the next phase).

Information I need

I gather the inputs in step 1 below. The minimum:

  • Trigger / source - what connects you to these leads (the LinkedIn post, the event, the news item).
  • Product - one-line description of what you sell.
  • Social proof - at least one case study with real numbers (no "10x improvement" without naming who and how). Preferably 3+ so each email gets fresh proof.
  • Offer - the free / low-friction thing you're giving away (teardown, audit, free trial, free seat).
  • Reply CTA - the one-word reply you want (defaults to "I'm in").
  • Sender - your first name only.
  • Existing draft - optional, any copy you want me to start from.

If any of trigger / product / social proof / offer is missing I ask for it inline before drafting.

The framework

Rule 1: Personalize the subject, not the body

  • Subject references the trigger (post, event, comment).
  • Body uses {{firstName}} only.
  • Avoid {{company}} {{title}} etc. in the body - reply rates drop when the merge fields feel obvious.

Rule 2: Three sentences plus PS (Email 1 only)

  • S1: context / trigger (why you are emailing).
  • S2: what you built / the offer.
  • S3: social proof (specific numbers).
  • PS: soft opt-out so they can disengage without ignoring.

Rule 3: Irresistible offer

  • Free access, no strings.
  • "I just want honest feedback".
  • No demo, no call, no commitment in the cold step.

Rule 4: Low-friction CTA

  • Reply with one word: "I'm in".
  • NOT "book a call" or "schedule a demo".

Rule 5: No fluff

  • No em dashes (use periods).
  • No "I hope this finds you well".
  • No bullet points or formatting in the body.
  • Lowercase subject lines.
  • Write like you're texting a colleague.

Steps

Step 1: Gather inputs

Ask once, capture in the run notes. If anything's already in config/context-ledger.json (sender, voice, social proof bank), use it without re-asking. Confirm the trigger and the offer, since those change per campaign.

Step 2: Email 1 - the opener (Day 0)

Draft to this template:

Subject: <personalized to trigger, lowercase, casual, 2-4 words>

Hey {{firstName}},

<1 sentence: I saw your <trigger>. Brief validation.>

<1-2 sentences: What I built. Concrete.>

<1-2 sentences: Social proof. Specific numbers.>

<1 sentence: The offer. Free, no strings.>

Reply "<cta>" and I'll <action>.

<sender first name>

PS <Soft opt-out, e.g. "If this is not your problem right now, just reply 'not now' and I'll go away.">

Present to user. Refine until approved. Do NOT proceed until locked.

Step 3: Email 2 - the follow-up (Day 3)

Draft to this template:

Subject: (same thread, blank)

Hey {{firstName}},

<1 sentence: Follow up. Acknowledge inbox noise.>

<2 sentences: NEW social proof. Different client, different numbers from Email 1.>

<1 sentence: Restate offer.>

Reply "<cta>" and I'll <action>.

<sender first name>

Shorter than Email 1 (no PS). NEW social proof - never repeat from Email 1.

Present to user. Refine until approved. Do NOT proceed until locked.

Step 4: Email 3 - the breakup (Day 7)

Draft to this template:

Subject: (same thread, blank)

Hey {{firstName}},

Last one from me on this.

<1 sentence: Tool is live. Others using it.>

<1 sentence: Final CTA - if you want yours, reply "<cta>" today.>

I won't email again after this.

<sender first name>

4 sentences max. "I won't email again" creates urgency. No new pitch.

Present to user. Refine until approved.

Step 5: Save the locked sequence

Write to sequences/{runId}-sequence.md if called from an orchestrator (the orchestrator passes runId); otherwise sequences/{YYYY-MM-DD}-{campaign-slug}-sequence.md.

File format:

# {Campaign name}

Locked on {ISO date}. Sender: {first name}. Target audience: {short description}.

## Email 1 (Day 0)

Subject: <subject>

<body>

## Email 2 (Day 3)

Subject: (same thread)

<body>

## Email 3 (Day 7)

Subject: (same thread)

<body>

## Sending notes

- Schedule: Mon-Fri, 8-5 in {timezone from context, default America/Vancouver}.
- Sending accounts: {from context, default "all connected"}.
- Lead count target: {from contacts file, e.g. "92 verified leads"}.

Step 6: Append to outputs

outputs.json row: {type: "sequence", title: "{Campaign name} sequence", summary: "3-email locked sequence ready for Instantly load.", path: "sequences/{file}", status: "locked", domain: "sequence"}.

Step 7: Final summary to user

One line: "Sequence locked at {path}. Ready to load into Instantly when you are."

Outputs

  • sequences/{runId}-sequence.md - locked 3-email sequence ready for instantly-campaign.
  • outputs.json - one row, type: "sequence", status: "locked", domain: "sequence".

Quick reference

EmailDayLengthSubjectGoal
1 Opener03 sentences + PSPersonalized to trigger, lowercaseHook + offer + proof
2 Follow-up33-4 sentencesBlank (same thread)NEW social proof, restate offer
3 Breakup74 sentences MAXBlank (same thread)Urgency, "won't email again"

Common mistakes

MistakeWhy it kills the sequenceFix
Long subject lines (6+ words, title case)Looks like marketing, not a personLowercase, 2-4 words, references the trigger
Multiple CTAs in one emailSplits attention, lowers reply rateOne CTA per email, always the same reply word
Repeating social proof across emailsWastes the second touchEmail 2 must use a NEW client and NEW numbers
"Just checking in" / "bumping this"Reads as desperate fillerAcknowledge inbox noise once, then deliver new value
Booking links in Email 1Friction kills cold repliesReply CTA only - links come after they say "I'm in"
Breaking the 3-sentence ruleLong emails get skimmed and trashedCut until each sentence is load-bearing
Em dashes, exclamation points, bulletsLooks AI-generated or marketyPlain text, periods only, write like a text message

What I never do

  • Write all 3 emails before showing you any. Each email is locked with you before I draft the next. Catches voice drift early.
  • Reuse social proof across emails. Email 2 must use a different client + different numbers from Email 1. If you only gave me one social proof point, I stop and ask for another before drafting Email 2.
  • Use em dashes, exclamation points, or AI-tell formatting in the body. The instantly-campaign skill also strips ampersands at upload time (Instantly bug), but the body should not contain those characters from me in the first place.
  • Add tracking pixels or link shorteners to the body. Cold deliverability is fragile; the sender platform handles tracking, the body stays plain.
  • Write a Subject for Email 2 or 3. Keeping the thread (blank subject) is intentional and is what tells the recipient's inbox to thread them.

Alternatives

Compare before choosing

Computed 9342,968

coreyhaines31/marketingskills

attribution

When the user wants to figure out which marketing actually drives conversions and revenue, choose or interpret an attribution model, or reconcile conflicting numbers across tools. Also use when the user mentions "attribution," "attribution model," "first-touch vs last-touch," "multi-touch," "which channel drives revenue," "what's my real CAC," "my dashboards disagree," "Google/Meta says X but GA says Y," "media mix model," "MMM," "incrementality," "geo lift," "holdout test," "how did you hear ab

Computed 9342,968

coreyhaines31/marketingskills

emails

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold out

Computed 9323,781

alirezarezvani/claude-skills

cold-email

When the user wants to write, improve, or build a sequence of B2B cold outreach emails to prospects who haven't asked to hear from them. Use when the user mentions 'cold email,' 'cold outreach,' 'prospecting emails,' 'SDR emails,' 'sales emails,' 'first touch email,' 'follow-up sequence,' or 'email prospecting.' Also use when they share an email draft that sounds too sales-y and needs to be humanized. Distinct from email-sequence (lifecycle/nurture to opted-in subscribers) — this is unsolicited

Computed 932,504

aaron-he-zhu/aaron-marketing-skills

audience-mapper

Use when the user asks to "analyze my target audience", "build an audience profile for influencer targeting", "research a niche community", or "deep-dive a subculture before partnering with creators"; in audience mode produces demographic/psychographic profiles, a platform-priority matrix, named personas, and an influencer-selection criteria set, and in niche mode produces a community map, culture decode (language/norms/taboos), key-voice tiers, a Brand Fit Score, and a phased entry strategy. No