Repository navigation
Issue Labels
bparlaker edited this page Oct 6, 2026
·
3 revisions
This repository replaces GitHub's flat default labels with a grouped, prefixed label scheme. This page explains the design and how to use it.
GitHub creates bug, documentation, duplicate, enhancement, good first issue, help wanted, invalid, question, wontfix (and newer repos also accessibility). They mix three different questions in one flat list:
-
what kind of work is this? (
bug,enhancement) -
what is its state? (
duplicate,wontfix) -
who can help? (
help wanted)
…and say nothing about priority, size or which part of the project is affected.
| Source | Key idea adopted |
|---|---|
| GitHub Docs - Managing labels | Labels are repo-wide; good first issue and help wanted are recognised by GitHub and surfaced to new contributors → keep them unchanged. |
| Dave Lunny - Sane GitHub Labels | Use a Category: Value prefix so labels sort into groups; one colour family per group. |
| Robin - Best-practice system for organizing and tagging GitHub issues | Separate Type, Status and Priority; colour groups make a board readable at a glance. |
| Relequestual - sensible-github-labels | Workflow/status labels for teams that like structure. |
| IPFS - ISSUE_LABELS.md | Effort / difficulty labels help people pick suitable work. |
-
Prefix = group.
Group: Value- alphabetical sorting then keeps each group together. - One colour family per group, so the colour tells you the group before you read the text.
- Every label has a description (shown as a tooltip on GitHub).
-
Exactly one
Type, onePriority, at most oneStatusper open issue.EffortandAreaare optional but encouraged. -
Rename, don't delete defaults - their meaning is preserved (e.g.
enhancement→Type: Feature,wontfix→Status: Won't Fix). - Keep the list short (≈25). Too many labels = nobody uses them.
| Label | Colour | Use when… |
|---|---|---|
Type: Bug |
#d73a4a |
something is broken or behaves unexpectedly |
Type: Feature |
#a2eeef |
new functionality or an improvement |
Type: Documentation |
#0075ca |
README, wiki or other docs |
Type: Research |
#006b75 |
we must investigate/learn before acting |
Type: Question |
#d876e3 |
information or a decision is needed |
Type: Chore |
#c5def5 |
housekeeping, no user-facing change |
| Label | Colour | Meaning |
|---|---|---|
Priority: Critical |
#b60205 |
blocks the project - fix now |
Priority: High |
#d93f0b |
this cycle |
Priority: Medium |
#fbca04 |
soon |
Priority: Low |
#0e8a16 |
when time allows |
| Label | Colour | Meaning |
|---|---|---|
Status: Needs Triage |
#ededed |
new, not yet reviewed |
Status: In Progress |
#c2e0c6 |
someone is working on it |
Status: Needs Review |
#fef2c0 |
done, waiting for feedback |
Status: Blocked |
#000000 |
waiting on something else (link it!) |
Status: Duplicate |
#cfd3d7 |
already tracked - link and close |
Status: Invalid |
#e4e669 |
not actionable |
Status: Won't Fix |
#ffffff |
valid but out of scope - explain why |
| Label | Meaning |
|---|---|
Effort: Small |
< 1 hour |
Effort: Medium |
a few hours |
Effort: Large |
a day or more - consider splitting |
Area: README · Area: Wiki · Area: Repo Setup · Area: Accessibility · Area: Design · Area: Backend · Area: Frontend · Area: Deployment (the last four were added for the term project)
good first issue · help wanted
opened --► Status: Needs Triage --► (add Type + Priority + Effort + Area)
│
▼
Status: In Progress --► Status: Needs Review --► closed
│
└--► Status: Blocked (link the blocker)
- All high-priority docs work:
is:open label:"Type: Documentation" label:"Priority: High" - Untriaged issues:
is:open label:"Status: Needs Triage" - Quick wins:
is:open label:"Effort: Small"
🎨 Term Project
📘 Git
🗂 Project workflow