Skip to content

Commits as PRs

In Local Review, one commit is one PR. Each commit in a project’s range is shown as a candidate pull request, with a Conversation tab, a Files changed tab and a Stack tab, just like a GitHub PR. That is the shape it will have when it goes up as a GitHub stacked PR: one PR per commit, each on the branch of the one below.

A PR header: the title with its number #6, the Draft | Ready toggle, "4 of 11 done", "commit 6 of 10 in orchard-api" with its branches, and the stack stepper 6, 7, 8
A commit as a PR: its title and number, readiness, where it sits in the range, its branch and base, and a stepper through its stack.
Comes fromOverride
Titlethe commit subjecttitle: in its prs file, or Edit in the UI
Descriptionthe commit bodybody: in its prs file, or the description editor
Diffthe commit against its first parent, with rename detection—
Numberits position in the repo, 1..n across all stacks, oldest first (“PR 3”, #3)—
Readinessdraft until you mark it readysee Readiness
Branchnone until an agent tags onesee Branches

Overrides never touch the commit: they live in Local Review’s files, so the reviewed repo stays exactly as it was.

  • It’s how stacks are built. Every stacking tool, GitHub’s own included, works from a series of local commits; they differ only in how they map commits to PRs. Reviewing commits means reviewing exactly what will go up. See Works with your stacking tool.
  • Small PRs get real review. An agent can write a dozen tidy commits in an afternoon. Reviewed as one branch they blur together; reviewed one at a time, each gets its own diff and conversation.
  • Fixes land where they belong. A comment on PR 3 is fixed in PR 3, with git commit --fixup and an autosquash rebase, and the thread follows the rewritten commit (Following rebases).

Each commit should be reviewable on its own, with a clear and unique subject. Split, squash and reorder with git rebase -i until it is; then group the commits into stacks. The agent guide’s Building the local representation covers this for agents.

PR numbers are positions across the whole repo, not per stack, and they include landed PRs first, so they don’t change when you regroup stacks or when PRs merge. They aren’t GitHub PR numbers: once a PR is published, its GitHub number shows beside it as a #1234 ↗ badge.