Forked skill $1/$2 argument substitution broken - arguments not passed to fork context
Description
After a recent Claude Code update, skills with context: fork no longer receive arguments passed via the Skill tool. The $1, $2 variable sources defined in SKILL.md and {{VARIABLE_NAME}} template substitution in cookbook files do not resolve — the forked LLM sees them as empty/unprovided.
Reproduction
- Create a skill with
context: forkin its frontmatter - Define a variable with
$1as the source:
``yaml``
| WEBSITE_URL | $1 | (required) | Target URL |
- Invoke via:
/skill-name some-argument - The forked LLM reports no arguments were provided and falls through to the "Required Input Missing" cookbook path
Expected Behavior
$1 should resolve to some-argument and {{WEBSITE_URL}} should substitute throughout the skill's cookbook files, as it did before the update.
Workaround
Adding $ARGUMENTS explicitly in the workflow section works, since $ARGUMENTS is substituted before the forked LLM receives the content:
### Step 1: Validate Input
- SITE_PATH = $ARGUMENTS
The LLM then uses the resolved value. However, this requires rewriting every affected skill.
Impact
All skills using context: fork with $1/$2 argument sources are affected. In our project, that's 16 skills across a multi-step pipeline. The pipeline cannot run autonomously without manual workarounds for each step.
Environment
- Claude Code version: 2.1.33
- OS: macOS (Darwin 24.6.0)
- Model: claude-opus-4-6
🤖 Generated with Claude Code
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗