- Update git remote to new Tailscale hostname - Replace old organization name (hhl-infra) with bandit - Replace old repository name (claude-code-hhl-toolkit) with support-claude-mktplace - Update all documentation references to use generic gitea.example.com - Rebrand from HyperHive Labs to Bandit Labs across all files - Rename workspace file to match new repository name 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.3 KiB
Quick Guide: Creating Label Taxonomy in Gitea
Estimated Time: 15-20 minutes Required: Admin access to bandit organization in Gitea
Why This Is Needed
The Projman plugin depends on a 44-label taxonomy system for:
- Issue categorization (Type, Priority, Component, Tech)
- Intelligent label suggestions
- Sprint planning and filtering
- Progress tracking by category
Currently: Repository has 0 labels Required: 44 labels (28 organization + 16 repository)
Step 1: Create Organization Labels (28 labels)
Navigate to: https://gitea.example.com/org/bandit/settings/labels
These labels will be available to ALL repositories in bandit organization.
Agent (2 labels)
| Name | Color | Description |
|---|---|---|
| Agent/Human | #0052CC |
Work performed by human developers |
| Agent/Claude | #6554C0 |
Work performed by Claude Code or AI assistants |
Complexity (3 labels)
| Name | Color | Description |
|---|---|---|
| Complexity/Simple | #C2E0C6 |
Straightforward tasks requiring minimal analysis |
| Complexity/Medium | #FFF4CE |
Moderate complexity with some architectural decisions |
| Complexity/Complex | #FFBDAD |
High complexity requiring significant planning |
Efforts (5 labels)
| Name | Color | Description |
|---|---|---|
| Efforts/XS | #C2E0C6 |
Extra small effort (< 2 hours) |
| Efforts/S | #D4F1D4 |
Small effort (2-4 hours) |
| Efforts/M | #FFF4CE |
Medium effort (4-8 hours / 1 day) |
| Efforts/L | #FFE0B2 |
Large effort (1-3 days) |
| Efforts/XL | #FFBDAD |
Extra large effort (> 3 days) |
Priority (4 labels)
| Name | Color | Description |
|---|---|---|
| Priority/Low | #D4E157 |
Nice to have, can wait |
| Priority/Medium | #FFEB3B |
Should be done this sprint |
| Priority/High | #FF9800 |
Important, do soon |
| Priority/Critical | #F44336 |
Urgent, blocking other work |
Risk (3 labels)
| Name | Color | Description |
|---|---|---|
| Risk/Low | #C2E0C6 |
Low risk of issues or impact |
| Risk/Medium | #FFF4CE |
Moderate risk, proceed with caution |
| Risk/High | #FFBDAD |
High risk, needs careful planning and testing |
Source (4 labels)
| Name | Color | Description |
|---|---|---|
| Source/Development | #7CB342 |
Issue discovered during development |
| Source/Staging | #FFB300 |
Issue found in staging environment |
| Source/Production | #E53935 |
Issue found in production |
| Source/Customer | #AB47BC |
Issue reported by customer |
Type (6 labels)
| Name | Color | Description |
|---|---|---|
| Type/Bug | #D73A4A |
Bug fixes and error corrections |
| Type/Feature | #0075CA |
New features and enhancements |
| Type/Refactor | #FBCA04 |
Code restructuring and architectural changes |
| Type/Documentation | #0E8A16 |
Documentation updates and improvements |
| Type/Test | #1D76DB |
Testing-related work (unit, integration, e2e) |
| Type/Chore | #FEF2C0 |
Maintenance, tooling, dependencies, build tasks |
Total Organization Labels: 28
Step 2: Create Repository Labels (16 labels)
Navigate to: https://gitea.example.com/bandit/support-claude-mktplace/labels
These labels are specific to the support-claude-mktplace repository.
Component (9 labels)
| Name | Color | Description |
|---|---|---|
| Component/Backend | #5319E7 |
Backend service code and business logic |
| Component/Frontend | #1D76DB |
User interface and client-side code |
| Component/API | #0366D6 |
API endpoints, contracts, and integration |
| Component/Database | #006B75 |
Database schemas, migrations, queries |
| Component/Auth | #E99695 |
Authentication and authorization |
| Component/Deploy | #BFD4F2 |
Deployment, infrastructure, DevOps |
| Component/Testing | #F9D0C4 |
Test infrastructure and frameworks |
| Component/Docs | #C5DEF5 |
Documentation and guides |
| Component/Infra | #D4C5F9 |
Infrastructure and system configuration |
Tech (7 labels)
| Name | Color | Description |
|---|---|---|
| Tech/Python | #3572A5 |
Python language and libraries |
| Tech/JavaScript | #F1E05A |
JavaScript/Node.js code |
| Tech/Docker | #384D54 |
Docker containers and compose |
| Tech/PostgreSQL | #336791 |
PostgreSQL database |
| Tech/Redis | #DC382D |
Redis cache and pub/sub |
| Tech/Vue | #42B883 |
Vue.js frontend framework |
| Tech/FastAPI | #009688 |
FastAPI backend framework |
Total Repository Labels: 16
Step 3: Verify Label Creation
After creating all labels, verify:
# Count organization labels
curl -s "https://gitea.example.com/api/v1/orgs/bandit/labels" \
-H "Authorization: token YOUR_TOKEN" | python3 -c "import sys, json; print(len(json.load(sys.stdin)), 'org labels')"
# Count repository labels
curl -s "https://gitea.example.com/api/v1/repos/bandit/support-claude-mktplace/labels" \
-H "Authorization: token YOUR_TOKEN" | python3 -c "import sys, json; print(len(json.load(sys.stdin)), 'repo labels')"
Expected Output:
28 org labels
44 repo labels # (28 org + 16 repo)
Step 4: Sync Labels with Plugin
After creating all labels in Gitea:
cd /home/lmiranda/Repositories/hhl/hhl-claude-agents
/labels-sync
Expected Output:
Fetching labels from Gitea...
Current Label Taxonomy:
- Organization Labels: 28
- Repository Labels: 16
- Total: 44 labels
✅ Label taxonomy synchronized successfully!
The plugin will update projman/skills/label-taxonomy/labels-reference.md with the current taxonomy.
Alternative: Batch Creation Script
If you prefer to create labels programmatically:
#!/usr/bin/env python3
"""
Batch create Gitea labels via API
"""
import requests
GITEA_URL = "https://gitea.example.com"
TOKEN = "ae72c63cd7de02e40bd16f66d1e98059c187759b"
ORG = "bandit"
REPO = "support-claude-mktplace"
headers = {"Authorization": f"token {TOKEN}"}
# Organization labels
org_labels = [
{"name": "Agent/Human", "color": "#0052CC", "description": "Work performed by human developers"},
{"name": "Agent/Claude", "color": "#6554C0", "description": "Work performed by Claude Code"},
# ... (add all 28 org labels)
]
# Repository labels
repo_labels = [
{"name": "Component/Backend", "color": "#5319E7", "description": "Backend service code"},
# ... (add all 16 repo labels)
]
# Create organization labels
for label in org_labels:
response = requests.post(
f"{GITEA_URL}/api/v1/orgs/{ORG}/labels",
headers=headers,
json=label
)
print(f"Created org label: {label['name']} - {response.status_code}")
# Create repository labels
for label in repo_labels:
response = requests.post(
f"{GITEA_URL}/api/v1/repos/{ORG}/{REPO}/labels",
headers=headers,
json=label
)
print(f"Created repo label: {label['name']} - {response.status_code}")
print("\n✅ Label creation complete!")
After Label Creation
Once labels are created, you can:
- ✅ Run
/labels-syncto update plugin - ✅ Run
/sprint-planto create labeled issues - ✅ Test label suggestions
- ✅ Use label-based filtering in
/sprint-status - ✅ Execute full workflow test
The plugin will now have full functionality!
Total Time: 15-20 minutes (manual) or 2-3 minutes (script) Benefit: Full plugin functionality unlocked One-Time Task: Labels persist and are reusable across all sprints