mcpField
B
blog-analyze

blog-analyze

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

关于 blog-analyze

面向作者和编辑的博客审计技能,可评估本地文件或已发布 URL,并按五个质量类别评分、提供优先级建议。还会分析 AI 写作信号,并可选生成编辑量表和分节认知负荷报告。

主要功能

  1. 01按五个质量类别为文章评分
  2. 02分析 SEO 与 E-E-A-T 信号
  3. 03评估 AI 写作风险指标
  4. 04审计本地文件、URL 或目录
  5. 05导出 Markdown、JSON 或表格报告
  6. 06添加量表与认知负荷分析

适用场景

  1. 01发布前检查博客草稿
  2. 02比较并排序目录中的文章
  3. 03将审计结果导出到仪表板
  4. 04定位认知负荷较高的章节

安装

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

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill blog-analyze

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

详细介绍

博客分析器:质量审核与评分

按 5 个类别为博客文章打分,满分为 100 分,并提供按优先级排序的改进建议。包含 AI 内容检测分析。支持本地文件或已发布的 URL。

参考文档(路径相对于仓库根目录):

  • skills/blog/references/quality-scoring.md:完整评分清单
  • skills/blog/references/eeat-signals.md:E-E-A-T 评估标准
  • skills/blog/references/ai-slop-detection.md:双层反射方法(v1.8.0)
  • skills/blog/references/editorial-heuristics.md:序数 0-4 评分标准、P0-P3 严重程度(v1.8.0,与 --rubric 搭配使用)
  • skills/blog/references/cognitive-load.md:各章节概念密度(v1.8.0,与 --cognitive-load 搭配使用)

输入处理

  • 本地文件:直接读取文件
  • URL:使用 WebFetch 获取并提取内容
  • 目录:扫描博客文件,并审核全部文件(批处理模式)
  • 标志:--format json|table、--batch、--sort score、--rubric、--cognitive-load
可选模式(v1.8.0)
  • --rubric:除 100 分制评分外,还输出序数 0-4 编辑启发式评分标准,并附上 P0-P3 严重程度标签。参见 skills/blog/references/editorial-heuristics.md。保留 100 分制 JSON 架构;评分标准作为同级的 rubric 字段添加。
  • --cognitive-load:对文章运行 scripts/cognitive_load.py,并将各章节的负荷热力图作为同级的 cognitive_load 字段嵌入。参见 skills/blog/references/cognitive-load.md。

这两种模式都是增量功能。默认行为(不带标志)保持不变。

评分流程

步骤 1:内容提取

阅读博客文章并提取:

  • Frontmatter(标题、描述、日期、lastUpdated、作者、标签)
  • 标题结构(H1、H2、H3 及层级)
  • 段落数量和每段字数
  • 统计数据(所有带或不带来源的数字声明)
  • 图片(数量、是否包含 alt 文本、格式)
  • 图表/SVG(数量、类型多样性)
  • 链接(内部、外部、失效)
  • 是否包含 FAQ 部分
  • Schema 标记(包含的类型)
  • Meta 标签(标题、描述、OG 标签、twitter cards)
  • 用于突发性分析的句长
  • 用于多样性评分的词汇词元
步骤 2:对各类别评分

加载 references/quality-scoring.md 查看完整清单。对每项评分:

内容质量(30 分)
检查项分值通过标准
深度/全面性7充分涵盖主题,没有重大遗漏
可读性(Flesch 60-70)7Flesch 60-70 为理想范围,55-75 可接受;年级 7-8;Gunning Fog 7-8
原创性/独特价值标志5原创数据、案例研究、一手经验
句子与段落结构4平均句长 15-20 个词,超过 20 个词的句子占比 ≤25%;段落 40-80 个词;每 200-300 个词使用一个 H2
互动元素4摘要框、提示框、多样化内容块。可接受的标题包括:“TL;DR”、“Key Takeaways”、“The Bottom Line”、“What You'll Learn”、“At a Glance”、“In Brief”
语法/反模式3被动语态 ≤10%,AI 触发词 ≤5 个/1K 词,过渡词占 20-30%,行文流畅

可读性区间(按受众类型应用,或使用默认值):

受众Flesch 年级Flesch 易读度评分影响
消费者6-860-80在范围内即可获得满分
专业人士8-1050-60在范围内即可获得满分
技术人员10-1230-50在范围内即可获得满分
默认(无受众类型)7-860-70维持当前评分方式

内容清晰度是影响 AI 引用概率的第 2 大因素(分数差异 +32.83%)。美国成年人的平均阅读水平为 7-8 年级。

SEO 优化(25 分)
检查项分值通过标准
包含关键词的标题层级5H1 -> H2 -> H3,不跳级,2-3 个标题中包含关键词
标题标签(40-60 个字符,包含关键词和有力词语)4关键词前置,情感积极
关键词位置/密度4自然融入,不堆砌,出现在前 100 个词内
内部链接(3-10 个,符合上下文)4锚文本描述清晰,双向链接
URL 结构3简短,包含关键词,不含停用词,全部小写
元描述(150-160 个字符,含统计数据)3信息密集,包含一项统计数据
外部链接(1-3 级)2包含 3-8 个指向权威来源的出站链接
E-E-A-T 信号(15 分)
检查项分值通过标准
作者署名(具名,附简介)4真实姓名、资历,不是推销话术
来源引用(1-3 级,文内引用)48 项以上独特统计数据,没有捏造内容
信任指标4联系页面、关于页面、编辑政策
经验信号3“我们测试时……”,原创照片/数据

根据 E-E-A-T 评估来源引用时,检查每项公开统计数据是否包含 FLOW 证据三要素:正文中标明年份,文内引用包含发布方和标题,来源区块中的 URL 附有检索日期。引用了 1-3 级来源但缺少检索日期的文章,在此子类别中的得分应低于包含完整三要素的文章。标准请参阅 skills/blog/references/flow-alignment.md。

技术要素(15 分)
检查项分值通过标准
Schema 标记(3 种以上类型可加分)4至少包含 BlogPosting + FAQ + Person
图片优化3使用 AVIF/WebP,alt 文本描述清晰,除 LCP 图片外均延迟加载
结构化数据元素2表格、列表、对比区块
页面速度信号2LCP < 2.5s,不含阻塞渲染的 JS
移动设备友好性2响应式设计,点击目标至少为 48px
OG/社交媒体元标签2og:title、og:description、og:image、twitter:card
AI 引用就绪度(15 分)
检查项分值通过标准
段落级可引用性(120-180 个词)4各部分内容独立完整,并包含统计数据和来源
问答格式的部分360-70% 的 H2 标题为问题形式,包含 FAQ
实体清晰度3主题实体明确,术语一致
便于提取的内容结构3答案优先,表格带有 thead,采用对比格式
AI 爬虫可访问性2SSR/SSG,不含由 JS 控制访问的内容
步骤 3:AI 内容检测

分析文章,评估 AI 生成内容的风险:

突发性得分(句长变化程度):

  • 计算整篇文章句长的标准差
  • 人类写作:变化程度高(短促有力的句子与复杂长句并存)
  • AI 写作:变化程度低(句长始终处于中等水平)
  • 得分:0-10 分(10 = 突发性非常接近人类写作)

已知 AI 常用短语检测:标记以下 17 个短语的出现情况:

  1. “需要注意的是”
  2. “在当今的数字环境中”
  3. “深入探讨”
  4. “应对复杂性”
  5. “让我们来探索”
  6. “此外”
  7. “总之”
  8. “值得一提的是”
  9. “开启……之旅”
  10. “尖端”
  11. “利用”(作为动词,非金融语境)
  12. “游戏规则改变者”
  13. “彻底改变”
  14. “简化”
  15. “发挥……的力量”
  16. “深入探究”
  17. “释放潜力”
  18. 破折号 (-) — 统计所有出现次数,并标记为 AI 写作模式

词汇多样性(类符-形符比):

  • 计算独特词汇数 / 总词数
  • 人类写作:长篇内容的 TTR 通常为 0.4-0.6
  • AI 写作:TTR 通常低于 0.35(词汇重复)

AI 内容风险评估:

  • 如果综合信号表明 AI 概率 > 50%,则进行标记
  • 提供触发标记的具体段落
  • 建议增加人类写作特征:个人轶事、多变的句子节奏、领域术语
步骤 4:确定评分
分数评级操作
90-100卓越原样发布,作为旗舰内容
80-89强稍作润色,即可发布
70-79可接受需要针对性改进
60-69未达标准需要大幅返工
< 60重写存在根本性问题,从大纲开始重写
步骤 4.5:可选序数评分标准(--rubric)

传入 --rubric 时,还会根据 skills/blog/references/editorial-heuristics.md 中定义的 10 项编辑启发式标准为文章评分。每项标准得分为 0-4,并标注严重程度(P0 / P1 / P2 / P3 / 无)。

评分标准不会取代 100 分制评分,而是与之并行运行,并指出哪些问题会阻止发布,哪些只需润色。

评分标准的输出格式为以下任一形式:

  • Markdown 表格(默认),附加在主报告下方,标题为 ### 编辑启发式评分标准。
  • 使用 --format json 时,输出为 JSON rubric 字段。

评分标准 JSON 架构:

{
  "rubric": {
    "heuristics": [
      { "id": 1, "name": "Visibility of intent", "score": 3, "severity": "P2", "note": "Summary box generic" },
      ...
    ],
    "p0_count": 0,
    "p1_count": 1,
    "p2_count": 2,
    "p3_count": 3
  }
}
步骤 4.6:可选认知负荷热图(--cognitive-load)

传入 --cognitive-load 时,运行 scripts/cognitive_load.py <file> --format json,并将结果嵌入 JSON 输出的 cognitive_load 字段,或追加为 Markdown 输出中的 ### 认知负荷热图 部分。有关阈值和解读,请参阅 skills/blog/references/cognitive-load.md。

步骤 5:生成报告

默认输出格式(Markdown):

## Blog Quality Report: [Title]

**Score: [X]/100** - [Rating]

### Score Breakdown
| Category | Score | Max | Notes |
|----------|-------|-----|-------|
| Content Quality | X | 30 | [1-line summary] |
| SEO Optimization | X | 25 | [1-line summary] |
| E-E-A-T Signals | X | 15 | [1-line summary] |
| Technical Elements | X | 15 | [1-line summary] |
| AI Citation Readiness | X | 15 | [1-line summary] |
| **Total** | **X** | **100** | |

### AI Content Risk
- **Burstiness score**: [X]/10 ([human-like / moderate / flat])
- **AI phrases detected**: [N] ([list phrases found])
- **Vocabulary diversity (TTR)**: [X] ([high / acceptable / low])
- **AI probability**: [X]% - [No concern / Review recommended / High risk]
- **Flagged passages**: [quote specific flat or formulaic sections, if any]

### Issues Found

#### Critical (Must Fix)
- [ ] [Issue with specific location and fix]

#### High Priority
- [ ] [Issue with specific location and fix]

#### Medium Priority
- [ ] [Issue with specific location and fix]

#### Low Priority
- [ ] [Issue with specific location and fix]

### Quick Stats
- Word count: [N]
- Paragraphs: [N] (X over 150 words)
- H2 sections: [N] (X as questions, X with answer-first formatting)
- Statistics: [N] sourced / [N] unsourced
- Images: [N] (X with alt text, formats: ...)
- Charts: [N] (types: ...)
- Internal links: [N]
- External links: [N] (tier breakdown: ...)
- Schema types: [list]
- OG/social tags: [present/missing]

### Recommended Actions
1. [Most impactful fix: Critical items first]
2. [Second most impactful]
3. [Third]

Run `/blog rewrite <file>` to apply these optimizations automatically.

导出格式

默认:Markdown 报告

如上所示的标准详细报告。

JSON 导出(--format json)

可供 CI/CD 或仪表板集成的机器可读输出:

{
  "file": "post.md",
  "title": "...",
  "score": 78,
  "rating": "Acceptable",
  "categories": {
    "content_quality": { "score": 22, "max": 30 },
    "seo_optimization": { "score": 18, "max": 25 },
    "eeat_signals": { "score": 12, "max": 15 },
    "technical_elements": { "score": 13, "max": 15 },
    "ai_citation_readiness": { "score": 13, "max": 15 }
  },
  "ai_detection": {
    "burstiness": 6.2,
    "ai_phrases_found": ["Furthermore", "Let's explore"],
    "ttr": 0.44,
    "ai_probability": 32
  },
  "issues": {
    "critical": [],
    "high": [],
    "medium": [],
    "low": []
  }
}
表格导出(--format table)

便于快速审阅的精简摘要:

File            | Score | Rating     | Content | SEO | EEAT | Tech | AI-Ready | AI Risk
post.md         |    78 | Acceptable |   22/30 | 18/25 | 12/15 | 13/15 |    13/15 |    32%

批处理模式

指定目录或 --batch 标志时,扫描博客文件并生成汇总表。使用 --sort score 按分数排序(默认升序)。

## Blog Audit Summary: [N] Posts Analyzed

| File | Score | Rating | Content | SEO | EEAT | Tech | AI-Ready | AI Risk | Top Issue |
|------|-------|--------|---------|-----|------|------|----------|---------|-----------|
| post-1.md | 85 | Strong | 26/30 | 20/25 | 13/15 | 14/15 | 12/15 | 18% | Missing OG tags |
| post-2.md | 42 | Rewrite | 10/30 | 8/25 | 5/15 | 9/15 | 10/15 | 71% | 12 fabricated stats |
| post-3.md | 71 | Acceptable | 20/30 | 16/25 | 10/15 | 12/15 | 13/15 | 25% | No answer-first |

### Priority Queue (Lowest Scoring First)
1. post-2.md (42): Full rewrite needed, high AI content risk
2. post-3.md (71): Answer-first formatting + stats needed
3. post-1.md (85): Add OG tags, minor polish

Run `/blog rewrite <file>` on each, starting from lowest score.

评论

支持 Markdown