Repository navigation
Reviewing: hand a reviewed PR to a person to merge (agent:human-merge, human_merge_paths) - #43
Merged
Merged
Conversation
…, human_merge_paths) A PR that runs out of review rounds, or that passes review but changes a file in human_merge_paths, is labelled agent:human-merge and its CODEOWNERS (read from the base branch) are asked to review and merge it. See ADR 0008.
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.
Problem
Reviewing had two exits, merge or send back. Two cases fit neither.
max_review_roundswent toagent:stuck, which means an agent gave up and something is broken. Usually the PR is reviewable and a person just needs to decide. It also named at most onehuman_reviewer.Changes
references/human-merge.md, ADR 0008). Labelagent:human-merge, with a comment that @mentions the owners and says why an agent is not merging, what was checked at which SHA, what is still open, and what to do. It never calls a PR safe beyond whatmerge-safetyandcode-reviewreported.review-rounds: replaces the escalation when rounds run out.protected-paths: new inputhuman_merge_paths(gitignore-style, comma-separated, empty by default). The agents still review, fix and re-review. When the PR would otherwise merge, a person merges it instead.codeowners_for Nreads CODEOWNERS from the PR's base branch, never its head. Owners of the changed files are mentioned and requested for review, together withhuman_reviewer. With no CODEOWNERS file it falls back tohuman_reviewerand still labels and comments.protected_files Nreturns a non-zero status when the changed files cannot be read or are empty, or a pattern is unsupported, and Reviewing then fails the item instead of merging. Renames count under their old name, so a file cannot leave a protected path by being renamed.shepherd-github-pr(s)andreview-github-pr(s)likeagent:stuck, and holds no merge lane.agent:human-mergemarker resetsreview_rounds,shepherd_attemptsandfailures(inhelpers.mjsandlib.sh), so a PR handed back withagent:needs-workis not escalated again on its first review.agent:pr-open. That mattered little while only Reviewing merged, and matters now that people do. It now removes the label.labels.md, the setup skill asks forhuman_merge_paths, protocol tables updated, prompts regenerated withnpm run sync, minor changeset.Verification
npm run validate: 17 skills OK.npm test: shell suite 144 passed / 0 failed, JS suite 37 passed / 0 failed.check-plugin-versionandsync --checkclean.**, trailing/, wildcard last segment, literal regex characters, rejected patterns),protectedFilesrefusing an unreadable pattern, CODEOWNERS (last rule wins, ownerless rule, comments, order, no repeats), both CLI commands, and shell tests against the gh stub forprotected_files(empty setting, match, rename, unreadable list, empty list, unsupported pattern) andcodeowners_for(base-branch lookup,.github/overdocs/, no file). Shared marker fixtures cover the count reset and a forged marker.Not verified, and limits
human-merge.md) has not been run end to end by a real runner, andgh pr edit --add-reviewerwith teams and users without access was not exercised.helpers.mjsand the ADR), not full parity.Upgrading
Run the label setup in
references/labels.mdagain to createagent:human-merge.human_merge_pathsis empty by default, so nothing changes until a runner sets it.