blog-rewrite について
blog-rewriteは、既存のブログ記事を検索とAI引用に向けて監査・改稿するスキルです。品質を評価し、承認用の最適化計画を示したうえで、筆者の文体や記事の長所を保ちながら改稿します。
主な機能
- 01内容・SEO・引用対応状況の監査
- 02AI風の文章パターンの検出
- 03動画埋め込みとキーワード競合の確認
- 04統計データとビジュアル素材の調査
- 05筆者の文体を保った記事の改稿
活用シーン
- 01変更前に既存のブログ記事を監査
- 02裏付けのない統計を出典付きデータに置換
- 03検索とAI引用への記事の対応を改善
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill blog-rewriteインストール後、Claude Code で/blog-rewriteを入力して読み込まれたか確認します。
詳細
ブログリライター:既存記事の最適化
既存のブログ記事を書き換え、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- 画像の選定とグラフのスタイルskills/blog/references/synthesis-contract.md- 書き換え時の再引用の適切さを保つための6つの LAW(v1.8.0。スキル間の参照先はオーケストレーターの references ディレクトリにあります)skills/blog/references/research-quality.md- 置き換え用統計データを調査するための、複数ソースにまたがるクラスタリング(v1.8.0)
相互参照
書き換え作業に直接活用できる、エビデンスに基づく最適化プロンプト21件(AI 検出器テスト、CTR 監査、スキーマ、PAA の言い換え、技術監査、ChatGPT での可視性)については、/blog flow optimize を参照してください。
ワークフロー
フェーズ1:監査(読み取り専用)
- ブログ記事を読む - 形式を判定します(MDX、markdown、HTML)
references/quality-scoring.mdに照らして品質チェックリストを実施します:- 捏造された統計と出典のある統計を数えます
- 回答を先に示す形式か確認します(H2 -> 最初の文に統計があるか?)
- 画像とグラフの数を数えます(種類に多様性があるか?)
- 段落の長さを測定します(150語を超える段落があるか?)
- 見出し階層を確認します(H1 -> H2 -> H3、階層の飛び越しがないか?)
- FAQ スキーマを探します
- 情報の鮮度を示すシグナルを確認します(lastUpdated、dateModified)
- 自己宣伝の度合いを評価します
- 引用元のティア品質を評価します
- AI コンテンツ検出スキャン:
- バースティネススコア - 記事全体で文の長さのばらつきを測定します。ばらつきが小さい(ほとんどの文が互いに3~5語以内)場合は、AI による生成を強く示すシグナルです。 計算方法:文の語数の標準偏差。目標 SD > 6。
- 既知の AI フレーズのスキャン - 頻出する以下の AI フレーズを確認します:
- "in today's digital landscape", "it's important to note", "dive into"
- "game-changer", "navigate the landscape", "revolutionize", "seamlessly"
- "cutting-edge", "harness the power of", "leverage"(動詞として)
- "delve", "crucial", "elevate", "foster", "landscape"(過剰使用)
- "multifaceted", "robust", "tapestry", "embark"
- 完全なリストは
agents/blog-writer.mdにあります
- 語彙の多様性 - Type-Token Ratio(TTR)を計算します:異なる単語数 / 総単語数。TTR が低い(< 0.40)場合、AI 生成による反復的な表現が示唆されます。自然な文章の目標 TTR は > 0.50 です。
- AI コンテンツ割合の推定 - バースティネス、フレーズ密度、TTR に基づき、コンテンツのうち AI 生成のように読める割合を推定します(0~100%)。次の形式で報告します:"AI content estimate: ~X%"
- 二次構造反射スキャン(v1.8.0) - 上記の一次チェックは語彙レベルのものです。二次パスでは、明白な単語を置き換えた後にも残る、LLM が使いがちな構造やリズムの癖を検出します。
skills/blog/references/ai-slop-detection.mdに照らして実行します。最低限、以下に該当するものを指摘します:- 疑問形の H2 が見出し全体の70%を超える
- 「Here...」で始まる段落が3つ以上ある
- 200語の範囲内で、3節からなる文のリズムが50%を超える
- 20語の範囲内に、ヘッジ語("may," "often," "typically," "generally")が3つ以上ある
- 対称的なリストの肥大化(リスト項目の語数の SD が5未満)
- まとめに使われる修辞的な疑問文("What does this mean for...?")が3つ以上ある
- H2 の冒頭の半数超が、つなぎ言葉で始まる
- "The key insight is..." または "What's important here is..." で始まる文
- リスト記事で、リスト前の導入が250語を超える
- 文頭語の反復:上位3つの文頭語の割合が25%を超える
- 段落形状の SD が25未満(視覚的な単調さ)
2つのパスがどちらも問題なしの場合にのみ、原稿を「AI 検出クリーン」とします。slop 検出の一次/二次と、情報源の信頼性に関する Tier 1/2/3 という用語体系を分けているのは意図的です。ラベルが v1.8.1 で異なるものになった理由については、
skills/blog/references/ai-slop-detection.mdを参照してください。
- 動画埋め込みチェック:
- 記事内にある YouTube 埋め込みの数を数えます
- 埋め込みが0件の場合、次のように指摘します:"No video embeds. YouTube has the strongest AI visibility correlation (0.737)"
- 埋め込みがある場合、遅延読み込み、aria-label、noscript フォールバック、VideoObject スキーマを確認します
- カニバリゼーションチェック:
- タイトル、H1、最初の段落から記事の主要キーワードを特定します
- ブログディレクトリを検索し、同じキーワードを対象とする他の記事を探します:
- すべてのブログ記事の見出しとメタディスクリプションを grep で検索します
- キーワードに大きな重複がある記事を指摘します
- カニバリゼーションが見つかった場合、以下を報告します:
- 同じキーワードをめぐって競合している記事
- 推奨事項:統合(1つのより強力な記事にまとめる)または差別化(一方の記事を関連性はあるものの別個のキーワードに移行する)
- 5つのカテゴリにわたって現在のスコアを算出します:
- 5つのカテゴリで採点します(コンテンツ品質 30、SEO 最適化 25、E-E-A-T シグナル 15、技術要素 15、AI 引用対応度 15)
- 合計:0~100
- 具体的な調査結果、AI 検出結果、動画の状況、カニバリゼーションの状況、スコアを含む監査概要を提示します
- プランモードに入る - セクションごとの最適化計画を提示します 続行する前に、ユーザーの承認を待ちます。
フェーズ 2:調査
- 既存のコンテンツから、ブログの中心的なトピックを特定します
- 捏造または出典のないデータがあれば、代わりとなる統計情報を探します:
- 検索:
[topic] study 2025 2026 data statistics - ティア 1~3 の情報源のみを対象にします
- 検索:
- 記事に画像が 3 枚未満の場合は、画像を探します:
- Pixabay:
site:pixabay.com [topic keywords] - Unsplash:
site:unsplash.com [topic keywords] - 各 URL が HTTP 200 を返すことを確認します
- nanobanana-mcp が設定されている場合は、不足している画像の AI 生成を
blog-image経由で提案します
- Pixabay:
- 記事にグラフが 2 つ未満の場合は、グラフを計画します:
- 視覚化に適したデータを特定します
- 多様なグラフの種類を選びます
フェーズ 3:グラフ生成(組み込み)
記事に視覚要素を追加する必要がある場合は、blog-chart サブスキルを呼び出します:
- 多様性ルールに従ってグラフの種類を選択します(記事内で同じ種類を繰り返さないでください)
- グラフの種類、タイトル、データ値、出典、プラットフォーム形式を渡します
- 返された SVG を
<figure>ラッパー内に直接埋め込みます - 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 で、横長のヒーロー画像(1200x630)を検索します
- または、
blog-chartでカスタム SVG カバーを生成します(主要な統計情報を含むグラデーション上のテキスト) - または、
blog-imageサブスキルでカスタム AI 画像を生成します(nanobanana-mcp が設定されている場合)
- タグ/カテゴリーが適切か確認します
4c. 回答を先に示す形式を適用する
すべての H2 セクションは、次の内容を含む 40~60 語の段落から必ず始めます:
- 出典を明記した、具体的な統計情報を少なくとも 1 つ
- 見出しに暗黙的に含まれる問いへの直接的な回答
4d. 捏造された統計情報を置き換える
- 「X% of...」「X out of Y...」などのパターンや、出典のない主張を検索します
- ティア 1~3 の情報源から得た実際のデータに置き換えます
- 必ずインラインで出典を明記します:
([Source Name](url), year)
4e. 見出しを改善する
- 自然な場合は、断定的な見出しを疑問形にします(目標は 60~70%)
- バリエーションを持たせるため、断定的な見出しを 2~3 個残します
- キーワードが 2~3 個の見出しに自然に含まれるようにします
4f. 段落の長さを修正する
- 150 語を超える段落は分割します
- 1 段落あたり 40~80 語を目標にします
- 各段落の冒頭に最も重要な文を置きます
4g. 視覚要素を追加する
- 新しい画像は H2 見出しの後に埋め込み、均等に配置します
- 関連するセクションにグラフを埋め込みます
- nanobanana-mcp が設定されている場合:適切なストック画像が見つからないセクション向けにカスタム画像を生成します(Task 経由で
blog-imageサブスキルを呼び出します) - 検出されたプラットフォームに合わせて埋め込み形式を調整します(MDX、Markdown、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 回にします(著者プロフィールの文脈のみ)
- 「At [Company], we...」のようなパターンを削除します
- 宣伝的なセクションを教育的なコンテンツに置き換えます
4k. 引用カプセルの挿入
各 H2 セクションに引用カプセルを生成(または既存のものを改善)します。
- H2 ごとに、40~60 語の独立して読める文章を入れます
- 具体的な主張を 1 つ、データポイントを 1 つ、出典の帰属を含めます
- AI システムがそのまま抽出して引用できるよう、断定的な文体で書きます
- 独立したコールアウトではなく、セクション本文に自然に配置します
例:
According to a 2026 Gartner study, 58% of enterprise buyers now consult AI
assistants before contacting a vendor ([Gartner](https://www.gartner.com), 2026).
This shift means B2B content must answer specific questions concisely enough
for AI systems to extract and cite in their responses.
カプセルは、references/quality-scoring.md の「AI Citation Readiness」カテゴリ(15 ポイント)に対応します。
4l. AI 検出を避けるためのパターン
AI による検出が可能な文章パターンを減らすため、次の変更を適用します。
- em ダッシュをすべて削除する - すべての em ダッシュ(-)を、カンマ、ハイフン(-)、コロン、またはピリオドに置き換えます。必要に応じて文を分割します。em ダッシュは AI が書いた文章の特徴です。
- フラグが付いた表現を置き換える - 検出された AI 特有の表現(フェーズ 1 のステップ 3 でスキャンしたもの)を、自然な言い回しに置き換えます。例:
- "it's important to note" -> "worth noting" または "keep in mind"
- "in today's digital landscape" -> "right now" または "in [specific year]"
- "leverage" -> "use", "apply", "take advantage of"
- "delve" -> "look at", "explore", "dig into"
- "robust" -> "strong", "solid", "reliable"
- "crucial" -> "key", "essential", "critical"(または文を組み立て直す)
- 文の長さに意図的な変化をつける - 書き直した後、各段落を確認します。長い文(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"
- 断定を和らげる表現を含める - 実体験を感じさせる一人称の表現を散りばめます。"in our experience"、"we've found that"、"from what we've seen"、"this tends to"、"it depends on"
4m. 要約ボックス(重要なポイント)
投稿に要約ボックスがない場合は、導入の直後に追加します。
> **Key Takeaways**
> - [Core finding with statistic and source]
> - [Second key insight or recommendation]
> - [Third actionable takeaway]
> (3-5 bullets, 40-60 words combined. Self-contained - reader gets
> the core value without reading the full article.)
デフォルトのラベルは「Key Takeaways」ですが、ペルソナやブランドの語調に応じて変更できます(例:「The Bottom Line」「Quick Summary」「What You Need to Know」)。
既存の TL;DR ボックスがある場合は、箇条書き形式の「Key Takeaways」に変更します。40~60 語の要件を満たし、出典を明記した統計を少なくとも 1 つ含んでいることを確認します。
4n. 情報価値マーカーの挿入
投稿に独自の価値があるか確認し、タグを付けます。
[ORIGINAL DATA]- 著者が独自に収集した独自データ、アンケート結果、実験、またはケーススタディの指標[PERSONAL EXPERIENCE]- 実体験に基づく観察や学び[UNIQUE INSIGHT]- データに裏付けられた新たな分析や通説に反する見解
投稿に独自の価値を示すマーカーがない場合:
- 著者に、追加できる実体験のデータや経験を尋ねます
- 少なくとも、既存の研究を新しい視点で結びつける分析的な洞察を加えます
- 目標:投稿あたり少なくとも 2~3 個のマーカー
投稿のスタイルに応じて、HTML コメント(``)または目に見えるコールアウトを使います。
フェーズ 5:検証
書き直した後、すべての品質ゲートを満たしていることを確認します。
基本的な品質ゲート
- すべての H2 の冒頭に統計と出典がある
- 150 語を超える段落がない
- 捏造された統計が一切ない
- 見出しの階層が適切である
- FAQ セクションがスキーマ付きで含まれている
- 画像に内容を説明する alt テキストがある
- frontmatter にカバー画像(coverImage + ogImage)がある
- MDX の場合:コンパイルエラーがないことを確認するため、プロジェクトをビルドする
新要素の検証
- TL;DR ボックスが導入の後にある(40~60 語で、統計を含む)
- 情報価値マーカーが少なくとも 2~3 個ある
- 主要な H2 セクションに引用カプセルがある(40~60 語で、独立して読める)
- 内部リンクの挿入箇所が示されている、または実際のリンクがある(2,000 語あたり 5~10 個)
- 禁止リストにある、AI に検出される表現が残っていない
変化に富んだ自然な文章のチェック
- 文の長さにばらつきがあること:標準偏差が 6 を超える(短文と長文を織り交ぜる)
- 全体を通して、自然な短縮形を使用している
- 修辞疑問文が含まれている(200~300 語につき 1 つ)
- AI 生成コンテンツの推定割合が監査時の基準値より低下している
- Phase 1 の監査と比べて、5 つすべてのカテゴリーでスコアが向上している
- YouTube 動画が遅延読み込み、aria-label、noscript のフォールバック付きで埋め込まれている
Phase 6:要約
## Blog Optimization Complete: [Title]
### Score Change
- Before: [X]/100 ([Rating])
- Content Quality: [X]/30
- SEO Optimization: [X]/25
- E-E-A-T Signals: [X]/15
- Technical Elements: [X]/15
- AI Citation Readiness: [X]/15
- After: [Y]/100 ([Rating])
- Content Quality: [Y]/30
- SEO Optimization: [Y]/25
- E-E-A-T Signals: [Y]/15
- Technical Elements: [Y]/15
- AI Citation Readiness: [Y]/15
### AI Detection
- Before: ~[X]% AI-detected content
- After: ~[Y]% AI-detected content
- Phrases replaced: [N]
- Burstiness improved: [before SD] -> [after SD]
### Cannibalization
- [Status: none found / flagged N posts / resolved]
### Changes Made
- [X] statistics replaced with sourced data
- [X] SVG charts added (types: ...)
- [X] images added from Pixabay/Unsplash
- Answer-first formatting applied to [N] H2 sections
- FAQ schema injected with [N] questions
- TL;DR box: [added/updated]
- Information gain markers: [N] ([types])
- Citation capsules: [N] across H2 sections
- AI phrases replaced: [N]
- lastUpdated set to [date]
- Self-promotion reduced to [N] mentions
### Visual Elements
- Charts: [count] ([types])
- Images: [count]
- YouTube videos: [count] ([titles])
### Ready for
- `/blog analyze <file>` to verify final score
- Publishing / deploying
Phase 5.5:納品契約の適用
書き直した草稿を提示する前に、skills/blog/references/blog-delivery-contract.md に従って 5 つのゲートからなる納品契約を実行してください。この契約は新規投稿と同様に書き直しにも適用されます。ユーザーが最初のレビュアーになることはありません。
手順:
- ヒーロー画像の確認:既存の投稿にヒーロー画像への参照があり、その画像が引き続きディスク上に存在する場合は、そのまま使用します。書き直しでトピックが大きく変わった場合、またはヒーロー画像がない場合は、
python scripts/generate_hero.py --topic "<new title>" --tags "<tags>" --out <folder>を使って再生成します。 - 再レンダリング:
python scripts/blog_render.py --md <slug>.md --out-dir <folder>を実行し、更新した.mdから.htmlと.pdfを再生成します。 - レビュアーへの依頼:レンダリング済みの
.htmlを対象に、blog-reviewerエージェントにレビューを依頼します。基準は、スコアが 90/100 以上で、P0 の問題がゼロであることです。 - 事前チェック:
python scripts/blog_preflight.py --draft <folder> --strictを実行します。終了コード 0 は公開可能、終了コード 1 は公開不可です。 - 失敗時の反復:反復は最大 3 回です。3 回目の失敗後は停止し、
<folder>/preflight-report.jsonの診断結果を提示します。
既存の草稿はすでに公開済みと考えられるため、書き直しには暗黙の基準がより高く設定されています。元の内容より悪いものを再提示することは認められません。書き直し後のスコアが元のスコアを下回る場合、それ自体が P0 の条件に該当します。
更新モード
/blog update <file> として呼び出された場合は、情報の鮮度を重視します。
- 統計情報を入手可能な最新のデータ(2025~2026 年)に更新する
- 前回の更新以降の新しい動向を追加する
- 画像が 1 年以上前のものであれば更新する
- frontmatter の
lastUpdatedを更新する - 既存の構成を維持し、書き直しを最小限に抑える
- AI クローラーに「最新」と認識されるよう、コンテンツの少なくとも 30%を変更する