mcpField
B
blog-analyze

blog-analyze

github.com/infrasity-labsマーケティング・グロース15197 回インストール18 週間前に更新
リポジトリ

blog-analyze について

ライターや編集者向けに、ローカルファイルまたは公開 URL のブログ記事を5つの品質カテゴリで採点し、優先度付きの改善案を示すスキルです。AI文章の兆候も分析でき、任意で編集ルーブリックと節ごとの認知負荷レポートを追加します。

主な機能

  1. 015つの品質カテゴリで記事を採点
  2. 02SEOとE-E-A-Tの指標を分析
  3. 03AI文章のリスク指標を評価
  4. 04ローカルファイル・URL・ディレクトリを監査
  5. 05Markdown・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つのカテゴリにわたって0〜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:2段階の反射的手法(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の editorial-heuristics 評価基準を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(title、description、date、lastUpdated、author、tags)
  • 見出し構造(階層を含む H1、H2、H3)
  • 段落数と段落ごとの単語数
  • 統計情報(出典の有無を問わず、数値を含む主張)
  • 画像(数、代替テキストの有無、形式)
  • チャート/SVG(数、種類の多様性)
  • リンク(内部、外部、リンク切れ)
  • FAQ セクションの有無
  • スキーママークアップ(含まれる種類)
  • メタタグ(タイトル、説明、OG タグ、Twitter カード)
  • 文章のリズム分析用の文の長さ
  • 多様性スコアリング用の語彙トークン
ステップ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 トリガーワードは1,000語あたり5個以下、つなぎ言葉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 つ含める
外部リンク(ティア 1~3)2信頼できる情報源への発リンクを 3~8 個含める
E-E-A-T シグナル(15 点)
チェック項目点数合格基準
著者の明記(実名、略歴付き)4実名と資格を記載し、売り込みになっていない
出典の引用(ティア 1~3、本文内)4独自の統計情報が 8 件以上あり、捏造がない
信頼性を示す情報4お問い合わせページ、概要ページ、編集方針がある
経験を示す情報3「テストしたところ……」などの記述、独自の写真やデータがある

E-E-A-T に基づいて出典の引用を評価する際は、公開されている統計情報それぞれに、FLOW のエビデンストリプル(本文中の年の明記、発行元とタイトルを含む本文内引用、出典ブロック内の取得日付き URL)が揃っているかを確認してください。ティア 1~3 の出典を引用していても取得日が記載されていない記事は、トリプルがすべて揃っている記事より、この小項目の評価が低くなります。標準については skills/blog/references/flow-alignment.md を参照してください。

技術的要素(15 点)
チェック項目点数合格基準
スキーママークアップ(3 種類以上でボーナス)4最低限 BlogPosting + FAQ + Person を含める
画像の最適化3AVIF/WebP を使用し、説明的な代替テキストを設定し、LCP 対象以外は遅延読み込みにする
構造化データ要素2表、リスト、比較ブロックを含める
ページ速度のシグナル2LCP < 2.5s、レンダリングをブロックする JS がない
モバイル対応2レスポンシブで、タップ領域が 48px 以上
OG/ソーシャルメタタグ2og:title、og:description、og:image、twitter:card
AI 引用への対応(15 点)
チェック項目点数合格基準
段落単位での引用可能性(120~180 語)4統計情報と出典を含む、単独で意味が通じるセクション
Q&A 形式のセクション3H2 の 60~70%を質問形式にし、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 テーブル(デフォルト)。メインレポートの末尾に ### Editorial Heuristics Rubric の見出しを付けて追加します。
  • JSON。--format 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 出力では ### Cognitive Load Heatmap セクションを末尾に追加します。しきい値と解釈については、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.

コメント