open-pr
Process
1. Establish the state
Check the working tree, the current branch, and whether the branch already has an open PR, to land in one of three states:
- On the default branch — create a branch for the work first.
- On a branch, no PR — you'll open one.
- On a branch, PR exists — you'll update it in place. If you're here because follow-up work landed rather than because the user asked, refresh only when the new commits make the title or body stale — scope, approach, or context they no longer explain.
Uncommitted changes are part of the work: commit them, in every state, before composing. Done when the work sits committed on a non-default branch and you know the base branch and whether a PR exists.
2. Read the branch
Study the branch as a whole — git diff <base>...HEAD and git log <base>..HEAD — to understand what changed, why, and the user-facing impact. Done when every commit on the branch is accounted for in your understanding.
3. Compose
Compose the title and description fresh from the branch you just read — whether the PR is new or already open — per the formats below. If the repo ships a PR template (e.g. .github/pull_request_template.md), its structure wins — apply the section guidance here within the template's sections.