The 14 rules
Each rule is deterministic static analysis over the prompt text and the request payload. No model calls, no heuristics that change between runs.
| Severity | Rule | In corpus |
|---|---|---|
| critical | A timestamp is inside the cached prefix | 76 · 32.2% |
| critical | Per-request identifiers are inside the cached prefix | 7 · 3% |
| critical | Prefix is below the provider minimum, so caching is silently skipped | 68 · 28.8% |
| critical | No cache breakpoint marker found | — |
| high | Per-user personalisation is inside the cached prefix | 11 · 4.7% |
| high | Mutable working memory lives in the system prompt | 27 · 11.4% |
| high | Volatile content sits ahead of stable content | 4 · 1.7% |
| high | Tool definitions can change between calls | 2 · 0.8% |
| high | No cache-hit-rate instrumentation found | — |
| medium | Requests in this set may land on different models or tiers | — |
| medium | Cache TTL may not match your request cadence | — |
| medium | Error-retry path appears to rebuild the prefix | — |
| medium | Prefix content is serialised non-deterministically | — |
| medium | The cached prefix is far larger than it needs to be | 36 · 15.3% |
Corpus: 236 system prompts, 16 vendors, drawn from a CC0 public-domain archive. 177 non-prompt files were excluded before counting.