[FEATURE] Compose multiple Skills/Commands in a single user message
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet (re-filing — see below)
- [x] This is a single feature request (not multiple features)
Problem Statement
Today the slash-command parser only recognizes a single command at the start of a message. Anything matching /skill-name later in the prompt is treated as plain text. The architectural fallback is auto-triggering — Claude inspects skill descriptions and invokes Skill itself when a description matches — but this is non-deterministic and frequently fails even when the trigger conditions are unambiguous (explicit /skill-name mid-prompt, hard-trigger regex like a 10-11 digit ticket ID, exact keyword matches).
The result is that workflows composed from independent, well-described skills cannot be invoked in one message. Users either:
- Issue prompts serially (one skill per turn), losing the natural composition of a single intent
- Hardcode skill chains inside a parent skill's SKILL.md, which narrows skills that should remain general-purpose
- Build brittle UserPromptSubmit hooks with regex registries that inject
additionalContextreminders to invoke specific skills — duplicating the auto-trigger logic at the harness level
None of these scale. Skills are designed as composable units, but there's no first-class composition primitive at invocation time.
Proposed Solution
Recognize multiple slash commands in a single user message — either via a delimiter (&&, ;, or comma), via simple presence of /skill-name tokens anywhere in the prompt, or via an explicit composition syntax. When the user writes:
/draft-email for 45130580598 based on the kb that covers multi account /doc-finder
the harness should load all named skills (/draft-email, /doc-finder) into context, pass the surrounding text as shared arguments, and let the model orchestrate execution. Combined with auto-triggered skills (which would also fire on the ticket-ID and "kb" cues in the same prompt), this enables true single-prompt multi-skill composition.
Alternative Solutions
- Auto-triggering only — relies on the model invoking
Skillbased on description matches. Unreliable in practice; the model regularly skips matching skills even when the user has explicitly typed/skill-name. - Hardcoding chains — encode a fixed workflow inside one skill's SKILL.md. Works, but narrows the parent skill and doesn't compose dynamically with arbitrary other skills.
- UserPromptSubmit hooks — inject
additionalContextbased on regex matches against the prompt. Duplicates auto-trigger logic outside the model, must be maintained per-pattern, and breaks on novel phrasings. Brittle. - Routines / subagents — heavyweight; designed for autonomous multi-step runs, not interactive composition.
Priority
High - Significant impact on productivity
Feature Category
Interactive mode (TUI)
Use Case Example
Customer support workflow with five independent, reusable skills: markdown-redacted (load a redacted ticket from disk by ID), support-kb (internal troubleshooting KB lookup), doc-finder (resolve component names to public doc URLs), draft-email (compose a plain-text customer reply), review (review pending changes).
A typical request: "draft a reply for ticket 45130580598 using the multi-account credentials KB and include doc links."
What I want to type:
/draft-email 45130580598 — use the multi-account KB and pull /doc-finder links
What should happen in one turn:
markdown-redactedloads ticket 45130580598support-kbsurfaces the multi-account credentials guidedoc-finderresolves component references to public URLsdraft-emailcomposes the reply
Each skill stays general-purpose. The composition is dynamic — different tickets, different KB topics, different components. There's no "support-flow" parent skill to maintain, and the user's intent is expressed in one natural message.
Additional Context
This pattern has been requested repeatedly and every prior issue was auto-closed by the staleness bot, not declined by Anthropic. All four are now locked, so no comment thread is reachable:
- #17349 — Allow users to trigger multiple Skills/Commands within a single message
- #16759 — Pipeline workflow for slash command
- #37987 — Allow
&&in slash command (e.g./clear && /plugin:next) - #28754 —
/clear <prompt>— clear context and immediately execute a prompt
Sustained user demand, no surviving thread. Re-filing rather than upvoting because all four are locked.
Comparable tools (Cursor, VS Code chat) support multi-prompt / multi-skill composition; Claude Code skills are a strictly more powerful primitive but lack the invocation syntax to fully use them.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗