mcpField
B
blog-cluster

blog-cluster

github.com/infrasity-labs营销与增长15194 次安装18 周前更新
代码仓库

关于 blog-cluster

Blog Cluster 从种子关键词规划并执行相互链接的内容体系,适合创建协同博客内容的团队。它结合基于 SERP 的聚类、中心辐射式规划和按序文章生成。

主要功能

  1. 01基于 SERP 的关键词聚类
  2. 02中心辐射式内容架构
  3. 03内链矩阵与聚类图
  4. 04导入并验证策略规划
  5. 05通过 blog-write 按序生成文章
  6. 06执行评分卡与进度续作

适用场景

  1. 01规划支柱页及其配套文章
  2. 02将策略聚类规划转为经 SERP 验证的地图
  3. 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.md
execution-workflow.md
semantic-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 工具或作为编排的子技能来调用其他技能。

命令路由

  1. 解析用户的命令以确定子命令。
  2. 如果用户只输入了 /blog cluster,请询问:“您想规划新的集群,还是执行现有计划?”
  3. 路由:
    • plan <keyword> 路由至规划阶段(如下)
    • plan --from strategy [path] 路由至策略导入流程(如下)
    • execute [path]、build 或 run 路由至执行阶段(如下)

规划阶段:/blog cluster plan <seed-keyword>

参考:references/semantic-clustering.md

第 1 步:扩展种子关键词

使用 WebSearch 将种子扩展为包含 30 到 50 个短语的关键词范围:

  1. 直接搜索 <seed>,收集相关搜索和“People also ask”。
  2. 扩展长尾词:<seed> guide、<seed> tips、<seed> tools、<seed> examples、<seed> vs、best <seed>、how to <seed>。
  3. 挖掘问题:what is <seed>、how does <seed> work、why <seed>、<seed> for beginners。
  4. 添加意图变体:添加商业修饰词(best、top、review、comparison、pricing)、信息类修饰词(guide、tutorial、explained、examples)和交易类修饰词(buy、download、tool、software、service)。
  5. 年份时效性:<seed> 2026。
第 2 步:语义聚类

根据 references/semantic-clustering.md 中的优先级规则对扩展后的关键词分组:

  1. SERP 重叠分析是主要信号。若两个关键词有 5 个或更多相同的搜索结果前 10 名,则它们的目标意图相同,应归入同一篇文章。
  2. 意图分类将每个关键词归为信息类、商业类、交易类或导航类。
  3. 实体映射识别 Google 将哪些人物、产品、框架和组织与该主题相关联。
  4. 分组将意图相同且主题相关的关键词组合在一起。每组构成中心辐射结构中的一个分支。
第 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 中的所有文本标签(标题、关键词、集群名称)都必须进行转义:插入前将 & 替换为 &amp;,将 < 替换为 &lt;,将 > 替换为 &gt;,将 " 替换为 &quot;,将 ' 替换为 &#39;。
  • 悬停效果仅使用 CSS :hover。不得使用 JavaScript。
  • 在 SVG 节点内使用 <title> 子元素提供无障碍工具提示(浏览器原生支持,不使用脚本)。

地图显示内容:中心支柱节点、向外辐射且按颜色区分的集群组、每个集群中的辐射页节点,以及连接相关节点的链接线。

第 6 步:向用户展示计划

显示集群和文章摘要表、内部链接总数、估算字数以及文件路径。继续执行前,请征求确认。等待用户明确批准。不得自动执行。


策略导入:/blog cluster plan --from strategy [path]

将 blog-strategy 的输出转换为集群计划。

  1. 定位策略输出。在当前目录(或用户指定的路径)中扫描文件,查找包含 Cluster Build Plan 表格的文件;该表格必须包含列 # | Spoke Topic | Template | Target Keyword | Word Count | Internal Links(格式由 /blog strategy 生成)。
  2. 解析表格。提取支柱页行(标记为 P)、辐射页行、模板分配、目标关键词、字数和链接关系。
  3. 验证并补充信息。对每个关键词运行 SERP 重叠验证(计划阶段第 2 步)。添加搜索量估算,并从语义角度确认集群分组。
  4. 如果 SERP 数据与策略表格相矛盾,标记冲突;不得擅自覆盖用户的策略意图。
  5. 使用与标准计划阶段相同的输出生成 cluster-plan.json 和 cluster-map.html。
  6. 展示转换后的计划,突出显示任何基于 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 步:确定执行顺序
  1. 先写支柱页面(这样辐射页面就能链接到已知文件名)。
  2. 然后写辐射页面,按 (cluster priority, search_volume_estimate desc, post id alphabetical) 排序。簇优先级为簇内预估搜索量之和(从高到低)。
  3. 如果有超过 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 步:注入反向链接

每篇文章写完后:

  1. 扫描簇目录中所有之前写好的文章,查找引用刚写好的文章的 [INTERNAL-LINK: keyword -> filename.md] 标记。
  2. 将每个匹配项替换为真实的 Markdown 链接:[keyword](filename.md)。
  3. 首次处理时,在文章 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 是总承包商:它分析主题、绘制数据驱动的计划,并根据单个种子关键词构建完整结构。

评论

支持 Markdown