关于 content-brief
content-brief 根据目标关键词生成 SEO 内容简报,包含关键词指标、竞品标题分析和写作大纲,供内容团队用于 Notion 工作流。固定字段格式支持解析与优先级路由。
主要功能
- 01关键词指标与搜索意图
- 02分析自然搜索结果标题
- 03生成结构化 SEO 简报
- 04优先级评分与路由
- 05解析和验证脚本
- 06Notion 工作流指引
适用场景
- 01根据目标关键词准备简报
- 02将 CSV 关键词列表批量生成简报
- 03按优先级路由简报以录入 Notion
- 04交接前检查简报字段
MCP 相关
该技能可通过 Ahrefs MCP 获取关键词指标,并通过 Notion MCP 创建或更新简报页面和日历条目。未连接这些 MCP 时,也说明了手动处理流程。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill content-brief安装后在 Claude Code 中输入/content-brief确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/error-handling.mdnotion-schema.mdrouting-logic.mdscripts/brief_validator.pytext_parser.py详细介绍
内容概要 — 关键词转 Notion 内容概要生成器
根据目标关键词生成结构化 SEO 内容概要。输出遵循强制的 Direction 提示词格式,以便 text_parser.py 脚本无需手动清理即可提取所有字段并填入 Notion。
调用触发条件
明确短语(任意一项):
- “为 [关键词] 创建内容概要”
- “为这个关键词写概要:[关键词]”
- “关于 [主题] 的内容概要”
- “为 [关键词] 生成概要”
- “为 [关键词] 写一份概要”
- “运行内容概要技能”
隐含信号:
- 用户提供关键词,并要求制定 SEO 规范、编辑规范或写作任务
- 用户粘贴关键词列表,并要求生成概要
触发后立即执行——除关键词本身外,无需提前收集信息。
追问式信息收集(可选,只问一个问题)
关键词明确时,无需提问,直接撰写概要。
仅当以下两项条件都成立时,才询问一个澄清问题:
- 无法从上下文推断目标受众或客户
- 受众会显著影响内容角度(例如,“项目管理软件”可能面向项目经理或开发人员)
快速确认——“[关键词]”的主要受众是谁?
- [推断出的用户画像 A——例如,人力资源总监]
- [推断出的用户画像 B——例如,运营经理]
- 请告诉我
我询问的原因:受众会影响 H1、内容角度和写作者备注。问一个问题可以避免生成不合适的概要。
最多提问一次。如果可以推断受众,则跳过提问并继续。
数据收集(撰写概要前)
生成 Direction 提示词输出前,先执行以下步骤:
步骤 1 — 关键词指标
首选: Ahrefs MCP(keywords_explorer_overview)→ 搜索量、KD、CPC、SERP 数据。
备用方案(没有 Ahrefs MCP 时): 使用 WebSearch 进行估算:
- 搜索
[keyword] search volume KD CPC site:ahrefs.com OR site:semrush.com OR site:moz.com - 提取可用的搜索量、KD 和 CPC 估算值
- 如果未找到数据,将 VOLUME/CPC/DIFFICULTY 设为
[not available — add manually]
步骤 2 — 竞品 H2/H3 分析
- 使用 WebSearch 搜索
[keyword]→ 找出排名靠前的 3 个自然搜索结果(跳过广告、地图和精选摘要) - 使用 WebFetch 访问每个 URL → 提取所有 H2 和 H3 标题
- 注意:竞品结构可为 H2_OUTLINE 提供参考。不要照搬——应将其用于内容差距分析。
步骤 3 — 搜索意图分类
根据关键词和 SERP 类型,将搜索意图归为以下四种选项之一:
Informational— 用户想要了解信息Commercial— 用户正在比较选项,准备购买Transactional— 用户已准备好采取行动或购买Navigational— 用户正在寻找特定品牌或网站
步骤 4 — 优先级评分
应用 references/routing-logic.md 中的路由逻辑:
- HIGH:搜索量 > 200 且 KD < 40,且搜索意图为 Commercial 或 Transactional
- MEDIUM:不符合 HIGH 条件,但搜索量有实际意义或具有战略重要性
- LOW:搜索量低、难度高,或搜索意图为 Informational 且转化价值有限
Direction 提示词输出格式(强制)
此格式不可更改。 text_parser.py 脚本会根据完全匹配的标签提取内容。如果任何标签与以下格式不一致——大小写错误、多出空格或缺少下划线——Notion 属性就会为空。
完成数据收集后,严格按照以下结构输出概要:
TARGET_KEYWORD: [keyword]
VOLUME: [number or "not available"]
CPC: [decimal or "not available"]
DIFFICULTY: [0-100 integer or "not available"]
SEARCH_INTENT: [Informational | Commercial | Transactional | Navigational]
AUDIENCE: [persona — job title or role]
RECOMMENDED_H1: [final proposed title]
CONTENT_ANGLE: [one paragraph describing the unique angle, why this beats competitors, what the post must do]
WORD_COUNT: [number]
SCHEMA: [schema type — e.g., FAQ, HowTo, Article, FAQ + HowTo]
PRIORITY: [HIGH | MEDIUM | LOW]
H2_OUTLINE:
- H2: [heading]
- H3: [subheading]
- H3: [subheading]
- H2: [heading]
- H3: [subheading]
FAQ:
- Q: [question the audience actually searches]
- Q: [question]
- Q: [question]
INTERNAL_LINKS:
- [anchor text] → [relative URL or page title if URL unknown]
WRITER_NOTES:
[one paragraph of specific guidance: tone, POV, what to avoid, key differentiators to emphasize, CTAs, any client-specific requirements]
关键规则:
- 每个字段标签都必须与示例完全一致(全大写并使用下划线)
- SEARCH_INTENT 的值必须与四个选项之一完全一致(首字母大写)
- PRIORITY 的值必须严格为 HIGH、MEDIUM 或 LOW
- H2_OUTLINE、FAQ、INTERNAL_LINKS、WRITER_NOTES 是区块字段——内容从下一行开始
- TARGET_KEYWORD 前不得有任何额外文本,WRITER_NOTES 区块后也不得添加任何内容
工作流架构(9 个节点)
| 节点 | 角色 | 工具 |
|---|---|---|
| 1 — 输入 | 接受关键词 + 可选的客户端/受众背景 | 用户消息 |
| 2 — 关键词指标 | 获取搜索量、KD、CPC、SERP 类型 | Ahrefs MCP 或 WebSearch 回退方案 |
| 3 — SERP 抓取 | 提取排名前 3 的自然搜索结果中的 H2/H3 | WebFetch |
| 4 — 简报生成 | 通过 Direction 提示词处理数据 → 结构化输出 | Claude(此技能) |
| 5 — 文本解析器 | 提取带标签的字段 → 结构化变量 | scripts/text_parser.py |
| 6 — 条件路由器 | 根据 PRIORITY 值进行路由 | 路由逻辑 |
| 7A — Notion 创建(HIGH) | 创建页面,Status = "Briefed: Ready for Assignment" | Notion MCP |
| 7B — Notion 创建(MED/LOW) | 创建页面,Status = "Briefed: Weekly Review Queue" | Notion MCP |
| 8A — Slack 通知(仅 HIGH) | 将简报摘要 + Notion 链接发布到频道 | Slack MCP |
| 9 — 日历同步 | 在内容日历数据库中创建关联条目 | Notion MCP |
在没有 MCP 连接器的 Claude Code 中:节点 1–5 会自动运行。节点 6–9 会生成一份可直接粘贴的摘要,并指导用户手动录入 Notion。
批处理模式
触发条件:用户提供包含 Target Keyword 列的 CSV(Priority Override 列可选)。
流程:
- 确认 CSV 可读取且包含
Target Keyword列 - 按顺序逐个将关键词送入完整流程
- 按顺序输出所有简报,以
---分隔 - 输出所有简报后:输出摘要表(关键词 | 优先级 | 字数 | schema)
预期吞吐量:20 份简报需 20–25 分钟(每份 60–75 秒)。
如果任何关键词处理失败(没有 SERP 数据、意图不明确):在摘要表中将其标记为 [FAILED — 原因],并继续处理剩余关键词。
推送到 Notion(MCP 可用时)
使用 references/notion-schema.md 将解析器输出映射到 Notion 属性。
根据 PRIORITY 分为两种路径:
HIGH:
- Status → "Briefed: Ready for Assignment"
- Target Publish Date → 今天 + 14 天
- 触发 Slack 通知(节点 8A)
MEDIUM:
- Status → "Briefed: Weekly Review Queue"
- Target Publish Date → 今天 + 28 天
LOW:
- Status → "Briefed: Weekly Review Queue"
- Target Publish Date → 今天 + 42 天
创建页面后:运行日历同步(节点 9),在内容日历数据库中创建关联条目。
创建前检查:查询 Notion,确认是否存在 TARGET_KEYWORD 相同的页面。如果存在 → 使用 update_page 而非 create_page,以防止重复。
多客户端设置
每个客户端都有:
- 单独的 Notion 集成令牌
- 单独的数据库 ID
- 客户端专属的 Direction 提示词变体(调整受众、语气、内部链接基础 URL)
新客户端入驻:配置连接器并端到端测试一份简报,约需 45–60 分钟。
未连接 Notion MCP 时的输出
如果 Notion MCP 不可用,在生成 Direction 提示词输出后,附上:
---
NOTION PUSH: Not connected. To add this brief to Notion manually:
1. Open your Notion database
2. Create a new page
3. Paste the following field values:
[formatted summary of all extracted fields]
Or run: python scripts/text_parser.py brief.txt --output json
to get a JSON payload ready for the Notion API.
---
验证关卡
生成输出后,手动检查:
- 11 个简单字段均存在且非空
- SEARCH_INTENT 是 4 个有效值之一
- PRIORITY 必须严格为 HIGH、MEDIUM 或 LOW
- H2_OUTLINE 至少包含 4 个 H2,且每个 H2 下至少有 1 个 H3
- FAQ 至少包含 3 个问题
- INTERNAL_LINKS 至少包含 2 个条目
- WRITER_NOTES 是内容充实的段落(而非占位文本)
对输出文件运行 scripts/brief_validator.py,进行自动验证。
错误处理
| 情况 | 处理方式 |
|---|---|
| 没有可用的关键词数据 | 将数值字段设为 "not available",并在 WRITER_NOTES 中添加备注,指示编辑手动核实 |
| SERP 抓取被拦截(403/付费墙) | 跳过抓取,在 WRITER_NOTES 中注明 "competitor outline not available",并继续处理简报 |
| 搜索意图不明确 | 默认设为 Informational;在 WRITER_NOTES 中标记:"Intent ambiguous — verify before briefing writer" |
| Notion 中的选项值不匹配 | 严格使用指定的大小写;Notion 选项区分大小写 |
| 检测到重复关键词 | 使用 update_page,而不是 create_page |
| 解析后的简报中有 >2 个空属性 | 标记为需人工审核;不要推送到 Notion |
| 批次中的关键词处理失败 | 在汇总表中注明,并继续处理 |
| CSV 缺少 Target Keyword 列 | 停止并请用户确认列名 |
完整的故障点目录请参阅 references/error-handling.md。
工具
| 脚本 | 用途 |
|---|---|
scripts/text_parser.py | 从 Direction 提示词输出中提取带标签的字段 → 结构化字典。python text_parser.py brief.txt --output json |
scripts/brief_validator.py | 验证所有必填字段是否存在,以及字段值是否在允许范围内。python brief_validator.py brief.txt |
参考资料
references/notion-schema.md— Notion 数据库属性配置(名称、类型、允许的值)references/routing-logic.md— 优先级评分规则和发布日期计算references/error-handling.md— 已知故障点及解决方法
应拒绝的反模式
- 偏离强制要求的 Direction 提示词标签格式(会导致解析器无法正常工作)
- 使用小写或大小写混合的字段标签(使用 TARGET_KEYWORD,而非 Target_Keyword)
- 将 SEARCH_INTENT 设置为四个允许值以外的值
- 未先收集关键词和 SERP 数据就生成简报
- 运行前询问多个信息收集问题
- 编写含糊的 WRITER_NOTES(例如 "write a good post about this topic")
- 数据不可用时编造关键词指标——务必标记为 "not available"
- 有 >2 个字段为空时推送到 Notion