Workflow tool eager-loads ~4k tokens despite being opt-in/explicit-trigger only — defer via ToolSearch or add a toggle

Status Fixed / completed
Maintainer reply None cached
Activity 2 comments · opened Jul 20, 2026 · closed Aug 17, 2026

Summary

The Workflow tool loads its full schema eagerly on every session, despite being opt-in / explicit-trigger only. Its description is by far the largest single tool in the default set — roughly ~3.5–4k tokens (estimated) of pattern catalog, code examples, and orchestration docs — yet the tool's own instructions bar it from being called unless the user explicitly opts in ("use a workflow", "ultracode", a workflow skill, etc.).

The inconsistency

Workflow is the ideal deferral candidate precisely because it's never chosen proactively:

  • Tools reached for unprompted every turn (Bash/Read/Edit) must be eager.
  • Workflow is only ever invoked after the user signals intent — the perfect moment to load its schema on demand via ToolSearch, exactly like WebFetch, WebSearch, EnterWorktree, and MCP tools already do.

Deferring it costs ~zero capability (proactive awareness is disallowed anyway) and reclaims more context than any other single tool.

Ask

Move Workflow behind ToolSearch deferral (name-only until loaded), or expose a disable/defer toggle in settings.json. There is currently no user-facing lever: the eager-vs-deferred partition for built-ins is hard-coded, and no disabledTools/deferredTools key exists.

Precedent / refs

  • The deferral mechanism already exists — built-in tools got it in v2.1.69 (#31002); MCP tools support defer_loading / alwaysLoad.
  • #76372 — same class (eager built-in tool schemas, no opt-out); asks to "defer via ToolSearch or expose a toggle." Covers the principle but not this tool.
  • #45332 — analogous "extend deferral" request (plugin skills), closed by stale-bot without a decision.

View original on GitHub ↗

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