Small changes can be expensive
Exact prefix matching means harmless-looking differences can destroy cache hits: timestamps at the top, random request IDs, unstable JSON key order, regenerated tool schemas, or changing examples. The expensive part is not the variable content itself. It is placing that variable content before the reusable prefix ends.
The top five cache busters
1. Timestamp or request ID in the first line. 2. Tool schemas regenerated with non-deterministic key order. 3. Examples that get re-shuffled per request. 4. A 'tip of the day' or rotating banner above the rules. 5. User-facing welcome messages that mention the user's name or the current time inside the prefix region.
Make volatility obvious
Put all changing material under a clear tail section. If a timestamp is needed, it goes there. If a tool schema changes, version it intentionally and bump the version field rather than letting unsorted keys change the bytes silently.