PR Description Template Skill
This skill provides everything needed to write high-quality PR descriptions: templates, format specifications, and examples.
Quick Reference
| Command | Description |
|---|---|
/pr-description-template | Show available templates and help |
/pr-description-template feature | Example PR for new feature implementations |
/pr-description-template bugfix | Example PR for bug fixes |
/pr-description-template refactor | Example PR for refactoring/architectural changes |
/pr-description-template format | Show complete PR description format |
Available Templates
| Template | Use For | Characteristics |
|---|---|---|
| feature | New functionality, APIs, components | Emphasizes scope, design decisions, future work |
| bugfix | Bug fixes, regressions, hotfixes | Emphasizes root cause, testing, before/after |
| refactor | Architectural changes, code restructuring | Emphasizes compatibility, migration, incremental changes |
Template Selection Guide
Choose feature when:
- Adding new functionality (greenfield development)
- Implementing new APIs, services, or components
- Adding new user-facing features
- Introducing new capabilities to the codebase
Choose bugfix when:
- Fixing a bug of any size
- Addressing regressions
- Hotfixes for production issues
- Correcting unexpected behavior
Choose refactor when:
- Making architectural changes
- Restructuring code without changing behavior
- Reorganizing modules or file structure
- Implementing breaking changes with migration
- Improving code quality without adding features
PR Description Format
Every PR description MUST follow this structure. This is the canonical format for all pull requests.
Required Sections
## Summary
<High-level summary of changes and context for why the changes were made.
Should answer: What does this PR do? Why is it needed?
Keep to 2-4 sentences. Focus on business value and user impact.>
## What's Included
<Compact list organized by category to help reviewer understand scope at a glance>
**Source Code:**
- `path/to/file.py` - Brief description of change
**Tests:**
- `tests/test_file.py` - What's being tested
**Documentation:**
- `docs/file.md` - What was documented (or note if missing)
**Configuration:**
- `pyproject.toml` - Dependencies added/changed
## Key Design Decisions
<Design decisions to document for reviewer context.
Focus on "why this approach" not implementation details.
Number each decision for easy reference in review comments.>
1. **Decision Title**: Rationale for why this approach was chosen over alternatives
2. **Convention Deviation** (if any): Any intentional deviations from development-conventions with justification
## Critical Areas for Review
<Prioritized areas deserving careful review.
Help reviewer focus their attention on what matters most.
Include line numbers when specific ranges need attention.>
1. **`path/to/critical/file.py:L10-L50`** - Description of why this needs careful review (e.g., complex logic, security implications, breaking change)
2. **`path/to/another/file.py`** - Why this is important to review
Optional Sections
Include these when applicable:
## Future Phases
<Only include if this PR is a partial implementation of a larger plan>
The following phases from the [implementation plan](<plan-path>) are planned for future PRs:
- **Phase N**: Brief description of what's coming
- **Phase M**: Brief description of what's coming
## Breaking Changes
<Only include if there are breaking changes>
- **Change**: Description of what breaks
- **Migration**: How to update dependent code
- **Deprecation Timeline**: When old behavior will be removed (if applicable)
## Testing Notes
<Only include if testing requires special setup or has important caveats>
- How to test locally
- Required environment setup
- Known edge cases
Writing Guidelines
Summary Section
DO:
- Start with what the PR accomplishes (the "what")
- Explain why it's needed (the "why")
- Mention user-facing impact if applicable
- Keep it concise (2-4 sentences)
DON'T:
- List files changed (that's for "What's Included")
- Include implementation details
- Use vague language like "various improvements"
- Make it longer than a short paragraph
Good Example:
Adds batch processing support for the data pipeline, enabling processing of up to 10,000 records in a single operation. This addresses the performance bottleneck reported in issue #123 where large datasets caused timeouts.
Bad Example:
This PR updates processor.py and adds tests. Made some improvements to the code.
What's Included Section
DO:
- Group by file type (Source, Tests, Documentation, Configuration)
- Use relative paths from repository root
- Keep descriptions to one line per file
- Highlight new files vs modified files if helpful
DON'T:
- Include every file if there are many (summarize: "15 test files for new validators")
- Add excessive detail (save that for design decisions)
- Forget to mention documentation updates (or note "Documentation: None" if appropriate)
Key Design Decisions Section
DO:
- Number decisions for easy reference in reviews
- Explain the "why" not the "what"
- Mention alternatives considered when relevant
- Flag any convention deviations with justification
DON'T:
- Repeat implementation details
- Include decisions that are obvious
- Skip this section (even simple PRs have at least one decision worth noting)
Critical Areas for Review Section
DO:
- Prioritize areas by importance
- Include line numbers for specific ranges
- Explain WHY each area needs attention
- Mention security, complexity, or breaking change concerns
DON'T:
- List every file (only truly critical areas)
- Be vague ("please review carefully")
- Skip this section (helps reviewers use their time effectively)
Title Guidelines
PR titles should be concise and descriptive:
Format: <type>: <brief description>
Types:
feat:- New featurefix:- Bug fixrefactor:- Code restructuringdocs:- Documentation onlytest:- Test additions/changeschore:- Maintenance tasks
Good Examples:
feat: Add batch processing for data pipelinefix: Resolve timeout on large dataset uploadsrefactor: Extract validation logic into separate module
Bad Examples:
Update files(too vague)Fix bug(what bug?)WIP(not ready for review)
Action Instructions
Based on the argument provided, perform one of these actions:
/pr-description-template (no args) or /pr-description-template help
Show this overview with available templates and commands.
/pr-description-template feature
Read and display: .claude/skills/pr-description-template/example-feature.md
/pr-description-template bugfix
Read and display: .claude/skills/pr-description-template/example-bugfix.md
/pr-description-template refactor
Read and display: .claude/skills/pr-description-template/example-refactor.md
/pr-description-template format
Display the "PR Description Format" section from this skill.
Template File Locations
All example templates are in this skill directory:
example-feature.md- Complete example for new feature PRsexample-bugfix.md- Complete example for bug fix PRsexample-refactor.md- Complete example for refactoring PRs
