- Remove Wiki.js MCP server entirely - Add wiki, milestone, and dependency tools to Gitea MCP server - Add parallel execution support based on dependency graph - Add mandatory pre-planning validations (org check, labels, docs/changes) - Add CLI blocking rules to all agents (API-only) - Add standardized task naming: [Sprint XX] <type>: <description> - Add branch naming convention: feat/, fix/, debug/ prefixes - Add MR body template without subtasks - Add auto-close issues via commit keywords - Create claude-config-maintainer plugin for CLAUDE.md optimization - Update all sprint commands with new tools and workflows - Update documentation to remove Wiki.js references New MCP tools: - Wiki: list_wiki_pages, get_wiki_page, create_wiki_page, create_lesson, search_lessons - Milestones: list_milestones, get_milestone, create_milestone, update_milestone - Dependencies: list_issue_dependencies, create_issue_dependency, get_execution_order - Validation: validate_repo_org, get_branch_protection, create_label Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.2 KiB
description
| description |
|---|
| Synchronize label taxonomy from Gitea and update suggestion logic |
Sync Label Taxonomy from Gitea
This command synchronizes the label taxonomy from Gitea (organization + repository labels) and updates the local reference file used by the label suggestion logic.
Why Label Sync Matters
The label taxonomy is dynamic - new labels may be added to Gitea over time:
- Organization-level labels (shared across all repos)
- Repository-specific labels (unique to this project)
Dynamic approach: Never hardcode labels. Always fetch from Gitea and adapt suggestions accordingly.
What This Command Does
- Validate Repository - Verify repo belongs to an organization using
validate_repo_org - Fetch Current Labels - Uses
get_labelsMCP tool to fetch all labels (org + repo) - Compare with Local Reference - Checks against
skills/label-taxonomy/labels-reference.md - Detect Changes - Identifies new, removed, or modified labels
- Explain Changes - Shows what changed and why it matters
- Create Missing Labels - Uses
create_labelfor required labels that don't exist - Update Reference - Updates the local labels-reference.md file
- Confirm Update - Asks for user confirmation before updating
MCP Tools Used
Gitea Tools:
get_labels- Fetch all labels (organization + repository)create_label- Create missing required labelsvalidate_repo_org- Verify repository belongs to organization
Required Label Categories
At minimum, these label categories must exist:
- Type/*: Bug, Feature, Refactor, Documentation, Test, Chore
- Priority/*: Low, Medium, High, Critical
- Complexity/*: Simple, Medium, Complex
- Efforts/*: XS, S, M, L, XL
If any required labels are missing, the command will offer to create them.
Expected Output
Label Taxonomy Sync
===================
Validating repository organization...
Repository: bandit/your-repo-name
Organization: bandit
Fetching labels from Gitea...
Current Label Taxonomy:
- Organization Labels: 28
- Repository Labels: 16
- Total: 44 labels
Comparing with local reference...
Changes Detected:
NEW: Type/Performance (org-level)
Description: Performance optimization tasks
Color: #FF6B6B
Suggestion: Add to suggestion logic for performance-related work
NEW: Tech/Redis (repo-level)
Description: Redis-related technology
Color: #DC143C
Suggestion: Add to suggestion logic for caching and data store work
MODIFIED: Priority/Critical
Change: Color updated from #D73A4A to #FF0000
Impact: Visual only, no logic change needed
REMOVED: Component/Legacy
Reason: Component deprecated and removed from codebase
Impact: Remove from suggestion logic
Required Labels Check:
Type/*: 6/6 present
Priority/*: 4/4 present
Complexity/*: 3/3 present
Efforts/*: 5/5 present
Summary:
- 2 new labels added
- 1 label modified (color only)
- 1 label removed
- Total labels: 44 -> 45
- All required labels present
Update local reference file?
[Y/n]
Label Taxonomy Structure
Labels are organized by namespace:
Organization Labels (28):
Agent/*(2): Agent/Human, Agent/ClaudeComplexity/*(3): Simple, Medium, ComplexEfforts/*(5): XS, S, M, L, XLPriority/*(4): Low, Medium, High, CriticalRisk/*(3): Low, Medium, HighSource/*(4): Development, Staging, Production, CustomerType/*(6): Bug, Feature, Refactor, Documentation, Test, Chore
Repository Labels (16):
Component/*(9): Backend, Frontend, API, Database, Auth, Deploy, Testing, Docs, InfraTech/*(7): Python, JavaScript, Docker, PostgreSQL, Redis, Vue, FastAPI
Local Reference File
The command updates skills/label-taxonomy/labels-reference.md with:
# Label Taxonomy Reference
Last synced: 2025-01-18 14:30 UTC
Source: Gitea (bandit/your-repo-name)
## Organization Labels (28)
### Agent (2)
- Agent/Human - Work performed by human developers
- Agent/Claude - Work performed by Claude Code
### Type (6)
- Type/Bug - Bug fixes and error corrections
- Type/Feature - New features and enhancements
- Type/Refactor - Code restructuring and architectural changes
- Type/Documentation - Documentation updates
- Type/Test - Testing-related work
- Type/Chore - Maintenance and tooling tasks
...
## Repository Labels (16)
### Component (9)
- Component/Backend - Backend service code
- Component/Frontend - User interface code
- Component/API - API endpoints and contracts
...
## Suggestion Logic
When suggesting labels, consider:
**Type Detection:**
- Keywords "bug", "fix", "error" -> Type/Bug
- Keywords "feature", "add", "implement" -> Type/Feature
- Keywords "refactor", "extract", "restructure" -> Type/Refactor
...
When to Run
Run /labels-sync when:
- Setting up the plugin for the first time
- You notice missing labels in suggestions
- New labels are added to Gitea (announced by team)
- Quarterly maintenance (check for changes)
- After major taxonomy updates
Integration with Other Commands
The updated taxonomy is used by:
/sprint-plan- Planner agent usessuggest_labelswith current taxonomy- All commands that create or update issues
Example Usage
User: /labels-sync
Validating repository organization...
Repository: bandit/your-repo-name
Fetching labels from Gitea...
Current Label Taxonomy:
- Organization Labels: 28
- Repository Labels: 16
- Total: 44 labels
Comparing with local reference...
No changes detected. Label taxonomy is up to date.
Last synced: 2025-01-18 14:30 UTC
User: /labels-sync
Fetching labels from Gitea...
Changes Detected:
NEW: Type/Performance
NEW: Tech/Redis
Required Labels Check:
MISSING: Complexity/Simple
MISSING: Complexity/Medium
MISSING: Complexity/Complex
Would you like me to create the missing required labels? [Y/n] y
Creating missing labels...
Created: Complexity/Simple
Created: Complexity/Medium
Created: Complexity/Complex
Update local reference file? [Y/n] y
Label taxonomy updated successfully!
Suggestion logic updated with new labels
New labels available for use:
- Type/Performance
- Tech/Redis
- Complexity/Simple
- Complexity/Medium
- Complexity/Complex
Troubleshooting
Error: Cannot fetch labels from Gitea
- Check your Gitea configuration in
~/.config/claude/gitea.env - Verify your API token has
read:organdrepopermissions - Ensure you're connected to the network
Error: Repository is not under an organization
- This plugin requires repositories to belong to an organization
- Transfer the repository to an organization or create one
Error: Permission denied to update reference file
- Check file permissions on
skills/label-taxonomy/labels-reference.md - Ensure you have write access to the plugin directory
No changes detected but labels seem wrong
- The reference file may be manually edited - review it
- Try forcing a re-sync by deleting the reference file first
- Check if you're comparing against the correct repository
Best Practices
- Sync at sprint start - Ensure labels are current before planning
- Review changes - Always review what changed before confirming
- Create missing required labels - Don't skip this step
- Update planning - After sync, consider if new labels affect current sprint
- Communicate changes - Let team know when new labels are available