config.example.yaml

config.example.yaml(143 行)

config.example.yaml
# アリス編集室テンプレート 設定ファイルの見本(設定ファイルはこれ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 ライセンスで配布しています。