Allow subagents to invoke skills for parallel workflow execution
Problem
Subagents cannot invoke the Skill tool — it's only available in the main conversation context. This means any workflow that depends on a skill (custom agent, slash command) must run sequentially through the main agent, even when the tasks are completely independent.
Use case: parallel skill-driven workflows
In projects using orchestration frameworks (like BMAD), skills define structured agent personas — each with its own prompt, constraints, and deliverables. A typical development cycle involves:
/bmad-dev-story story-3.1— implement story 3.1/bmad-dev-story story-3.2— implement story 3.2 (independent)/bmad-code-review— review completed work/bmad-qa— QA gate
Stories 3.1 and 3.2 are fully independent — different files, different acceptance criteria. Today, they must run sequentially because the Skill tool is main-agent-only. With subagent skill access, they could run in parallel via worktrees:
Agent(skill: "bmad-dev-story", args: "story-3.1", isolation: "worktree")
Agent(skill: "bmad-dev-story", args: "story-3.2", isolation: "worktree")
Why this matters
- Time savings: Parallel story implementation, parallel code reviews, parallel test generation — all blocked today by sequential-only skill access.
- Context window efficiency: Skills inject large prompts. Running two skills sequentially in the main context consumes 2x the context. Parallel subagents each get their own context window.
- Worktree isolation already exists: The
isolation: "worktree"parameter solves the file conflict problem. The missing piece is skill access. - The Agent tool already supports complex work: Subagents can read, write, edit, run bash, search — everything needed to execute a skill's instructions. The only gap is loading the skill's prompt.
Current workarounds (and why they're insufficient)
| Workaround | Problem |
|---|---|
| Paste skill prompt into agent's prompt parameter | Fragile, duplicates content, breaks when skill updates |
| Subagent reads skill file from _bmad/ | Loses Skill tool's structured prompt injection and frontmatter handling |
| Run everything sequentially in main agent | Defeats the purpose of the Agent tool's parallelism |
Proposed solution
Allow the Skill tool (or equivalent mechanism) to be available inside subagents. Possible approaches:
- Add
skillparameter to Agent tool — the agent launches with the skill's prompt pre-loaded, similar to howsubagent_typeworks today - Include Skill tool in subagent toolset — let subagents call skills directly
- Skill prompt resolution at launch — main agent resolves the skill prompt and injects it as the subagent's system prompt, without requiring the Skill tool at runtime
Option 1 seems cleanest — it's declarative, avoids sub-sub-agent concerns, and fits the existing Agent tool API.
Related issues
- #19077 — Subagents can't create sub-subagents
- #21965 — Memory explosion when subagent invokes Skill tool
- #38044 — Controllable subagent context (skills, MCP servers)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗