[BUG] Skill tool $ARGUMENTS variable not populated when invoking skills with command blocks

Resolved 💬 3 comments Opened Jan 14, 2026 by cloudpg07 Closed Jun 5, 2026

Description

When using the Skill tool to invoke a plugin skill that contains a command block with $ARGUMENTS, the $ARGUMENTS variable is not being populated with the args passed to the Skill tool.

Steps to Reproduce

  1. Have the ralph-loop plugin installed and enabled
  2. Use the Skill tool to invoke ralph-loop with arguments:
{
  "skill": "ralph-loop:ralph-loop",
  "args": "Test prompt --max-iterations 1"
}
  1. The skill's command block in ralph-loop.md is:
```!
"${CLAUDE_PLUGIN_ROOT}/scripts/setup-ralph-loop.sh" $ARGUMENTS

4. The setup script receives 0 arguments

## Expected Behavior

The `$ARGUMENTS` variable should contain `Test prompt --max-iterations 1` and be properly word-split when passed to the script.

## Actual Behavior

The `$ARGUMENTS` variable is empty, causing the script to receive 0 arguments:

DEBUG: Number of arguments: 0
DEBUG: Arguments received:
❌ Error: No prompt provided


## Environment

- Claude Code (running in VSCode extension)
- macOS Darwin 25.2.0
- Plugin: ralph-loop@claude-plugins-official (version f70b65538da0)

## Additional Context

- The script works correctly when invoked directly via Bash with arguments
- This may be specific to how the Skill tool passes the `args` parameter to command blocks
- The issue affects all skills that rely on `$ARGUMENTS` in their command blocks

## Workaround

Invoke the setup script directly via Bash instead of using the Skill tool:
```bash
~/.claude/plugins/cache/claude-plugins-official/ralph-loop/f70b65538da0/scripts/setup-ralph-loop.sh "Your prompt" --max-iterations 10

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗