Task Orchestration Skill: Dependency-aware parallel task execution with automatic specialist routing, progress monitoring, and cascading completion. Replaces Task Management Skill with enhanced capabilities.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
skill: task-orchestration description: Dependency-aware parallel task execution with automatic specialist routing, progress monitoring, and cascading completion. Replaces Task Management Skill with enhanced capabilities.
Task Orchestration Skill
Intelligent task execution management with parallel processing, dependency-aware batching, and automatic specialist coordination.
When to Use This Skill
Activate for:
- "Execute tasks for feature X"
- "What tasks are ready to start?"
- "Launch next batch of tasks"
- "Complete task Y"
- "Monitor parallel execution"
- "Show task progress"
This skill handles:
- Dependency-aware task batching
- Parallel specialist launching
- Progress monitoring
- Task completion with summaries
- Dependency cascade triggering
- Specialist routing
Tools Available
query_container- Read tasks, features, dependenciesquery_sections- Read sections with tag filtering (Token optimized)manage_container- Update task status, create tasksquery_workflow_state- Check workflow state, cascade events, dependencies (NEW)query_dependencies- Analyze task dependenciesrecommend_agent- Route tasks to specialistsmanage_sections- Update task sections
Section Tag Taxonomy
When reading task/feature sections, use tag filtering for token efficiency:
Actionable Tags (Implementation Specialist reads from tasks):
- workflow-instruction - Step-by-step implementation processes
- checklist - Validation checklists, completion criteria
- commands - Bash commands to execute
- guidance - Implementation patterns and best practices
- process - Workflow processes to follow
- acceptance-criteria - Definition of done, success conditions
Contextual Tags (Planning Specialist reads from features):
- context - Business context, user needs, dependencies
- requirements - Functional requirements, must-haves, constraints
Reference Tags (Read as needed):
- reference - Examples, patterns, reference material
- technical-details - Deep technical specifications
Example - Efficient Task Section Reading:
// Implementation Specialist reads only actionable content from task
sections = query_sections(
entityType="TASK",
entityId=taskId,
tags="workflow-instruction,checklist,commands,guidance,process,acceptance-criteria",
includeContent=true
)
// Token cost: ~800-1,500 tokens (vs 3,000-5,000 with all sections)
// Savings: 45-60% token reduction
// Skip contextual sections (already in task description):
// - context (business context)
// - requirements (captured in description field)
Note: Implementation Specialist subagent automatically uses tag filtering. This reference is for direct tool usage.
Dependency Cascade Detection (Automatic)
Recommended Approach: Use query_workflow_state to automatically check for dependency cascades and unblocked tasks.
// After task completion, check for cascades
workflowState = query_workflow_state(
containerType="task",
id=taskId
)
// Check for detected cascade events (feature progression)
if (workflowState.detectedEvents.length > 0) {
"✅ Task completion triggered cascade events:
${workflowState.detectedEvents.map(e => e.reason).join(', ')}
Feature status may need to progress. Use Status Progression Skill."
}
// Check for unblocked dependencies (other tasks can now start)
dependencies = query_dependencies(
taskId=taskId,
direction="outgoing",
includeTaskInfo=true
)
// Filter for now-unblocked tasks
for (dep of dependencies) {
if (dep.toTask.status == "blocked" || dep.toTask.status == "pending") {
"✅ Task ${dep.toTask.title} is now unblocked and ready to start!"
}
}
Benefits:
- Automatic cascade detection based on config
- Dependency-aware unblocking
- Works with custom user workflows
- Handles complex prerequisite checking
Status Progression Trigger Points (Manual Detection)
Legacy Pattern: Manual detection is still available but query_workflow_state is preferred.
CRITICAL: Never directly change task status. Always use Status Progression Skill for ALL status changes.
These are universal events that trigger status progression checks, regardless of the user's configured status flow:
| Event | When to Check | Detection Pattern | Condition | Action |
|---|---|---|---|---|
| work_started | Specialist begins task implementation | Before specialist starts work | Task is in backlog/pending | Use Status Progression Skill to move to in-progress |
| implementation_complete | Code + tests written, sections updated | After specialist finishes coding | Summary populated (300-500 chars), sections updated | Use Status Progression Skill to move to next validation status |
| tests_running | Test execution begins | After triggering tests | Tests initiated | Use Status Progression Skill if needed |
| tests_passed | All tests successful | After test execution | testResults.allPassed == true | Use Status Progression Skill to move toward completion |
| tests_failed | Any tests failed | After test execution | testResults.anyFailed == true | Use Status Progression Skill (may move backward to in-progress) |
| review_submitted | Code submitted for review | After implementation complete | Code ready for review | Use Status Progression Skill to move to in-review |
| review_approved | Code review passed | After reviewer approval | Review completed with approval | Use Status Progression Skill to move forward (testing or completion) |
| changes_requested | Review rejected, needs rework | After reviewer rejection | Changes needed | Use Status Progression Skill (move backward to in-progress) |
| blocker_detected | Cannot proceed with work | When specialist encounters issue | External dependency or technical blocker | Use Status Progression Skill to move to blocked status |
| task_cancelled | Work no longer needed | User decides to cancel | Scope change | Use Status Progression Skill to move to cancelled |
Detection Example: Implementation Complete
// After specialist finishes code + tests
task = query_container(operation="get", containerType="task", id=taskId)
// Check implementation is complete
sectionsUpdated = true // Specialist updated Implementation Details section
filesChanged = true // Specialist created Files Changed section
summaryLength = task.summary?.length || 0
if (sectionsUpdated && filesChanged && summaryLength >= 300 && summaryLength <= 500) {
// EVENT DETECTED: implementation_complete
// Delegate to Status Progression Skill
"Use Status Progression Skill to progress task status.
Context: Implementation complete, summary populated (${summaryLength} chars)."
// Status Progression Skill will:
// 1. Call get_next_status(taskId, event="implementation_complete")
// 2. get_next_status reads user's config.yaml
// 3. Determines active flow based on task tags
// 4. Recommends next status based on that flow
// 5. Validates prerequisites
// 6. Returns recommendation
// Possible outcomes based on user's config:
// - default_flow: in-progress → testing
// - with_review: in-progress → in-review (code review first)
// - documentation_flow: in-progress → in-review (no testing for docs)
// - hotfix_flow: in-progress → completed (skip validation)
// - bug_fix_flow: in-progress → testing
}
Detection Example: Task Completion (Cascade Check)
// After marking task complete, check for dependency cascade
completedTask = query_container(operation="get", containerType="task", id=taskId)
// Check if this unblocks other tasks
outgoingDeps = query_dependencies(
taskId=taskId,
direction="outgoing",
includeTaskInfo=true
)
if (outgoingDeps.dependencies.length > 0) {
// This task blocks other tasks
// Check each dependent task to see if now unblocked
for (dep of outgoingDeps.dependencies) {
dependentTask = dep.toTask
// Check all incoming dependencies for the dependent task
incomingDeps = query_dependencies(
taskId=dependentTask.id,
direction="incoming",
includeTaskInfo=true
)
// Count incomplete blockers
incompleteBlockers = incomingDeps.dependencies.filter(d =>
d.fromTask.status != "completed" && d.fromTask.status != "cancelled"
).length
if (incompleteBlockers == 0) {
// This task is now unblocked!
notify(`Task "${dependentTask.title}" is now unblocked and ready to start.`)
// Feature Orchestration Skill can now launch specialist for this task
}
}
}
// Also check if feature can progress (see Feature Orchestration Skill)
if (completedTask.featureId) {
// Trigger Feature Orchestration Skill to check feature progress
// (see Feature Orchestration Skill event: all_tasks_complete)
}
Specialist Architecture (v2.0)
Implementation Specialist (Haiku) - Standard implementation (70-80% of tasks)
- Fast execution, cost-effective
- Loads domain Skills on-demand: backend-implementation, frontend-implementation, database-implementation, testing-implementation, documentation-implementation
- Escalates to Senior Engineer when blocked
Senior Engineer (Sonnet) - Complex problem solving (10-20%)
- Debugging, bug investigation, unblocking
- Performance optimization, tactical architecture
Feature Architect (Opus) - Feature design from ambiguous requirements Planning Specialist (Sonnet) - Task decomposition with execution graphs
Pre-Execution Checklist
CRITICAL: Before launching specialists, ALWAYS check parent feature status.
When starting task execution (Phase 3 of feature development):
-
Check parent feature status:
feature = query_container(operation="get", containerType="feature", id=featureId) if (feature.status == "planning" || feature.status == "draft") { // Feature status doesn't reflect execution phase // Delegate to Feature Orchestration Skill or Status Progression Skill "⚠️ Feature is still in ${feature.status}. Use Status Progression Skill to progress feature status before launching specialists. Cascade Event: tasks_ready_to_execute The skill will use get_next_status to determine the appropriate next status based on workflow config. Why: Feature status must reflect current development phase (not hardcoded - config determines next status)." // STOP - Don't proceed with specialist launches until feature status updated return } -
Identify ready tasks (no blocking dependencies)
-
Create execution batches (parallel groups)
-
Then proceed with specialist launches
Why this matters:
- Feature status should accurately reflect the current development phase
- Cascade event system determines appropriate next status (config-driven)
- Missing this step causes feature to jump directly to completion, skipping execution phase statuses
- Different workflows may use different status names (default: "in-development", but config controls this)
When to check:
- At the start of Phase 3 (task execution)
- Before launching the first batch of specialists
- When resuming paused work
Core Workflows
1. Dependency-Aware Batching
High-level steps:
- Get all pending tasks:
query_container(operation="search", containerType="task", featureId="...", status="pending") - For each task, check dependencies:
query_dependencies(taskId="...", direction="incoming", includeTaskInfo=true) - Group into batches:
- Batch 1: Tasks with NO incomplete blocking dependencies (parallel)
- Batch 2: Tasks blocked only by Batch 1 (sequential)
- Batch 3+: Continue until all tasks assigned
- Detect circular dependencies (task blocked by another task that's also blocked)
See examples.md for detailed batching examples and output format.
2. Parallel Specialist Launch
High-level steps:
- For each task in parallel batch:
recommend_agent(taskId="...") - Prepare launch instructions for orchestrator
- Orchestrator launches specialists in parallel (using Task tool)
Key: Skill identifies WHICH specialists to launch; orchestrator does the actual launching.
See examples.md for orchestrator instruction format.
3. Progress Monitoring
High-level steps:
- Keep list of task IDs currently being worked on
- Check each task status:
query_container(operation="overview", containerType="task", id="...") - Analyze status distribution (completed, in-progress, blocked, pending)
- Determine if batch complete
- Report progress: "Batch X: Y/Z tasks complete (N%)"
4. Dependency Cascade
High-level steps:
- After task completes, check if it unblocks others:
query_dependencies(taskId="...", direction="outgoing", includeTaskInfo=true) - For each dependent task, check if ALL blockers complete
- Report newly available tasks
- Recommend launching next batch
See examples.md for cascade detection pattern.
5. Specialist Routing
High-level steps:
- Get recommendation:
recommend_agent(taskId="...") - Use recommendation if provided
- If no recommendation, use fallback (Implementation Specialist or ask user)
Routing patterns:
- [backend, frontend, database, testing, documentation] → Implementation Specialist (Haiku)
- [bug, error, blocker, complex] → Senior Engineer (Sonnet)
- [feature-creation] → Feature Architect (Opus)
- [planning, task-breakdown] → Planning Specialist (Sonnet)
6. Task Completion
High-level steps:
- Create task summary section (300-500 chars)
- Create files changed section
- Use Status Progression Skill to mark complete (validates prerequisites)
- Check for cascade (trigger next batch if available)
Note: Specialists typically mark their own tasks complete. This is for orchestrator-driven completion.
Integration with Other Skills
Works alongside:
- Feature Orchestration Skill - Receives task execution requests
- Dependency Orchestration Skill - For complex dependency analysis
- Status Progression Skill - For ALL status changes
Launches subagents:
- All specialist subagents based on recommend_agent results
Token Efficiency
- Use
overviewoperations for batch status checks (95% token reduction) - Batch specialist launches in single message
- Return minimal progress reports
- Query only necessary dependency information
Savings: Overview batch (1.2k tokens) vs Get each task fully (28k tokens for 10 tasks)
Best Practices
- Always analyze dependencies before execution
- Use recommend_agent for all routing (never guess)
- Monitor parallel progress actively
- Handle failures gracefully without cascade
- Trigger cascades automatically when batch completes
- Report clear progress to users
- Maximum 3-5 parallel tasks for manageable monitoring
Success Metrics
- 40% reduction in feature completion time with parallelism
- 95% successful specialist routing on first attempt
- Zero circular dependencies in production
- Automated cascade triggering (no manual intervention)
- 500-900 token average per orchestration session
Additional Resources
- Detailed Examples: See examples.md for complete walkthroughs
- Execution Patterns: See patterns.md for strategies, configuration, and error handling
More by jpicklyk
View allDependency Orchestration Skill: Advanced dependency analysis, critical path identification, bottleneck detection, and parallel opportunity discovery using MCP tool orchestration patterns.
Feature Orchestration Skill: Intelligent feature lifecycle management with smart routing, parallel execution planning, and quality gate enforcement. Replaces Feature Management Skill with enhanced capabilities.
Orchestration QA: Quality assurance for orchestration workflows - validates Skills and Subagents follow documented patterns, tracks deviations, suggests improvements
Database Implementation: Database schema design, migrations, query optimization with SQL, Exposed ORM, Flyway. Use for database, migration, schema, sql, flyway tags. Provides migration patterns, validation commands, rollback strategies.
