Skip to content

Commit 50b9a10

Browse files
Copilotpelikhan
andcommitted
Move label guidelines to specs/labels.md per reviewer request
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
1 parent d6d77a4 commit 50b9a10

File tree

2 files changed

+173
-114
lines changed

2 files changed

+173
-114
lines changed

CONTRIBUTING.md

Lines changed: 2 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,14 @@ make recompile
7272
- Use the GitHub issue tracker to report bugs
7373
- Include detailed steps to reproduce the issue
7474
- Include version information (`./gh-aw version`)
75+
- Follow label guidelines (see [Label Guidelines](specs/labels.md))
7576

7677
### Suggesting Features
7778

7879
- Open an issue describing your feature request
7980
- Explain the use case and how it would benefit users
8081
- Include examples if applicable
82+
- Apply appropriate labels (see [Label Guidelines](specs/labels.md))
8183

8284
### Contributing Code
8385

@@ -227,120 +229,6 @@ For detailed guidelines and decision tree, see [specs/breaking-cli-rules.md](spe
227229
- Ensure all tests pass (`make test`)
228230
- Test manually with real workflows when possible
229231

230-
## 🏷️ Label Guidelines
231-
232-
### Purpose of Labels
233-
234-
Labels help organize and triage issues for better project management. Use labels to:
235-
- Categorize issue type (bug, enhancement, documentation)
236-
- Indicate priority level
237-
- Mark workflow automation status
238-
- Identify component areas
239-
240-
### Label Categories
241-
242-
#### Type Labels (choose one)
243-
- **bug** - Something isn't working correctly
244-
- **enhancement** - New feature or improvement request
245-
- **documentation** - Documentation improvements or additions
246-
- **question** - Questions about usage or behavior
247-
- **testing** - Test-related issues
248-
249-
#### Priority Labels (optional)
250-
- **priority-high** - Critical issues requiring immediate attention
251-
- **priority-medium** - Important but not urgent
252-
- **priority-low** - Nice-to-have improvements
253-
254-
#### Component Labels (optional, choose multiple if needed)
255-
- **cli** - Command-line interface
256-
- **workflow** - Workflow compilation and processing
257-
- **mcp** - MCP server integration
258-
- **actions** - GitHub Actions integration
259-
- **engine** - AI engine configuration
260-
261-
#### Workflow Automation Labels (managed by automation)
262-
- **ai-generated** - Issue created by AI workflow (Plan Command, etc.)
263-
- **plan** - Planning issue with sub-tasks
264-
- **ai-inspected** - Issue reviewed by AI workflow
265-
- **smoke-copilot** - Smoke test results
266-
267-
#### Status Labels
268-
- **good first issue** - Suitable for new contributors
269-
- **dependencies** - Dependency updates
270-
271-
### Label Usage Best Practices
272-
273-
#### When to Add Labels
274-
275-
**During Issue Creation:**
276-
- Add a type label (bug, enhancement, documentation, etc.)
277-
- Add priority if urgent
278-
- Add relevant component labels
279-
280-
**During Triage:**
281-
- Review and update labels based on discussion
282-
- Add `good first issue` for newcomer-friendly tasks
283-
- Set priority based on impact
284-
285-
**Automation Labels:**
286-
- `ai-generated` and `plan` are automatically added by workflows
287-
- These should not be manually added or removed
288-
- They help track AI-assisted issue creation and planning
289-
290-
#### When to Remove Labels
291-
292-
**For Workflow Labels:**
293-
- `plan` labels may be removed after all sub-tasks are completed
294-
- Keep `ai-generated` for historical tracking
295-
- Don't remove automation labels unless the issue was incorrectly tagged
296-
297-
**For Other Labels:**
298-
- Update priority labels as urgency changes
299-
- Remove incorrect type or component labels during triage
300-
301-
#### Label Lifecycle
302-
303-
**AI-Generated Planning Issues:**
304-
1. Created with `plan` + `ai-generated` labels
305-
2. Add type and component labels for better categorization
306-
3. Monitor sub-task completion
307-
4. Consider removing `plan` label when all sub-tasks are complete
308-
5. Close issue when work is done, keeping labels for historical reference
309-
310-
**Manual Issues:**
311-
1. Created with type label (bug, enhancement, etc.)
312-
2. Add component and priority labels during triage
313-
3. Update labels as issue evolves
314-
4. Close when resolved
315-
316-
### Label Hygiene
317-
318-
**Regular Maintenance:**
319-
- Review unlabeled issues weekly and add appropriate labels
320-
- Update priority labels as project needs change
321-
- Ensure all open issues have at least a type label
322-
323-
**Avoiding Label Overload:**
324-
- Use 2-4 labels per issue for effective filtering
325-
- Don't duplicate information (e.g., title already says "bug")
326-
- Prefer specific component labels over generic ones
327-
328-
### Label Taxonomy
329-
330-
**Current Label Structure:**
331-
```
332-
Type: bug, enhancement, documentation, question, testing
333-
Priority: priority-high, priority-medium, priority-low
334-
Component: cli, workflow, mcp, actions, engine, automation
335-
Workflow: ai-generated, plan, ai-inspected, smoke-copilot
336-
Status: good first issue, dependencies
337-
```
338-
339-
This taxonomy provides clear filtering while avoiding label sprawl. Use GitHub's issue search to combine labels effectively:
340-
- `is:issue is:open label:bug label:priority-high` - Critical bugs
341-
- `is:issue is:open label:enhancement label:good first issue` - Beginner-friendly enhancements
342-
- `is:issue is:open label:plan` - Active planning issues
343-
344232
## 🔄 Pull Request Process
345233

346234
1. **Before submitting:**

specs/labels.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
---
2+
description: Label usage guidelines for GitHub Agentic Workflows issue tracking
3+
---
4+
5+
# Label Guidelines
6+
7+
## Purpose of Labels
8+
9+
Labels help organize and triage issues for better project management. Use labels to:
10+
- Categorize issue type (bug, enhancement, documentation)
11+
- Indicate priority level
12+
- Mark workflow automation status
13+
- Identify component areas
14+
15+
## Label Categories
16+
17+
### Type Labels (choose one)
18+
- **bug** - Something isn't working correctly
19+
- **enhancement** - New feature or improvement request
20+
- **documentation** - Documentation improvements or additions
21+
- **question** - Questions about usage or behavior
22+
- **testing** - Test-related issues
23+
24+
### Priority Labels (optional)
25+
- **priority-high** - Critical issues requiring immediate attention
26+
- **priority-medium** - Important but not urgent
27+
- **priority-low** - Nice-to-have improvements
28+
29+
### Component Labels (optional, choose multiple if needed)
30+
- **cli** - Command-line interface
31+
- **workflow** - Workflow compilation and processing
32+
- **mcp** - MCP server integration
33+
- **actions** - GitHub Actions integration
34+
- **engine** - AI engine configuration
35+
36+
### Workflow Automation Labels (managed by automation)
37+
- **ai-generated** - Issue created by AI workflow (Plan Command, etc.)
38+
- **plan** - Planning issue with sub-tasks
39+
- **ai-inspected** - Issue reviewed by AI workflow
40+
- **smoke-copilot** - Smoke test results
41+
42+
### Status Labels
43+
- **good first issue** - Suitable for new contributors
44+
- **dependencies** - Dependency updates
45+
46+
## Label Usage Best Practices
47+
48+
### When to Add Labels
49+
50+
**During Issue Creation:**
51+
- Add a type label (bug, enhancement, documentation, etc.)
52+
- Add priority if urgent
53+
- Add relevant component labels
54+
55+
**During Triage:**
56+
- Review and update labels based on discussion
57+
- Add `good first issue` for newcomer-friendly tasks
58+
- Set priority based on impact
59+
60+
**Automation Labels:**
61+
- `ai-generated` and `plan` are automatically added by workflows
62+
- These should not be manually added or removed
63+
- They help track AI-assisted issue creation and planning
64+
65+
### When to Remove Labels
66+
67+
**For Workflow Labels:**
68+
- `plan` labels may be removed after all sub-tasks are completed
69+
- Keep `ai-generated` for historical tracking
70+
- Don't remove automation labels unless the issue was incorrectly tagged
71+
72+
**For Other Labels:**
73+
- Update priority labels as urgency changes
74+
- Remove incorrect type or component labels during triage
75+
76+
### Label Lifecycle
77+
78+
**AI-Generated Planning Issues:**
79+
1. Created with `plan` + `ai-generated` labels
80+
2. Add type and component labels for better categorization
81+
3. Monitor sub-task completion
82+
4. Consider removing `plan` label when all sub-tasks are complete
83+
5. Close issue when work is done, keeping labels for historical reference
84+
85+
**Manual Issues:**
86+
1. Created with type label (bug, enhancement, etc.)
87+
2. Add component and priority labels during triage
88+
3. Update labels as issue evolves
89+
4. Close when resolved
90+
91+
## Label Hygiene
92+
93+
**Regular Maintenance:**
94+
- Review unlabeled issues weekly and add appropriate labels
95+
- Update priority labels as project needs change
96+
- Ensure all open issues have at least a type label
97+
98+
**Avoiding Label Overload:**
99+
- Use 2-4 labels per issue for effective filtering
100+
- Don't duplicate information (e.g., title already says "bug")
101+
- Prefer specific component labels over generic ones
102+
103+
## Label Taxonomy
104+
105+
**Current Label Structure:**
106+
```
107+
Type: bug, enhancement, documentation, question, testing
108+
Priority: priority-high, priority-medium, priority-low
109+
Component: cli, workflow, mcp, actions, engine, automation
110+
Workflow: ai-generated, plan, ai-inspected, smoke-copilot
111+
Status: good first issue, dependencies
112+
```
113+
114+
This taxonomy provides clear filtering while avoiding label sprawl. Use GitHub's issue search to combine labels effectively:
115+
- `is:issue is:open label:bug label:priority-high` - Critical bugs
116+
- `is:issue is:open label:enhancement label:good first issue` - Beginner-friendly enhancements
117+
- `is:issue is:open label:plan` - Active planning issues
118+
119+
## Label Distribution Analysis
120+
121+
### Current State
122+
123+
Analysis of the repository (as of December 2024) shows:
124+
- **Total open issues**: 35
125+
- **Issues with `plan`**: 16 (45.7%)
126+
- **Issues with `ai-generated`**: 16 (45.7%)
127+
- **Perfect overlap**: All `plan` issues also have `ai-generated`
128+
- **Unlabeled issues**: 0 (excellent!)
129+
130+
### Key Findings
131+
132+
**The label distribution is healthy and working as intended.** The high percentage of workflow labels reflects active AI-assisted planning, not a labeling problem.
133+
134+
**Why this is not a concern:**
135+
1. Labels reflect actual project activity (active AI planning)
136+
2. Clear distinction between automated and manual issues
137+
3. Effective filtering with label combinations
138+
4. Transparent AI attribution
139+
5. Additional labels (type, component, priority) provide needed categorization
140+
141+
### Recommendations
142+
143+
**Keep current structure** - No changes needed to `plan`/`ai-generated` labels
144+
- Working as designed
145+
- Serves clear purpose for tracking AI-generated planning issues
146+
- Enables effective filtering with combinations
147+
148+
**Do not create `plan-*` subcategories** - Adds complexity without benefit
149+
- Current system handles this with `is:open` / `is:closed` filters
150+
- Would fragment label space
151+
152+
🔄 **Optional** (low priority): Remove `plan` label after sub-tasks complete
153+
- Would make it an "active planning" indicator
154+
- Keep `ai-generated` for historical tracking
155+
- Not required, current approach is also valid
156+
157+
**Monitor** for true label skew
158+
- Watch type/priority labels (not workflow labels)
159+
- Quarterly review recommended
160+
- Warning signs: A type label exceeding 60% of open issues
161+
162+
## Success Metrics
163+
164+
✅ Zero unlabeled open issues
165+
✅ Clear distinction between automated and manual issues
166+
✅ Effective filtering with label combinations
167+
✅ Transparent AI attribution maintained
168+
169+
---
170+
171+
**Last Updated**: December 2024

0 commit comments

Comments
 (0)