Pull Request Templates That People Actually Fill In

Pull Request Templates That People Actually Fill In

21 October 2026 · By Laravel Git · 3 min read

A pull request with an empty description is a small act of unkindness to its reviewer. They have to reconstruct the intent from the diff, guess at the testing, and ask questions the author could have answered in thirty seconds. Teams fix this with a template - then often ruin it by making the template a questionnaire nobody reads.

What a template is for#

Drop a file at .github/pull_request_template.md (or .gitlab/merge_request_templates/Default.md) and every new pull request starts with its contents pre-filled. The author’s job shifts from “write something from nothing” to “fill in the blanks” - which is a much lower bar, and that is the whole point.

The sections that earn their place#

Three prompts cover almost everything a reviewer needs:

## What
One or two sentences: what does this change do?

## Why
What problem does it solve? Link the ticket if there is one.

## How tested
What did you run, click, or deploy to staging to convince yourself?

“What” and “why” are the difference between a review and an interrogation. “How tested” is the one authors skip when there is no prompt, and the one that catches “I did not actually run it” before the reviewer does.

For risky changes, one optional line helps: **Risk:** what breaks if this is wrong? Leave it in the template as a comment or optional heading, and the answer doubles as your rollback plan - which pairs well with the habits in rollback or roll forward.

What to leave out#

Every field you add is a tax on every pull request. Skip:

  • Long checklists of things CI already checks. “Tests pass” is a status badge, not a checkbox.
  • Legalistic boilerplate. Nobody has ever been protected by “I confirm I have read the contributing guide.”
  • Sections that only apply to one pull request in fifty. Database migration notes, screenshots, API changes - authors will add these when relevant. A heading they must delete is friction, not help.

If a section is empty on most merged pull requests, cut it.

Keep it alive#

A template is a living document with exactly one success metric: do merged pull requests have useful descriptions? Skim the last ten. If “How tested” is always “yes”, sharpen the prompt (“what command did you run?”). If a section is always deleted, remove it.

The template is also a forcing function for smaller work: a pull request too big to describe in two sentences is a pull request that should be split, which is exactly the argument in small pull requests get reviewed faster. And when the description is written, the advice in writing a good pull request description makes it land.

Start with three headings and resist every addition. The best template is the one nobody notices.

Share this post

Our network