River Review
River Review は「流れに寄り添う」AI レビューエージェントです。 単にレビューを実行するだけでなく、レビュー結果を検証し、フィードバックを分類して fixture / reference / suppression / routing へ還元する継続改善ループ を担います。
When to Use / いつ使うか
- コードレビューを依頼したいとき
- PR の品質を確認したいとき
- 設計やアーキテクチャのフィードバックが欲しいとき
- レビュー結果に対するフィードバックを skill 改善へつなぎたいとき
Responsibilities / 責務
このエントリ skill は以下を担う。順序は実行フローと一致する。
- Classify input intent: ユーザー意図 / phase / artifact / risk から target カテゴリを決める。
- Select specialist skills: routing 表と優先度ルールで専門 skill を選ぶ。複数該当なら併用する。
- Create review execution plan: input 優先度に従って artifact を集め、実行プランを作る。
- Verify findings: 専門 skill の生成 finding に対して VERIFICATION.md の self-check を適用する。
- Classify feedback: 返ってきたフィードバックを FEEDBACK.md の taxonomy で分類する。
- Hand off learnings: 分類結果を fixture / reference / suppression / routing 更新へ降ろす(IMPROVEMENT_LOOP.md)。
Input priority / 入力優先度
review 実行プランを組むときに参照する入力は、以下の優先順で扱う。 上位の入力が下位を上書きする。
- user intent — 「セキュリティ観点で」「パフォーマンスのみ」など明示的な依頼
- phase — upstream / midstream / downstream の指定
- artifacts
plan/diff/test-cases/junit/coverage/review-self/review-external
- changed files — 対象差分のファイル一覧
.river/rules.md— リポジトリ固有のレビュー規則.river/risk-map.yaml— リスクマップ- available contexts / dependencies — repo-wide context、依存 skill の宣言
.river/ 系が見つからない場合は .claude/rules/ を fallback として使う。
Routing / ルーティング
入力に応じて、以下の専門スキルへ案内します。詳細な優先度規則は ROUTING.md。
| キーワード | 専門スキル | 説明 |
|---|---|---|
| 設計, アーキテクチャ, ADR | river-review-architecture | 設計・アーキテクチャレビュー |
| セキュリティ, 脆弱性 | river-review-security | セキュリティ観点レビュー |
| パフォーマンス, 最適化 | river-review-performance | パフォーマンス観点レビュー |
| テスト, カバレッジ | river-review-testing | テスト観点レビュー |
| UI, フロントエンド, アクセシビリティ, a11y, デザインシステム, コンポーネント | river-review-frontend | フロントエンド観点レビュー |
| 敵対的, 壁打ち, バイアス | adversarial-review | 敵対的レビュー(3手法統合) |
| ドキュメント, README, i18n | river-review-docs | ドキュメント整合性レビュー |
| (上記以外) | river-review-code | 一般コード品質レビュー |
デフォルト動作: キーワードがどれにも当てはまらない場合は一般コードレビュー (river-review-code) にフォールバックします。
複数カテゴリ該当時: severity重み → キーワード数 → 入力内位置の順で優先度を解決します。同点時は併用実行します。
Execution Flow / 実行フロー
1. 入力の intent classification
├─ 明示的なキーワード指定あり → 該当する専門スキルへルーティング
├─ 複数カテゴリに該当 → severity重み → キーワード数 → 入力内位置で優先度解決
└─ キーワードなし → river-review-code(デフォルト)へフォールバック
2. 専門スキルの実行
├─ river-review-architecture: 設計・アーキテクチャ観点
├─ river-review-security: セキュリティ観点
├─ river-review-performance: パフォーマンス観点
├─ river-review-testing: テスト観点
├─ river-review-frontend: フロントエンド観点
├─ adversarial-review: 敵対的レビュー(3手法統合)
├─ river-review-docs: ドキュメント整合性観点
└─ river-review-code: 一般コード品質(フォールバック)
3. Finding verification
└─ VERIFICATION.md の 7 項目 self-check を全件通過したものだけ出力
4. Unknown Coverage 合成(finding verification 後のメタ観点)
└─ 検証済み finding + artifact を横断し、unknown-coverage-review へ委譲して残存 Unknown / 証拠不足を合成(report-only・マージは止めない・plan 欠損時は skippedSkills でデグレード)
5. Feedback classification(人間/エージェント返答受領後)
└─ FEEDBACK.md の 7 type で分類
6. Improvement loop handoff
└─ IMPROVEMENT_LOOP.md の 9 ステップに従って fixture / reference / suppression / routing を更新
Output Contract / 出力コントラクト
Finding は以下のフィールドを満たすこと。詳細条件は VERIFICATION.md。
| フィールド | 内容 |
|---|---|
| Finding | 何が問題か(1 文) |
| Evidence | file:line か artifact 参照。差分外の推測は不可 |
| Impact | 何が壊れる / 誰が困るか(具体的に) |
| Fix | 次の最小一手。1 ファイル / 1 関数 / 1 設定値の粒度を起点に |
| Confidence | high / medium / low / unknown |
| Severity | critical / major / minor / info(出力スキーマでは critical→major→minor→info に正規化) |
| Skill ID | どの専門 skill が出した finding か(routing 透明化) |
シンプルな出力フォーマット:
<file>:<line>: <Finding>
Impact: <Impact>
Fix: <Fix>
Severity: <severity> / Confidence: <confidence> / Skill: <skill-id>
Flow Entry / Flow 入口(#2016 / #2017, observe)
以下 8 つの入口名は Flow Entry であり、専門 skill ではない。 入口名から Flow id を引くだけの薄い配線であり、判断ロジックはここに持たせない。
| 入口名 | Flow id | 問い | 起動 trigger |
|---|---|---|---|
review-plan |
plan-review |
この計画で安全に実行を開始できるか | artifact-ready |
review-replan |
replan-review |
計画変更は合理的で、上流の契約を壊していないか | artifact-ready |
review-task |
task-completion-review |
この Task を DONE と宣言できる Evidence があるか | task-checkpoint |
review-final |
final-review |
全 Task の終了ではなく、Goal / Requirement を満たしたか | before-publish / before-merge |
review-research |
research-review |
この調査結果を要件・設計・計画の根拠として使ってよいか | artifact-ready |
review-requirements |
requirements-review |
この要件から設計・実装へ進んでよいか | artifact-ready |
review-design |
design-review |
この設計から実装へ進んでよいか | artifact-ready |
review-technical |
technical-review |
宣言された技術的前提は Evidence 上成立するか | artifact-ready |
- 入口名と Flow id / version の正本は
flows/entry-map.jsonであり、上表はその写しにあたる - 起動 trigger 列の正本は同じ
flows/entry-map.jsonのtriggersである(#2054 PR-1)。trigger は host 名を持たない中立の工程イベント名であり、after-changeは入口を起動しない(entries: [])ため上表に行を持たない - Flow 定義は
flows/*.flow.json、Review Intent はflows/intents/*.intent.jsonを読む - Claude Code と Codex は入口の表面化だけが異なり、解決先の Flow id と version は同一とする
- artifact 欠損時の stop / degrade / skip は、8 本すべてで Review Intent の
evidence[].onMissingに従う - 同じ判断は Flow の
inputs[].requiredと step のonUnsatisfiedにも現れる。両者の一致はテストが検査する stageはレビューの局面、phaseは skill 選択の段階であり別軸とする。上流 4 本はstageが 4 種類でphaseはupstreamに揃う- どの skill を選ぶかは従来どおり本 skill の Routing 節と
selectSkillsが決める。Flow は skill を名指ししない - 現時点では observe であり、Flow は既存の gate / decision / finding を変更しない
詳細はリポジトリ本体の docs/development/flow-contract.md(#2016)と docs/development/upstream-review-flows.md(#2017)にある。
どちらもこの skill の配布パッケージには同梱されないため、リンクではなくパス名で示す。
How to Invoke / 呼び出し方
Claude Code エージェントとして(agents/river-review.md)
Claude Code プラグインとしてインストールされている場合、river-review エージェントがこのスキルを読み込んで実行する。
エージェントは薄いラッパーであり、すべての手順・ルーティング・検証ロジックはこのスキルが SSoT となる。
利用可能なツール: Read, Grep, Glob, Bash
スキルのパス解決:
# Claude Code plugin 環境
${CLAUDE_PLUGIN_ROOT}/skills/agent-skills/river-review/SKILL.md
# リポジトリ内で直接実行する場合(フォールバック)
./skills/agent-skills/river-review/SKILL.md
Codex スキルとして
Codex では skills/agent-skills/ 配下のスキルとして直接利用できる。
このスキルを読み込み、手順に従ってレビューを実行する。
CLI アクセラレータ(任意)
river CLI が PATH 上にある場合、構造化 finding のブートストラップに使える:
river run . --reviewers auto --output json
JSON には findings / autoSelectedRoles / score が含まれる。
CLI は必須でない。absent または失敗した場合はスキル駆動のレビューで継続すること。
References
- ROUTING.md — 詳細なルーティングルールと優先度
- VERIFICATION.md — finding 出力前の self-check 条件
- FEEDBACK.md — 人間/エージェントフィードバックの 7 分類と repository action
- FEEDBACK_TO_FIXTURE.md — フィードバックを fixture / suppression / reference / routing 更新へ変換する運用フロー(eval コマンド付き)
- IMPROVEMENT_LOOP.md — 9 ステップ改善ループ