An eval is an experiment.
The same 24 hosted models ran on five tasks with one prompt per task, at temperature 0 with reasoning off — so when a model's score differs between two tasks, the task is the only thing that changed.
Every run carries a fingerprint: hashes of the data, the prompt and the scoring code, the model behind the alias, library versions, the commit. Before the harness shows a single delta between two runs, it lists the fields that moved.
$ make run-compare BASE=… CAND=… Fingerprints DIFFER. Fields that moved: arm.params.sentences
In your project Your arms are your candidates — prompts, models, retrieval settings, thresholds — one YAML file each.