Skip to content

fix(peer-review): correct summary when zero judges produced decisions#265

Merged
jacsamell merged 1 commit into
mainfrom
fix/panel-summary-zero-decisions
Jun 2, 2026
Merged

fix(peer-review): correct summary when zero judges produced decisions#265
jacsamell merged 1 commit into
mainfrom
fix/panel-summary-zero-decisions

Conversation

@jacsamell
Copy link
Copy Markdown
Contributor

@jacsamell jacsamell commented Jun 2, 2026

Two contradictory lines in the same PR review body: '❌ 0 judge(s) requested changes' (from summary builder) followed by 'INCONCLUSIVE: No judge decisions found' (from gate). Now both agree.

Summary

This PR resolves a contradiction in the peer review verdict messaging when no judge decisions are produced. Previously, the summary builder would render "❌ 0 judge(s) requested changes" whilst the gate immediately below stated "INCONCLUSIVE: No judge decisions found", creating conflicting signals.

Changes

python/cube/commands/peer_review.py

Added an explicit elif ran == 0: branch in the verdict summary builder that renders a warning-style message—"⚠️ No judge decisions found (N expected). Panel did not produce a verdict — see gate detail below"—when the panel produces no decisions at all.

This distinguishes the "no decisions on disk" scenario from the "all judges rejected" scenario (where ran > 0 and approvals == 0), ensuring the summary message aligns with the inconclusive gate determination below.

The existing "❌ N judge(s) requested changes" behavior is preserved for cases where judges execute but all decline approval.

…l produced nothing

The summary builder rendered ``❌ 0 judge(s) requested changes.`` when
``ran == 0`` — i.e. no judge produced a decision file at all. That
message lies in two ways:

1. Zero judges actually rejected (none ran).
2. The gate body (``compute_review_event``) immediately below it says
   "INCONCLUSIVE: No judge decisions found. Re-run the panel." Two
   contradictory lines in the same review body.

Fix: render an explicit "No judge decisions found" line when ran=0 so
the summary and the gate body agree. The "❌ N judge(s) requested
changes" wording stays for the genuine all-RC case (ran > 0 AND
approvals == 0).

715/715 tests pass.
@jacsamell jacsamell merged commit 2e2bb5e into main Jun 2, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 2, 2026

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8daa0bad-9a60-45eb-bbf7-de733961ce9c

📥 Commits

Reviewing files that changed from the base of the PR and between 24ef93e and a3c7928.

📒 Files selected for processing (1)
  • python/cube/commands/peer_review.py

Walkthrough

This PR adds a dedicated conditional branch in the _run_pr_review function to handle the zero-decision edge case. When no judge decisions are found on disk (ran == 0), the code now emits a warning-style inconclusive verdict summary indicating the panel did not produce a verdict, rather than defaulting to generic "requested changes" messaging. This prevents conflicting signals with downstream inconclusive gate logic.

Possibly related PRs

  • aetheronhq/agent-cube#196: Adjusts verdict summary logic in _run_pr_review to handle "no decisions" conditions using decision-count branches.

  • aetheronhq/agent-cube#240: Modifies the "no decisions/ran == 0" verdict summary behaviour from REQUEST_CHANGES to INCONCLUSIVE/warning-style messaging.


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

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