This document defines the label taxonomy for GitHub Issues, used to categorize contributor work from issues.md and help new contributors discover work that matches their skill level.
Used to indicate the expected difficulty and prerequisite knowledge for a given issue.
| Label | Color | Description | Candidates |
|---|---|---|---|
good-first-issue |
#7057ff |
Suitable for newcomers with no major prerequisites; isolated, self-contained scope | Medium complexity issues with no unresolved High-complexity prerequisites |
help-wanted |
#008672 |
Open to anyone; may have a clear scope but could benefit from fresh eyes or bandwidth | Any complexity level without critical-path blocking |
hard |
#d73a49 |
Significant challenge; may require deep codebase knowledge or non-trivial design work | High complexity issues; new architectural patterns |
Mirror the four implicit categories in issues.md:
| Label | Color | Description |
|---|---|---|
category/backend |
#c2e0c6 |
Backend API, services, database, integrations |
category/security |
#fc2929 |
Security audit, vulnerability disclosure, authentication |
category/devops |
#1d76db |
Infrastructure, CI/CD, monitoring, operations |
category/governance |
#ffc274 |
Community, documentation, process, contributor onboarding |
Track issue lifecycle:
| Label | Color | Description |
|---|---|---|
status/blocked |
#d73a49 |
Cannot proceed; describes blocker in the issue or comment |
status/in-progress |
#0075ca |
Being actively worked on; PR referenced in issue or comment |
status/ready-to-merge |
#a2eeef |
Approved PR awaiting merge; linked PR should reference issue number |
When mirroring an issue from issues.md to GitHub:
- Title: Use the issue's
[DESCRIPTION]line verbatim - Body: Include the full
[DESCRIPTION]+[PROBLEM STATEMENT & CONTEXT]sections; link back toissues.md - Category Label: Determine from the issue's category in
issues.md; apply one ofcategory/backend,category/security,category/devops, orcategory/governance - Difficulty Label: Apply based on Complexity + prerequisites:
good-first-issue: If Complexity isMediumAND the issue description does not reference any High-complexity issue numbers as prerequisiteshelp-wanted: If the issue is open and not currently assigned, and is not blocked by another open issuehard: If Complexity isHigh, always apply (in addition to category label)
- Prerequisites: In the issue body, add a "Prerequisites" section listing any dependent issues (those referenced in Implementation Guidelines or Problem Statement)
Example: Issue #25 in issues.md is "Medium" complexity in Backend, doesn't reference a High blocker → category/backend + good-first-issue
Do not mark an issue as good-first-issue if:
- Any of its prerequisites are still open
- It requires significant cross-module refactoring
- Its description includes "TODO: [document the unfinished design]" or similar
- When an issue is closed (PR merged), remove the
help-wantedlabel if present - When an issue moves to active work, add
status/in-progressand reference the PR - When a PR is approved, add
status/ready-to-merge(removed on merge) - Review labels quarterly as the backlog evolves
The first batch of issues mirrored from issues.md (issues #316–#330) should include examples from all categories and both difficulty levels to establish a clear pattern for future contributors.
For more context on how the contributor backlog is managed, see CONTRIBUTING.md and issues.md in the upstream repository.