mcpField
O
outreach-manager

outreach-manager

github.com/aaron-he-zhu营销与增长3.0k1.0k 次安装今天更新
代码仓库

关于 outreach-manager

outreach-manager 是用于撰写个性化创作者联系内容、协商合作并跟踪关系进展的营销技能。它也可通过交接支持其他目标对象;发送前必须取得明确批准并完成资格检查。

主要功能

  1. 01撰写个性化联系文案及变体
  2. 02协商预算与报酬
  3. 03跟踪后续联系节奏和管线
  4. 04基于证据进行个性化
  5. 05发送前检查批准与同意状态

适用场景

  1. 01为网红营销活动起草邀约
  2. 02根据活动预算协商费用
  3. 03跟踪创作者回复与后续行动
  4. 04准备符合要求的单次发送

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aaron-he-zhu/aaron-marketing-skills --skill outreach-manager

安装后在 Claude Code 中输入/outreach-manager确认已加载。

附带文件references/cold-copy-rules.mdreferences/templates.md

详细介绍

外联管理器

撰写个性化、专业且坚持不懈的外联内容;管理谈判;跟踪关系进展。核心应用场景是影响者(创作者外联),而同一套机制引擎——个性化、多触点沟通节奏、谈判脚本、管道跟踪——也适用于媒体/分析师和发布合作伙伴目标(当 press-media-relations 移交媒体名单、切入角度和禁发条款时),以及社交销售/倡导者招募目标(当 social-selling-planner 或 advocacy-program-designer 移交温暖的一对一联系时)。名单、切入角度和禁发条款由移交的技能负责;本技能负责执行推介。

快速开始

最简调用:

Write an outreach message to @[influencer] for [campaign]

协商报价与预算之间的差额:

Help me negotiate with @[influencer] who is asking for $[X] when our budget is $[Y]

技能契约

  • 读取:在经授权的上游产物携带稳定的不透明 creator_ref 时读取该值,以及临时目标账号标识/个人资料定位符、平台、粉丝数、细分领域;营销活动和产品背景;报酬类型和预算;交付内容和时间安排;司法管辖区、目标渠道、合法依据引用、联系来源/资格证据,以及假名化的同意主体 ID;用户提供或从记忆中加载的任何过往联系记录。对于名录中的创作者,仅在身份关联已验证时重用创作者注册表聚合 ID;通过经授权的产物或经验证的注册表链接解析该 ID,然后检查 creator-registry 投影 memory/creators/<aggregate-id>.md,获取已确认的联系途径、上次议定费率以及协商/回复记录。绝不根据原始账号标识推导联系途径。
  • 写入:默认以内联方式返回外联产物;仅在获得精确的 WARM 保存授权后,才将其保存到 memory/influencer/outreach-manager/YYYY-MM-DD-<topic>.md。重用明确携带的不透明 creator_ref,或经验证的创作者注册表聚合 ID;否则,为此谱系仅生成一次随机的 creator-<UUIDv4>。绝不根据原始账号标识、姓名、个人资料 URL、电子邮件、提供商 ID 或确定性哈希推导 creator_ref。保存前,将原始定位符和已解析的收件人身份替换为稳定的 creator_ref,以及可解析的不透明 recipient_ref、contact_source_ref、handle_ref 和证据/审批引用。原始 URL 或账号标识绝不能作为持久化的 source_ref。如果没有经授权的来源产物或经验证的注册表链接可用于解析不透明的身份/联系引用,则设置 identity_status: unresolved,不保存隐藏的原始定位符映射,设置 cross_session_locator_required: true,并在发送时重新请求临时定位符。绝不持久化原始账号标识、姓名、个人资料 URL、电子邮件、电话号码、邮寄地址、提供商 ID 或凭据。周期结束时,每项结果更新(最终议定费率、回复记录、已确认的联系途径引用)都需要针对 memory/events/creators.ndjson 的 operation: propose 请求单独获得精确授权;只有 creator-registry 才能写入规范名录记录。
  • 晋升:只有获得单独的精确授权,才能将持久事实(已确认的合作伙伴、议定费率、主要异议模式、回复率基准)晋升到 memory/hot-cache.md。
  • 完成条件:
    • 为每位目标网红准备一份个性化推介(另加至少一个变体)。
    • 每项个性化事实都记录 source_ref 和 observed_at;无法验证的事实保留为占位符或省略。
    • 为每位已联系的创作者记录后续跟进节奏和流程状态,包括终止联系状态。
    • 明确记录司法管辖区、渠道、合法依据和联系资格;任何发送/排期操作都必须经过精确审批和实时抑制名单检查。
    • 标记已确认的合作伙伴,并记录议定条款以便交接。
  • 主要后续技能:contract-helper
交接摘要

按照 skill-contract.md §Handoff Summary Format 输出标准格式。

数据源

起草无需实时集成(第 1 级)。此技能基于你提供的输入工作——粘贴网红账号名、粉丝数、细分领域、预算和交付内容,即可生成明确标注的草稿,无需连接任何工具。发送或安排发送则不同:发送前必须获取化名化主体 ID,并立即查询实时 consent-registry 抑制状态;查询不可用或失败,不代表获得了发送许可。

如果连接器能加快工作,可使用以下 ~~ 占位符:

  • ~~influencer database — 提取账号名、粉丝数、细分领域和过往合作记录,无需手动输入。
  • ~~social platform analytics — 核实受众人口统计信息和近期帖子,以便进行个性化定制。
  • ~~CRM — 同步管道状态、最近联系日期和下一步行动。
  • ~~email/DM tool — 只有在完成最新的资格检查和实时抑制检查后,才发送当前到期且已获明确批准的单次触达内容。无论服务提供商有哪些功能,未来的触达都只能保留为未安排发送的草稿。

各类别的免费/免密钥方案请参阅 CONNECTORS.md。无需任何集成;如果缺少集成,请直接向用户索取输入。缺少目标或活动详情不会妨碍生成可撤销的草稿:使用明确的方括号占位符,将未经核实的个性化内容改为通用表述,并指出完成草稿所需的最少输入。

说明

运行时读取
  • ../../../references/runtime-invocation.md
  • ../../../references/registry-event-protocol.md
流程

用户请求协助进行外联时,请执行以下步骤。每个步骤在 references/templates.md 中都有可填写的模板——复制对应内容块并替换占位符。任何消息发出前,均须遵守 references/cold-copy-rules.md 中的硬性文案规则。

起草/发送界限:起草可撤销;发送或安排发送会产生外部副作用。即使缺少候选名单或个性化事实,也要生成内联的首次触达草稿,标注为 DRAFT — NOT SENT,使用明确的占位符,不得编造事实,然后说明个性化定制还需要哪些信息。如果可以安全地生成占位符草稿,绝不能只索取输入就停止。

只有满足以下所有条件后,才能发送或安排发送任何内容:

  • 已展示并明确批准确切的收件人(不得使用群体或占位符)、预定渠道、最终消息,以及——如果要安排这一次触达——一个具体的 ISO-8601 dispatch_at 时间戳和时区。批准仅适用于当前到期的单次触达。Day 3–4 之类的草稿时间窗口不属于明确批准;任何批准或服务提供商功能都不授权预先安排后续触达。
  • 已记录司法管辖区、渠道、带有证据引用的合法依据,以及联系资格。资格为 Unknown 或缺失时,必须拒绝放行;此技能不会编造合法依据,也不提供法律建议。
  • 在每个实际发送任务中,解析临时收件人后、调用服务提供商发送接口前,须按照下方所示解析并验证捆绑包运行时,然后对实时 consent-registry 执行 is-suppressed 查询。若结果为已抑制、缺少主体 ID、历史记录无法访问或已损坏、运行时/架构失败,或查询出错,则停止本次发送。not suppressed 结果仅解除抑制拦截;它本身不能证明合法依据,也不构成联系授权。不同触达之间绝不能复用缓存结果。
AARON_SKILLS_ROOT="${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || true)}"
PROJECT_ROOT="${PROJECT_ROOT:-}"
SUBJECT_ID="${SUBJECT_ID:-}"
case "$PROJECT_ROOT" in
  /*) ;;
  *) echo "PROJECT_ROOT must be an absolute project path; stop dispatch." >&2; exit 1 ;;
esac
if [ -z "$AARON_SKILLS_ROOT" ] || [ -z "$PROJECT_ROOT" ] || [ -z "$SUBJECT_ID" ] || \
   [ ! -d "$PROJECT_ROOT" ] || [ ! -f "$AARON_SKILLS_ROOT/.claude-plugin/plugin.json" ] || \
   [ ! -f "$AARON_SKILLS_ROOT/references/system-catalog.json" ] || \
   [ ! -f "$AARON_SKILLS_ROOT/references/capability-profiles.json" ] || \
   [ ! -f "$AARON_SKILLS_ROOT/references/registry-event.schema.json" ] || \
   [ ! -f "$AARON_SKILLS_ROOT/scripts/profile-resolver.py" ] || \
   [ ! -f "$AARON_SKILLS_ROOT/scripts/registry-events.py" ]; then
  echo "Verified Aaron Marketing Skills consent runtime unavailable; stop dispatch." >&2
  exit 1
fi
python3 "$AARON_SKILLS_ROOT/scripts/profile-resolver.py" \
  --root "$PROJECT_ROOT" --bundle-root "$AARON_SKILLS_ROOT" diagnose --json >/dev/null || exit 1
SUPPRESSION_JSON="$(python3 "$AARON_SKILLS_ROOT/scripts/registry-events.py" \
  --root "$PROJECT_ROOT" is-suppressed "$SUBJECT_ID")" || exit 1
printf '%s\n' "$SUPPRESSION_JSON" | python3 -c \
  'import json, sys; value = json.load(sys.stdin); raise SystemExit(0 if value.get("aggregate_id") == sys.argv[1] and value.get("suppressed") is False else 1)' \
  "$SUBJECT_ID" || { echo "Recipient is suppressed or suppression result is invalid; stop dispatch." >&2; exit 1; }

PROJECT_ROOT 必须由宿主提供,且必须是经过验证的绝对用户项目根目录;不得从技能包、$PWD、原始事件或用户控制的外联内容中推断。当缺少主体 ID、项目根目录、运行时或其他发送关卡输入时,返回 NEEDS_INPUT 同意检查交接,并指向 consent-registry,其中仅包含已提供的假名主体 ID、所需的项目根目录/运行时能力、预期渠道、资格证据引用和待处理的派发引用;不得声称已运行 is-suppressed,也不得自动恢复发送。后续触达一律保留为未安排的草稿。当下一次触达时间到期时,重新解析其临时收件人,针对该次触达获取新的明确批准,在其发送任务中重复所有资格/运行时/抑制检查,并且只派发这一次触达。

如果收件人拒绝邀约或表示不接受赞助合作,则作废该周期中所有剩余的草稿触达,不得重新标注邀约或切换渠道,并且只在行内记录确切范围内的偏好(campaign/offer/category scope、observed_at 和不透明的 source_ref);持久化该偏好或将其提交给 creator-registry,都需要单独的明确授权。先前的偏好会在其记录范围内阻止新周期,直至有较新的引用证据表明创作者重新开放了该范围;如果旧偏好的范围或取代它的证据未知,则应以 NEEDS_INPUT 失败关闭,不得臆造冷却期。不得仅因范围有限的拒绝或商业异议就调用全局 suppress。明确要求停止联系、退订、经核实的渠道/服务提供商垃圾信息投诉或撤回同意时,应跨渠道作废所有剩余的草稿触达,并使用 consent-registry 的仅拒绝直接 suppress 路径,且原因代码必须精确且不含主体信息:停止联系 → user-request;退订 → unsubscribe;经核实的垃圾信息/服务提供商投诉 → complaint;撤回同意 → withdrawal。如果经过验证的运行时不可用,则发出其精确的 immediate-suppress-handoff,并说明抑制尚未记录。

  1. 收集外联背景并锁定身份 — 记录活动/产品背景、临时目标账号标识/个人资料定位符、平台、粉丝数、细分领域、报酬类型、预算、交付内容和时间安排。重复使用明确传递的、不透明的 creator_ref;只有在身份关联已验证时,才可使用创作者注册表聚合 ID;否则,在此身份链中仅生成一次随机的 creator-<UUIDv4>。绝不能将原始定位符用作 creator_ref 或对其进行哈希处理。仅当经授权的来源材料或已验证的注册表关联能够解析时,才保存不透明的 handle_ref、recipient_ref、contact_source_ref 或证据 source_ref。否则,设置 identity_status: unresolved,不持久化任何原始定位符或隐藏映射,设置 cross_session_locator_required: true,并要求在发送时重新提供原始定位符。任何保存的材料或交接内容只能包含不透明的身份/联系/证据引用,以及司法管辖区、渠道、合法依据证据和联系资格结果——绝不能包含原始账号标识、姓名、个人资料/内容 URL、电子邮件、电话号码、邮寄地址、服务提供商 ID 或凭据。重新联系已验证并列入名册的创作者时,应从已确认的联系路径引用和上次商定的费率开始,而不是发送陌生推介。模板:步骤 1。
  2. 创建个性化外联内容 — 列出个性化要点(近期内容、风格、受众、价值观、过往合作伙伴),并在使用每条事实性信息前为其附上 source_ref 和 observed_at。省略或概括任何无法验证的信息;绝不能编造个人观看、购买、产品使用或关系历史。然后撰写主要消息,以及适合私信的短版本和正式的电子邮件/经纪团队版本。模板:步骤 2。媒体/分析师/猎人目标:围绕报道领域和近期报道进行个性化,首先提出报道角度(而非报酬报价),逐字保留来自新闻媒体关系材料的禁发条款,绝不编造引言或数据——所有主张均须来自已批准的消息框架。
  3. 创建跟进序列 — 制定为期 4 次的联系策略窗口(第 0 天 / 第 3–4 天 / 第 7–8 天 / 第 14 天,然后在第 21 天归档),每次联系都补充有新证据支撑或已获批准的价值内容,并逐渐缩短。这些时间范围仅供规划参考。始终不要预先安排未来的联系;当某次联系到期时,只批准/检查/发送该次联系,并在安排时提供一个具体的 ISO-8601 格式 dispatch_at 和时区。只有在不存在阻止联系的适用偏好或其他负面信号时,才可跟进 3–4 次;要让对方容易拒绝,并且只能使用已获批准且符合资格的渠道。使用新渠道需要该渠道自身的资格证据和明确批准。拒绝某次活动/报价会终止该联系节奏,并内联记录适用范围内的偏好;要持久化该偏好,需另行获得明确授权。之后若要在该范围内重新启动联系节奏,需要更新的重新开启证据。明确要求停止联系(user-request)、取消订阅(unsubscribe)、已验证的垃圾邮件/服务提供商投诉(complaint)或撤回同意(withdrawal),还会触发上述抑制流程。模板:步骤 3。
  4. 提供谈判支持 — 梳理对方要求与预算之间的差距,然后运用价值交换、范围调整或未来价值策略,并准备可直接使用的话术和异议/回应表。模板:步骤 4。
  5. 跟踪外联流程 — 记录各阶段数量和转化率、每位创作者的详细流程、今日优先行动以及流程健康状况(回复率、确认率、确认所需时间、主要异议)。将拒绝报价记录为该联系节奏的终止状态,并记录适用范围内的偏好。将明确要求停止联系(user-request)、取消订阅(unsubscribe)、已验证的渠道/服务提供商垃圾邮件投诉(complaint)或撤回同意(withdrawal)记录为终止的禁止联系状态,并附上抑制事件/交接引用。以上两种记录均不得保留任何跟进行动。模板:步骤 5。活动周期的跟踪记录在此处;当一个周期结束(已确认或已归档)时,将已结束结果作为一行 operation: propose 更新提供,以便单独取得明确授权,让 creator-registry 能够对其进行核对。

示例

用户:"为 creator_ref: creator-042 撰写外联文案。我提供了一个临时内容定位符以及 source_ref: [opaque authorized evidence ref]、observed_at: [ISO 8601] 和 observable_detail: [exact visible detail];仅使用 [claims-or-brief-ref] 中批准的活动、优惠和产品措辞。"

输出(节选):

## Outreach for `creator_ref: creator-042`

### Personalization Points
- Content item: `[content title or format supported by content_ref]`
- Observable detail: `[exact visible detail from supplied evidence]`
- Evidence: `source_ref: [opaque authorized evidence ref]`  •  `observed_at: [ISO 8601]`

### Primary Message
Subject: `[evidence-backed content topic]` — collaboration idea from `[Brand]`

`[Recipient name resolved transiently at dispatch]`, your `[content item]` `[observable detail supported by content_ref]`. I'm `[Sender]` from `[Brand]`. `[Approved campaign/product sentence from claims-or-brief-ref]` We're offering `[approved compensation]` for `[approved deliverable]`. Open to hearing more?

完整的多版本输出、跟进节奏、谈判指南和流程追踪表见 references/templates.md。

参考资料

后续最佳技能

  • 主要:contract-helper — 确认合作伙伴后,在内容制作前将约定的商业条款和权利写入协议。
  • 备选:creator-content-auditor — 仅在协议/简报已存在且创作者已制作好内容草稿后,审核内容再发布。
  • 备选:brief-generator — 向要求了解更多详情的创作者发送完整活动简报。

终止说明:维护一个已访问集合。如果本会话中已调用此链路里的某项技能,则停止并报告链路已完成,不要再次运行。最大交接深度为 3。

相关技能

评论

支持 Markdown