claude-code - 💡(How to fix) Fix [BUG] Built-in Workflow tool description (~4k tokens) is injected as conversation content every turn, with no way to disable it

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error Messages/Logs

RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Environment

Claude Code via VSCode extension (Agent SDK), Windows 11 Model: Claude Opus 4.8 What happens The built-in Workflow tool's full description (~4000 tokens, mentioning ultracode, FleetView, and the agent()/parallel()/pipeline()/phase() script hooks) appears as a regular conversation message on every turn, rather than being sent once in the request's cacheable tools parameter.

Why it's a problem

Position — tool definitions are designed to live in the cacheable tools prefix (billed once, ~10% on cache hits). Injected as conversation content, the ~4k tokens risk full re-billing whenever the cache breakpoint shifts. Not disableable — Workflow is not documented in the public Claude Code docs (ultracode/FleetView return no official hits). There's no disabledTools/enabledTools setting, no --disallowedTools flag, no env var. permissions only gates invocation, not whether the description enters context. Related open issues: #1380, #7328. Side effect — its constant presence pushes the model to repeatedly acknowledge/ignore it, wasting output tokens. Requests (any one)

Move built-in tool descriptions (incl. Workflow) back into the cacheable tools parameter instead of conversation content; or Provide a user-level switch to disable Workflow so its description never enters context; or Confirm the block is correctly marked as a cacheable prefix to avoid per-turn re-billing.

What Should Happen?

Environment

Claude Code via VSCode extension (Agent SDK), Windows 11 Model: Claude Opus 4.8 What happens The built-in Workflow tool's full description (~4000 tokens, mentioning ultracode, FleetView, and the agent()/parallel()/pipeline()/phase() script hooks) appears as a regular conversation message on every turn, rather than being sent once in the request's cacheable tools parameter.

Why it's a problem

Position — tool definitions are designed to live in the cacheable tools prefix (billed once, ~10% on cache hits). Injected as conversation content, the ~4k tokens risk full re-billing whenever the cache breakpoint shifts. Not disableable — Workflow is not documented in the public Claude Code docs (ultracode/FleetView return no official hits). There's no disabledTools/enabledTools setting, no --disallowedTools flag, no env var. permissions only gates invocation, not whether the description enters context. Related open issues: #1380, #7328. Side effect — its constant presence pushes the model to repeatedly acknowledge/ignore it, wasting output tokens. Requests (any one)

Move built-in tool descriptions (incl. Workflow) back into the cacheable tools parameter instead of conversation content; or Provide a user-level switch to disable Workflow so its description never enters context; or Confirm the block is correctly marked as a cacheable prefix to avoid per-turn re-billing.

Error Messages/Logs

Steps to Reproduce

Environment

Claude Code via VSCode extension (Agent SDK), Windows 11 Model: Claude Opus 4.8 What happens The built-in Workflow tool's full description (~4000 tokens, mentioning ultracode, FleetView, and the agent()/parallel()/pipeline()/phase() script hooks) appears as a regular conversation message on every turn, rather than being sent once in the request's cacheable tools parameter.

Why it's a problem

Position — tool definitions are designed to live in the cacheable tools prefix (billed once, ~10% on cache hits). Injected as conversation content, the ~4k tokens risk full re-billing whenever the cache breakpoint shifts. Not disableable — Workflow is not documented in the public Claude Code docs (ultracode/FleetView return no official hits). There's no disabledTools/enabledTools setting, no --disallowedTools flag, no env var. permissions only gates invocation, not whether the description enters context. Related open issues: #1380, #7328. Side effect — its constant presence pushes the model to repeatedly acknowledge/ignore it, wasting output tokens. Requests (any one)

Move built-in tool descriptions (incl. Workflow) back into the cacheable tools parameter instead of conversation content; or Provide a user-level switch to disable Workflow so its description never enters context; or Confirm the block is correctly marked as a cacheable prefix to avoid per-turn re-billing.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

Claude Code via VSCode extension (Agent SDK), Windows 11 v2.1.163

Platform

AWS Bedrock

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING