Label System Guide
This document describes the standardized labeling system used in this repository for issue and pull request management.
Overview
The repository uses a three-tier labeling system to improve project organization, workflow clarity, and automation effectiveness. Labels are synchronized from .github/labels.yml via the label-sync.yml workflow.
Important: Never edit labels directly in the GitHub UI. Always update .github/labels.yml and let the workflow sync the changes.
Label Categories
Process Labels
These labels trigger specific automation workflows or indicate special handling requirements:
Todo- Triggers Copilot automation to draft a fix for the linked issuemonitoring- Screeps PTR monitoring alerts raised by automationcopilot- Changes or issues generated by GitHub Copilot workflowsneeds/regression-test- Reports missing coverage; add a regression test before merging
State Labels
Track the lifecycle of issues and pull requests:
state/pending- Issues awaiting triage or initial review (default for new issues)state/backlog- Confirmed issues not yet startedstate/in-progress- Issues currently being worked onstate/blocked- Issues blocked by external dependencies or other issuesstate/canceled- Issues that will not be addressedstate/done- Completed issues (alternative to closing)
Best Practice: Update state labels as work progresses to maintain accurate project status.
Type Labels
Classify the nature of the issue or pull request:
type/bug- Confirmed defects that require fixestype/feature- New functionality or capability requeststype/enhancement- Improvements to existing features or functionalitytype/chore- Maintenance tasks, refactoring, or housekeepingtype/question- Questions or requests for clarification
Note: Every issue should have exactly one type label.
Priority Labels
Indicate urgency and importance for prioritization:
priority/critical- Immediate attention required; blocking failures or production outagespriority/high- High importance; address as soon as possiblepriority/medium- Standard priority; address in normal workflowpriority/low- Low priority; address when capacity allowspriority/none- No specific priority assigned
Best Practice: Apply priority labels during triage to help with sprint planning and capacity allocation.
Domain Labels
Identify the technical area or component affected:
automation- Workflow, scripting, or infrastructure automation updatesruntime- Screeps runtime behaviour, kernel, or creep orchestration changesdocumentation- Documentation updates in README, docs/, or developer guidesmonitoring- PTR stats, health checks, or telemetrydependencies- Dependency updates (often opened by Dependabot)regression- Issues that reoccurred after a previous fix
Note: Issues can have multiple domain labels if they affect multiple areas.
Workflow Labels
Common GitHub patterns for community engagement and issue management:
good-first-issue- Good for newcomers to the projecthelp-wanted- Extra attention or assistance needed from the communitywontfix- This will not be worked onduplicate- This issue or pull request already existsinvalid- This doesn’t seem right or is not applicable
Label Usage Guidelines
For New Issues
Issue templates automatically apply appropriate labels:
- Bug reports get:
type/bug,needs/regression-test,state/pending - Feature requests get:
type/feature,state/pending - Automation issues get:
automation,type/bug,state/pending - Documentation issues get:
documentation,type/enhancement,state/pending
During Triage
The copilot-issue-triage.yml workflow automatically:
- Analyzes issue content
- Applies appropriate type, priority, and domain labels
- Sets state to
state/pendingorstate/backlog - Never automatically applies the
Todolabel (manual decision)
During Development
Update state labels as work progresses:
state/pending→state/backlog(after triage confirmation)state/backlog→state/in-progress(when starting work)state/in-progress→state/blocked(if blocked)state/in-progress→state/doneor close (when completed)
For Pull Requests
Automation workflows apply labels:
- Copilot Todo PRs get:
automation,copilot,type/bugortype/enhancement - CI Autofix PRs get:
automation,copilot,type/chore,priority/high - Dependabot PRs get:
dependencies
Examples
Example 1: Critical Bug Report
A production-blocking bug should have:
type/bug- It’s a defectpriority/critical- Immediate attention requiredruntime- Affects Screeps runtimeneeds/regression-test- Needs test coveragestate/pending→state/in-progress→state/done
Example 2: Documentation Enhancement
A documentation improvement should have:
type/enhancement- Improving existing docspriority/medium- Standard prioritydocumentation- Affects documentationgood-first-issue- If suitable for newcomersstate/pending→state/backlog→state/in-progress→state/done
Example 3: Feature Request
A new feature request should have:
type/feature- New functionalitypriority/loworpriority/medium- Based on importance- Domain labels as appropriate (
runtime,automation, etc.) help-wanted- If community input is desiredstate/pending→state/backlog→state/in-progress→state/done
Automation Integration
Copilot Todo Workflow
Issues labeled with Todo trigger automated implementation. The workflow:
- Creates a draft PR
- Implements the fix incrementally
- Updates PR description with progress
- Runs tests and marks PR ready for review
Stats Monitor Workflow
PTR monitoring creates issues with:
monitoringandcopilot(process labels)type/bug(it’s a detected problem)state/pending(awaiting review)priority/*based on severity (critical/high/medium)runtime(affects runtime behavior)
Issue Triage Workflow
New issues are automatically triaged with:
- Appropriate
type/*label based on content - Suggested
priority/*based on impact - Relevant domain labels
state/pendingfor initial state- Never automatically applies
Todo
Additional Resources
- .github/labels.yml - Label definitions
- .github/workflows/label-sync.yml - Label sync workflow
- Automation Overview - Complete automation documentation
- GitHub Labels Documentation