M

Author

M. Patel

field-notes

Claude structured outputs can silently change your enum

Structured outputs promise you can stop validating. The same page documents four ways the output can miss your schema, and one of them returns a normal 200 with no stop_reason. Measured: the caveat says it covers strict tool use, and the strict tool use page never links it.

13 min read173

The text editor tool prices a version the tool reference does not list (2026)

Claude's text editor tool publishes one token cost, keyed to text_editor_20250429, a version the canonical tool reference omits. The two versions it does list have no published figure, both follow-up links land on the wrong table, and the endpoint that would settle it is mentioned zero times on any tool page.

14 min read118
Field notes

Claude's memory tool lost its exemption from context editing

Anthropic's memory tool docs used to tell you to exempt memory from context editing. That paragraph was removed between February and August 2026, the cookbook still cites it at a dead anchor, and the surviving combined example ships unprotected in all nine languages.

12 min read235

The 1-hour cache fix for batches has a break-even you cannot see

Anthropic's batch docs tell you to swap the 5-minute prompt cache for the 1-hour one. The swap costs a 60 percent heavier write on every miss, and the hit rate it has to reach to pay for itself is 57.6 percent at the bottom of Anthropic's own published band and outside that band at the top. A correction to my own September post.

12 min read186

Claude's token counter stops at the advisor's first call

The advisor tool is the only server tool Anthropic's count_tokens endpoint accepts, and the count covers the executor's first sampling call only. The top-level usage object is executor-only too, so both default meters miss the advisor sub-inference. Arithmetic on Anthropic's own published example puts 75.2 percent of output tokens outside the headline figures.

10 min read107

The container outlives its own expires_at

The Claude code execution tool returns an expires_at that is a short rolling value, not the real 30-day container limit. Three tool versions share two runtimes, two timeouts arrive in two different shapes, and web search quietly adds a second execution environment.

9 min read169

The Claude models endpoint has no retirement field

GET /v1/models returns a capability tree and no lifecycle field at all. Meanwhile two of the five platforms that serve Claude run a different retirement clock, and their model tables still list identifiers the Claude API retired months ago.

11 min read227

Claude rate limit headers measure two things two ways

The anthropic-ratelimit headers are not one meter. Input is an estimate that gets corrected, output is a running tally, and the tokens header reports whichever limit currently binds.

12 min read224

Context engineering is four mechanisms, not one

Context engineering on the Claude platform is not a setting. It is four mechanisms at four points in the pipeline, and the one everybody enables first pays for context window with prompt cache.

14 min read179
AI dev workflow

Claude Opus vs Sonnet: what breaks when you swap the model string

Comparisons of Claude Opus, Sonnet and Haiku score capability, speed and price per token. None of them mention that the model string is part of your request contract. Swap it and thinking can turn itself on, your answer can move out of content[0], and a max_tokens you never touched can start truncating. Eight measured differences, September 2026.

13 min read124