3.4 KiB
Label Taxonomy
This document defines the canonical issue labels used by MCP workflows.
Every issue should carry:
- one
type:*label - one
status:*label
Discussion-only issues must carry type:discussion.
Issue Type Labels
| Label | Use |
|---|---|
type:bug |
Bug or defect |
type:feature |
Feature or enhancement |
type:process |
Process or policy work |
type:workflow |
Workflow automation or guidance |
type:guardrail |
Safety gate or guardrail |
type:docs |
Documentation work |
type:test |
Tests or test infrastructure |
type:discussion |
Discussion-only issue |
type:umbrella |
Umbrella or tracker issue |
type:cleanup |
Cleanup or hygiene work |
Workflow Status Labels
Only one status:* label should be active on an issue at a time. When an issue
moves forward, tooling must remove the old status:* label and apply the new
one.
| Label | Use |
|---|---|
status:triage |
Issue needs triage |
status:ready |
Issue is ready for work |
status:claimed |
Issue is claimed |
status:in-progress |
Issue is being worked on |
status:blocked |
Issue is blocked |
status:needs-review |
Issue work needs review |
status:pr-open |
A linked PR is open |
status:approved |
Linked PR is approved |
status:merged |
Linked PR is merged |
status:reconcile |
Issue needs reconciliation |
status:done |
Issue workflow is complete |
status:duplicate |
Issue is a duplicate |
status:wontfix |
Issue will not be fixed |
Transition Rules
Suggested lifecycle:
- New issue created:
status:triageorstatus:ready - Issue selected by an author:
status:claimed - Author starts work:
status:in-progress - Work is blocked:
status:blocked - PR opened:
status:pr-open - PR approved:
status:approved - PR merged but issue still needs closure/reconciliation:
status:reconcile - Issue fully complete:
status:done - Duplicate issue:
status:duplicate - Won't-fix issue:
status:wontfix
The helper module issue_workflow_labels.py is the source of truth for the
canonical label specs and status transition replacement behavior.
Discussion Issues
Discussion issues must be labeled type:discussion.
A discussion issue should not be treated as implementation-ready unless it also has a clear implementation status and next action.
If a discussion produces implementation work, either:
- convert the discussion issue into an implementation issue by changing labels and adding acceptance criteria, or
- create child implementation issues and leave the discussion issue as
type:discussion.
Tooling
manage_labels.py --create-labelscreates the canonicaltype:*andstatus:*labels.gitea_create_issuerecommendstype:*andstatus:*labels when missing and can apply supplied label names.gitea_mark_issue(..., action="start")replaces oldstatus:*labels withstatus:in-progress.gitea_create_prfails closed before PR creation ifstatus:pr-opencannot be applied to the locked issue, then applies it after the PR is created.gitea_set_issue_labelsaccepts an explicitworktree_pathso author sessions can satisfy the branches-only mutation guard while changing labels.
Existing Non-Workflow Labels
Existing non-workflow labels such as mcp, workflow, labels, tracker,
jenkins, glitchtip, documentation, and testing remain valid topical
labels. They do not replace the required type:* and status:* labels.