Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.233 Home All releases olderv2.1.232 v2.1.234newer
Claude Code v2.1.233

Custom slash-command arguments are no longer re-expanded

You'll notice
Useful3 Signal1
Slash Commands

Arguments you pass a custom command are inserted literally, even if they contain $2 or $ARGUMENTS.

$ARGUMENTS
What

If you pass a custom command an argument whose text contains something like $2 or $ARGUMENTS, that text is now inserted literally instead of being expanded again by the later substitution passes.

Details
  • Applies to $ARGUMENTS, $1, $ARGUMENTS[n] and named placeholders in a command's prompt.
  • Each substituted value is wrapped in a private marker character and its $ signs are escaped to a second marker, both removed at the end.
  • Any of those two marker characters already present in the template or in your argument text are replaced with the Unicode replacement character first, so they cannot be used to smuggle expansion back in.
  • The final unescape pass now always runs rather than only when an escape was seen.
Evidence

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.233 →