关于 blog-cluster
Blog Cluster 从种子关键词规划并执行相互链接的内容体系,适合创建协同博客内容的团队。它结合基于 SERP 的聚类、中心辐射式规划和按序文章生成。
主要功能
- 01基于 SERP 的关键词聚类
- 02中心辐射式内容架构
- 03内链矩阵与聚类图
- 04导入并验证策略规划
- 05通过 blog-write 按序生成文章
- 06执行评分卡与进度续作
适用场景
- 01规划支柱页及其配套文章
- 02将策略聚类规划转为经 SERP 验证的地图
- 03根据已批准规划生成互链文章
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill blog-cluster安装后在 Claude Code 中输入/blog-cluster确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cluster-architecture.mdexecution-workflow.mdsemantic-clustering.md详细介绍
博客主题集群(语义主题集群引擎)
只需一个种子关键词,即可规划并执行完整的相互关联的内容生态系统。分为三层:语义聚类(大脑)、集群架构(结构)和执行引擎(机器)。
命令
| 命令 | 功能 |
|---|---|
/blog cluster | 交互式操作。询问要规划还是执行。 |
/blog cluster plan <seed-keyword> | 基于 SERP 的语义分析。输出集群计划和映射。 |
/blog cluster plan --from strategy [path] | 导入现有的 blog-strategy 集群构建计划,并根据 SERP 数据进行验证。 |
/blog cluster execute [path-to-plan] | 按顺序调用 blog-write,并使用集群上下文和自动添加内链。 |
关键参考资料(按需加载)
references/semantic-clustering.md(SERP 重叠分析、意图分类、关键词范围扩展)references/cluster-architecture.md(中心辐射式规范、Schema 策略、链接密度规则)references/execution-workflow.md(执行顺序、上下文注入、评分卡、失败处理)
与现有 claude-blog 技能的交叉引用
| 技能 | 此技能调用它的时机 |
|---|---|
/blog strategy | 上游规划。plan --from strategy 会读取其集群构建计划表格。 |
/blog write | 执行单篇文章。每篇分支文章和支柱文章均由 blog-write 生成,并在前面添加集群上下文区块。 |
/blog chart | 由 blog-write 在内部调用,用于内嵌 SVG 图表。此技能不会直接调用。 |
/blog image | 可选的逐篇文章主视觉图片生成(若未配置 nanobanana-mcp,则优雅回退)。 |
/blog seo-check | 建议在执行后使用,以逐篇验证页面 SEO。 |
/blog cannibalization | 建议在执行后使用,以确认集群内没有关键词重叠。 |
/blog schema | 建议在执行后使用,以添加 BreadcrumbList、ItemList 和 Article Schema。 |
此技能绝不会修改属于其他技能的文件。它会通过 Task 工具或作为编排的子技能来调用其他技能。
命令路由
- 解析用户的命令以确定子命令。
- 如果用户只输入了
/blog cluster,请询问:“您想规划新的集群,还是执行现有计划?” - 路由:
plan <keyword>路由至规划阶段(如下)plan --from strategy [path]路由至策略导入流程(如下)execute [path]、build或run路由至执行阶段(如下)
规划阶段:/blog cluster plan <seed-keyword>
参考:references/semantic-clustering.md
第 1 步:扩展种子关键词
使用 WebSearch 将种子扩展为包含 30 到 50 个短语的关键词范围:
- 直接搜索
<seed>,收集相关搜索和“People also ask”。 - 扩展长尾词:
<seed> guide、<seed> tips、<seed> tools、<seed> examples、<seed> vs、best <seed>、how to <seed>。 - 挖掘问题:
what is <seed>、how does <seed> work、why <seed>、<seed> for beginners。 - 添加意图变体:添加商业修饰词(best、top、review、comparison、pricing)、信息类修饰词(guide、tutorial、explained、examples)和交易类修饰词(buy、download、tool、software、service)。
- 年份时效性:
<seed> 2026。
第 2 步:语义聚类
根据 references/semantic-clustering.md 中的优先级规则对扩展后的关键词分组:
- SERP 重叠分析是主要信号。若两个关键词有 5 个或更多相同的搜索结果前 10 名,则它们的目标意图相同,应归入同一篇文章。
- 意图分类将每个关键词归为信息类、商业类、交易类或导航类。
- 实体映射识别 Google 将哪些人物、产品、框架和组织与该主题相关联。
- 分组将意图相同且主题相关的关键词组合在一起。每组构成中心辐射结构中的一个分支。
第 3 步:集群架构设计
参考:references/cluster-architecture.md
构建中心辐射式架构:
- 支柱页(中心):定位覆盖面最广的关键词。字数为 2,500 到 4,000。模板为
pillar-page。链接到每个辐射页。 - 辐射页:每页定位一个长尾关键词集群。字数为 1,200 到 1,800。根据搜索意图自动选择模板。链接回支柱页,并链接到同级辐射页。
集群构建规则:
- 每个支柱页包含 2 到 5 个集群。
- 每个集群包含 2 到 4 个辐射页。
- 总计:1 个支柱页加 5 到 15 个辐射页。
- 每个辐射页定位一个独特的主要关键词(零关键词蚕食)。
第 4 步:内部链接矩阵
对于每个辐射页 S:
S链接到支柱页(始终如此;锚文本使用支柱页的主要关键词)。- 支柱页链接到
S(始终如此;锚文本使用S的主要关键词)。 S链接到同一集群中的其他辐射页(每页 2 到 3 个链接,使用上下文相关的锚文本)。S链接到相邻集群中的辐射页(0 到 1 个链接,仅在语义相关时添加)。
确认每个辐射页至少有 3 个入站链接。统计计划中的内部链接总数。
第 5 步:生成输出文件
所有规划和执行产物都放入当前工作目录下的同一个子目录中:
<cwd>/
└── cluster-<seed-keyword-slug>/
├── cluster-plan.json
├── cluster-map.html
├── pillar-<slug>.md (Execute Phase)
├── <spoke-slug>.md (Execute Phase, one per spoke)
└── cluster-scorecard.md (Execute Phase)
cluster-plan.json 架构
{
"seed_keyword": "<seed>",
"generated_at": "YYYY-MM-DDTHH:MM:SSZ",
"pillar": {
"id": "P",
"title": "Title of the pillar",
"primary_keyword": "broadest keyword",
"secondary_keywords": ["..."],
"search_volume_estimate": "high|medium|low",
"template": "pillar-page",
"word_count_target": 3000,
"cluster": "pillar"
},
"clusters": [
{
"name": "Cluster A: Theme",
"intent": "informational|commercial|transactional",
"color": "#2563eb",
"posts": [
{
"id": "A1",
"title": "Post title",
"primary_keyword": "long-tail keyword",
"secondary_keywords": ["..."],
"search_volume_estimate": "high|medium|low",
"template": "how-to-guide",
"word_count_target": 1500,
"links_to": ["P", "A2"],
"links_from": ["P", "A2"]
}
]
}
],
"total_posts": 9,
"total_interlinks": 23,
"estimated_total_words": 18000
}
注意:搜索量估算是根据 SERP 信号得出的相对指标(高、中、低),并非绝对搜索量。如需精确数据,用户应咨询 Ahrefs、SEMrush 或 DataForSEO(claude-blog 提供配套的同级工具 seo-dataforseo)。
cluster-map.html(防 XSS)
包含内嵌 SVG 可视化图的静态独立 HTML 文件。编写时必须遵守以下规则:
- 不得使用内联
<script>块。文档中任何位置都不得出现onclick、onmouseover或其他on*事件属性。 - 不得引用外部脚本
<src>。 - 绘制到 SVG 中的所有文本标签(标题、关键词、集群名称)都必须进行转义:插入前将
&替换为&,将<替换为<,将>替换为>,将"替换为",将'替换为'。 - 悬停效果仅使用 CSS
:hover。不得使用 JavaScript。 - 在 SVG 节点内使用
<title>子元素提供无障碍工具提示(浏览器原生支持,不使用脚本)。
地图显示内容:中心支柱节点、向外辐射且按颜色区分的集群组、每个集群中的辐射页节点,以及连接相关节点的链接线。
第 6 步:向用户展示计划
显示集群和文章摘要表、内部链接总数、估算字数以及文件路径。继续执行前,请征求确认。等待用户明确批准。不得自动执行。
策略导入:/blog cluster plan --from strategy [path]
将 blog-strategy 的输出转换为集群计划。
- 定位策略输出。在当前目录(或用户指定的路径)中扫描文件,查找包含
Cluster Build Plan表格的文件;该表格必须包含列# | Spoke Topic | Template | Target Keyword | Word Count | Internal Links(格式由/blog strategy生成)。 - 解析表格。提取支柱页行(标记为
P)、辐射页行、模板分配、目标关键词、字数和链接关系。 - 验证并补充信息。对每个关键词运行 SERP 重叠验证(计划阶段第 2 步)。添加搜索量估算,并从语义角度确认集群分组。
- 如果 SERP 数据与策略表格相矛盾,标记冲突;不得擅自覆盖用户的策略意图。
- 使用与标准计划阶段相同的输出生成
cluster-plan.json和cluster-map.html。 - 展示转换后的计划,突出显示任何基于 SERP 的调整,并等待用户确认。
执行阶段:/blog cluster execute [path-to-plan]
参考:references/execution-workflow.md
第 1 步:加载计划
从用户指定的路径或工作目录中最近的 cluster-*/cluster-plan.json 读取 cluster-plan.json。验证 JSON 结构。如果不存在计划,返回:“未找到集群计划。请先运行 /blog cluster plan <seed-keyword>。”
第 2 步:确定执行顺序
- 先写支柱页面(这样辐射页面就能链接到已知文件名)。
- 然后写辐射页面,按
(cluster priority, search_volume_estimate desc, post id alphabetical)排序。簇优先级为簇内预估搜索量之和(从高到低)。 - 如果有超过 2 个簇,则在不同簇之间交替编写,以分散早期内容的覆盖范围。
第 3 步:为每篇文章构建簇上下文并调用 blog-write
构建簇上下文块(完整架构见 references/execution-workflow.md),并将其添加到传递给调用 blog-write 的 Task 工具的主题提示词前。上下文应告知 blog-write 簇名称、文章角色(支柱或辐射)、主要和次要关键词、所选模板、目标字数、已写文章列表(链接到这些文章)、待写文章列表(使用 [INTERNAL-LINK] 占位符),以及本文的链接要求。
FLOW 证据三元组传递(必需)。 对每个辐射页面和支柱页面,簇上下文都必须包含以下指令:“将 FLOW 证据三元组应用于每项公开统计数据。在正文中标注年份(‘In 2026,’),添加包含发布方和标题的行内引文,并在来源块中附上带检索日期的 URL。删除无法核实的统计数据。替换与事实相矛盾的统计数据。”
这项级联要求必不可少,因为簇执行是高杠杆操作(一次可处理 5 到 15 篇文章)。如果没有明确传递指令,个别辐射页面可能会悄然忽略证据规范。参见 skills/blog/references/flow-alignment.md。
输出格式:默认使用标准 Markdown(.md),与 blog-write 的默认格式一致。如果用户明确要求 HTML,则相应设置平台目标。不要添加任何特定品牌的 CSS 或文字标识;这由用户在后续环节负责。
第 4 步:为单篇文章添加可选的主图
如果已配置 nanobanana-mcp,则通过 Task 工具调用 /blog image generate,为文章生成 16:9 主图,并将其放置在 cluster-<slug>/images/<post-slug>-hero.png。在文章的 frontmatter(coverImage:)和正文顶部插入标准 Markdown 图片引用。如果 MCP 不可用或调用失败,则记录警告并继续,不添加图片。图片生成不会阻塞流程。
第 5 步:注入反向链接
每篇文章写完后:
- 扫描簇目录中所有之前写好的文章,查找引用刚写好的文章的
[INTERNAL-LINK: keyword -> filename.md]标记。 - 将每个匹配项替换为真实的 Markdown 链接:
[keyword](filename.md)。 - 首次处理时,在文章 frontmatter 中添加簇元数据块(
cluster:、cluster_role:、cluster_group:)。
第 6 步:失败处理
如果 blog-write 写单篇文章失败(超时、出错或未通过质量门槛),则记录失败并继续处理其余文章。不要中止整个簇。评分卡会标记缺项,并建议通过手动调用 /blog write 重试该文章。
如果用户在执行过程中取消操作,则保存进度并记录已完成的文章。下次执行 /blog cluster execute 时,检测已经写好的文件,并从下一篇尚未写好的文章继续。
第 7 步:生成 cluster-scorecard.md
所有尝试的文章处理完毕后,生成一份 Markdown 评分卡,涵盖:
- 每篇文章的状态(已写入、失败、已跳过)、文件路径和字数。
- 每篇文章的质量评分(并行对每篇文章调用
/blog analyze)以及集群平均分。 - 集群凝聚度评分:由链接互惠性、意图多样性、模板多样性和关键词覆盖率综合得出的 0 到 100 分(公式见
references/execution-workflow.md)。 - 内部链接审计:每篇文章的出链数和入链数、孤立标记,以及未解决的
[INTERNAL-LINK]标记。 - 关键词蚕食检查:是否有任意两篇文章使用相同的主要关键词,或任意文章对的关键词重合度超过 70%。建议运行
/blog cannibalization进行更深入的检查。 - 图片生成摘要:已生成与已跳过的主图数量。
- 建议的后续操作:生成结构化数据(
/blog schema)、逐篇进行 SEO 验证(/blog seo-check)、内容再利用(/blog repurpose)。
第 8 步:最终报告
向用户返回简洁的摘要,包含总数、评分卡路径和后续操作命令。
输出产物(摘要)
| 文件 | 阶段 | 格式 |
|---|---|---|
cluster-plan.json | 规划 | JSON |
cluster-map.html | 规划 | 静态 HTML + 内嵌 SVG,无 JavaScript |
pillar-<slug>.md | 执行 | Markdown(或自动检测的平台格式) |
<spoke-slug>.md | 执行 | Markdown(或自动检测的平台格式) |
images/<post-slug>-hero.png | 执行(可选) | 通过 blog-image 生成的 PNG |
cluster-scorecard.md | 执行 | Markdown |
质量门槛
| 门槛 | 检查项 | 未通过时的操作 |
|---|---|---|
| 集群最低要求 | 至少有 2 个集群,且每个集群至少包含 2 篇文章 | 规划期间发出警告;建议扩展 |
| 关键词蚕食 | 没有两篇文章使用相同的主要关键词 | 阻止执行;要求调整计划 |
| 链接完整性 | 每篇文章至少有 3 个指向它的内部链接 | 在评分卡中发出警告 |
| 字数 | 支柱文章至少 2,500 字;辐射文章至少 1,200 字 | 将其作为硬性约束传递给 blog-write |
| 意图多样性 | 各集群中至少有 2 种不同的意图 | 在评分卡中发出警告 |
| 模板多样性 | 集群中至少有 3 种不同的模板 | 在评分卡中发出警告 |
错误处理
| 情况 | 操作 |
|---|---|
| 种子关键词过于宽泛(关键词变体超过 50 个) | 建议在聚类前缩小范围。 |
| 种子关键词过于狭窄(关键词变体少于 5 个) | 提供较小的集群(支柱文章加 2 到 3 篇辐射文章),或建议扩大范围。 |
| WebSearch 不可用 | 使用 Claude 的推理来扩展和分组关键词。在评分卡中注明准确性有所降低。 |
一篇文章的 blog-write 失败 | 记录、跳过并继续。在评分卡中标记缺失内容。 |
未安装 blog-write | 返回:“blog-cluster requires claude-blog. Install it before running this skill.” |
cluster-plan.json 格式错误 | 验证 JSON,并报告包含行号的解析错误。 |
| 用户取消执行 | 保存进度;下次调用时继续,并自动检测已写入的文章。 |
未配置 nanobanana-mcp | 跳过主图生成;在执行开始时警告一次,而不是逐篇警告。 |
与相关 claude-blog 技能的区别
| 技能 | 角色 | blog-cluster 的额外功能 |
|---|---|---|
blog-strategy | 规划 3 到 5 个内容支柱,并将枢纽辐射图作为一项战略练习绘制出来 | 根据 SERP 执行语义聚类,然后将计划落实为真实且相互链接的文章。 |
blog-calendar | 围绕主题集群安排发布日期 | 不构建集群或撰写文章;本技能两者都会做。 |
blog-cannibalization | 检测现有内容中的关键词重叠 | 仅用于诊断。blog-cluster 在规划阶段就会避免关键词蚕食。 |
blog-write | 一次撰写一篇文章 | blog-cluster 通过共享的集群上下文和双向链接来协调多次 blog-write 调用。 |
blog-outline | 生成一份结合 SERP 信息的大纲 | blog-cluster 为整个集群生成相当于大纲的内容,然后撰写文章。 |
blog-cluster 是总承包商:它分析主题、绘制数据驱动的计划,并根据单个种子关键词构建完整结构。