Docket

FEEDBACK

A bug report template you can copy

Four templates to copy: minimal, internal QA, crash, and a GitHub issue form.

6 MIN READ Last updated 23 August 2026

A bug report template is a fixed set of fields that forces the same information out of every report, in the same order, every time. Which template you need depends on who is filling it in: a customer needs three or four short fields, a QA engineer needs ten, and a public repository needs a form GitHub can render for you. Below are four you can copy today.

This page is one part of a larger guide. For the whole subject in one place, see feature request tools.

Which template should you use?

Match the template to who is writing it, not to how serious the bug is.

The reasoning behind why each field earns its place is in the companion piece, how to write a good bug report. This post is only the templates.

A minimal template for customers

Four fields, plain language, nothing that assumes technical knowledge.

What were you trying to do?


What happened instead?


Does it happen every time, or just once?


What device or browser are you using?

A fuller template for internal QA

Ten fields, written for a colleague who already knows the product.

Title:

Severity: [blocker / major / minor / cosmetic]

Build or version:

Environment: [OS, browser or app version, device]

Preconditions:

Steps to reproduce:
1.
2.
3.

Expected result:

Actual result:

Frequency: [always / intermittent / once]

Logs, stack trace, or attachments:

Related issues:

A template for a crash

Crashes need a version of the QA template with the failure evidence promoted to the top, because a stack trace is usually the fastest way in.

Title: [app] crashes when [action]

Build or version:

Device and OS:

Steps immediately before the crash:
1.
2.
3.

Did the app crash completely, or did one screen freeze?

Crash log or stack trace:


Does it crash every time you repeat those steps?

Anything unusual about this session? [low battery, low storage, poor network, background app]
Your own support centre, in your own repository

One payment, no subscription, unlimited products.

What does a GitHub issue template look like?

GitHub renders a YAML file in .github/ISSUE_TEMPLATE/ as a structured form instead of a blank text box, so every reporter fills in the same fields. This is the shape for a bug report.

name: Bug report
description: File a bug report
title: "[Bug]: "
labels: ["bug", "triage"]
body:
  - type: textarea
    id: what-happened
    attributes:
      label: What happened?
      description: Tell us what you expected and what happened instead.
      placeholder: I expected X, but Y happened instead.
    validations:
      required: true
  - type: textarea
    id: reproduce
    attributes:
      label: Steps to reproduce
      description: A numbered list, starting from a known point.
      placeholder: |
        1.
        2.
        3.
    validations:
      required: true
  - type: dropdown
    id: frequency
    attributes:
      label: Does this happen every time?
      options:
        - Always
        - Sometimes
        - Only once
    validations:
      required: true
  - type: input
    id: version
    attributes:
      label: Version
      description: Which version were you running?
      placeholder: v1.2.3
    validations:
      required: true
  - type: textarea
    id: logs
    attributes:
      label: Relevant log output
      description: This is automatically formatted as code, no backticks needed.
      render: shell
    validations:
      required: false

Frequently asked questions

Which bug report template should a small team start with?

The minimal customer template for anything public-facing, and the QA template internally, as soon as more than one person triages reports. A GitHub issue form is worth the extra setup only once a project takes reports from the public on GitHub itself.

Do I need all ten fields in the QA template?

No. Leave a field blank rather than guessing at it. A blank field is honest about what is not known yet; a guessed answer sends whoever picks up the bug down the wrong path.

Can I use the GitHub YAML template outside GitHub?

The YAML syntax is specific to GitHub's issue forms, but the fields it lists translate directly into any form builder or ticketing tool. Keep the same fields and the same required-versus-optional split.

Should severity be set by the customer or by the team?

By the team, using the customer's description of impact. A customer's own severity rating is usually about how annoying the bug feels to them, not about how many other people it affects or how serious it is technically.

What's the difference between this template and the "how to write a good bug report" article?

That article explains why each field matters and how to write a good answer for it. This one is the fields themselves, ready to paste into a form, an email, or a repository.