Labels are a good way to categorize the tasks. But having too many in an unorganized way results more clutter. Here is my way of labeling issues/tasks. This is the way I organize my tasks in GitHub, GitLab and in Jira.
Indicating the area to which issues belong.
|area: optimization||Fine tuning works|
Used to prioritize the issues.
|priority: high||Requires immediate attention|
|priority: medium||Requires attention soon|
|priority: low||Does not require immediate attention|
Indicating the current stage of the issue.
|stage: investigating||Someone is looking into this|
|stage: wontfix||Does not regard this as an issue or will not implement this feature|
|stage: backlog||Prioritized to be picked up in current sprint|
|stage: proposal||No work has been done of this issue|
|stage: awaiting response||Potential fix was proposed; awaiting response|
|stage: pending release||Works associated with this issue is done but not deployed|
|stage: ready for work||The issue is reproducible and in scope|
|stage: needs information||Not enough info to reproduce the issue|
|stage: needs review||Work done but needs review|
|stage: needs investigating||Someone needs to look at this|
|stage: work in progress||Someone is working on it||#68db1c|
Used to categorize the issues.
|type: chore||Work is required w/ no deliverable to end user|
|type: duplicate||This issue already exists|
|type: feature||New feature that does not currently exist|
|type: enhancement||Requested enhancement of existing feature|
|type: breaking change||Requires a new major release version|
|type: user experience||Improvements needed for UX|
Colors will be updated later. Let me know your thoughts on this.