Make PR Easy to Review
Prepare a PR so a reviewer can quickly understand the intent, important files, and risk. The default goal is reviewability without behavior changes.
Workflow
- Resolve the target PR from the user-provided URL or current branch.
- Inspect commits, diff size, changed paths, generated files, and PR description.
- Identify reviewability issues: noisy commits, stale description, unrelated changes, mixed mechanical and logic changes, missing tests, or unclear reviewer entry points.
- Propose a plan before rewriting history or force-pushing.
- Apply safe improvements, then verify the tree or diff still matches the intended code.
History Cleanup
Only rewrite history when the user asks for it or agrees to the plan. Before rewriting:
gh pr view <PR> --json title,headRefName,baseRefName,state,commits
git fetch origin <headRefName> <baseRefName>
ORIGINAL_TREE=$(git rev-parse origin/<headRefName>^{tree})
Good commit groupings usually follow dependency order:
- Schema/storage or generated API definitions.
- Core logic.
- Wiring and integration.
- UI or surface behavior.
- Tests.
After rewriting, verify content identity:
echo "Original tree: $ORIGINAL_TREE"
echo "Current tree: $(git rev-parse HEAD^{tree})"
git diff origin/<headRefName> --stat
Do not push if the tree changed unintentionally.
Add reviewer guidance
When you update the PR description, follow
opening-a-pr.md. Keep its
applicable sections in order, omit empty sections, and follow its source
restrictions. Put review details that do not fit that contract in a
separate PR comment:
- Separate core files from generated or mechanical files.
- Call out risky behavior changes, migration order, and the rollout plan.
- Record executed tests and their results.
- Link issue trackers, dashboards, or design docs when they explain intent.
Do not add a TL;DR or extra headings to the PR description.
Guardrails
- Never hide meaningful behavior changes inside "cleanup".
- Do not bypass hooks unless the user explicitly asks.
- If the PR is too large to make reviewable with notes, recommend splitting instead of polishing around the problem.