claude-code - 💡(How to fix) Fix [FEATURE] Compose multiple Skills/Commands in a single user message [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#56082Fetched 2026-05-05 05:58:39
View on GitHub
Comments
2
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×3commented ×2

Root Cause

Sustained user demand, no surviving thread. Re-filing rather than upvoting because all four are locked.

Code Example

/draft-email for 45130580598 based on the kb that covers multi account /doc-finder

---

/draft-email 45130580598 — use the multi-account KB and pull /doc-finder links
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet (re-filing — see below)
  • 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:

  1. Issue prompts serially (one skill per turn), losing the natural composition of a single intent
  2. Hardcode skill chains inside a parent skill's SKILL.md, which narrows skills that should remain general-purpose
  3. Build brittle UserPromptSubmit hooks with regex registries that inject additionalContext reminders 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

  1. Auto-triggering only — relies on the model invoking Skill based on description matches. Unreliable in practice; the model regularly skips matching skills even when the user has explicitly typed /skill-name.
  2. 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.
  3. UserPromptSubmit hooks — inject additionalContext based on regex matches against the prompt. Duplicates auto-trigger logic outside the model, must be maintained per-pattern, and breaks on novel phrasings. Brittle.
  4. 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:

  1. markdown-redacted loads ticket 45130580598
  2. support-kb surfaces the multi-account credentials guide
  3. doc-finder resolves component references to public URLs
  4. draft-email composes 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.

extent analysis

TL;DR

Recognize multiple slash commands in a single user message to enable true single-prompt multi-skill composition.

Guidance

  • Identify a suitable delimiter (e.g., &&, ;, or comma) to separate multiple slash commands in a single message.
  • Modify the slash-command parser to recognize and process multiple commands based on the chosen delimiter or the presence of /skill-name tokens.
  • Update the model to load all named skills into context, pass surrounding text as shared arguments, and orchestrate execution.
  • Test the new functionality with various user prompts to ensure correct skill invocation and composition.

Example

/draft-email for 45130580598 based on the kb that covers multi account /doc-finder

In this example, the parser should recognize /draft-email and /doc-finder as separate skills and invoke them accordingly.

Notes

The proposed solution requires modifications to the existing slash-command parser and the model's skill invocation logic. The choice of delimiter or syntax for multi-skill composition should be carefully considered to ensure usability and avoid conflicts with existing functionality.

Recommendation

Apply a workaround by using a delimiter (e.g., &&) to separate multiple slash commands in a single message, as this is a simpler and more straightforward approach to achieve multi-skill composition.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [FEATURE] Compose multiple Skills/Commands in a single user message [2 comments, 2 participants]