Communityコーディング&開発github.com

blog-rewrite

既存のブログ記事をリライト・最適化し、Google検索とAI引用プラットフォームの両方でのランキングを向上させます。作成者の声を維持しながら、最適化の6つの柱を適用します。

blog-rewrite とは?

このスキルは、既存のブログ記事を包括的に監査・リライトし、Google検索とAI引用プラットフォームの両方で上位表示されるよう最適化するためのエージェントツールです。6段階のワークフロー(監査、リサーチ、チャート生成、リライト、検証、サマリー)に従い、まず記事の品質スコア(5カテゴリ、100点満点)を算出し、AI検出率を測定します。その後、フェイク統計の置き換え、アンサーファースト形式の適用、画像・動画の追加、FAQスキーマの注入、引用カプセルの埋め込みなど、具体的な改善を実施。特にバースト性スコア(標準偏差>6)やタイプ・トークン比(TTR>0.5)などの指標で自然な文章を保ちながら、AIクローラーに引用されるための対策を施します。Claude Code、Cursor、Codexなどのプラットフォーム上で動作し、updateモードでは記事の鮮度を高めてAIクローラーに「新しいコンテンツ」と認識させることを狙います。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AgriciDaniel/claude-blog/tree/main/skills/blog-rewrite

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ブログリライター – 既存記事の最適化

既存のブログ記事をリライト・最適化し、Google検索とAI引用プラットフォームの両方でのランキングを向上させます。作成者の声を維持しながら、最適化の6つの柱を適用します。

主なリファレンス:

  • references/quality-scoring.md – 5カテゴリのスコアリング(コンテンツ30、SEO 25、E-E-A-T 15、技術15、AI引用15)
  • references/eeat-signals.md – 経験、専門性、権威性、信頼性のマーカー
  • references/internal-linking.md – リンク戦略とアンカーテキストのルール
  • references/visual-media.md – 画像ソーシングとチャートのスタイル設定

ワークフロー

フェーズ1: 監査(読み取り専用)

  1. ブログ記事を読む – フォーマットを検出(MDX、Markdown、HTML)
  2. 品質チェックリストを実行(references/quality-scoring.md に基づく):
    • 捏造された統計 vs ソース付き統計の数をカウント
    • アンサーファースト形式をチェック(H2 → 最初の文に統計があるか?)
    • 画像とチャートの数をカウント(種類の多様性は?)
    • 段落の長さを測定(150語を超えるものはあるか?)
    • 見出し階層をチェック(H1 → H2 → H3、飛ばしはないか?)
    • FAQスキーマの有無を確認
    • 鮮度シグナルをチェック(lastUpdated、dateModified)
    • 自己宣伝の度合いを評価
    • 引用元の質を評価
  3. AIコンテンツ検出スキャン:
    • バースト性スコア – 記事全体の文の長さのばらつきを測定。ばらつきが小さい(ほとんどの文が互いの長さの3~5語以内)と強いAIシグナル。計算:文の単語数の標準偏差。目標SD > 6。
    • 既知のAIフレーズスキャン – 次の高頻度AIフレーズをチェック:
      • "現代のデジタルランドスケープでは"、"重要なのは"、"深く掘り下げる"
      • "ゲームチェンジャー"、"状況をナビゲートする"、"革命を起こす"、"シームレスに"
      • "最先端"、"の力を活用する"、"活用する"(動詞として)
      • "探求する"、"極めて重要"、"高める"、"育む"、"ランドスケープ"(多用される)
      • "多面的"、"堅牢"、"タペストリー"、"乗り出す"
      • 完全なリストは agents/blog-writer.md 参照
    • 語彙の多様性 – タイプ・トークン比(TTR)を計算:異なり語数 / 総語数。低TTR(< 0.40)はAI生成の反復的な言い回しを示唆。目標TTR > 0.50(自然な散文の場合)。
    • AIコンテンツ推定割合 – バースト性、フレーズ密度、TTRに基づき、コンテンツのうちAI生成と読める割合を推定(0~100%)。「AIコンテンツ推定: 約X%」と報告する。
  4. 動画埋め込みチェック:
    • 記事内の既存のYouTube埋め込みをカウント
    • 埋め込みが0の場合、フラグを立てる:「動画埋め込みがありません。YouTubeはAI可視性と最も強い相関関係があります(0.737)」
    • 埋め込みがある場合、確認する:遅延読み込み? aria-label? noscriptフォールバック? VideoObjectスキーマ?
  5. カニバリゼーションチェック:
    • タイトル、H1、最初の段落から記事のプライマリーキーワードを特定
    • ブログディレクトリ内で同じキーワードをターゲットにしている他の記事を検索:
      • すべてのブログ記事の見出しとメタディスクリプションをgrep
      • キーワードが大幅に重複する記事にフラグを立てる
    • カニバリゼーションが見つかった場合、報告:
      • どの記事が同じキーワードで競合しているか
      • 推奨:統合(1つの強い記事にまとめる)または差別化(一方の記事を関連性はあるが異なるキーワードにシフト)
  6. 現在のスコアを計算(5カテゴリ):
    • 5カテゴリでスコアリング(コンテンツ品質30、SEO最適化25、E-E-A-Tシグナル15、技術要素15、AI引用対応度15)
    • 合計:0~100
  7. 監査サマリーを提示 – 具体的な所見、AI検出結果、動画ステータス、カニバリゼーションステータス、スコアを含む
  8. 計画モードに入る – セクションごとの最適化計画を提示

ユーザーの承認を待ってから先に進みます。

フェーズ2: リサーチ

  1. ブログのコアトピックを特定(既存のコンテンツから)
  2. 捏造された/ソースのないデータの代替統計を探す:
    • 検索:[トピック] スタディ 2025 2026 データ 統計
    • ティア1~3のソースのみをターゲットとする
  3. 画像を探す(記事の画像が3枚未満の場合):
    • Pixabay: site:pixabay.com [トピックキーワード]
    • Unsplash: site:unsplash.com [トピックキーワード]
    • 各URLがHTTP 200を返すことを確認
    • nanobanana-mcpが設定されている場合、不足・不十分な画像に対してblog-imageによるAI生成を提案
  4. チャートを計画(記事のチャートが2つ未満の場合):
    • 可視化に適したデータを特定
    • 多様なチャートタイプを選択

フェーズ3: チャート生成(組み込み)

記事により多くの視覚要素が必要な場合、blog-chartサブスキルを呼び出します:

  1. 多様性ルール(記事内で同じタイプを繰り返さない)を使ってチャートタイプを選択
  2. チャートタイプ、タイトル、データ値、ソース、プラットフォームフォーマットを渡す
  3. 返されたSVGを直接<figure>ラッパー内に埋め込む
  4. 2,000語の記事あたり2~4つのチャートを目標とする

チャートタイプの選択とスタイル設定のルールについては、references/visual-media.mdを参照してください。

フェーズ4: コンテンツリライト

以下の順序で変更を適用します:

4a. うまく機能している部分を維持

  • 著者の声と独自の視点を維持
  • オリジナルの洞察と直接の経験を保持
  • 既存の高品質な画像とチャートを維持
  • 内部リンクを維持

4b. フロントマターを修正

  • lastUpdated: "YYYY-MM-DD"(今日の日付)を追加
  • 元のdateは変更しない
  • メタディスクリプションを修正:事実が豊富で150~160文字、1つの統計を含む
  • coverImage + coverImageAlt + ogImageが欠けている場合は追加
    • Pixabay/Unsplash/Pexelsでワイドなヒーロー画像(1200×630)を検索
    • またはblog-chartでカスタムSVGカバーを生成(キー統計を使ったグラデーションテキスト)
    • またはblog-imageサブスキル(nanobanana-mcpが設定されている場合)でカスタムAI画像を生成
  • タグ/カテゴリが適切であることを確認

4c. アンサーファースト形式を適用

すべてのH2セクションは、以下を含む40~60語の段落で開始する必要があります:

  • 少なくとも1つの具体的な統計(ソースの帰属付き)
  • 見出しの暗黙の疑問への直接的な回答

4d. 捏造された統計を置き換え

  • パターンを検索:「X%の…」、「Y件中X件…」、ソースのない主張
  • ティア1~3のソースからの実際のデータに置き換え
  • 常にインライン帰属を含める:([ソース名](url)、年)

4e. 見出しを改善

  • 可能な場合、宣言型見出しを疑問文に変換(目標60~70%)
  • バラエティのために2~3つの宣言型見出しを残す
  • キーワードが自然に2~3の見出しに含まれていることを確認

4f. 段落の長さを修正

  • 150語を超える段落は分割
  • 段落あたり40~80語を目標
  • 各段落が最も重要な文で始まるようにする

4g. 視覚要素を追加

  • H2見出しの後に新しい画像を均等に間隔を空けて埋め込む
  • 関連するセクション内にチャートを埋め込む
  • nanobanana-mcpが設定されている場合:適切なストック画像が見つからないセクション用にカスタム画像を生成(Task経由でblog-imageサブスキルを呼び出す)
  • 埋め込み形式を検出されたプラットフォーム(MDX vs Markdown vs HTML)に適応させる

4h. 動画埋め込みを追加

記事にYouTube動画の埋め込みがない場合:

  • references/video-embeds.mdの品質基準を使用して、関連する動画を2~3本検索
  • プラットフォームに適した形式(srcdoc遅延読み込み)で埋め込む
  • 配置:導入部の後に1本、記事中盤のセクションに1~2本
  • AIクローラー用にnoscriptフォールバックを含める

4i. FAQを追加/改善

  • FAQがない場合、追加する(3~5の質問)
  • FAQがある場合、回答が40~60語で統計を含むことを確認
  • プラットフォームに適したFAQスキーママークアップを追加

4j. 自己宣伝を削減

  • ブランド名の言及は最大1つ(著者バイオの文脈のみ)
  • 「[会社名]では…」パターンを削除
  • プロモーションセクションを教育的なコンテンツに変換

4k. 引用カプセルの注入

各H2セクションに対して、引用カプセルを生成(または既存のものを改善):

  • H2ごとに40~60語の自己完結型パッセージ
  • 内容:1つの具体的な主張 + 1つのデータポイント + ソースの帰属
  • AIシステムが抽出して直接引用できるように、宣言型のスタイルで記述
  • 別のコールアウトとしてではなく、セクション本文内に自然に配置

例:

2026年のGartnerの調査によると、企業バイヤーの58%が現在、ベンダーに連絡する前にAIアシスタントを利用しています([Gartner](https://www.gartner.com)、2026年)。
この変化は、B2BコンテンツがAIシステムに抽出・引用されるために、十分に簡潔かつ具体的な質問に答える必要があることを意味します。

カプセルはreferences/quality-scoring.mdの「AI引用対応度」カテゴリ(15点)にマッピングされます。

4l. 対AI検出パターン

以下の変換を適用して、AI検出可能な書き方のパターンを減らします:

  • emダッシュを排除 – すべてのemダッシュ(—)をカンマ、ハイフン(-)、コロン、またはピリオドに置き換える。必要に応じて文を分割する。emダッシュはAIライティングの特徴です。
  • フラグ付きフレーズを置き換え – 検出されたすべてのAIフレーズ(フェーズ1のステップ3のスキャンから)を自然な代替表現に置き換える。例:
    • "it's important to note" -> "注目すべきは"、"留意したい点は"
    • "in today's digital landscape" -> "現在"、"[特定の年]において"
    • "leverage" -> "活用する"、"利用する"、"役立てる"
    • "delve" -> "見る"、"探る"、"掘り下げる"
    • "robust" -> "強力な"、"しっかりした"、"信頼できる"
    • "crucial" -> "重要な"、"不可欠な"、"決定的な"(または文を再構成)
  • 文の長さを意図的に変える – 書き換え後、各段落をスキャン。長い文(18~25語)の間に短くインパクトのある文(5~10語)を挿入。目標:互いの長さが5語以内の文を連続3つ以上にしない。
  • 修辞的な質問を挿入 – 200~300語ごとに少なくとも1つの修辞的な質問を追加し、宣言的な単調さを打破する。
  • 縮約形を自然に使う – フォーマルな構文を縮約形に置き換える(自然に聞こえる場合):「it is」→「it's」、「we have」→「we've」、「do not」→「don't」、「is not」→「isn't」。
  • ヘッジ表現を含める – 実際の経験を示す一人称のヘッジを散りばめる:「私たちの経験では」、「私たちが見つけたのは」、「私たちが見た限りでは」、「これは傾向として」、「状況による」。

4m. サマリーボックス(キーテイクアウェイ)

記事にサマリーボックスがない場合、導入部の直後に追加:

> **キーテイクアウェイ**
> - [統計とソースを含む核となる発見]
> - [2つ目の重要な洞察または推奨事項]
> - [3つ目の実践可能なポイント]
> (3~5個の箇条書き、合計40~60語。自己完結型 – 読者は全文を読まなくてもコアバリューを得られる。)

デフォルトのラベルは「キーテイクアウェイ」ですが、ペルソナやブランドボイスに応じて設定可能です(例:「結論」、「クイックサマリー」、「知っておくべきこと」)。

既存のTL;DRボックスがある場合、箇条書きのキーテイクアウェイ形式に変換します。40~60語の要件を満たし、少なくとも1つの統計とソースの帰属が含まれていることを確認します。

4n. 情報利得マーカーの注入

記事をレビューして独自の価値を特定し、タグ付けします:

  • [ORIGINAL DATA] – 独自データ、調査結果、実験、ケーススタディの指標で、著者が直接収集したもの
  • [PERSONAL EXPERIENCE] – 直接の観察、学んだ教訓
  • [UNIQUE INSIGHT] – 新しい分析、データに裏付けられた異論のある視点

記事に独自の価値マーカーがない場合:

  • 著者に直接のデータや経験を提供するよう依頼
  • 最低でも、既存のリサーチを新しい方法で結びつける分析的な洞察を追加
  • 目標:記事あたり少なくとも2~3個のマーカー

記事のスタイルに応じて、HTMLコメント(<!-- [ORIGINAL DATA] -->)または可視のコールアウトを使用します。

フェーズ5: 検証

リライト後、すべての品質ゲートが通過することを確認:

コア品質ゲート

  1. すべてのH2が統計 + ソースで始まっている
  2. 150語を超える段落がない
  3. 捏造された統計がゼロ
  4. 見出し階層がクリーン
  5. FAQセクションが存在し、スキーマがある
  6. 画像に説明的なaltテキストがある
  7. フロントマターにカバー画像が存在する(coverImage + ogImage)
  8. MDXの場合:プロジェクトをビルドしてコンパイルエラーがないことを確認

新要素の検証

  1. 導入部の後にTL;DRボックスが存在する(40~60語、統計を含む)
  2. 少なくとも2~3個の情報利得マーカーが存在する
  3. 主要なH2セクションに引用カプセルがある(40~60語、自己完結型)
  4. 内部リンクゾーンがマークされている、または実際のリンクが存在する(2,000語あたり5~10個)
  5. 禁止リストからのAI検出可能なフレーズが残っていない

バースト性と自然さのチェック

  1. 文の長さのばらつき:SD > 6(短い文と長い文の混在)
  2. 縮約形が全体で自然に使われている
  3. 修辞的な質問が存在する(200~300語ごとに1つ)
  4. AIコンテンツ推定が監査ベースラインから減少している
  5. スコアがフェーズ1の監査と比較して5カテゴリすべてで改善している
  6. YouTube動画の埋め込みが存在し、遅延読み込み、aria-label、noscriptフォールバックがある

フェーズ6: サマリー

## ブログ最適化完了: [タイトル]

### スコアの変化
- 最適化前: [X]/100([評価])
  - コンテンツ品質: [X]/30
  - SEO最適化: [X]/25
  - E-E-A-Tシグナル: [X]/15
  - 技術要素: [X]/15
  - AI引用対応度: [X]/15
- 最適化後: [Y]/100([評価])
  - コンテンツ品質: [Y]/30
  - SEO最適化: [Y]/25
  - E-E-A-Tシグナル: [Y]/15
  - 技術要素: [Y]/15
  - AI引用対応度: [Y]/15

### AI検出
- 最適化前: 約[X]% AI検出コンテンツ
- 最適化後: 約[Y]% AI検出コンテンツ
- 置き換えたフレーズ: [N]
- バースト性の改善: [最適化前SD] -> [最適化後SD]

### カニバリゼーション
- [ステータス: 問題なし / N件の記事をフラグ / 解決済み]

### 実施した変更
- [X] 個の統計をソース付きデータに置き換え
- [X] 個のSVGチャートを追加(種類: ...)
- [X] 枚の画像をPixabay/Unsplashから追加
- [N] 個のH2セクションにアンサーファースト形式を適用
- [N] 個の質問を含むFAQスキーマを注入
- TL;DRボックス: [追加/更新]
- 情報利得マーカー: [N] 個([種類])
- 引用カプセル: H2セクション全体で[N]個
- 置き換えたAIフレーズ: [N]個
- lastUpdatedを[日付]に設定
- 自己宣伝を[N]件の言及に削減

### 視覚要素
- チャート: [個数]([種類])
- 画像: [枚数]
- YouTube動画: [本数]([タイトル])

### 次のステップ
- `/blog analyze <ファイル>` で最終スコアを検証
- 公開/デプロイ

更新モード

/blog update <ファイル> で呼び出された場合、鮮度を重視:

  1. 統計を最新のデータ(2025~2026年)に更新
  2. 前回の更新以降の新しい動向を追加
  3. 1年以上経過した画像を更新
  4. フロントマターのlastUpdatedを更新
  5. 既存の構造を維持 – 書き換えを最小限に
  6. 目標:少なくとも30%のコンテンツ変更を行い、AIクローラーに「新しい」と認識させる

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

関連スキル