Repository navigation
Gate merges on a review-fix-loop commit status - #168
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Agents can no longer land a PR through
mergeuntilreview-fix-loophas finished on that exact head.What changed
review-fix-loopcommit status on the exact SHA its final pass assessed. It posts once that SHA is on the remote, and a PR doesn't have to exist yet. GitHub ties the status to the commit, so any later push has none.pr_state.pytreats only a commit status with that context as the review record, and reports it asreview_status, apart from CI checks. A CI job with the same name stays a normal check. Anything but a passing status blocks.No GitHub settings change. The status isn't a required check, so the user's own merges are unaffected, and nothing is added to any repo's code.
Why
On #166, reviews were run by hand outside the loop, so its pause and fix routing never ran. #167 showed that wording can't route an improvising agent to the loop. Enforcing it in code at landing turns skipping the loop into an obvious block.
How the review went
Seven passes through
review-fix-loop, including the #167 pause, which fired twice:patch-id --stableignores whitespace, which was reproduced, andrange-diffskips merge commits.The full decision record is kept with the review archive.
Verification
python3 scripts/check.pypasses.test_pr_state.pyhas 54 tests, each new behavior seen failing first:UNSTABLE;pr_statereportedreview_status: passandreadybefore merge.🤖 Generated with Claude Code