◉CLAUDE LABJP
●2.1.301 — Adds the vim % motion, LaTeX math rendering in the VS Code panel, and a retry-watchdog limit for usage-limit waits (10/15)●2.1.299 — Conversations over 200K tokens left idle about 54 minutes get compacted; MCP allow rules now match only the server they name●SONNET 4.5 — Retires on the Claude API on 11/30, 45 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST MODE — Opus 5.5 fast mode is out of research preview and no longer needs the beta header (10/15)●NEW — I Put a Ten-Line Promise File at the To…●2.1.301 — Adds the vim % motion, LaTeX math rendering in the VS Code panel, and a retry-watchdog limit for usage-limit waits (10/15)●2.1.299 — Conversations over 200K tokens left idle about 54 minutes get compacted; MCP allow rules now match only the server they name●SONNET 4.5 — Retires on the Claude API on 11/30, 45 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST MODE — Opus 5.5 fast mode is out of research preview and no longer needs the beta header (10/15)●NEW — I Put a Ten-Line Promise File at the To…
Articles/Claude Code
⟐ Claude Code/2026-07-15Advanced

Choosing Dynamic Workflow Size and Effort From a Ledger, Not a Hunch

Dynamic Workflows went generally available, handing you the workflow size and effort dials. After a week of picking large and watching only the bill grow, here is how to turn Claude Code's OpenTelemetry console output into a ledger and assign size and effort per task type.

Claude Code264Dynamic WorkflowsOpenTelemetrycost design4

✦ Premium Article

The moment I noticed a new line in /config labelled Dynamic workflow size, I set it to large. If the dial exists, bigger must be better — that was the whole of my reasoning.

A week later, the only thing that had grown was the usage graph in Console. The nightly research runs behind my four technical blogs were not visibly better than they had been on small. The spend kept stacking up anyway, and I could not have told you what had increased and what had not.

That is what it means for a dial to land in your hands. Decisions the default used to make quietly become yours. What follows is how I pried that decision loose from my gut and put it on a ledger.

The Two Dials You Just Inherited

Dynamic Workflows reached general availability on 2026-07-15, across the CLI, Desktop, the VS Code extension, and via the API, Bedrock, Vertex AI, and Foundry. Claude plans the work, runs many parallel subagents inside one session, and verifies its own output before reporting back. That shape is unchanged from the research preview.

What changed is that two things are now yours to hold.

DialWhereDirection it pushes
Dynamic workflow size/config (small / medium / large)Rough subagent count. Width of the search
effortThe effort menu (up to xhigh in Claude Code)Tokens spent per judgement. Depth

Turning on the ultracode setting raises effort to xhigh and also lets Claude decide whether to reach for a workflow at all. Convenient — but raise both dials at once and you lose the ability to say which one the extra spend came from. That is precisely how I wasted a week.

Dynamic Workflows is available on the Enterprise, Team, and Max plans. If you are on Pro and cannot find the setting, nothing is misconfigured. For getting a workflow running at all, I covered that ground in running Dynamic Workflows and what parallel subagents actually feel like.

What Gets Better With Size, and What Does Not

Staring at a week of logs, a shape finally emerged. Adding parallel subagents buys you width of search: gathering candidates broadly, verifying from several independent angles, closing gaps. For that class of work, headcount converts directly into quality.

When the search is narrow to begin with, extra heads all walk to the same place. My article research touches four or five sources. Setting large on that task simply produced more subagents arriving at the same conclusion.

Anthropic reports that Opus 4.8 misses defects in its own code at roughly a quarter of the previous generation's rate, and has published a case of a 750,000-line migration completed in 11 days with a 99.8% test pass rate. That is exactly where large earns its keep: the changes are scattered across tens of thousands of files, so the width of the search is the job. My four blogs simply do not have a search surface that big.

So the real question was never "is bigger better." It was "how wide is this task's search surface" — and that is measurable.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦See exactly what pinning workflow size to large does and does not buy you, split across tokens, wall time, and a pass/fail column
✦Turn CLAUDE_CODE_ENABLE_TELEMETRY console output into a per-run cost and token ledger in under 100 lines
✦Get a sweep harness that runs one task across size x effort, plus the assignment table I derived from its output
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

Related Articles

⟐ Claude Code2026-08-14
One generated file outweighed all 70 hand-written source files, so I redrew what Claude Code may read
I profiled a repository I actually run to see which areas consume the most context. Here is what I found, the deny rules I settled on, how search selectivity changes the math, and the options I considered but rejected.
⟐ Claude Code2026-10-15
The Hook That Was Meant to Guard My Japanese Folder Never Blocked Anything — Python Was Reading stdin as cp932
A PreToolUse hook guarding folders like 経理 or 議事録 silently lets edits through when Python's stdin defaults to cp932. How I reproduced it, the three-line fix, and one command to check your own hooks.
⟐ Claude Code2026-10-14
I Set onFailure to block, and the Docs' rm -rf Guard Still Let Everything Through Without jq
When a PreToolUse guard hook fails, does the action go ahead or stop? The docs' own rm -rf example exits 0 and waves everything through when jq is missing. Ten failure modes run for real, the fix, and a script that finds fail-open guards in settings.json.