[Bug] Subagent effort level silently capped when extended thinking disabled no clear indication this happens, wastes tokens and usage window.
Bug Description
Bug report: effort in subagent frontmatter is silently capped when extended thinking is disabled
Product: Claude Code CLI
Version: v2.1.259
OS: Windows 11 Home Single Language 10.0.26200
Plan: Claude Pro
Related support conversation ID: 215475787155307 (Sept 3, 2026)
Frequency: consistent, 100% reproducible across 26 measured runs
---
1. Summary
The effort field in a subagent's frontmatter produces no measurable effect on token usage, wall-clock duration, or answer quality when extended thinking is disabled in the parent session. The CLI accepts effort: max, emits no error and no warning, and the subagent behaves indistinguishably from effort: low and from an agent with no effort field at all.
When the same two agent definitions, run unchanged, but with thinking enabled, they separate cleanly by a factor of 2.5x in tokens and 4.2x in duration, that is to say, when thinking was enabled, there was a clear difference between effort levels.
I am reporting three distinct defects, in descending order of impact:
- A. Silent cap with no diagnostic. The CLI accepts an effort level it will not honor.
- B. Undocumented interaction. The subagents documentation does not mention that thinking state constrains available effort levels.
- C. Unrecognized frontmatter keys are accepted silently.
reasoning_effort— not a documented field — produces no warning of any kind.
---
2. How I found it and how to reproduce it
I built a controlled rig because the effect I expected was absent. Two subagent definition files, byte-identical except for one line:
---
name: "ztest7-o5-ef-low"
description: "Test agent. Delete after experiment."
model: claude-opus-5
effort: low # the ONLY difference; the other file says: effort: max
tools: Read
color: purple
---
<identical 75-line task body in both files>
The task body is a single fixed prompt with five parts of high but bounded difficulty: a 4x6 board-configuration count with coupled adjacency constraints; a number-theory search (smallest n>1 with d(n)=12, 13 divides sigma(n), 8 divides phi(n), 16 does not divide phi(n)); a reflection-based shortest-path minimization; a 9-person / 3-team / 3-specialty constraint-satisfaction problem with 12 conditions; and a mandatory independent cross-verification step. Output is a fixed 14-line block, which makes runs directly comparable. Correct answers were established independently by brute force outside the rig.
Both agents are launched with the same one-line trigger prompt, one variable changed at a time, and I record the subagent_tokens and duration_ms the CLI reports on completion.
Reproduction: create the two files above, run each with thinking disabled, then run each again with thinking enabled. Compare reported tokens and duration.
---
3. Measurements
3.1 Thinking DISABLED — Claude Opus 5, same task, same trigger prompt
| Frontmatter | Tokens | Duration | Correct |
|---|---|---|---|
| effort: low | 18,965 | 169,608 ms | 5/5 |
| effort: max | 22,225 | 256,978 ms | 5/5 |
Ratio max/low: 1.17x tokens, 1.51x duration.
That gap sits inside ordinary run-to-run noise. Across six Opus 5 runs with thinking disabled — spanning effort: low, effort: max, reasoning_effort: low, reasoning_effort: max, and no effort field at all — every run landed between 17,486 and 22,225 tokens, a band of roughly +/-13%. The conditions did not order themselves by effort level. In several rounds the run with no effort field consumed more than the run set to max.
3.2 Thinking ENABLED — same two files, unchanged, not regenerated
| Frontmatter | Tokens | Duration | Correct |
|---|---|---|---|
| effort: low (run 1) | 20,208 | 95,437 ms | 5/5 |
| effort: low (run 2, replication) | 19,689 | 88,625 ms | 5/5 |
| effort: max | 49,200 | 377,678 ms | 5/5 |
Ratio max/low: 2.5x tokens, 4.2x duration.
Two points make this decisive rather than anecdotal:
effort: maxat 49,200 tokens is 2.2x the ceiling of the entire thinking-disabled envelope (17,486–22,225 across six runs). No run in eight rounds had come close. This is not variance.effort: lowreplicates tightly — 20,208 and 19,689 tokens, 95,437 ms and 88,625 ms, a 2.6% and 7.1% spread. The low arm is stable, so the gap is real.
There is a third, unexpected result: effort: low with thinking enabled runs roughly twice as fast as the identical agent with thinking disabled (approximately 90 s vs 170 s, observed twice). This is consistent with the silent-cap explanation: with thinking off the requested low is apparently not applied either, and the subagent runs at some default; with thinking on, low actually takes effect and clamps the run down. I record this as an observation, not a conclusion about internals.
3.3 Scope of the null result
Before isolating the thinking variable…
Note: Content was truncated.