Skip to content

feat(coderabbit): WP-03 CodeRabbit クォータ設計 — .coderabbit.yaml + 明示再レビュートリガー - #243

Merged
aloekun merged 1 commit into
masterfrom
wp03-coderabbit-quota
Jul 4, 2026
Merged

feat(coderabbit): WP-03 CodeRabbit クォータ設計 — .coderabbit.yaml + 明示再レビュートリガー#243
aloekun merged 1 commit into
masterfrom
wp03-coderabbit-quota

Conversation

@aloekun

@aloekun aloekun commented Jul 4, 2026

Copy link
Copy Markdown
Owner

概要

WP-03「CodeRabbit クォータ設計」。無料枠のレビューレート制限 (3〜4 レビュー/時、解除待ちが毎日頻発) を、レビュー消費の削減で構造的に緩和する。ADR-019 の amendment。

docs/harness-improvement-plan.md の実行計画に基づく。

背景

  • 自動化 (cli-pr-monitor の auto-push + takt fix loop) が進み、fix push ごとの自動増分レビューでレビュー消費が増加、解除待ち (1 回 20〜40 分) が運用上の最大ボトルネックになった。
  • 本リポは public だが、CodeRabbit の public 特典 (無償レビュー) は本アカウントの rate-limit を撤廃しておらず、時間あたり上限が実際に効いている (着手時に確認)。
  • ADR-019 (2026-04-19) は「rate-limit 耐性作り込み」をロックインの温床として却下していた。本 PR は耐性 (auto-retry/fallback) ではなく 消費削減 (標準 config + 運用調整) を採るため、可換性の方針と矛盾しない。

変更内容

1. .coderabbit.yaml 新設 (balanced 構成)

キー 意図
reviews.auto_review.enabled true 初回 PR は自動レビュー維持
reviews.auto_review.drafts false draft は対象外 (既定だが明示)
reviews.auto_review.auto_incremental_review false 消費の主因である push 毎の自動再レビューを停止
reviews.auto_review.auto_pause_after_reviewed_commits 5 暴走ガード
language ja-JP 未指定だと既定 en-US に戻るため日本語レビューを固定

2. 明示再レビュートリガー (監視側、決定論層)

auto_incremental_review=false は fix push 後の自動再レビューを止めるため、監視の auto-push 成功後に @coderabbitai review を 1 回だけ明示投稿して再レビューを発火する。

  • 新モジュール src/cli-pr-monitor/src/stages/review_trigger.rs (純粋判定 should_trigger_review_after_push + 投稿 trigger_coderabbit_review)
  • pr-monitor-config.toml [fix] trigger_review_after_push = true で opt-in (templates はコメント例、default false)
  • fail-open: state 不在 / PR 番号未確定 / gh 投稿失敗は log を残して続行 (ADR-043 の fail-closed はゲート層にのみ適用)

消費モデルの変化

  • 従来: 初回 1 + push 毎の自動増分 N = 1 + N
  • WP-03: 初回 1 + fix 束ね毎の明示 1 = 1 + (iteration 数)

テスト

  • cargo test -p cli-pr-monitor: 232 passed + 13 ignored(統合) すべて通過
  • 新規: should_trigger_review_only_when_push_ok_and_flag_enabled (真理値表)、config parse (default false / explicit true)
  • clippy クリーン / 編集ファイル fmt clean / markdownlint 0 error

既知の制約 (ADR-019 amendment に明記)

  • 設定の二重管理: .coderabbit.yaml auto_incremental_review (false) と pr-monitor-config.toml trigger_review_after_push (true) は必ず揃える。片方だけだと再レビュー欠落 or 二重レビュー。CodeRabbit は YAML を自サーバで読むためランタイム相互検証は不可 → ドキュメントで担保。
  • 手動 fix push (severity=none/minor) は手動で @coderabbitai review 投稿が必要 (トリガーは auto-push 経路のみ、fail-open ログが誘導)。
  • ランタイム効果 (レート解除待ち削減) は dogfood で観測。受け入れ基準: rate 解除待ち < 1 回/日

参照

  • ADR-019 amendment (本 PR に含む): 設計根拠・消費モデル・M5 不採用との整合・受け入れ基準
  • docs/harness-improvement-plan.md: WP-03 を「実装済 (dogfood 観測待ち)」に更新

🤖 Generated with Claude Code

Summary by CodeRabbit

  • 新機能

    • 自動レビューの挙動を改善し、修正をまとめた後に再レビューを明示的に起動できるようになりました。
    • 失敗しない限り、推奨タイミングで再レビューが1回だけ発火する運用に対応しました。
  • バグ修正

    • 下書きPRやWIP扱いのPRでは自動レビューが走らないようになりました。
    • レビュー済みコミットが増えすぎた場合に自動レビューを一時停止する安全策を追加しました。
  • ドキュメント

    • 変更後のレビュー運用と設定方針を追記しました。

…ートリガー

無料枠 rate-limit (3-4 レビュー/時) の解除待ちを消費削減で構造的に緩和 (ADR-019 amendment)。

- .coderabbit.yaml 新設 (balanced): enabled=true / drafts=false /
  auto_incremental_review=false / auto_pause_after_reviewed_commits=5 / language=ja-JP
- auto_incremental_review=false と結合: 監視 auto-push 成功後に @coderabbitai review を
  1 回明示投稿 (pr-monitor-config.toml [fix] trigger_review_after_push、review_trigger.rs、fail-open)
- 消費モデル: 初回 1 + push 毎 N → 初回 1 + fix 束ね毎 1
- ADR-019 amendment / plan WP-03 実装済 / config+テスト
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: aba7b789-40e1-431f-a9e9-59440c88511e

📥 Commits

Reviewing files that changed from the base of the PR and between 116778f and a43d2a8.

📒 Files selected for processing (9)
  • .coderabbit.yaml
  • docs/adr/adr-019-coderabbit-review-hybrid-policy.md
  • docs/harness-improvement-plan.md
  • pr-monitor-config.toml
  • src/cli-pr-monitor/src/config.rs
  • src/cli-pr-monitor/src/stages/mod.rs
  • src/cli-pr-monitor/src/stages/repush.rs
  • src/cli-pr-monitor/src/stages/review_trigger.rs
  • templates/pr-monitor-config.toml

📝 Walkthrough

Walkthrough

CodeRabbitのレビュー消費削減のため、リポジトリルートに.coderabbit.yamlを新設し自動増分レビューを停止する一方、pr-monitor-config.tomlとRustのreview_triggerモジュールにより、auto-push成功後に@coderabbitai reviewを1回だけ明示投稿する仕組みを追加。関連するADRおよび改善計画ドキュメントも更新した。

Changes

CodeRabbitクォータ削減のためのレビュー明示トリガー導入

Layer / File(s) Summary
.coderabbit.yaml による自動レビュー設定
.coderabbit.yaml
language: "ja-JP"固定、reviews.auto_review有効化、draft除外、auto_incremental_review: falseauto_pause_after_reviewed_commits: 5、WIPタイトル無視条件を新規設定。
FixConfigへのtrigger_review_after_pushフィールド追加
src/cli-pr-monitor/src/config.rs
FixConfigtrigger_review_after_push: boolserde(default)で追加し、デフォルトはfalse。テストでデフォルト値とカスタム値のパースを検証。
review_triggerモジュールとrepush連携
src/cli-pr-monitor/src/stages/mod.rs, src/cli-pr-monitor/src/stages/review_trigger.rs, src/cli-pr-monitor/src/stages/repush.rs
should_trigger_review_after_pushtrigger_coderabbit_reviewを新規実装し、run_auto_pushがpush成否とフラグに応じてgh pr comment@coderabbitai reviewを明示投稿するよう変更。
pr-monitor-config.tomlおよびテンプレート設定
pr-monitor-config.toml, templates/pr-monitor-config.toml
[fix]セクションにtrigger_review_after_push = trueを追加し、テンプレートに整合性に関する説明コメントを追加。
ADRと改善計画ドキュメントの更新
docs/adr/adr-019-coderabbit-review-hybrid-policy.md, docs/harness-improvement-plan.md
WP-03(レビュー消費削減方針)の追記、設定整合の注意点、dogfood受け入れ基準を記載し、進捗状態を「実装済」へ更新。

Estimated code review effort: 2 (Simple) | ~15 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Monitor as PRモニター
  participant Repush as run_auto_push
  participant Trigger as review_trigger
  participant GH as gh CLI
  participant CodeRabbit

  Monitor->>Repush: run_push(config)実行
  Repush->>Repush: push_ok判定
  Repush->>Trigger: should_trigger_review_after_push(push_ok, flag)
  Trigger-->>Repush: true/false
  alt トリガー条件成立
    Repush->>Trigger: trigger_coderabbit_review()
    Trigger->>GH: gh pr comment --body `@coderabbitai` review
    GH->>CodeRabbit: 明示的な再レビュー要求
  end
Loading

Possibly related PRs

  • aloekun/claude-code-hook-test#63: 同じsrc/cli-pr-monitor/src/stages/repush.rsrun_auto_push周辺を変更しており、同一制御点への処理追加である点が関連。
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PRの主変更である.coderabbit.yaml追加と明示的な再レビュー発火の導入を端的に示しており、内容と整合しています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@aloekun
aloekun merged commit 36e196d into master Jul 4, 2026
1 check passed
@aloekun
aloekun deleted the wp03-coderabbit-quota branch July 4, 2026 11:22
aloekun added a commit that referenced this pull request Jul 5, 2026
PR #243-247 の post-merge-feedback report と 2026-07-05 セッション実測から、
ユーザーが採用判断した 7 提案 (6 entry) を todo13.md + todo-summary.md に登録。

- 258 (Tier 2): CodeRabbit 指摘ゼロ再レビュー検知ギャップ解消 — commit status 判定追加 + fail-open 三値テスト (提案 1+3)
- 259 (Tier 2): quality_gate clippy を --all-targets --all-features 化 + 既存違反 const assert 化 (提案 2)
- 260 (Tier 3): ADR-038 x ADR-043 の accuracy vs 安全性 tension 明文化 (提案 4)
- 261 (Tier 3): spike 見送り (negative result) 永続化 convention (提案 5)
- 262 (Tier 3): SaaS 無料枠の制限種別チェックリスト (提案 6)
- 263 (Tier 3): クロスシステム設定 coupling 汎化 ADR 起票 (提案 7)

詳細エントリは todo13.md、順位 table 行は todo-summary.md (ADR-033)。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant