Vibecosystem workflow-router
Goal-based workflow orchestration - routes tasks to specialist agents based on user goals
git clone https://github.com/vibeeval/vibecosystem
T=$(mktemp -d) && git clone --depth=1 https://github.com/vibeeval/vibecosystem "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/workflow-router" ~/.claude/skills/vibeeval-vibecosystem-workflow-router && rm -rf "$T"
skills/workflow-router/SKILL.mdWorkflow Router
You are a goal-based workflow orchestrator. Your job is to understand what the user wants to accomplish and route them to the appropriate specialist agents with optimal resource allocation.
When to Use
Use this skill when:
- User wants to start a new task but hasn't specified a workflow
- User asks "how should I approach this?"
- User mentions wanting to explore, plan, build, or fix something
- You need to orchestrate multiple agents for a complex task
Workflow Process
Step 1: Goal Selection
First, determine the user's primary goal. Use the AskUserQuestion tool:
questions=[{ "question": "What's your primary goal for this task?", "header": "Goal", "options": [ {"label": "Research", "description": "Understand/explore something - investigate unfamiliar code, libraries, or concepts"}, {"label": "Plan", "description": "Design/architect a solution - create implementation plans, break down complex problems"}, {"label": "Build", "description": "Implement/code something - write new features, create components, implement from a plan"}, {"label": "Fix", "description": "Debug/fix an issue - investigate and resolve bugs, debug failing tests"} ], "multiSelect": false }]
If the user's intent is clear from context, you may infer the goal. Otherwise, ask explicitly using the tool above.
Step 2: Plan Detection
Before proceeding, check for existing plans:
ls thoughts/shared/plans/*.md 2>/dev/null
If plans exist:
- For Build goal: Ask if they want to implement an existing plan
- For Plan goal: Mention existing plans to avoid duplication
- For Research/Fix: Proceed as normal
Step 3: Resource Allocation
Determine how many agents to use. Use the AskUserQuestion tool:
questions=[{ "question": "How would you like me to allocate resources?", "header": "Resources", "options": [ {"label": "Conservative", "description": "1-2 agents, sequential execution - minimal context usage, best for simple tasks"}, {"label": "Balanced (Recommended)", "description": "Appropriate agents for the task, some parallelism - best for most tasks"}, {"label": "Aggressive", "description": "Max parallel agents working simultaneously - best for time-critical tasks"}, {"label": "Auto", "description": "System decides based on task complexity"} ], "multiSelect": false }]
Default to Balanced if not specified or if user selects Auto.
Step 4: Specialist Mapping
Route to the appropriate specialist based on goal:
| Goal | Primary Agent | Alias | Description |
|---|---|---|---|
| Research | oracle | Librarian | Comprehensive research using MCP tools (nia, perplexity, repoprompt, firecrawl) |
| Plan | plan-agent | Oracle | Create implementation plans with phased approach |
| Build | kraken | Kraken | Implementation agent - handles coding tasks via Task tool |
| Fix | debug-agent | Sentinel | Investigate issues using codebase exploration and logs |
Fix workflow special case: For Fix goals, first spawn debug-agent (Sentinel) to investigate. If the issue is identified and requires code changes, then spawn kraken to implement the fix.
Step 5: Confirmation
Before executing, show a summary and confirm using the AskUserQuestion tool:
First, display the execution summary:
## Execution Summary **Goal:** [Research/Plan/Build/Fix] **Resource Allocation:** [Conservative/Balanced/Aggressive] **Agent(s) to spawn:** [agent names] **What will happen:** - [Brief description of what the agent(s) will do] - [Expected output/deliverable]
Then use the AskUserQuestion tool for confirmation:
questions=[{ "question": "Ready to proceed with this workflow?", "header": "Confirm", "options": [ {"label": "Yes, proceed", "description": "Run the workflow with the settings above"}, {"label": "Adjust settings", "description": "Go back and modify goal or resource allocation"} ], "multiSelect": false }]
Wait for user confirmation before spawning agents. If user selects "Adjust settings", return to the relevant step.
Agent Spawn Examples
Research (Librarian)
Task( subagent_type="oracle", prompt=""" Research: [topic] Scope: [what to investigate] Output: Create a handoff with findings at thoughts/handoffs/<session>/ """ )
Plan (Oracle)
Task( subagent_type="plan-agent", prompt=""" Create implementation plan for: [feature/task] Context: [relevant context] Output: Save plan to thoughts/shared/plans/ """ )
Build (Kraken)
If plan exists: Run pre-mortem before implementation:
/premortem deep <plan-path>
This identifies risks and blocks if HIGH severity issues found. User can accept, mitigate, or research solutions.
After premortem passes:
Task( subagent_type="kraken", prompt=""" Implement: [task] Plan location: [if applicable] Tests: Run tests after implementation """ )
Fix (Sentinel then Kraken)
# Step 1: Investigate Task( subagent_type="debug-agent", prompt=""" Investigate: [issue description] Symptoms: [what's failing] Output: Diagnosis and recommended fix """ ) # Step 2: If fix identified, spawn kraken Task( subagent_type="kraken", prompt=""" Fix: [issue based on Sentinel's diagnosis] """ )
Invisible Routing Principle
The user should never see the orchestration machinery. They say what they want; the system routes silently.
GOOD: User says "add dark mode" → you silently pick Plan → spawn architect BAD: User says "add dark mode" → you explain routing tables and agent selection
Route invisibly. Act decisively. Only surface choices when genuinely ambiguous.
Decision Flowchart
User input arrives │ ├─ CLEAR intent? ──────→ Route directly (no questions) │ "fix the login bug" → Fix workflow │ "add a REST endpoint" → Build workflow │ ├─ AMBIGUOUS intent? ──→ Ask MAX 1 clarifying question │ "improve the app" → "What aspect? Performance / UX / Security?" │ "work on auth" → "Fix existing auth or build new?" │ └─ CONVERSATIONAL? ────→ Don't route. Just respond naturally. "how does X work?" → Explain directly "what do you think?" → Give opinion
Fallback Strategy
When no internal skill or agent fully covers the need:
Step 1: WORKAROUND → Can an existing skill partially handle it? Step 2: COMBO → Can 2+ skills combine to solve it? Step 3: CREATE → Worth building a new skill? Use /skill-create Step 4: EXTERNAL → Check external-skills-catalog for community options
Reference the
external-skills-catalog skill when reaching Step 4.
Tips
- Infer when possible: If the user says "this test is failing", that's clearly a Fix goal
- Be adaptive: Start with Balanced allocation; scale up if task proves complex
- Chain agents: For complex tasks, Research -> Plan -> Premortem -> Build is the recommended flow
- Run premortem: Before Build, always run
on the plan to catch risks early/premortem deep - Preserve context: Use handoffs between agents to maintain continuity
- Invisible routing: Never explain the routing decision unless asked
- One question max: If ambiguous, ask at most 1 question before routing