com um clique
prepare-pr
// Prepare a GitHub PR for merge by rebasing onto main, fixing review findings, running gates, committing fixes, and pushing to the PR head branch. Use after /review-pr. Never merge or push to main.
// Prepare a GitHub PR for merge by rebasing onto main, fixing review findings, running gates, committing fixes, and pushing to the PR head branch. Use after /review-pr. Never merge or push to main.
Analyze code quality metrics for a Go package
Elite background evaluator agent combining 30-year Google/AWS test/devops expertise with 30-year Apple design mastery. Strictest production standards. Pixel-perfect design scrutiny. Spawned in a worktree for independent grading.
Merge a GitHub PR via squash after /prepare-pr. Use when asked to merge a ready PR. Do not push to main or modify code. Ensure the PR ends in MERGED state and clean up worktrees after success.
Review-only GitHub pull request analysis with the gh CLI. Use when asked to review a PR, provide structured feedback, or assess readiness to land. Do not merge, push, or make code changes you intend to keep.
| name | prepare-pr |
| description | Prepare a GitHub PR for merge by rebasing onto main, fixing review findings, running gates, committing fixes, and pushing to the PR head branch. Use after /review-pr. Never merge or push to main. |
Prepare a PR branch for merge with review fixes, green gates, and an updated head branch.
main or origin/main. Push only to the PR head branch.git push without specifying remote and branch explicitly. Do not run bare git push.git clean -fdx.git add -A or git add .. Stage only specific files changed.origin/main..local/review.md..local/prep.md with a prep summary.PR is ready for /merge-pr.Create a checklist of all prep steps, print it, then continue and execute the commands.
Use an isolated worktree for all prep work.
git rev-parse --show-toplevel
WORKTREE_DIR=".worktrees/pr-<PR>"
Run all commands inside the worktree directory.
if [ -f .local/review.md ]; then
echo "Found review findings from /review-pr"
else
echo "Missing .local/review.md. Run /review-pr first and save findings."
exit 1
fi
sed -n '1,200p' .local/review.md
gh pr view <PR> --json number,title,author,headRefName,baseRefName,headRepository,body --jq '{number,title,author:.author.login,head:.headRefName,base:.baseRefName,headRepo:.headRepository.nameWithOwner,body}'
contrib=$(gh pr view <PR> --json author --jq .author.login)
head=$(gh pr view <PR> --json headRefName --jq .headRefName)
head_repo_url=$(gh pr view <PR> --json headRepository --jq .headRepository.url)
git fetch origin pull/<PR>/head:pr-<PR>
git reset --hard pr-<PR>
git fetch origin main
git rebase origin/main
If conflicts happen: resolve each file, git add <file>, git rebase --continue.
If you resolve conflicts 3+ times, stop and report.
.local/review.mdKeep a running log in .local/prep.md.
Update CHANGELOG.md if flagged in review
Update docs if flagged in review
Commit prep fixes
Stage only specific files:
git add <file1> <file2> ...
git commit -m "fix: <summary> (#<PR>) (thanks @$contrib)"
Run build, lint, and test commands for the project. Require all to pass. Allow at most 3 fix-and-rerun cycles. If gates still fail after 3 attempts, stop and report.
git remote add prhead "$head_repo_url.git" 2>/dev/null || git remote set-url prhead "$head_repo_url.git"
echo "Pushing to branch: $head"
if [ "$head" = "main" ] || [ "$head" = "master" ]; then
echo "ERROR: head branch is main/master. Stopping."
exit 1
fi
git push --force-with-lease prhead HEAD:$head
git fetch origin main
git fetch origin pull/<PR>/head:pr-<PR>-verify --force
git merge-base --is-ancestor origin/main pr-<PR>-verify && echo "PR is up to date with main" || echo "ERROR: PR is still behind main, rebase again"
git branch -D pr-<PR>-verify 2>/dev/null || true
Write prep summary to .local/prep.md
Output diff stat and print: PR is ready for /merge-pr
/merge-pr may reuse it.gh pr merge.