Draft PR
Analyze commits and diff to produce a ready-to-use PR title and description.
Steps
Analyze commits and diff
git log --oneline main..HEAD git diff --stat main..HEAD git diff main..HEADDetermine type and scope
- Infer type from changes (feat, fix, docs, chore, etc.)
- Infer scope from primary directory affected
- If multiple areas changed equally, omit scope
Validate title
- Must match:
^(feat|fix|docs|chore|ci|build|refactor|test|perf|style|revert)(\([a-z][a-z0-9_-]*\))?!?: .+$ - Max 72 characters
- Use imperative mood, lowercase after colon
- Must match:
Read and fill the PR template
Read
.github/pull_request_template.mdand fill in each section with real content from the commits and diff. Strip all HTML comments and placeholder text.Validate description
- Ensure at least 20 characters of real content (excluding template boilerplate)
Output
Print the title and filled PR template body in raw markdown format, ready to copy:
Title: <type>(<scope>): <description>
<filled-out PR template in raw markdown>