Task Routing Skill
Internal guidance for understanding how Unitor routes tasks.
Routing vs Collaboration Decision
Before routing, check if task needs collaboration:
Use /unitor:collab instead of routing when:
- Task spans multiple domains (frontend + backend, API + database)
- Task needs multiple perspectives (review, critique, discussion)
- User uses collaboration keywords: negotiate, discuss, multiple angles, review from multiple perspectives
- Task benefits from specialist discussion
Use /unitor:route for:
- Single-domain focused tasks (frontend-only, backend-only, database-only)
- Clear technical scope without need for multiple viewpoints
How Routing Works
Coordinator-Driven Decision System
The Unitor routing uses a coordinator-driven approach:
Coordinator sees provider capabilities: Each provider has tags defining their expertise
- Frontend:
frontend-ui, react, vue, css, html
- Backend:
backend-api, database, python, go, nodejs
- Architecture:
architecture, security, complex-reasoning
Coordinator analyzes task: Understand what the task needs based on provider tags
Coordinator decides provider: Choose the best match based on provider capabilities
Execute with decision: Pass explicit provider to runtime or execute directly
Provider Configuration
Each provider has:
- Tags: Expertise areas with weights (0.0-1.0)
- Priority: Tiebreaker value (1-10)
- Model: Specific model to use
- Enabled: Whether provider is active
Configuration is dynamic and user-customizable.
When to Route vs Execute Directly
Route to Runtime
When task is:
- Focused and delegatable
- Has clear domain indicators (frontend, backend, database)
- Not security-critical
- Not requiring deep architectural reasoning
Execute Directly (Don't Route)
When task is:
- Architecture or system design
- Security-critical (auth, encryption, tokens)
- Complex debugging requiring deep reasoning
- Multi-system refactoring
Fallback Strategy
The runtime handles fallback automatically:
- If selected provider fails → Retry 3 times
- If still failing → Fallback to Claude
- Claude executes the task
You don't need to manage fallback logic.
Example Routing Decisions
// Example 1: Specialized task
"Fix the styling issue"
→ Coordinator sees Provider B has relevant expertise
→ Coordinator decides: route to Provider B
→ Executes: route --provider=provider-b "Fix the styling issue"
// Example 2: Different specialty
"Add the endpoint"
→ Coordinator sees Provider C has relevant expertise
→ Coordinator decides: route to Provider C
→ Executes: route --provider=provider-c "Add the endpoint"
// Example 3: Complex reasoning task
"Refactor the system architecture"
→ Coordinator sees this requires complex reasoning
→ Coordinator decides: execute directly
→ Claude handles the task
Understanding Provider Selection
The runtime selects providers based on:
- Current configuration: User can add/remove/configure any provider
- Tag weights: Each provider's expertise areas
- Priority: Tiebreaker when scores are close
- Enabled status: Disabled providers are skipped
Important: Provider selection is dynamic and adapts to user configuration. Don't assume fixed assignments.
Your Role
As Claude, you should:
- See provider capabilities: Check provider tags via status command
- Analyze and decide: Choose the best provider based on task needs
- Execute with decision: Pass --provider parameter or execute directly
- Present results: When other providers execute successfully
You are responsible for:
- Understanding provider capabilities (tags)
- Analyzing task requirements
- Making routing decisions
- Passing decisions to runtime
The runtime handles:
- Provider execution
- Retries and timeouts
- Fallback to Claude if provider fails
1---2name: task-routing3description: Internal guidance for understanding how Unitor routes tasks. Covers coordinator-driven routing decisions, provider selection logic, and when to route vs execute directly vs use collaboration.4---56# Task Routing Skill78Internal guidance for understanding how Unitor routes tasks.910## Routing vs Collaboration Decision1112**Before routing, check if task needs collaboration:**1314Use `/unitor:collab` instead of routing when:15- Task spans multiple domains (frontend + backend, API + database)16- Task needs multiple perspectives (review, critique, discussion)17- User uses collaboration keywords: negotiate, discuss, multiple angles, review from multiple perspectives18- Task benefits from specialist discussion1920Use `/unitor:route` for:21- Single-domain focused tasks (frontend-only, backend-only, database-only)22- Clear technical scope without need for multiple viewpoints2324## How Routing Works2526### Coordinator-Driven Decision System2728The Unitor routing uses a coordinator-driven approach:29301. **Coordinator sees provider capabilities**: Each provider has tags defining their expertise31 - Frontend: `frontend-ui`, `react`, `vue`, `css`, `html`32 - Backend: `backend-api`, `database`, `python`, `go`, `nodejs`33 - Architecture: `architecture`, `security`, `complex-reasoning`34352. **Coordinator analyzes task**: Understand what the task needs based on provider tags36373. **Coordinator decides provider**: Choose the best match based on provider capabilities38394. **Execute with decision**: Pass explicit provider to runtime or execute directly4041### Provider Configuration4243Each provider has:44- **Tags**: Expertise areas with weights (0.0-1.0)45- **Priority**: Tiebreaker value (1-10)46- **Model**: Specific model to use47- **Enabled**: Whether provider is active4849Configuration is dynamic and user-customizable.5051## When to Route vs Execute Directly5253### Route to Runtime5455When task is:56- Focused and delegatable57- Has clear domain indicators (frontend, backend, database)58- Not security-critical59- Not requiring deep architectural reasoning6061### Execute Directly (Don't Route)6263When task is:64- Architecture or system design65- Security-critical (auth, encryption, tokens)66- Complex debugging requiring deep reasoning67- Multi-system refactoring6869## Fallback Strategy7071The runtime handles fallback automatically:721. If selected provider fails → Retry 3 times732. If still failing → Fallback to Claude743. Claude executes the task7576You don't need to manage fallback logic.7778## Example Routing Decisions7980```javascript81// Example 1: Specialized task82"Fix the styling issue"83→ Coordinator sees Provider B has relevant expertise84→ Coordinator decides: route to Provider B85→ Executes: route --provider=provider-b "Fix the styling issue"8687// Example 2: Different specialty88"Add the endpoint"89→ Coordinator sees Provider C has relevant expertise90→ Coordinator decides: route to Provider C91→ Executes: route --provider=provider-c "Add the endpoint"9293// Example 3: Complex reasoning task94"Refactor the system architecture"95→ Coordinator sees this requires complex reasoning96→ Coordinator decides: execute directly97→ Claude handles the task98```99100## Understanding Provider Selection101102The runtime selects providers based on:103- **Current configuration**: User can add/remove/configure any provider104- **Tag weights**: Each provider's expertise areas105- **Priority**: Tiebreaker when scores are close106- **Enabled status**: Disabled providers are skipped107108**Important**: Provider selection is dynamic and adapts to user configuration. Don't assume fixed assignments.109110## Your Role111112As Claude, you should:1131. **See provider capabilities**: Check provider tags via status command1142. **Analyze and decide**: Choose the best provider based on task needs1153. **Execute with decision**: Pass --provider parameter or execute directly1164. **Present results**: When other providers execute successfully117118You are responsible for:119- Understanding provider capabilities (tags)120- Analyzing task requirements121- Making routing decisions122- Passing decisions to runtime123124The runtime handles:125- Provider execution126- Retries and timeouts127- Fallback to Claude if provider fails