# Thinking block round-trip discipline

1. Each thinking block carries a `signature` field: an encrypted copy of the full reasoning. In multi-turn and tool-use conversations, pass thinking blocks back unchanged so the server can decrypt the signature and reconstruct the original thinking for prompt construction.
2. Never edit, summarize, or truncate a thinking block before re-sending it. The signature covers the original content; modified blocks cannot be verified.
3. Preserve `redacted_thinking` blocks as well. When some thinking is encrypted for safety reasons it arrives as `redacted_thinking` with a data field; keep it in the message history exactly as received.
4. When streaming thinking content, watch for the `signature_delta` event just before `content_block_stop`; the signature is delivered there, not in the text deltas. Accumulate it like any other per-block delta.
5. If you filter message history to save context (summarization, truncation), exclude thinking blocks from the filter or keep them verbatim. Dropping them silently degrades the model's continuity, and the failure looks like the model "forgetting" earlier reasoning.
6. Do not log thinking block contents to places with weaker access controls than your prompt logs. They contain the model's unfiltered reasoning trace.

Failure modes this prevents: stripping thinking blocks in a "clean history" helper and breaking follow-up quality; losing the signature_delta in a text-only stream consumer; editing thinking text and invalidating the signature.
