Claude enters extended thinking mode after tool execution when free-form input parsing is required, blocking subsequent tool calls
Summary
When a skill instruction requires Claude to parse free-form user input and then execute multiple sequential tool calls, Claude enters extended thinking mode after the first tool call and fails to execute subsequent tools. This causes pipeline automation to hang indefinitely.
Environment
- Claude Code version: 2.1.5
- Model: Claude Opus 4.5 (
claude-opus-4-5-20251101) - OS: macOS Darwin 24.6.0
- Subscription: Claude Max
Reproduction Steps
Minimal Reproduction
- Create a skill with two sequential bash commands where the second command depends on parsed user input:
---
name: test-parsing-hang
description: Test skill that demonstrates parsing hang
---
# Test Skill
1. Ask user for a name
2. Create directory: `mkdir -p "test-dir"`
3. Create file with parsed name: `echo "Hello {parsed_name}" > "test-dir/greeting.txt"`
- Invoke the skill and provide free-form input like "name is John Smith"
- Observe:
mkdirexecutes, then Claude enters thinking mode ("Calculating...", "Cooking...", "Bloviating...") and never executes theechocommand
Full Reproduction (from our pipeline)
- Run pipeline skill that:
- Extracts metadata from YouTube video (Phase 1)
- Displays metadata preview with placeholder values
- Prompts user for corrections (e.g., "guest is Jensen Huang, host is Sana Uqaili")
- Should execute
mkdir -pthenpython3 script.py --guest "Jensen Huang" --host "Sana Uqaili"
- When user selects Option 1 (proceed without corrections): ✅ Works
- Both
mkdirandpython3execute immediately
- When user provides corrections (free-form text): ❌ Hangs
mkdir -pexecutes- Claude enters extended thinking mode
python3never executes- Pipeline hangs until manually killed
Observed Behavior
❯ guest is Jensen Huang, host is Sana Uqaili
⏺ Bash(mkdir -p "wip-prompts/CTS260109")
⎿ (No content)
✶ Bloviating… (ctrl+c to interrupt · thinking)
✽ Bloviating… (ctrl+c to interrupt · thought for 1s)
[hangs indefinitely until ctrl+c]
Expected Behavior
After mkdir completes, Claude should immediately execute the python3 command with the parsed guest/host values, as instructed by:
**2. IMMEDIATELY run the Python script (do not pause after mkdir):**
Investigation Findings
We spawned 5 parallel investigation agents and conducted web research. Key findings:
1. Parsing Free-Form Input Triggers Deliberation
When Claude must:
- Parse "guest is Jensen Huang, host is Sana Uqaili"
- Extract guest name and host name
- Construct command with
--guestand--hostflags
This implicit cognitive work triggers extended thinking mode.
2. Extended Thinking Blocks Tool Forcing
From Anthropic's documentation:
"When using extended thinking with tool use,tool_choice: {"type": "any"}andtool_choice: {"type": "tool", "name": "..."}are not supported."
Once Claude enters thinking mode, there is no mechanism to force tool execution.
3. "IMMEDIATELY" Instructions Are Insufficient
We tried multiple instruction patterns:
**IMMEDIATELY run the Python script (do not pause after mkdir):****CRITICAL: Execute both commands in sequence without stopping**- Numbered steps with explicit sequencing
None prevented the hang. The parsing requirement triggers deliberation regardless of instruction language.
4. Structured Input Works, Free-Form Fails
| Input Type | Behavior | Result |
|------------|----------|--------|
| Option "1" (numbered selection) | Direct execution | ✅ Works |
| Free-form "guest is X, host is Y" | Parse → Think → Hang | ❌ Fails |
5. No Gap = No Hang
When commands are combined into a single tool call:
mkdir -p "dir" && python3 "script.py" --guest "Name"
There's no opportunity for thinking mode between commands.
Root Cause Analysis
The issue stems from skill instruction architecture:
**Wait for user input. Parse correction to extract guest name and/or host name.**
**Proceed to Step 2B with corrections (if any).**
- Line says "parse" but provides no parsing rules
- Claude must infer format, handle edge cases, decide quoting
- This triggers deliberation after the first tool call
- Deliberation prevents subsequent tool execution
Workarounds Attempted
| Workaround | Result |
|------------|--------|
| Add "IMMEDIATELY execute" language | ❌ Still hangs |
| Add "CRITICAL" and "do not pause" | ❌ Still hangs |
| Number steps explicitly | ❌ Still hangs |
| Add inline reminders | ❌ Still hangs |
| Combine commands with && | ✅ Works (eliminates gap) |
| Remove parsing requirement entirely | ✅ Works (no free-form input) |
Suggested Solutions
For Users (Workarounds)
- Combine sequential commands into single
&&chains - Use structured input (numbered menus) instead of free-form parsing
- Move parsing to after file creation (fix files later, not before)
For Anthropic (Product)
- Allow tool_choice during thinking - Enable forcing tool execution even when model is deliberating
- Provide "no-think" directive - Instruction that prevents extended thinking for specific sections
- Sequential tool batching - Allow skills to specify "execute these N tools in sequence without deliberation"
- Parsing helpers - Built-in extraction functions that don't require model deliberation
Related Issues
- #15136 - Skills not invoking immediately despite "BLOCKING REQUIREMENT" language
- #13224 - Claude stuck in continuous thinking state
- #10881 - Performance degradation over long sessions
Additional Context
- This affects any skill that requires parsing user input before tool execution
- The issue is reproducible 100% of the time with the corrections path
- The issue never occurs with structured (numbered) input
- Web research confirms others have encountered similar deliberation issues (see Scott Spence's research on skill activation achieving only 20% success with simple instructions)
Test Case
Happy to provide our full skill file (PY0 Pipeline Orchestrator, ~1000 lines) if helpful for reproduction.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗