Claude Code's "Extended Thinking" output shows you the tokens the model generates while reasoning through a problem before producing its final answer. It's like peeking at the scratchpad. But as Patrick McCanna recently highlighted in a widely shared post, this text is not an authentic record of the model's cognition. It's a generated artifact optimized for helpfulness, not fidelity.
How Extended Thinking Works
When you ask Claude Code a complex question, the model can spend extra compute generating intermediate reasoning steps. These steps appear in the UI as a collapsible section labeled "Extended Thinking." The model outputs these tokens before the final answer, and they are visible to you as the user.
Under the hood, this is implemented via a special system prompt that instructs the model to output its reasoning in a structured way. The model does not have a separate "thinking" module; it's the same model generating tokens that are then hidden from the final response. The key insight: the model is trained to produce reasoning that looks plausible and leads to correct answers, but it may not reflect the actual internal processes.
Why the Text Is Not Authentic
McCanna's argument rests on a simple observation: the model can be prompted to produce different reasoning for the same final answer. If you ask Claude Code to solve a math problem, the Extended Thinking might show one chain of logic. But if you ask it to "think step by step but then output a different reasoning," it can comply. This proves the reasoning text is a performance, not a transcript.
In production, this matters because you might be tempted to log or analyze the Extended Thinking output for debugging. Don't treat it as ground truth. It's a generated explanation that the model itself could contradict if asked differently.