← All changelogs v2.1.215 claude · claude-sonnet-4-6
Claude Code · Source-level changelog

Version 2.1.215

This release introduces a new subagent delegation steering system that lets operators control how aggressively Claude suggests or uses subagents, controlled by the CLAUDE_CODE_THISTLE_GREBE environment variable. Two additional feature flags (CLAUDE_CODE_MARL_CORMORANT and CLAUDE_CODE_GAULT_KESTREL) are added for upcoming experiments. The /code-review and /simplify skills gain a disableModelInvocation flag to prevent redundant model processing.

Official notes ✓ synced Package @anthropic-ai/claude-code Diff v2.1.214 → v2.1.215Provider claudeModel claude-sonnet-4-6
7
Features & Changes
0
Bug Fixes
2
In Development
0
Env Vars / Flags

Official Changelog

Official · Anthropic
Anthropic’s official release notes
Published verbatim by Anthropic for v2.1.215 — shown here alongside the source-level analysis below. Text is unmodified from the upstream changelog.
View on GitHub ↗
  • Claude no longer runs the /verify and /code-review skills on its own; invoke them with /verify or /code-review when you want them
Source: anthropics/claude-code · CHANGELOG.md · 1 entries · synced automatically when Anthropic publishes official notes for a version.
Source-Level Analysis
Reverse-engineered from a diff of the bundled CLI — deeper, structured detail. Unofficial.

New Features

1 item

Subagent Delegation Steering via CLAUDE_CODE_THISTLE_GREBE #

New
What

A new environment variable that controls how strongly Claude is nudged toward (or away from) spawning subagents. Three modes let you tune the behavior for different workflows.

Usage
CLAUDE_CODE_THISTLE_GREBE=counter_steer claude
CLAUDE_CODE_THISTLE_GREBE=no_nudges claude
# or leave unset / set to "default" for existing behavior
Details
  • default — no change from existing behavior. Claude receives normal guidance about when to spawn subagents and is encouraged to parallelize work with the Agent tool.
  • no_nudges — suppresses proactive suggestions to spawn subagents. Claude no longer sees prompts suggesting it fan out to multiple agents for broad exploration. The post-plan-approval hint ("consider spawning named teammates to parallelize the work") is also suppressed. The concurrency note shown in the tool-use header is hidden.
  • counter_steer — injects an active counter-delegation block into the system prompt. Claude sees explicit guidance discouraging delegation for small tasks: "Do the work inline when it is a small, bounded sub-task — a few file reads, one search, a short edit, a single check. Do not spawn a subagent for work you could finish yourself in a handful of tool calls." This mode also hides suggestions to use the Agent tool in Glob, Grep, and Plan mode descriptions.

The value can alternatively be set server-side via client data or as a GrowthBook feature flag (tengu_thistle_grebe). The env var takes precedence over the other sources.

Evidence

New steering resolver and mode constant "tengu_thistle_grebe", counter-steer instruction block (search for "Delegating to subagents" and "Do the work inline when it is a small, bounded sub-task")

Improvements

6 items

/code-review and /simplify Skip Redundant Model Invocation #

New

The /code-review and /simplify slash commands now carry disableModelInvocation: true in their skill definition. Previously, Claude's main model re-processed the command after the skill loaded, which was redundant because both skills immediately hand off to an embedded multi-agent workflow. With this flag set, the skill executes its own agentic logic directly without an extra round-trip through the main model. Users should notice no behavioral change, but the commands may start slightly faster and consume fewer tokens on the initial dispatch.

Evidence

disableModelInvocation: !0 added to both skill objects (search for "disableModelInvocation" near the /simplify and /code-review command definitions)

Bash Tool Clarifies Output Visibility #

New

The Bash tool description now explicitly states: "Command output is displayed to you, not reliably to the user." This clarifies a common point of confusion in non-interactive and background session contexts where Claude might otherwise assume the user can see terminal output directly. The note appears as a bullet in the tool's capability list.

Evidence

New bullet added to Bash tool description (search for "Command output is displayed to you, not reliably to the user.")

Glob Tool Description Is Now Mode-Aware #

New

The Glob tool's long description previously always included the line "When you are doing an open ended search that may require multiple rounds of globbing and grepping, use the Agent tool instead." This line now appears only in default steering mode. In no_nudges or counter_steer modes it is omitted, consistent with those modes suppressing subagent encouragement.

The full Glob description (with the Agent suggestion) is now stored as a separate constant from the abbreviated form, and Tji() selects between them based on the active steering mode.

Evidence

Conditional Glob description selection (search for "use the Agent tool instead" near Glob tool description logic)

Grep Tool "Use Agent for Multi-Round Searches" Note Is Now Conditional #

New

Similarly to Glob, the Grep tool description's line recommending the Agent tool for "open-ended searches requiring multiple rounds" is now suppressed in non-default steering modes. In counter_steer and no_nudges modes the note is omitted entirely.

Evidence

Conditional block around "Use ${$o} tool for open-ended searches requiring multiple rounds" in Grep description (search for "open-ended searches requiring multiple rounds")

Plan Mode Post-Approval Teammate Hint Is Steering-Aware #

New

After the user approves a plan in plan mode, Claude previously always saw a suggestion: "If this plan can be broken down into multiple independent tasks, consider spawning named teammates with the Agent tool (pass a name) to parallelize the work." This message is now generated by a new R9r() helper that returns an empty string whenever the active steering mode is not default. In counter_steer or no_nudges mode the teammate suggestion is fully suppressed.

Evidence

R9r() function (search for "If this plan can be broken down into multiple independent tasks, consider spawning named teammates")

Concurrency Note Hidden in Non-Default Steering Modes #

New

The concurrency note shown in the tool-use activity header is now gated on both the subscription tier and the steering mode. Previously it was only hidden for Pro-tier accounts. Now it also requires x3() === "default" — meaning no_nudges and counter_steer users no longer see the concurrency badge regardless of tier.

Evidence

showConcurrencyNote: oa() !== "pro" && x3() === "default" in tool event construction

In Development

2 items

Features with infrastructure added but not yet enabled. These are shipped "dark" and may become available in future versions.

Marl Cormorant Feature Flag [In Development] #

Dev
What

A new feature flag infrastructure point that can be toggled via the CLAUDE_CODE_MARL_CORMORANT environment variable or the tengu_marl_cormorant server-side flag.

Status

Feature-flagged — the flag is registered and the accessor function K_c() is in place, but no behavioral changes downstream of this flag are visible in the diff. The specific capability it gates is not yet apparent from the current code.

Details
  • The flag follows the same pattern as other binary feature gates: env var → client data → GrowthBook → false default.
  • When CLAUDE_CODE_MARL_CORMORANT is set to a truthy value the flag reads as enabled.
  • Concrete downstream effect: K_c() is called in exactly one place — the Dly() function that assembles the Bash tool's description string. When the flag is true, an extra bullet "- Command output is displayed to you, not reliably to the user." is appended to the Bash tool capability list (before the timeout note). When the flag is false (the default), that bullet is absent entirely. This means the "Bash Tool Clarifies Output Visibility" change described elsewhere in this release is itself gated on CLAUDE_CODE_MARL_CORMORANT — users without the flag see no change to the Bash tool description.
  • The injected bullet appears after the "avoid these commands" warning and before the timeout line, so it sits in the middle of the tool's operating-notes block, visible to Claude every time the Bash tool description is loaded.
  • No other call sites for K_c() are present in the source; the flag has no effect beyond this single bullet injection.
Evidence

K_c() called at line 428617 inside Dly()let l = K_c() ? ["- Command output is displayed to you, not reliably to the user."] : [] — the array is spread into the final description join at line 428627 (search for "Command output is displayed to you" near K_c)

Gault Kestrel — Shortened Overwrite Caution Guidance [In Development] #

Dev
What

When the tengu_gault_kestrel flag is active (or CLAUDE_CODE_GAULT_KESTREL env var is set), the system-prompt caution about checking file contents before overwriting or deleting is shortened. Specifically, the phrase "if what you find contradicts how it was described, or you didn't create it, surface that instead of proceeding" is removed from the instruction.

Status

Feature-flagged — controlled by CLAUDE_CODE_GAULT_KESTREL / tengu_gault_kestrel. Only affects users who have this flag enabled.

Details
  • The full existing instruction reads: "Before deleting or overwriting, look at the target — if what you find contradicts how it was described, or you didn't create it, surface that instead of proceeding."
  • With the flag enabled it becomes: "Before deleting or overwriting, look at the target." — the challenge-and-surface clause is dropped.
  • This likely experiments with whether the longer cautionary phrase causes Claude to be overly hesitant or to block legitimate operations.
Evidence

Conditional omission of the surface-on-contradiction phrase, gated by Y_c() which checks "tengu_gault_kestrel" (search for "if what you find contradicts how it was described")