Forked skill $1/$2 argument substitution broken - arguments not passed to fork context

Resolved 💬 2 comments Opened Feb 6, 2026 by jimjones26 Closed Feb 6, 2026

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

  1. Create a skill with context: fork in its frontmatter
  2. Define a variable with $1 as the source:

``yaml
| WEBSITE_URL | $1 | (required) | Target URL |
``

  1. Invoke via: /skill-name some-argument
  2. 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

View original on GitHub ↗

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