Repository navigation
ci: add a bounded 1-round reviewer↔fixer rebuttal + stronger verify - #246
Conversation
Today the deep reviewer only re-engages to verify a 'Fixed in <sha>' claim; when the fix agent REFUTES a finding, the loop escalates straight to a human without the reviewer getting to concede or push back. Bun's reviewers don't rebut at all, so 1 round is already beyond them — but it adds real value: the reviewer can catch a WRONG refutation before it reaches a human, and it produces one watchable exchange. Gate/state-machine (rounds tracked by claude comment count, capped at 1): - Route a refuted deep-review thread (fixer spoke last, no 'Fixed in', claude ccount < 2) to the REVIEWER (verify) instead of the fixer. - After the reviewer's single rebuttal the thread returns to the fixer; if the fixer holds again (ccount >= 2, still refuted) it stays actionable and the existing terminal hands it to a human. No new job, no infinite loop. - The fix terminal uses the same rebuttal-aware ACTIONABLE so a just-refuted thread re-dispatches to the reviewer rather than escalating. - Fixer prompt now skips a claude thread whose last comment is its own refutation (the reviewer's turn), and answers the reviewer's rebuttal when it comes. - Continue-loop guard also pauses if a rebuttable thread is left untouched, so a no-op reviewer can't self-dispatch forever. Stronger verify reviewer: - Actually re-reads the code and runs the test before concluding (no rubber-stamping), CodeRabbit-grade Markdown formatting + a human surfer sign-off (matching the deep-review pass), turns 15 -> 25, and a broadened read-only allowlist (gh api + inspection utils). Routing and the anti-loop guard are unit-tested against every thread state. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NVR5yWevceZEFbTJmpviiM
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
WalkthroughThis PR refines the Claude PR loop GitHub Actions workflow to introduce rebuttal-aware classification of unresolved review threads. A new REBUTTABLE thread bucket is added alongside ACTIONABLE and PENDING_VERIFY, affecting gate decisions, fix-agent behavior, terminal-state escalation, and post-verify loop continuation logic. ChangesClaude PR Loop rebuttal handling
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Preview DeploymentPreview URL: https://a1711110.bestax.pages.dev |
|
🎉 This PR is included in version 5.3.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 3.2.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
What
Gives the deep reviewer a single rebuttal round when the fix agent refutes one of its findings, and makes the verify/re-review pass thorough + well-formatted + human (matching #245).
Why
Today the reviewer only re-engages to verify a
Fixed in <sha>claim. When the fixer refutes a finding, the loop jumps straight toneeds-human-review— the reviewer never gets to concede or push back. Our own research (14 Bun PRs) shows robobun's reviewers don't rebut at all, so 1 round is already beyond Bun — but it's a real quality gain: the reviewer can catch a wrong refutation before it reaches you, and it produces one watchable exchange.State machine (rounds = Claude's comment count in the thread, cap < 2)
Fixed in, ccount < 2) to the reviewer (verify), not the fixer.ACTIONABLE, so a just-refuted thread re-dispatches to the reviewer instead of escalating.Stronger verify reviewer
Re-reads the code and runs the test before concluding (no rubber-stamping), CodeRabbit-grade Markdown + a human surfer sign-off (matching #245's deep review),
--max-turns15 → 25, broadened read-only allowlist (gh api+ inspection utils).Testing
ACTIONABLE / PENDING_VERIFY / REBUTTABLE=4 / 1 / 1as intended.Scope
claude-pr-loop.ymlonly (gate + fix terminal + fixer prompt skip + verify job/prompt/guard). No new jobs, permissions, or models.Generated by Claude Code
Summary by CodeRabbit