feat(agents): add category and display fields to AgentType model

Add 6 new fields to AgentType for better organization and UI display:
- category: enum for grouping (development, design, quality, etc.)
- icon: Lucide icon identifier for UI
- color: hex color code for visual distinction
- sort_order: display ordering within categories
- typical_tasks: list of tasks the agent excels at
- collaboration_hints: agent slugs that work well together

Backend changes:
- Add AgentTypeCategory enum to enums.py
- Update AgentType model with 6 new columns and indexes
- Update schemas with validators for new fields
- Add category filter and /grouped endpoint to routes
- Update CRUD with get_grouped_by_category method
- Update seed data with categories for all 27 agents
- Add migration 0007

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-06 16:11:22 +01:00
parent 79cb6bfd7b
commit 9339ea30a1
8 changed files with 484 additions and 28 deletions

View File

@@ -29,7 +29,13 @@
"denied": [],
"require_approval": ["gitea:delete_*"]
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "clipboard-check",
"color": "#3B82F6",
"sort_order": 10,
"typical_tasks": ["Requirements discovery", "User story creation", "Backlog prioritization", "Stakeholder alignment"],
"collaboration_hints": ["business-analyst", "solutions-architect", "scrum-master"]
},
{
"name": "Project Manager",
@@ -61,7 +67,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "briefcase",
"color": "#3B82F6",
"sort_order": 20,
"typical_tasks": ["Sprint planning", "Risk management", "Status reporting", "Team coordination"],
"collaboration_hints": ["product-owner", "scrum-master", "technical-lead"]
},
{
"name": "Business Analyst",
@@ -93,7 +105,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "file-text",
"color": "#3B82F6",
"sort_order": 30,
"typical_tasks": ["Requirements analysis", "Process modeling", "Gap analysis", "Functional specifications"],
"collaboration_hints": ["product-owner", "solutions-architect", "qa-engineer"]
},
{
"name": "Solutions Architect",
@@ -129,7 +147,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request"]
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "git-branch",
"color": "#3B82F6",
"sort_order": 40,
"typical_tasks": ["System design", "ADR creation", "Technology selection", "Integration patterns"],
"collaboration_hints": ["backend-engineer", "frontend-engineer", "security-engineer"]
},
{
"name": "Full Stack Engineer",
@@ -166,7 +190,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request", "gitea:delete_*"]
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "code",
"color": "#3B82F6",
"sort_order": 50,
"typical_tasks": ["End-to-end feature development", "API design", "UI implementation", "Database operations"],
"collaboration_hints": ["solutions-architect", "qa-engineer", "devops-engineer"]
},
{
"name": "Backend Engineer",
@@ -208,7 +238,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request", "gitea:delete_*"]
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "server",
"color": "#3B82F6",
"sort_order": 60,
"typical_tasks": ["API development", "Database optimization", "System integration", "Performance tuning"],
"collaboration_hints": ["solutions-architect", "frontend-engineer", "data-engineer"]
},
{
"name": "Frontend Engineer",
@@ -249,7 +285,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request", "gitea:delete_*"]
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "layout",
"color": "#3B82F6",
"sort_order": 70,
"typical_tasks": ["UI component development", "State management", "API integration", "Responsive design"],
"collaboration_hints": ["ui-ux-designer", "backend-engineer", "qa-engineer"]
},
{
"name": "Mobile Engineer",
@@ -286,7 +328,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request", "gitea:delete_*"]
},
"is_active": true
"is_active": true,
"category": "development",
"icon": "smartphone",
"color": "#3B82F6",
"sort_order": 80,
"typical_tasks": ["Native app development", "Cross-platform solutions", "Mobile optimization", "App store deployment"],
"collaboration_hints": ["backend-engineer", "ui-ux-designer", "qa-engineer"]
},
{
"name": "UI/UX Designer",
@@ -321,7 +369,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "design",
"icon": "palette",
"color": "#EC4899",
"sort_order": 10,
"typical_tasks": ["Interface design", "User flow creation", "Design system maintenance", "Prototyping"],
"collaboration_hints": ["frontend-engineer", "ux-researcher", "product-owner"]
},
{
"name": "UX Researcher",
@@ -355,7 +409,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "design",
"icon": "search",
"color": "#EC4899",
"sort_order": 20,
"typical_tasks": ["User research", "Usability testing", "Journey mapping", "Research synthesis"],
"collaboration_hints": ["ui-ux-designer", "product-owner", "business-analyst"]
},
{
"name": "QA Engineer",
@@ -391,7 +451,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "quality",
"icon": "shield",
"color": "#10B981",
"sort_order": 10,
"typical_tasks": ["Test strategy development", "Test automation", "Bug verification", "Quality metrics"],
"collaboration_hints": ["backend-engineer", "frontend-engineer", "devops-engineer"]
},
{
"name": "DevOps Engineer",
@@ -431,7 +497,13 @@
"denied": [],
"require_approval": ["gitea:create_release", "gitea:delete_*"]
},
"is_active": true
"is_active": true,
"category": "operations",
"icon": "settings",
"color": "#F59E0B",
"sort_order": 10,
"typical_tasks": ["CI/CD pipeline design", "Infrastructure automation", "Monitoring setup", "Deployment optimization"],
"collaboration_hints": ["backend-engineer", "security-engineer", "mlops-engineer"]
},
{
"name": "Security Engineer",
@@ -467,7 +539,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "quality",
"icon": "shield-check",
"color": "#10B981",
"sort_order": 20,
"typical_tasks": ["Security architecture", "Vulnerability assessment", "Compliance validation", "Threat modeling"],
"collaboration_hints": ["solutions-architect", "devops-engineer", "backend-engineer"]
},
{
"name": "AI/ML Engineer",
@@ -503,7 +581,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request"]
},
"is_active": true
"is_active": true,
"category": "ai_ml",
"icon": "brain",
"color": "#8B5CF6",
"sort_order": 10,
"typical_tasks": ["Model development", "Algorithm selection", "Feature engineering", "Model optimization"],
"collaboration_hints": ["data-scientist", "mlops-engineer", "backend-engineer"]
},
{
"name": "AI Researcher",
@@ -537,7 +621,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "ai_ml",
"icon": "microscope",
"color": "#8B5CF6",
"sort_order": 20,
"typical_tasks": ["Research paper analysis", "Novel algorithm design", "Experiment design", "Benchmark evaluation"],
"collaboration_hints": ["ai-ml-engineer", "data-scientist", "scientific-computing-expert"]
},
{
"name": "Computer Vision Engineer",
@@ -573,7 +663,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request"]
},
"is_active": true
"is_active": true,
"category": "ai_ml",
"icon": "eye",
"color": "#8B5CF6",
"sort_order": 30,
"typical_tasks": ["Image processing pipelines", "Object detection models", "Video analysis", "Computer vision deployment"],
"collaboration_hints": ["ai-ml-engineer", "mlops-engineer", "backend-engineer"]
},
{
"name": "NLP Engineer",
@@ -609,7 +705,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request"]
},
"is_active": true
"is_active": true,
"category": "ai_ml",
"icon": "message-square",
"color": "#8B5CF6",
"sort_order": 40,
"typical_tasks": ["Text processing pipelines", "Language model fine-tuning", "Named entity recognition", "Sentiment analysis"],
"collaboration_hints": ["ai-ml-engineer", "data-scientist", "backend-engineer"]
},
{
"name": "MLOps Engineer",
@@ -645,7 +747,13 @@
"denied": [],
"require_approval": ["gitea:create_release"]
},
"is_active": true
"is_active": true,
"category": "operations",
"icon": "settings-2",
"color": "#F59E0B",
"sort_order": 20,
"typical_tasks": ["ML pipeline development", "Model deployment", "Feature store management", "Model monitoring"],
"collaboration_hints": ["ai-ml-engineer", "devops-engineer", "data-engineer"]
},
{
"name": "Data Scientist",
@@ -681,7 +789,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "data",
"icon": "chart-bar",
"color": "#06B6D4",
"sort_order": 10,
"typical_tasks": ["Statistical analysis", "Predictive modeling", "Data visualization", "Insight generation"],
"collaboration_hints": ["data-engineer", "ai-ml-engineer", "business-analyst"]
},
{
"name": "Data Engineer",
@@ -717,7 +831,13 @@
"denied": [],
"require_approval": ["gitea:create_pull_request"]
},
"is_active": true
"is_active": true,
"category": "data",
"icon": "database",
"color": "#06B6D4",
"sort_order": 20,
"typical_tasks": ["Data pipeline development", "ETL optimization", "Data warehouse design", "Data quality management"],
"collaboration_hints": ["data-scientist", "backend-engineer", "mlops-engineer"]
},
{
"name": "Technical Lead",
@@ -749,7 +869,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "leadership",
"icon": "users",
"color": "#F97316",
"sort_order": 10,
"typical_tasks": ["Technical direction", "Code review leadership", "Team mentoring", "Architecture decisions"],
"collaboration_hints": ["solutions-architect", "backend-engineer", "frontend-engineer"]
},
{
"name": "Scrum Master",
@@ -781,7 +907,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "leadership",
"icon": "target",
"color": "#F97316",
"sort_order": 20,
"typical_tasks": ["Sprint facilitation", "Impediment removal", "Process improvement", "Team coaching"],
"collaboration_hints": ["project-manager", "product-owner", "technical-lead"]
},
{
"name": "Financial Systems Expert",
@@ -816,7 +948,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "domain_expert",
"icon": "calculator",
"color": "#84CC16",
"sort_order": 10,
"typical_tasks": ["Financial system design", "Regulatory compliance", "Transaction processing", "Audit trail implementation"],
"collaboration_hints": ["solutions-architect", "security-engineer", "backend-engineer"]
},
{
"name": "Healthcare Systems Expert",
@@ -850,7 +988,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "domain_expert",
"icon": "heart-pulse",
"color": "#84CC16",
"sort_order": 20,
"typical_tasks": ["Healthcare system design", "HIPAA compliance", "HL7/FHIR integration", "Clinical workflow optimization"],
"collaboration_hints": ["solutions-architect", "security-engineer", "data-engineer"]
},
{
"name": "Scientific Computing Expert",
@@ -886,7 +1030,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "domain_expert",
"icon": "flask",
"color": "#84CC16",
"sort_order": 30,
"typical_tasks": ["HPC architecture", "Scientific algorithm implementation", "Data pipeline optimization", "Numerical computing"],
"collaboration_hints": ["ai-researcher", "data-scientist", "backend-engineer"]
},
{
"name": "Behavioral Psychology Expert",
@@ -919,7 +1069,13 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "domain_expert",
"icon": "lightbulb",
"color": "#84CC16",
"sort_order": 40,
"typical_tasks": ["Behavioral design", "Engagement optimization", "User motivation analysis", "Ethical AI guidelines"],
"collaboration_hints": ["ux-researcher", "ui-ux-designer", "product-owner"]
},
{
"name": "Technical Writer",
@@ -951,6 +1107,12 @@
"denied": [],
"require_approval": []
},
"is_active": true
"is_active": true,
"category": "domain_expert",
"icon": "book-open",
"color": "#84CC16",
"sort_order": 50,
"typical_tasks": ["API documentation", "User guides", "Technical specifications", "Knowledge base creation"],
"collaboration_hints": ["solutions-architect", "product-owner", "qa-engineer"]
}
]