Loop a PR to a quality bar.

Name a score and Ultrafix works the pull request until it gets there. Public propr #2934 shows one loop end to end: Claude Opus 5.5 implemented it from a plan that set the goal to 8/10, GPT-6 Astra reviewed, and the PR merged 44 minutes after it opened. Times are UTC on 9 October 2026.

Describe
Run isolated
Review in GitHub

Feature overview

You start with
An open pull request
You use
/ultrafix goal=8 max=5 · ultrafix label
Takes
44 minutes on the real run: two reviews, one fix, two CI waits
Real run
propr #2934

Set the bar

Comment on the PR. goal is the review score to reach and max caps the cycles. Lines below the command steer every cycle.

@maintainercommented on this pull request

/ultrafix goal=8 max=5
Keep the public API unchanged.

#2934 skipped the comment: its plan had Run ultrafix after PR on, so ProPR posted the command itself the moment the PR opened.

The ProPR bot posting /ultrafix on public ProPR pull request 2934, triggered automatically by the requested execution settings.

14:16 · ProPR confirms the goal and waits for green checks

ProPR labels the PR, confirms the goal and the cycle limit, and names the first action. It waits for the checks on the head commit before each review.

Goal 8/10, at most 10 cycles, review first

ProPR confirming the Ultrafix loop with a goal of 8 out of 10, a maximum of 10 cycles, and /review as the first action.

The loop names the checks that hold it

ProPR reporting that Ultrafix is waiting for the blocking checks on commit 2b9472a before the next review.

14:35 · Review 1 files F1 and scores 6/10

The review posts numbered merge blockers (F1), optional suggestions (S1) and a Score: N/10. On #2934, GPT-6 Astra found that to-do updates could attribute another owner's records to the caller.

The first ProPR AI review by codex:gpt-6-astra with an overall evaluation and merge blocker F1, To-do updates can attribute another owner's records to the caller, with its required behavior, evidence, and minimum fix.

S1 stays optional; the score is 6/10

The same review listing optional suggestion S1 and ending with Score: 6/10.

14:40 · The fix pass commits b4e98fb

The fix applies every merge blocker; suggestions wait until you name them. Claude Opus 5.5 resolved F1 with a regression test.

ProPR reporting that it applied the requested follow-up changes in commit b4e98fb, addressing finding F1, with a summary of the cause, fix, regression test, and verification, run by Claude Opus 5.5.

15:00 · Review 2 scores 9/10 and the loop ends

A review at or above the goal ends the loop. The source issue carried the auto-merge label, so ProPR merged the PR into its epic branch itself; without that label, you merge.

No blockers; S2 and S3 continue the numbering

The second ProPR AI review reporting no merge blockers, optional suggestions S2 and S3, and Score: 9/10.

ProPR removes the label and merges the PR

The pull request timeline showing propr-dev removing the ultrafix label, merging commit 0fecd57 into the epic branch 2888-epic-task-assignment-1m4 with 42 checks passed, and deleting the branch.

You hold the brake.

Remove the ultrafix label and the loop ends after the current cycle; comment /ultrafix again to restart it. Automatic escalation to a stronger model and the other options live on the Ultrafix page.

What you get

A pull request that reached the score you set, with every review and fix as a normal comment and commit in its thread.

Ultrafix → All playbooks