language: 'ja-JP'

reviews:
    profile: 'chill'
    high_level_summary: true
    review_status: true
    collapse_walkthrough: false

    # =============================================================
    # 最適バランスレビュー方針（静かさ★★★★★ / 実用性★★★★★ / 安全性★★★★★）
    # -------------------------------------------------------------
    # 指摘対象:
    # - 再現可能なバグ
    # - 高確率でバグになる実装ミス
    # - 実害のあるパフォーマンス問題
    # - セキュリティ問題
    # - ファイル内で完結する軽微な構造改善
    #
    # 許可される提案:
    # - バグ回避のための最小変更
    # - 明確に不要な処理の削減
    # - 安全性を向上させる修正
    #
    # 制限（ノイズ完全排除）:
    # - 動作に影響しない改善提案は禁止
    # - スタイル・好みの指摘は禁止
    # - 推測ベースの指摘は禁止
    # - 「より良い」系の提案は禁止
    # - 複数ファイルにまたがる変更は禁止
    # - 大規模リファクタリングは禁止
    #
    # 判断基準:
    # - 今のコードで実際に問題が起きるか
    # - 放置すると高確率でバグになるか
    # - 本番環境で影響が出るか
    #
    # 出力方針:
    # - 該当する問題はすべて列挙する（件数制限なし）
    # - 重要度で省略しない
    # - 各指摘は簡潔にする（ノイズ削減）
    #
    # 指摘フォーマット:
    # - 問題点
    # - 影響
    # - 最小修正案（1ファイル内）
    # =============================================================

    path_filters:
        - '!**/assets/**'
        - '!**/dist/**'
        - '!**/build/**'
        - '!**/vendor/**'
        - '!**/node_modules/**'
        - '!**/*.min.js'
        - '!**/*.min.css'
        - '!**/*.map'
        - '!**/package-lock.json'
        - '!**/pnpm-lock.yaml'
        - '!**/yarn.lock'
        - '!**/composer.lock'
        - '!**/*.snap'
        - '!.claude/**'
        - '!.codex/**'

    auto_review:
        enabled: true
        drafts: false
        base_branches:
            - main
        auto_incremental_review: true

    path_instructions:
        - path: '**/*.php'
          instructions: |
              WordPress コーディング規約、エスケープ、nonce、capability check、
              i18n 関数、REST API の権限設計を重点的に確認してください。
              単なるスタイル指摘より、バグ・セキュリティ・後方互換性・
              実害のあるパフォーマンス問題を優先してください。

              指摘は次に限定してください：
              - 再現可能なバグ修正
              - 実害のあるパフォーマンス改善
              - ファイル内で完結する軽微な構造変更

              動作に影響しない改善提案は行わないでください。
              大規模な構造変更、責務分離、複数ファイル前提の改善提案は行わないでください。

              sleep / usleep / time_nanosleep の使用は原則禁止です。
              特に以下の場所では使用してはいけません。
              - init / plugins_loaded / template_redirect などのグローバルフック
              - フロントエンドのページ表示処理
              - REST API レスポンス処理
              - Ajax ハンドラ

              ただし次の条件では使用を許可します。

              許可されるケース:
              - 外部 API の rate limit 対策
              - retry / exponential backoff 処理
              - 管理画面のバッチ処理（インポート・同期）
              - WP-Cron / CLI / background task

              使用する場合のルール:
              - ループ内のみで使用する
              - 待機理由をコメントで明記する
              - 待機時間は最小限にする
              - 可能なら usleep() を優先する
              - 長時間処理は Action Scheduler や queue を検討する

        - path: '**/*.{js,jsx,ts,tsx}'
          instructions: |
              Gutenberg / React の state 管理、依存配列、不要な再レンダー、
              破壊的変更、後方互換性を重点的に確認してください。
              軽微な好みの指摘は控え、実害のある問題を優先してください。

              指摘は次に限定してください：
              - 再現可能なバグ修正
              - 実害のあるパフォーマンス改善
              - ファイル内で完結する軽微な構造変更

              stale closure、非同期 state 更新の競合、無限レンダー、
              依存配列ミスなど、実行時に問題が起きるものを優先してください。

              動作に影響しない改善提案は行わないでください。
              コンポーネント分割、状態管理の全面変更、設計見直しなど、
              複数ファイルや大きな構造変更を伴う提案は行わないでください。

              src/admin/setting/index.js の ragApiKey デフォルト値は
              ハードコードされた共有キーであり、ユーザー個別の秘密鍵ではありません。
              初期状態ですぐ使えるようにする意図的な設計のため、
              「ハードコードされた API キー」として指摘しないでください。

        - path: 'readme.txt'
          instructions: |
              WordPress.org のプラグインディレクトリの readme.txt ガイドラインに準拠しているか確認してください。

              特に以下の点を重点的に確認してください：
              - readme.txt のセクション構成が WordPress.org の標準形式に従っているか
              （例：Contributors、Tags、Requires at least、Tested up to、Description、Installation、FAQ、Screenshots、Changelog など）
              - 必須情報が適切に記載されているか
              - プラグインタグが適切かつ関連性のあるものになっているか

              注意：
              - バージョンヘッダーはリリース時に付与するため、プルリクエストレビュー時には無視してください。

              以下の指摘は禁止します：
              - 「Changelog エントリにバージョンヘッダーがありません」

              動作や公開要件に影響しない表現改善、文体変更、構成の好みは指摘しないでください。

        - path: 'package.json'
          instructions: |
              package.json のレビューでは次の点を重点的に確認してください。

              - JSON 構造エラー
              - scripts の不整合
              - 依存関係の破壊的変更
              - 非推奨またはサポート終了したパッケージ
              - 明確に古いランタイムやツールの使用
              - 実害のあるビルド・実行パフォーマンス問題

              "volta" セクションについては以下の方針で扱ってください。

              - volta は Node.js 実行環境を固定するための意図的な設定です
              - volta フィールドの存在やバージョン固定の方法については指摘しないでください
              - Node.js / npm / pnpm / yarn のバージョンが
                非推奨・サポート終了・セキュリティ上問題がある場合のみ指摘してください
              - LTS バージョンを使用している場合は問題として扱わないでください

              些細なバージョン差や個人の好みによる指摘、
              ツールチェーン刷新などの大きな構造変更提案は行わないでください。

        - path: 'languages/*.{pot,json,php}'
          instructions: |
              languages ディレクトリ内の .pot / .json / .php ファイルは `npm run build` によって生成される自動生成ファイルです。

              これらの生成ファイル自体に対してレビューコメントをしないでください。
              翻訳や i18n に関する問題がある場合は、生成物ではなく元のソースファイル側を指摘してください。

              なお、動作に影響しない改善提案や生成フロー全体の見直し提案は行わないでください。
