# アリス編集室テンプレート 設定ファイルの見本(設定ファイルはこれ1つだけです)
# 使い方: このファイルをプロジェクトのルートに config.yaml という名前でコピーして、空欄を自分の値で埋めてください。
# config.yaml は Git に入れないでください(.gitignore 済み)。
# このファイルの中の相対パスは、すべてプロジェクトのルート(config.yaml を置く場所)が基準です。
#
# 「必須」と書いた項目が空のままだと、article-review スキルは採点を始める前に止まります。
# 合格点(pass_score)や書き直し回数(max_rewrite_loops)に「正解の既定値」はありません。自分のサイトで試して決めてください。
# ── サイトの基本情報 ─────────────────────────────
site:
key: "" # 必須。英数字の短い名前(例: myblog)。分析DBの site 列と同じ値にする
name: "" # 必須。サイト名
domain: "" # 必須。例: example.com(https:// は付けない)
project_instructions: "CLAUDE.md" # エージェントが着手前に読むファイル
writing_guide: "docs/writing_guide.md" # 執筆規約(字数・記法・広告配置)
# ── 人の呼び方 ───────────────────────────────────
# エージェントが報告や確認で使う、最終判断をする人の呼び方。
operator_name: "運営者"
# ── フォルダ構成 ─────────────────────────────────
paths:
articles: "content/articles" # 記事の原本({slug}.md または {slug}.html)
ideas: "ideas"
research: "research"
reviews: "reviews" # レビュー結果。公開フォルダの外に置くこと
reports: "reports"
public: "public" # ビルド後の HTML が置かれるフォルダ(Astro なら dist、Hugo なら public。レビュアーは書き込まない)
# 記事を書き換えたあとに走らせる検証コマンド。無ければ空のまま。
build_check_command: "" # 例: "python scripts/build.py --check"
# ── 採点ゲート ───────────────────────────────────
gate:
pass_score: # 必須。合格点(0〜100)
target_score: # 任意。目標点。空なら合格点と同じ扱い
max_rewrite_loops: # 必須。書き直しループの上限回数
# TIER1: 必須指摘が1件でもあれば、点数に関係なく止めるレビュアー
tier1:
- legal
- consistency
# 機密レビュー。勤務先や個人が特定される恐れのあるサイトだけ true にする
confidentiality_required: false
# TIER2: 合格点で判定し、書き直しループの対象になるレビュアー
tier2:
- seo
- cro
- panel
# 広告を置かない記事で CRO の採点を省くか
skip_cro_for_non_monetized: true
# レビュアー同士の指摘がぶつかったときの優先順(左が強い)
conflict_priority: [confidentiality, legal, consistency, panel, seo, cro]
# ── 機械計測(scripts/review_metrics.py)────────────────
metrics:
# 表記ゆれの候補ペア [長い形, 短い形]
variant_pairs:
- ["サーバー", "サーバ"]
- ["ユーザー", "ユーザ"]
# 誇大・断定表現の候補(正規表現)。ヒット=違反ではなく、法務レビュアーが文脈で判断する
ng_patterns:
- "絶対に?"
- "必ず"
- "最安"
- "No\\.?1"
# 広告・計測リンクのドメイン。リンク健診はここへ HTTP アクセスしない
affiliate_domains: [] # 例: ["af.example-asp.com"]
long_sentence_chars: 80 # これを超える文を「長い文」として列挙する
# ── アクセス解析(scripts/analytics/ と blog-analytics スキル)──────────
# GA4 と Search Console のデータを毎日取得して SQLite に貯める仕組みの設定。
# scripts/analytics/ の取得バッチと blog-analytics スキルの両方が、この節を読む。
# 使わない場合はこの節を空欄のまま残しておいてかまいません。
analytics:
# --- 認証 ---------------------------------------------------------------
# auth_mode: 認証方式。次のどちらかを書く。
# oauth … 自分の Google アカウントで許可する方式。初回だけ scripts/analytics/auth_setup.py を実行する。
# service_account … サービスアカウントの鍵ファイルを使う方式。
auth_mode: oauth
# oauth のときに使うファイル
oauth_client_file: "client_secret.json" # Google Cloud で作った OAuth クライアントID(デスクトップ アプリ)の JSON
oauth_token_file: "token.json" # auth_setup.py が生成するトークンファイル(自分で作る必要はない)
# service_account のときに使うファイル
service_account_file: "service_account.json" # サービスアカウントの鍵 JSON
# --- 出力先 -------------------------------------------------------------
database: "data/analytics.db" # データを蓄積する SQLite ファイル(無ければ自動で作られる)。blog-analytics スキルもここを読む
csv_export_dir: "exports" # 実行日ごとの CSV ダンプを置くフォルダ
log_file: "logs/batch.log" # ログファイル。実際には batch_YYYY-MM.log のように月ごとに分かれる
# --- 取得パラメータ ------------------------------------------------------
ga4_reprocess_days: 14 # GA4 の日次データを毎回さかのぼって取り直す日数。
# GA4 は直近のデータを後から再処理するので、短すぎると暫定値が残る。
gsc_lag_days: 3 # Search Console のデータ遅延の日数。「今日 - この日数」を取得の終端にする。
page_rolling_days: 7 # ページ別レポート(page_metrics)の集計期間の日数。
# Search Console を毎回取り直す日数としても使われる。
page_top_n: 500 # ページ別レポートで保存する上位ページ数。
# サイトのページ数より小さいと、下位のページは行ごと保存されない。
# ga4_daily_row_limit: 100000 # (任意)GA4 日次レポート1本あたりの行数上限。省略時は 100000。
# --- API 呼び出しのリトライ ----------------------------------------------
retry_max: 3 # 失敗したときに再試行する最大回数
retry_base_delay: 2.0 # 再試行までの待ち時間の基準(秒)。2, 4, 8... と倍に伸びる
# --- URL Inspection API(インデックス状況の検査)--------------------------
inspect_weekday: 0 # 検査を実行する曜日(0=月曜 〜 6=日曜)。
# null にすると毎日実行。main.py --inspect-now で曜日に関係なく実行できる。
inspect_request_delay: 0.15 # 1 URL 検査するごとに待つ秒数(API の利用上限を超えないため)
# --- 週次レポート(blog-analytics スキル)が使う値 --------------------------
min_weekly_clicks_for_rates: 50 # これ未満の週は変動率を参考値として扱う
rewrite_band: [4, 10] # リライト候補にする平均順位の範囲
treasure_band: [11, 20] # 「あと一歩」キーワードの順位範囲
# --- 取得対象のサイト(サイトを増やすときは、- site: のブロックを1つ追加する)---
sites:
- site: "" # DB の site 列に入る識別子。上の site.key と同じ値にする(半角英数字)
ga4_property_id: "" # GA4 のプロパティID(数字のみ。「G-」で始まる測定IDではない)
# GA4 管理画面の「プロパティの詳細」、API 上の表記 properties/000000000 の数字部分
gsc_site_url: "" # Search Console のプロパティ。種類で書き方が変わる:
# URLプレフィックス プロパティ … 末尾のスラッシュまで含めた URL(例: https://example.com/)
# ドメイン プロパティ … 「sc-domain:ドメイン名」(例: sc-domain:example.com。https:// や末尾のスラッシュは付けない)
domain: "" # サイトのドメイン(例: example.com)。URL の正規化(名寄せ規則の適用先)に使う
sitemap_url: "" # URL Inspection で検査する URL の一覧(例: https://example.com/sitemap.xml)。
# 空にするとそのサイトの検査をスキップする
# (任意)URL の名寄せ。同じページが複数の表記で記録されるサイトだけ、合うものの # を外す。
# サイトの URL 設計に合わないものを付けると別のページが混ざるので、付ける前に実際の URL を確認する。
# strip_index_html: true # /foo/index.html を /foo に、/index.html を / にまとめる。それ以外の .html には触らない
# strip_html_suffix: true # 末尾の .html を落とす(/about.html を /about に)。.html 付きが正式な URL のサイトでは使わない
# strip_path_prefix: "/articles" # このプレフィックス配下のパスから、プレフィックスを取り除く(/articles/foo を /foo に)
# (任意)アフィリエイトリンクのクリックを集計する場合だけ書く。書かなければ何もしない。
# サイト側が広告リンクのクリック時に送っている GA4 イベントの名前を指定する。
# イベントパラメータ article_path と link_host を、GA4 のカスタムディメンション
# (イベントスコープ)として登録しておく必要がある。
# ga4_affiliate_event: "affiliate_click"
MIT ライセンスで配布しています。