| name | seo-aio-report-builder |
| description | seo-aio-prod MCP で取得した SEO/AIO/LLMO データから、ガートナー風の診断レポート(HTML/PDF)を生成する。MCP=データ取得、本スキル=レポート生成、の分離。 |
SEO/AIO/LLMO 診断レポート ビルダー
役割分担: データ取得は seo-aio-prod MCP(run_research / get_run_data / capture_screenshots)、
レポートの組み立て・デザインは本スキル。生成ロジックの正本は seo-aio-diagnosis エンジンの
07_report.py + templates/base.css(本スキルはそれを run ディレクトリに対して呼ぶ)。
レポートに含まれるもの
- 1a サイト構造(index規模・サイトマップURL数・SPA判定)/1b コンテンツ整備マトリクス(○専用ページ・△トップ記載のみ・✕)
- 2a/2b ポジショニング・可視性マップ(自社=赤)/2e 競合の訴求コピー比較/2f 競合LPの見た目比較
- 3 商業価値マップ/3b 競合の勝ち筋(keyword gap)
- 4a AI Overview 引用/4b LLMO(Gemini/ChatGPT/Claude×インテント別の言及有無・順位)
- 5a SERP SoV/5b 生成AI SoV(ブランド指名質問は除外=純粋SoV)/5b 改善効果(円換算)
使い方
データは run ディレクトリに揃っている前提(run-spec.json + keywords/serp/footprint/gap/site/llm/profiles/shots(.json))。
python ~/.claude/skills/seo-aio-report-builder/scripts/build_report.py --run-dir <run_dir>
python ~/.claude/skills/seo-aio-report-builder/scripts/build_report.py --run-dir <run_dir> --full
出力: run-spec の output_dir/report_stem に .html と .pdf。
MCP との連携フロー
- 取得(MCP):
create_spec → run_research(run_id, with_llmo=true)(必要なら capture_screenshots)。
- ローカルのエンジンで回す場合は run ディレクトリに各 JSON が揃う。
- 本番 MCP 経由の場合は run ディレクトリがサーバ側のため、
run_report がサーバで本スキルと同じ生成を行う。
- 生成(本スキル): 上記
build_report.py --run-dir。
- 競合LP比較(2f)を出すには
capture_screenshots 実行済みであること(fold画像が run dir/screenshots に必要)。
- 競合訴求比較(2e)/ポジショニング(2a)は
--profiles(run_research の with_profiles 相当)で profiles.json が必要。
設定
- エンジン位置: 既定
~/.claude/skills/seo-aio-diagnosis。SEO_AIO_ENGINE(または SKILL_DIR)で上書き。
- Python: 既定でエンジンの
.venv。ENGINE_PY で上書き。
- 鮮度:
--report-only(既定)は serp.json が7日以内であること(古い場合は --full か MCP で再取得)。
注意
- レポート意匠(base.css・配色・マップ描画)はエンジン側が正本。デザイン変更はエンジンの templates/base.css と 07_report.py で行う(フォークしない)。
- 取得結果は seo-aio-prod 側でキャッシュ(種別別TTL・Supabase Storage永続)されるため、再生成は低コスト。