skills/skill-collections/ai-agent-building/workflow-router/SKILL.md
Goal-based workflow orchestration - routes tasks to specialist agents based on user goals
npx skillsauth add zjunlp/Skills workflow-routerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
Use this skill when:
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.
Before proceeding, check for existing plans:
ls thoughts/shared/plans/*.md 2>/dev/null
If plans exist:
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.
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.
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.
Task(
subagent_type="oracle",
prompt="""
Research: [topic]
Scope: [what to investigate]
Output: Create a handoff with findings at thoughts/handoffs/<session>/
"""
)
Task(
subagent_type="plan-agent",
prompt="""
Create implementation plan for: [feature/task]
Context: [relevant context]
Output: Save plan to thoughts/shared/plans/
"""
)
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
"""
)
# 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]
"""
)
/premortem deep on the plan to catch risks earlydevelopment
Machine learning in Python with scikit-learn. Use when working with supervised learning (classification, regression), unsupervised learning (clustering, dimensionality reduction), model evaluation, hyperparameter tuning, preprocessing, or building ML pipelines. Provides comprehensive reference documentation for algorithms, preprocessing techniques, pipelines, and best practices.
development
Query Reactome REST API for pathway analysis, enrichment, gene-pathway mapping, disease pathways, molecular interactions, expression analysis, for systems biology studies.
tools
Cheminformatics toolkit for fine-grained molecular control. SMILES/SDF parsing, descriptors (MW, LogP, TPSA), fingerprints, substructure search, 2D/3D generation, similarity, reactions. For standard workflows with simpler interface, use datamol (wrapper around RDKit). Use rdkit for advanced control, custom sanitization, specialized algorithms.
development
Python interface to OpenMS for mass spectrometry data analysis. Use for LC-MS/MS proteomics and metabolomics workflows including file handling (mzML, mzXML, mzTab, FASTA, pepXML, protXML, mzIdentML), signal processing, feature detection, peptide identification, and quantitative analysis. Apply when working with mass spectrometry data, analyzing proteomics experiments, or processing metabolomics datasets.