submit-a-pull-requestlisted
Install: claude install-skill yegor256/courier
## Target
Target GitHub repository user named, or `origin` otherwise.
Use repository's actual default branch as base.
Resolve base branch at runtime, never hard-coding `main`.
## Preconditions
Refuse on default branch or with dirty working tree.
Refuse when no commits sit ahead of default branch.
Refuse when open pull request already targets same branch.
Confirm branch is up to date with remote default.
## Boundaries
Submit commits untouched.
Skip editing, amending, rebasing, squashing, building, testing, and linting.
## Branch
Push branch before opening pull request.
## Title
Use imperative-mood title, not `Fixes` or `Update`.
Derive title and body, never from branch name.
## Body
Write body as few short paragraphs.
Cover what changes, why, and any follow-up.
Quote snippet of most important change, no longer than ten lines.
Trust code to convey change better than prose.
## Format
Shape pull request as imperative title plus short prose body.
Shape comment as one or two sentences.
## Voice
Write like human.
Vary rhythm, never sliding into AI cadence.
Open with substance, never with boilerplate or buzzword strings.
End body on last sentence.
Skip `Generated with` footers, `Co-Authored-By` trailers, and robot emoji.
## Closing
Use closing keyword only when user or commit already cites issue.
## Owner
Read owner from repository slug.
For organization, use top recent committer as owner.
Stop when owner stays unknown.
Ask user to resolve it.
## Comment
Skip com