关于 cold-email-sequence-generator-skill
这是一项 Claude skill,可将经过筛选的联系人和价值主张转为可审核的多触点冷邮件 Gmail 草稿。它强调线索与声明核验、品牌文案检查,并只创建草稿、不发送邮件。
主要功能
- 01起草前筛选联系人
- 02生成不同触点数量的序列
- 03核验产品与竞品声明
- 04按品牌风格检查文案
- 05创建含 A/B 主题的 Gmail 草稿
- 06支持可配置的序列变体
适用场景
- 01为新潜客准备外呼邮件序列
- 02制作重新互动或活动邮件
- 03创建草稿供人工审核后发送
MCP 相关
使用 Epiphan Brand MCP 获取写作风格并检查文案,使用 Epiphan Knowledge 搜索核验声明,并通过 Gmail 工具创建草稿。不会发送邮件。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scientiacapital/ skills --skill cold-email-sequence-generator-skill安装后在 Claude Code 中输入/cold-email-sequence-generator-skill确认已加载。
附带文件config.json
详细介绍
<quick_start> 按调用顺序使用工具:
- 输入 — 联系人列表(HubSpot 列表 ID、CSV 或指定联系人)、垂直行业、序列类型、价值主张、佐证要点。缺少列表 → 询问;缺少垂直行业 → 根据域名推断并标记。
- 变体 — 读取
config.json;如果variants.enabled,运行bash scripts/variant-assigner.sh cold-email-sequence-generator-skill $(date +%s),并应用已分配的prompt_suffix。 - 关卡 Q — 对每位联系人运行
qualify_lead。已排除的联系人不纳入;STALE AE LEAD行列出给 Tim,不起草邮件;根据判定结果中的 ATL 层级确定顺序。 - 关卡 S — 对序列中涉及的每项产品、规格或竞品声明,先运行
search_product_catalog,再运行 Epiphan Knowledgesearch。未验证的内容 → 在草稿中标注[spec unverified]。 - 关卡 B — 运行一次
get_writing_style,然后对每个主题行和正文运行check_my_copy。 - 关卡 D — 对每位联系人、每个触点运行一次
mcp__claude_ai_Gmail__create_draft,发件人为[email protected],主题前缀为[Seq N/M]。绝不调用send_message。 - 交付 — 提供摘要表(联系人/层级/已起草触点数/关卡标记),以及下方的旁车文件和运行日志行。发送由
batch-send-drafts-skill负责。 </quick_start>
<house_rules> 面向客户的技能。输出前,按顺序运行各关卡(详情:~/.claude/skills/epiphan-house-rules-skill/reference/gates.md): S:提出任何产品声明前,先通过 Epiphan AI 运行 search_product_catalog,或通过 Epiphan Knowledge 运行 search。B:对每条面向客户的文本运行 check_my_copy。 Q:获取候选联系人后立即运行 qualify_lead,并在分层、补充信息或起草邮件前完成。D:外发文本必须成为 Gmail 草稿,绝不能直接发送。 标识符(所有者 ID、门户、电子邮件、席位)应从该技能中的 reference/identifiers.md 获取 — 不要在此处重述。 任何关卡失败时,遵循 reference/self-healing.md(重试、降级并添加标记、通知 Tim、停止),并在 ~/.claude/skill-runs/.jsonl 中追加一行。 </house_rules>
<variant_support> 此技能通过 config.json 支持 A/B 变体。
- 读取此技能的
config.json— 检查variants.enabled是否为 true - 如果已启用,运行:
bash scripts/variant-assigner.sh cold-email-sequence-generator-skill $(date +%s) - 应用已分配变体定义中的
prompt_suffix,以调整工作流 - 在结果旁车文件中记录变体名称(见最后阶段)
当前实验: cold-email-subject-style-001
control:标准 7 封邮件框架concise:5 封邮件框架,每封最多 50 个单词 </variant_support>
<success_criteria>
- 在起草任何邮件前,已对每位联系人运行
qualify_lead;报告已排除联系人和过期 AE 线索,不为其起草邮件 - 已选择序列类型(经典 7 封、快速 5 封、长期 12-14 封、基于活动、重新互动)
- 每项产品或竞品声明都可追溯至 Epiphan Knowledge
search结果,或标注[spec unverified] - 每个主题行和正文均通过
check_my_copy;起草前已应用修改 - 每位联系人、每个触点均有一封 Gmail 草稿,发件人为
[email protected],主题前缀为[Seq N/M] - 每封邮件都有 A/B 主题行、一个 CTA 和发送日偏移量;最后一个触点为结束邮件
- 已写入结果旁车文件和带关卡标记的运行日志行 </success_criteria>
接受以下任一输入:HubSpot 列表(hubspot_list_members)、HubSpot 搜索(hubspot_search_contacts)、
CSV 或指定联系人。逐个联系人记录:邮箱、名字、职位、组织、垂直行业、HubSpot ID。
逐个序列记录:类型、价值主张、Tim 希望采用的证明要点、个性化切入点。
阶段 2:关卡 Q — qualify_lead
对每个联系人调用 qualify_lead。按返回的判定执行:排除客户、渠道合作伙伴、仅与产品互动的联系人、
已抑制联系人,以及由 AE 负责且活跃的联系人;在摘要中列出 STALE AE LEAD 行,供 Tim 决定。
保留 ATL/GRAY/BTL 级别用于排序(ATL 优先)。如果重试一次后 qualify_lead 仍不可用:暂停、
保存状态并告知 Tim——不要向未经筛选的名单起草邮件。
阶段 3:序列设计
| 类型 | 触达次数 | 时长 | 适用场景 |
|---|---|---|---|
| 经典 | 7 | 2 周 | 全新冷名单 |
| 快速推进 | 5 | 1 周 | 有互动或与活动相关的名单 |
| 长期培育 | 12-14 | 4-6 周 | 按预算周期或 RFP 时间安排的客户 |
| 活动/触发 | 3-5 | 视活动而定 | Extron SMP EOL、新楼宇、录制失败、会议 |
| 重新互动 | 5 | 2 周 | 已停滞的交易或超过 90 天未互动的联系人 |
邮件角色(经典序列,共 7 封):
| # | 角色 | 目标 | 长度 | CTA |
|---|---|---|---|---|
| 1 | 自我介绍 | 重新审视问题,不提产品名称 | 50-100 个词 | 温和提问 |
| 2 | 价值证明 | 已验证的证明要点 | 75-125 个词 | 指定时间 |
| 3 | 不同角度 | 另一种痛点 | 50-75 个词 | 是/否问题 |
| 4 | 社会认同 | 同行认可(已验证) | 60-90 个词 | 简单回复 |
| 5 | 分享资源 | 先提供,再请求 | 40-60 个词 | “有用吗?” |
| 6 | 直接请求 | 直接提出会议请求 | 30-50 个词 | 日期/时间 |
| 7 | 结束联系 | 征求结束联系的许可 | 25-40 个词 | “我该关闭您的档案吗?” |
时间安排:第 0、2、4、6、8、10、14 天。收件人所在时区的周二至周四上午效果更好;避免周一收件箱堆积以及周五下午。请在每份草稿的主题行备注中记录日期偏移量,以便 batch-send-drafts-skill 按顺序排列。
阶段 4:关卡 S — 规格与声明验证
撰写任何正文之前:对每个提及的产品调用 search_product_catalog(确认 SKU 仍在售;对于 EOL 产品,只能说明其已停产,绝不提供规格),然后通过 Epiphan Knowledge 的 search 查询准确的规格、功能或竞争对手事实。证明要点和案例引用必须来自知识库查询结果或 Tim 提供的输入;绝不编造客户、数字或引言。未验证的声明 → 在文中写入 [spec unverified],并将结果设为 partial,注明阶段 4。
阶段 5:关卡 B — 品牌语气,然后撰写
每个会话调用一次 get_writing_style。根据下方模板撰写每次触达内容,然后对每个主题行变体和每篇正文运行 check_my_copy;在阶段 6 前应用修正。如果 Brand MCP 重试一次后仍不可用:继续起草,在每篇正文前加上 [brand check skipped],结果设为 partial,注明阶段 5。
阶段 6:关卡 D — Gmail 草稿
对每个联系人、每次触达调用一次 mcp__claude_ai_Gmail__create_draft,发件人使用 [email protected]:
- 主题:
[Seq N/M] <效果更好的 A/B 主题>——将备用主题放在正文第一行,格式为A/B alt: …,以便 Tim 在审核时替换。 - 正文:经
check_my_copy批准的触达内容,签名遵循 identifiers.md。 - 绝不调用
send_message或reply。Gmail 写入失败 → 重试一次,然后在摘要中报告该次触达未起草(结果设为partial,阶段 6)。
阶段 7:摘要
SEQUENCE STAGED — <type>, <M> touches, <date>
Contact Tier Drafts Flags
J. Smith (u.edu) ATL 7/7 —
R. Lee (city.gov) GRAY 7/7 [spec unverified] x1
K. Ng (hosp.org) — 0 STALE AE LEAD (Ron Epstein, 112d) — Tim decides
Excluded by qualify_lead: 4 (2 customer, 1 partner, 1 AE-active)
Next: batch-send-drafts-skill to review and send.
邮件模板
方括号内的内容只能来自阶段 1 的输入和阶段 4 已验证的事实。
邮件 #1:自我介绍
主题行(A/B 测试):
- A(引发好奇):
Quick question about [org]'s [specific challenge] - B(价值):
[Verified outcome] for [org type] - C(个性化):
[Name], saw your post about [specific topic]
Hi [First Name],
I noticed [specific observation about their org/role] and thought you might be facing [specific challenge].
Teams like [verified peer org type] have [verified outcome] without [common objection].
Worth a quick 15-minute conversation to see if the same applies at [org]?
[Signature]
P.S. - [Personalized one-liner from research]
邮件 #2:价值证明
主题:“[peer org type] 如何实现 [verified result]”
[First Name],
Following up — wanted to share how this worked for a [peer org type].
They were [situation]. In [timeframe], they:
- [Verified result #1]
- [Verified result #2]
They got started without [common objection].
Would [Day] at [Time] work for 15 minutes?
[Signature]
电子邮件 #3:不同的角度
主题:"关于 [org],我有个不同的想法"
Hi [First Name],
I realize [original pain point] might not be top of mind right now.
But what about [alternative pain point]?
Most [their role]s tell me [common complaint], which is why [mini value prop, no spec unless verified].
If this hits closer to home, happy to share how [quick win].
[Signature]
P.S. - If neither is relevant, just let me know and I'll stop.
电子邮件 #4:社会认同
主题:"[Mutual connection] 建议我联系您" 或 "看看 [peer] 如何应对 [challenge]"
[First Name],
I was speaking with [title] at a [peer org type] about [challenge].
Here's what they said after [solution]:
"[Quote supplied by Tim or from knowledge base — never invented]"
Open to a quick call to hear what's working in [vertical]?
[Signature]
电子邮件 #5:分享资源
主题:"我想您可能会觉得这个有用"
[First Name],
No ask here — just sharing something helpful:
[Resource description]: [Link]
We put this together after hearing [their role]s struggle with [pain point]. Useful even if you never buy anything from us.
Hope it helps.
[Signature]
电子邮件 #6:直接询问
主题:"我们开门见山吧"
[First Name],
Let me be direct: I think we could help [org] [achieve outcome] based on [observation].
I'd like to show you:
1. [Specific thing #1]
2. [Specific thing #2]
3. [How peers in your role use it]
15 minutes. No pressure. How's [day/time]?
[Signature]
电子邮件 #7:结束联系
主题:"我该关闭您的档案吗?"
[First Name],
I'll assume [topic] isn't a priority right now — totally fine.
I'll close your file unless I hear otherwise. If you want to revisit, [time-sensitive reason, e.g. budget cycle], so a quick chat now might save you a step later.
No worries either way — appreciate your time.
[Signature]
P.S. - If someone else at [org] should hear about this, happy to redirect.
结束联系的变体:征求许可("不相关 / 不是优先事项 / 时机不对——是哪一种?如果是第 3 种,我该何时再联系?")· 转介("看来我联系错人了——谁负责 [topic]?")。除非 Gate S 已核实,否则避免提及竞争对手客户的 FOMO 话术。
各行业快速入门
- 高等教育(ICP 90): 考试周可靠性 → 同行院校证明 → 分发痛点 → 资源(CMS 集成文档)→ 直接询问 → 结束联系
- 法院(ICP 85): 记录缺失 → 县级证明 → 无人值守的 8 小时会话 → 资源 → 直接询问 → 结束联系
- 政府(ICP 80): 无需增加 AV 人手即可录制市议会会议 → 城市证明 → 发布延迟 → 资源 → 直接询问 → 结束联系
- 医疗(ICP 75): 无需增加临床 IT 负担即可录制手术室内容 → 医学教育证明 → 学员访问 → 资源 → 直接询问 → 结束联系
- 企业 AV / 宗教场所 / K-12: 使用相同流程;将重新定位角度替换为 Tim 提供的信息中该行业最突出的痛点
A/B 测试与基准
按以下顺序测试:主题行(疑问句还是陈述句,个性化还是通用)、正文长度(50 词还是 100 词)、CTA 风格、发送时间。方法:前 100 位联系人进行 50/50 分组,48 小时后查看结果,再将胜出版本发送给 其余联系人。基准(电子邮件 1 打开率 35-55%,序列回复率 8-25%,会议预约率 1-6%)是规划 范围,不应作为宣传文案中的说法。
启动前检查清单
- 已审阅 Gate Q 报告(Tim 已确认排除项和过期 AE 条目)
- Tim 打算发送的草稿中,不再有
[spec unverified]或[brand check skipped]标记 - 所有个性化变量均已填写;不再有未替换的方括号
- 链接已测试;没有附件
- 在运行
batch-send-drafts-skill之前,已与 Tim 商定每日发送上限
<self_healing>
失败 = 未生成草稿;部分完成 = 某个阶段降级(注明名称:Q halt、S unverified、B skipped、
D write failed)。处理步骤:重试一次 → 降级(在草稿中添加内联标记,保留核心内容)→ 通知 Tim
(摘要行;若无人值守,则发送 Slack 私信)→ 当该列表无法使用 qualify_lead 时停止。
完整约定:~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md。
</self_healing>
<outcome_sidecar>
每次运行结束时,写入 ~/.claude/skill-analytics/last-outcome-cold-email-sequence-generator-skill.json
并向 ~/.claude/skill-runs/cold-email-sequence-generator-skill.jsonl 追加一行:
{"ts":"<UTC ISO8601>","skill":"cold-email-sequence-generator-skill","version":"<frontmatter version>",
"variant":"<assigned variant or default>","status":"success|partial|error","runtime_ms":0,
"metrics":{"contacts_in":0,"contacts_qualified":0,"contacts_excluded":0,"stale_ae":0,
"emails_generated":0,"drafts_created":0,"spec_unverified":0,"brand_skipped":0},
"error":null,"session_id":"<date>"}
status 为 partial/error 时,必须在 error 中注明失败阶段。SessionStart 扫描程序会读取该文件。
</outcome_sidecar>