Systems Lab

Agent skill

cold-email-sequence

Write cold email sequences (5–7 touch, 14–21 day) using the CCQ copy framework, Pain-Trigger-Outcome openers, mobile-first formatting, and a hard ban on cliché openers.

slowingNeeds a keyActs undeclared1,239 words

Filed under Outbound email.

From devangk003/gtm-agent-skills · 32 skills · 0 · pushed 2026-06-18

What it does when it runs

Write cold email sequences (5–7 touch, 14–21 day) using the CCQ copy framework, Pain-Trigger-Outcome openers, mobile-first formatting, and a hard ban on cliché openers. Gates every touch on the personalization-hook contract and email_status. Use when a Tier-1/2 lead list is enriched and scored, an ICP-grounded outbound burst is being planned, or an existing sequence's reply rate is below the 3% floor.

Read from the skill and the 3 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • AGENTIC_APP_TOKEN
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shell

Ask about cold-email-sequence

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/devangk003/gtm-agent-skills.git /tmp/gtm-agent-skills
git -C /tmp/gtm-agent-skills sparse-checkout set "cold-email-sequence"
mkdir -p ~/.claude/skills/cold-email-sequence
cp -R "/tmp/gtm-agent-skills/cold-email-sequence/." ~/.claude/skills/cold-email-sequence/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs AGENTIC_APP_TOKEN, which you have to obtain separately.

Reproduced in full from devangk003/gtm-agent-skills/blob/6b9a1b0094ffd83d6c02bc03b7ce1610661a1644/cold-email-sequence/SKILL.md, which is licensed MIT (skill frontmatter). 1,239 words, 9 headings.

Cold Email Sequence

Produce a 5–7 touch cold email sequence (14–21 day arc) using the CCQ copy framework. Each touch is grounded in the recipient's verified personalization hook, formatted mobile-first, and audited for clichés before send. Default rule: touch with [unverified — needs check] hook triggers Clarification Protocol (enrich / proceed-generic / skip / override) — NOT a hard block.

Framework(s) used: CCQ (Context-Connection-Question) copy framework + Pain-Trigger-Outcome openers — proven for B2B cold outbound with verified hooks. If multiple frameworks apply, trigger Clarification Protocol so the user picks.

Clarification Protocol

When you encounter any of the following, STOP and ask the user — do NOT make a silent assumption, and do NOT flatly refuse:

  • Ambiguous or missing input
  • A fork in approach (multiple valid frameworks, segments, scopes, or sources)
  • A rule that would block progress
  • An assumption that materially shapes the output
  • Unverified data that a downstream step depends on

Present 2–4 concrete options with trade-offs and your recommendation.

Format:

Decision needed: <what's being decided> Options:

  • A) <option> — trade-off
  • B) <option> — trade-off
  • C) <option> — trade-off My recommendation: <X> because <reason>. Confirm or pick a different option before I continue.

Refusing to proceed is NEVER the final answer. Every "block" must come with an override option. If the user picks an override, honor it on the first request — do not re-prompt the same block multiple times in one run.

Scope

This skill ONLY produces 5–7 touch cold email sequences with verified hooks, mobile-first formatting, and compliance footers (CAN-SPAM). Do not expand into adjacent topics. If the user's request implies adjacent scope, trigger Clarification Protocol with options to (A) stay in scope, (B) note the adjacent need as a follow-up, (C) hand off to a different skill.

When to Use

  • Tier-1/2 enriched lead list ready for outbound copy
  • Reply rate below 3% floor — diagnose and rewrite
  • Need A/B variants for opener testing
  • Sending from Gmail natively — need drafts + per-touch runbook
  • Pre-launch copy generation when leads are enriched + scored
  • Existing sequence flagged by campaign-management for reply-rate breach

Quick Reference

ConceptValue
Default sequence5–7 touches over 14–21 days; day_offsets 0/3/7/11/15/19/45
Default frameworkCCQ (Context/Compliment-or-Connection/Question)
Word targetsSubject ≤8 words; opener body 50–80; later touches 40–100
Per-touch frameworksT1 CCQ+Pain; T2 CCQ+Vision; T3 RTA; T4 Compelling-Event; T5 Outcome-proof; T6 Break-up; T7 Resurrection (D+45)
Default hook rulepersonalization_hook [verified] preferred; unverified → Clarification Protocol (enrich / proceed-generic / skip / override)
Default email_status ruleDrop risky/role-based/catch-all-domain/invalid by default; user may override per Clarification Protocol
Cliché blocklist"I hope this finds you well" / "I noticed" / "we help X do Y" / multi-question CTAs
Buzzword blocklistflexibility, visibility, scalable, strategic, leverage, synergy, robust, holistic
Mobile format≤2-line opener / one CTA / ≤4-line paragraphs / ≤3-line signature
Quiet hours8pm–8am recipient local + weekday-only
Per-domain cap30/day (50 absolute ceiling)
Primary metricReply rate ≥3% floor (5–10% solid; 10%+ excellent)

Legend — Personalization-Hook Strength

  • [H] High — verified, specific, recent (≤30d) signal with citable source URL
  • [M] Medium — inferred from role/firmographic but plausible; no specific event
  • [L] Low — generic-but-relevant; no recipient-specific data; mark lower-personalization

Procedure

  1. Validate prerequisites + determine mode — Read scored Leads, ICP P-T-O, message house, infrastructure readiness flag. API key → API mode; seat → manual; native → BYO. If any gate fails, default to surface + trigger Clarification Protocol with options (A) fix gate, (B) proceed with documented risk, (C) cancel — do not silently block.

  2. Filter recipient list — Default: drop bad email_status; apply tier filter; split GDPR jurisdiction. For unverified personalization_hook, trigger the Clarification Protocol prompt below — do NOT auto-route to a review queue. See ${HERMES_SKILL_DIR}/references/ccq-framework.md for framework rules.

    Decision needed: This lead has no verified personalization hook. Options:

    • A) Enrich now (run data-enrichment, returns within ~minutes)
    • B) Proceed with a generic-but-relevant angle (mark lower-personalization)
    • C) Skip this lead
    • D) Override and use the unverified hook anyway (mark lower-personalization) My recommendation: A if time permits, else B. Confirm or pick a different option before I continue.

    User override of the hook rule is permitted and must be honored on the first request. The hook rule is a default, not a hard gate. If the user says "proceed," "skip this rule," "refuse this," or similar, continue and mark affected emails as lower-personalization in the output. Do NOT re-prompt the same block multiple times in one run. Tag per-email metadata personalization_status: lower-personalization for any email generated under override.

  3. Pre-flight: capacity check — Compute eligible × sequence_length vs per-domain cap × pool × duration. Surface; wait for authorization if over capacity.

  4. Generate per-touch copy + audit — Per recipient × position: pick framework per touch default; draw verified hook; compose subject (≤8 words) + body (within target); inject List-Unsubscribe header + physical address (CAN-SPAM) or LIA + opt-out (GDPR). Each draft passes cliché + word-count + mobile-format + buzzword audit; failures regenerate; second-fail surfaces for review.

  5. Compose Touch records — Per conventions §2.1: full provenance on content/compliance/provenance.copy; scheduled_for (quiet-hours + weekday). Reference ${HERMES_SKILL_DIR}/references/push-to-crm-mapping.md for CRM field mapping.

  6. Build cadence + schedule — Per conventions §2.2: 5–7 touches at default day_offsets. API → create sequence in tool; manual → paste-ready config; BYO → per-touch runbook.

  7. Push to CRM + run summary — Run ${HERMES_SKILL_DIR}/scripts/push_to_crm.py per touch. One-screen summary: eligible count, dropped counts, capacity headroom, audit flags, recommended next skill.

Pitfalls

  • Optimizing on open rate — Apple MPP made it noise; reply rate is primary
  • Generic openers — "I noticed your company…" with no specific verified detail = low reply rate
  • Long emails — >125 words drops reply rate sharply; 50–80 is opener sweet spot
  • Multiple CTAs — Two questions in close = no answer
  • Buzzword stuffing — Each buzzword costs ~3% reply rate
  • Skipping the break-up — Touch 6 break-up generates real replies
  • Treating the hook rule as a hard gate — It is a default, not a wall. User override is permitted and must be honored on the first request; mark affected emails lower-personalization and continue. Do NOT re-prompt the same block twice.

Verification

  1. Every Touch's provenance.copy resolves to a hook URL, carries [user-provided] for outcome claims, or is tagged personalization_status: lower-personalization under explicit user override; reply rate ≥3% by D+10
  2. Bounce rate <2% (warn) / <5% (pause); complaint rate <0.1% (target) / <0.3% (pause)
  3. Zero touches sent during quiet hours/weekends; zero touches with cliché-blocklist phrases

Output Format

  • Sections required: Sequence Plan (per touch), Per-Touch Email Bodies, Compliance Footer Block, Send Schedule
  • Tables / fields: Sequence Plan = Touch # | Day offset | Channel | Hook source | Status [primary/lower-personalization/skipped]; Per-Touch = Subject | Preview | Body | CTA | Word count
  • Length target: per-email ≤120 words; sequence brief ≤500 words
  • File type: markdown (with email bodies as fenced blocks)
  • Mandatory closing sections: Verification Notes, Next Step

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what cold-email-sequence does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.