Skip to main content

task-routing

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.

Source facts

Repository
Done-0/unitor
Last source activity
April 19, 2026 at 05:02
Detected SKILL.md language
English
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
task-routing
description
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.
user-invocable
false
# 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: 1. **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` 2. **Coordinator analyzes task**: Understand what the task needs based on provider tags 3. **Coordinator decides provider**: Choose the best match based on provider capabilities 4. **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: 1. If selected provider fails → Retry 3 times 2. If still failing → Fallback to Claude 3. Claude executes the task You don't need to manage fallback logic. ## Example Routing Decisions ```javascript // 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: 1. **See provider capabilities**: Check provider tags via status command 2. **Analyze and decide**: Choose the best provider based on task needs 3. **Execute with decision**: Pass --provider parameter or execute directly 4. **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
View on GitHub