{
  "cases": [
    {
      "change": "unchanged",
      "answer": "one-source",
      "naive_cache_serves": true,
      "guard_serves": true,
      "unsafe_naive_serve": false
    },
    {
      "change": "unchanged",
      "answer": "two-source",
      "naive_cache_serves": true,
      "guard_serves": true,
      "unsafe_naive_serve": false
    },
    {
      "change": "revoke-a",
      "answer": "one-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    },
    {
      "change": "revoke-a",
      "answer": "two-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    },
    {
      "change": "delete-a",
      "answer": "one-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    },
    {
      "change": "delete-a",
      "answer": "two-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    },
    {
      "change": "update-b",
      "answer": "one-source",
      "naive_cache_serves": true,
      "guard_serves": true,
      "unsafe_naive_serve": false
    },
    {
      "change": "update-b",
      "answer": "two-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    },
    {
      "change": "missing-a",
      "answer": "one-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    },
    {
      "change": "missing-a",
      "answer": "two-source",
      "naive_cache_serves": true,
      "guard_serves": false,
      "unsafe_naive_serve": true
    }
  ],
  "unsafe_naive_serves": 7,
  "guard_allowed": 3,
  "guard_denied": 7,
  "extra_cross_user_check": "denied",
  "assertions": "passed",
  "scope": "Local current-state predicate, not vector search, LLM behavior or erasure proof"
}
