Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create a workflow command that orchestrates multi-step execution through sub-agents with file-based task prompts
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 158% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 136% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 97% | 0% |
Create a command that orchestrates multi-step workflows by dispatching sub-agents with task-specific instructions stored in separate files.
textWorkflow Name: $1 Description: $2
Workflow commands solve the context bloat problem: instead of embedding detailed step instructions in the main command (polluting orchestrator context), store them in separate task files that sub-agents read on-demand.
plugins/<plugin-name>/
├── commands/
│ └── <workflow>.md # Lean orchestrator (~50-100 tokens per step)
├── agents/ # Optional: reusable executor agents
│ └── step-executor.md # Custom agent with specific tools/behavior
└── tasks/ # All task instructions directly here
├── step-1-<name>.md # Full instructions (~500+ tokens each)
├── step-2-<name>.md
├── step-3-<name>.md
└── common-context.md # Shared context across workflowsEach sub-agent gets its own isolated context window. The main orchestrator stays lean while sub-agents load detailed instructions from files.
| Component | Context Cost | Purpose | |-----------|--------------|---------| | Orchestrator command | ~50-100 tokens/step | Dispatch and coordinate | | Task file | ~500+ tokens | Detailed step instructions | | Sub-agent base | ~294 tokens | System prompt overhead |
Sub-agents spawned via Task tool:
| Capability | Available | Notes | |------------|-----------|-------| | Read tool | ✅ Yes | Can read any file | | Write tool | ✅ Yes | If not restricted | | Grep/Glob | ✅ Yes | For code search | | Skills loading | ❌ No | Skills don't auto-load in sub-agents | | Spawn sub-agents | ❌ No | Cannot nest Task tool | | Resume context | ✅ Yes | Via resume parameter |
Use ${CLAUDE_PLUGIN_ROOT} for portable paths within plugin:
markdownRead ${CLAUDE_PLUGIN_ROOT}/tasks/step-1-workflow-name.md and execute.
Sub-agent will use Read tool to fetch the file content.
Ask user (if not provided):
feature-implementation)general-purpose or custom agentbash# Create tasks directory (if it doesn't exist) mkdir -p ${CLAUDE_PLUGIN_ROOT}/tasks # Optional: Create agents directory (if using custom agents) mkdir -p ${CLAUDE_PLUGIN_ROOT}/agents
Note: All task files (both workflow-specific steps and shared context) are placed directly in tasks/ without subdirectories.
For each step, create a task file with this structure:
markdown# Step N: <Step Name> ## Context You are executing step N of the <workflow-name> workflow. ## Goal <Clear, specific goal for this step> ## Input <What this step receives from previous steps or user> ## Instructions 1. <Specific action> 2. <Specific action> 3. <Specific action> ## Constraints - <Limitation or boundary> - <What NOT to do> ## Expected Output <What to return to orchestrator> ## Success Criteria - [ ] <Measurable outcome> - [ ] <Measurable outcome>
Create the main command file with this pattern:
markdown--- description: <Workflow description> argument-hint: <Required arguments> allowed-tools: Task, Read model: sonnet --- # <Workflow Name> ## User Input \`\`\`text $ARGUMENTS \`\`\` ## Workflow Execution ### Step 1: <Step Name> Launch general-purpose agent: - **Description**: "<3-5 word summary>" - **Prompt**: \`\`\` Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-1-<workflow>-<name>.md and execute. Context: - TARGET: $1 - MODE: $2 \`\`\` **Capture**: <What to extract from result> ### Step 2: <Step Name> Launch general-purpose agent: - **Description**: "<3-5 word summary>" - **Prompt**: \`\`\` Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-2-<workflow>-<name>.md and execute. Context from Step 1: - <Key data from previous step> \`\`\` ### Step 3: <Step Name> [Continue pattern...] ## Completion Summarize workflow results: 1. <What was accomplished> 2. <Key outputs> 3. <Next steps if any>
| Field | Purpose | Default | |-------|---------|---------| | description | Brief description of workflow purpose | Required | | argument-hint | Expected arguments description | None | | allowed-tools | Tools the command can use | Inherits from conversation | | model | Specific Claude model (sonnet, opus, haiku) | Inherits from conversation |
Model selection:
haiku - Fast, efficient for simple workflowssonnet - Balanced performance (recommended default)opus - Maximum capability for complex orchestrationEach step depends on previous step's output:
markdown### Step 1: Analyze Launch agent → Get analysis result ### Step 2: Plan (uses Step 1 result) Launch agent with Step 1 context → Get plan ### Step 3: Execute (uses Step 2 result) Launch agent with Step 2 context → Complete
Steps can run concurrently:
markdown### Analysis Phase (Parallel) Launch 3 agents simultaneously: 1. Agent 1: Security analysis → Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-1a-security.md 2. Agent 2: Performance analysis → Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-1b-performance.md 3. Agent 3: Code quality analysis → Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-1c-quality.md **Wait for all**, then consolidate results. ### Synthesis Phase Launch agent with all analysis results...
When steps need shared context:
markdown### Step 1: Initialize Launch agent, **capture agent_id** ### Step 2: Continue (same context) Resume agent using agent_id: - **resume**: <agent_id from Step 1> - **prompt**: "Proceed to phase 2: <additional instructions>"
markdown--- description: Execute feature implementation through research, planning, and coding phases argument-hint: [feature-description] allowed-tools: Task, Read, TodoWrite model: sonnet --- # Implement Feature ## User Input \`\`\`text $ARGUMENTS \`\`\` Create TodoWrite with workflow steps. ## Phase 1: Research Launch general-purpose agent: - **Description**: "Research feature requirements" - **Prompt**: \`\`\` Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-1-feature-impl-research.md Feature: $ARGUMENTS \`\`\` **Extract**: Key findings, constraints, existing patterns ## Phase 2: Architecture Launch general-purpose agent: - **Description**: "Design feature architecture" - **Prompt**: \`\`\` Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-2-feature-impl-architecture.md Feature: $ARGUMENTS Research findings: <summary from Phase 1> \`\`\` **Extract**: File structure, components, interfaces ## Phase 3: Implementation Launch developer agent: - **Description**: "Implement feature code" - **Prompt**: \`\`\` Read ${CLAUDE_PLUGIN_ROOT}/tasks/step-3-feature-impl-implement.md Architecture: <summary from Phase 2> \`\`\` ## Completion Mark todos complete. Report: 1. Files created/modified 2. Tests added 3. Remaining work
markdown# Step 1: Feature Research ## Context You are the research phase of a feature implementation workflow. ## Goal Thoroughly understand the feature requirements and existing codebase context before any implementation begins. ## Instructions 1. **Parse Feature Request** - Extract core requirements - Identify acceptance criteria - Note any constraints mentioned 2. **Codebase Analysis** - Search for similar existing features - Identify relevant patterns and conventions - Find reusable components/utilities 3. **Dependency Check** - What existing code will this feature interact with? - Are there breaking change risks? - What tests exist for related functionality? 4. **Gap Analysis** - What's missing from the request? - What clarifications might be needed? - What edge cases should be considered? ## Constraints - Do NOT write any implementation code - Do NOT modify any files - Focus purely on research and analysis ## Expected Output Return a structured research summary: \`\`\`markdown ## Feature Understanding - Core requirement: <summary> - Acceptance criteria: <list> ## Codebase Context - Similar features: <list with file paths> - Patterns to follow: <list> - Reusable code: <list with file paths> ## Dependencies - Files affected: <list> - Tests to consider: <list> ## Open Questions - <Question 1> - <Question 2> ## Recommendation <Brief recommendation for architecture phase> \`\`\` ## Success Criteria - [ ] Feature requirements clearly articulated - [ ] Relevant existing code identified - [ ] No implementation attempted - [ ] Clear handoff to architecture phase
| Limitation | Impact | Workaround | |------------|--------|------------| | No nested sub-agents | Sub-agents can't spawn Task tool | Keep all orchestration in main command | | No skill auto-loading | Sub-agents don't trigger skills | Pass explicit file paths or inline context | | Fresh context per agent | Each dispatch starts empty | Use resume pattern OR pass summaries | | File read latency | Extra tool call per step | Acceptable trade-off for context savings |
Before finalizing workflow command:
${CLAUDE_PLUGIN_ROOT} for portabilityBased on user input, create:
${CLAUDE_PLUGIN_ROOT}/tasks/ - All task files directly here${CLAUDE_PLUGIN_ROOT}/agents/ - (Optional) Custom agent definitionstasks/ directory with naming pattern step-N-<workflow>-<name>.mdstep-1-feature-impl-research.mdstep-2-feature-impl-architecture.mdcommon-context.md directly in tasks/commands/<workflow-name>.mdagents/After creation, suggest testing with /customaize-agent:test-prompt command.
Other measured skills in the registry, with their headline benchmark lift.