コンフィグ / スキーマ概要
.river-reviewer.json(実行時コンフィグ)
リポジトリ直下に置く .river-reviewer.json で、レビュー時のモデル設定や除外条件をカスタマイズできる。src/config/schema.mjs の Zod スキーマで検証し、存在しない場合は src/config/default.mjs のデフォルト値を使用する。
サポート項目とデフォルト
modelprovider:openai(デフォルト。現在サポートされている唯一のプロバイダー。google/anthropicは将来拡張用のプレースホルダー)modelName:gpt-4o-mini(デフォルト)temperature:0maxTokens:600
reviewlanguage:ja(日本語)/en(英語)。プロンプトの本文と出力言語を切り替える。severity:normal(デフォルト)/strict/relaxedadditionalInstructions: 追加のレビューポリシー(配列)。プロンプト末尾に列挙される。
excludefiles: 変更差分から除外する glob パターン。prLabelsToIgnore: Pull Request ラベル名に対象キーワードが含まれていればスキップする設定。RIVER_PR_LABELS(カンマ区切り)または GitHub Actions のGITHUB_EVENT_PATHから取得したラベルと照合し、大文字小文字を無視した部分一致で判定する。
設定例
{
"model": { "provider": "openai", "modelName": "gpt-4o", "temperature": 0.2 },
"review": {
"language": "en",
"severity": "strict",
"additionalInstructions": ["Focus on security", "Prefer readable variable names"]
},
"exclude": {
"files": ["**/*.md", "docs/**"],
"prLabelsToIgnore": ["no-review", "wip"]
}
}
運用のヒント
- CI でスキップさせたいラベルを
prLabelsToIgnoreに記載し、RIVER_PR_LABELS(例:RIVER_PR_LABELS=no-review,wip)または GitHub のイベントペイロードから読み取れるようにしておくと安全である。 - 設定変更後は
npm testやnpm run lintでスキーマ整合性と挙動を確認する。
JSON Schema(スキル/出力)
River Reviewer では、スキルや出力を JSON Schema で定義する。スキルは YAML frontmatter、出力は JSON を想定している。
-
schemas/skill.schema.json- 必須:
id/name/phase/applyTo/description - 任意:
tags/severity phaseはupstream/midstream/downstream
- 必須:
-
schemas/output.schema.json- 必須:
issue/rationale/impact/suggestion/priority/skill_id priorityはP0〜P3のいずれか
- 必須:
スキルは Markdown ファイルとして skills/{phase}/ に配置し、scripts/rr_validate_skills.py でスキーマ検証ができる。