mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #24] [MERGED] cursor-review: reformat prior judge output on parse failure, don't re-adjudicate #35
Labels
No labels
cursor-review-catalog-drift
groom
groom
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/github-workflows#35
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/github-workflows/pull/24
Author: @mattmillerai
Created: 7/7/2026
Status: ✅ Merged
Merged: 7/7/2026
Merged by: @mattmillerai
Base:
main← Head:matt/cursor-review-judge-reformat-retry📝 Commits (1)
1afb54acursor-review: reformat prior judge output on parse failure, don't re-adjudicate📊 Changes
1 file changed (+12 additions, -7 deletions)
View changed files
📝
.github/workflows/cursor-review.yml(+12 -7)📄 Description
What
When the consolidate job's judge output can't be parsed as JSON, the retry currently re-runs the full judge prompt with a "please respond in JSON" reminder appended. This change makes the retry instead ask the judge to transcribe its own prior (prose) output into the findings schema — no re-adjudication.
Why
The judge runs at a thinking tier (
judge_model, e.g.*-thinking-xhigh). Re-running the full adjudication prompt makes it re-reason from scratch, and on a nuanced case (a mix of keep/drop verdicts across the panel) it narrates its reasoning again instead of emitting a bare array — so the retry fails the same way the first attempt did. When that happens, the run degrades to raw panel findings viapost-review.py, even though the judge did produce a correct, complete analysis; it just wasn't JSON.Reformatting a finished analysis into a fixed schema is a much higher-compliance task than "adjudicate and emit JSON." It's also cheaper (no diff/file re-read, no re-reasoning) and it preserves the exact verdicts the judge already made.
Behavior
parse_error/non-okafter the first call: the retry now feeds the judge its own prior output and asks only for the JSON transcription, with the element schema inlined (file,line,side,severity,body).post-review.pydegradation banner) still applies if the reformat attempt also fails — no review is ever dropped.Testing
The change is a prompt-construction tweak inside the
Run judgeshell step (no new script surface), so it's exercised by the reusable workflow's own runs rather than thecursor-reviewpython unit tests.yaml.safe_loadpasses; the shell block is a single-quoted heredoc-free edit with balanced{ … }redirection.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.