Pull Request Description Templates
debt(d3/e1/b1/t2)
Closest to 'default linter catches the common case' (d3), -1 from d5 because GitHub/GitLab visibly show empty PR descriptions to reviewers immediately; the absence of a template is obvious at PR-open time without needing specialist tooling.
Closest to 'one-line patch or single-call swap' (e1), per quick_fix: adding a single .github/pull_request_template.md file auto-populates every future PR — no code refactor needed.
Closest to 'minimal commitment' (b1), since applies_to is 'any' context but the template itself is a single markdown file with no gravitational pull on the codebase — it's a convention, not architecture.
Closest to 't1 behaves exactly as named' with slight bump to t2, because the misconception (templates are bureaucratic overhead) is a mild trap — developers may dismiss them or overload them with too many sections, but the concept itself behaves as named.
Also Known As
TL;DR
Explanation
A good PR template includes: Summary (what does this change do?), Motivation (why is this change needed? links to issue), Type of change (bug fix, feature, breaking change, refactor), How to test (steps to reproduce the scenario being changed), Screenshots (for UI changes), Checklist (tests added, documentation updated, migrations run). Stored in .github/PULL_REQUEST_TEMPLATE.md — automatically pre-fills the PR description on GitHub. Multiple templates: .github/PULL_REQUEST_TEMPLATE/ directory with multiple files selectable via URL parameter.
Common Misconception
Why It Matters
Common Mistakes
- Overly long templates — developers leave all fields blank rather than fill in 20 sections.
- No testing instructions — how is the reviewer supposed to verify the change?
- Checklist items that are never checked — if nobody checks them, remove them.
- Same template for all PR types — a hotfix needs different information than a new feature.
Code Examples
# No PR template — PRs are descriptions like:
# Title: 'Fix bug'
# Description: 'Fixed the thing that was broken'
# How to test: (empty)
# Related issue: (empty)
# Reviewer: spends 20 minutes asking questions before starting review
# .github/PULL_REQUEST_TEMPLATE.md:
## Summary
Brief description of what this PR does.
## Motivation
Fixes # (issue number) | Implements # (issue number)
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Refactor
## How to Test
1. Checkout this branch
2. Run: `php artisan migrate`
3. Navigate to /checkout
4. Expected: ...
## Checklist
- [ ] Tests added/updated
- [ ] No new PHPStan errors (`composer stan`)
- [ ] Database migration is reversible