[FEATURE] Defer the Artifact, Workflow, ScheduleWakeup and ReportFindings schemas behind ToolSearch (~16k tokens a request)

Status Open
Reported on v2.1.299
Maintainer reply None cached
Activity 1 comment · opened Oct 14, 2026

Problem

In an interactive session, four built-in tools send their full schema inline on every request, whether or not the session ever calls them: Artifact, Workflow, ScheduleWakeup and ReportFindings. Their siblings ArtifactComments and ArtifactData (and Monitor, WebFetch, CronCreate…) are already deferred behind ToolSearch, listed by name only.

Artifact alone is about 11.4k tokens: in our sessions it is the largest single block of the first call's context after the system prompt.

Measurement

Linux, Claude Code 2.1.299, interactive session in tmux (not claude -p: headless sessions do not carry Artifact at all). Clean config (env -i, a private CLAUDE_CONFIG_DIR, --setting-sources project,local, no hooks, no MCP servers, no CLAUDE.md), one prompt "reply OK". Measured: the first assistant call's input + cache_creation + cache_read from the transcript; repeated runs agree within 3 tokens.

| Variant (permissions.deny, or --disallowedTools: same result ±3) | Haiku 4.5 | Sonnet 5.5 |
|---|---:|---:|
| base | 34,535 | 39,475 |
| deny Artifact | 25,888 (−8,647) | 28,075 (−11,400) |
| deny Workflow | 33,057 (−1,478) | ≈ −2.0k (scaled) |
| deny ScheduleWakeup | 33,280 (−1,255) | ≈ −1.7k (scaled) |
| deny ReportFindings | 33,921 (−614) | ≈ −0.8k (scaled) |
| deny all four plus SendFeedback | 21,145 (−13,390) | 21,626 (−17,849) |

Denying them is not a fix: it takes away what the user may ask for in any session (an Artifact page, /loop, a workflow, /code-review). We run six long-lived sessions, so these schemas cost about 50k tokens a request across them, almost always for tools that turn is not using.

Proposed solution

Defer Artifact, Workflow, ScheduleWakeup and ReportFindings behind ToolSearch the way ArtifactComments, ArtifactData and the other built-ins already are: name and one-line description in the deferred list, schema loaded on first use. Where a command needs one at once (/loop → ScheduleWakeup, /code-review → ReportFindings), the command could load it when it starts, as skills already do with deferred tools.

Related

  • #76045 (closed as not planned, stale): deferring built-in schemas in subagent spawns. This request is about the main interactive session and four specific tools whose siblings are already deferred.
  • #54716 (closed): opting out of the deferred list.

---
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🤖 Generated with Claude Code

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗