-
Every lever that moves the bill
An aside off Part 4. cache_creation_input_tokens is the sum of two TTLs that price differently. That's the most expensive gap, but it's not the only one. A complete picture of every input that moves the effective cost of a Claude Code turn.
-
Token accounting is harder than it looks
Part 4 of the anatomy series. The four token kinds, the subagent rollup undercount trap, and why turning session JSONL into accurate cost figures needs model identity, service_tier, and an external pricing table rather than a single sum.
-
What launched this turn? Subagents, MCP tools, and Skills
A short aside off Part 3. Every assistant line can carry a record of how it came to exist — which subagent ran it, which MCP tool it routed through, which Skill it ran under. The attribution* fields, what each one records, and the one that is not the sidechain signal it looks like.
-
Inside the subagent trace file
Part 3 of the anatomy series. When Claude Code delegates to a subagent, the parent session records only a rollup — the subagent's real work lives in a separate trace file. Where it is, how it links back, and why isSidechain is the field that matters.
-
How often does Claude retry a tool call?
The session JSONL's tool_use_id pairing key (introduced in Part 2) lets you measure how often Claude retries after a tool error — and the answer is different by tool, which is where it gets interesting.