did it change, or did it wobble?

The question a customer actually asks is never "what is my score". It is "my score moved four points, do I care". Answering that requires a paired comparison, because the same prompts appear on both sides and pairing removes prompt-to-prompt variation from the difference.

which tests live here?

paired_difference, a cluster bootstrap on per-prompt differences. mcnemar_detection, an exact test for a binary appear or not appear flip. holm_adjust, a family-wise correction, because a dashboard that tests forty prompts and highlights the two that moved has run forty tests and reported the winners.

when is no verdict the answer?

When the two sides were measured on different model versions. The comparison is then confounded, and the verdict says so instead of printing a number. Providers update hosted models without changelogs, and a tool that ignores that will confidently attribute the provider's change to the customer's work.

The same holds for the surface. Two snapshots measured through different doors, a searched arm and an unsearched one, are two conditions, and every reason two snapshots should not be compared is collected and named.

what does it export?

Every public name in lulumelon.mirror.compare that its source says something about, with the first paragraph of what it says.

Verdict ± The outcome of one comparison, with its own reason for existing.
paired_difference(before, after, *, label='diff', confidence=0.95, resamples=2000, seed=0, confounded_by=()) ± Bootstrap CI for the mean per-prompt change, resampling prompts.
mcnemar_detection(before, after, *, label='detection', confidence=0.95, confounded_by=()) ± Exact McNemar test on per-prompt appear/not-appear, using majorities.
holm_adjust(p_values, alpha=0.05) ± Holm-Bonferroni step-down: which hypotheses survive at family-wise alpha.
surface_confounds(before, after) ± Engines whose measurement surface is not identical across snapshots.
design_confounds(before, after) ± Every reason these two snapshots should not be compared, deduplicated.
model_confounds(before, after) ± Engines whose reported model version is not identical across snapshots.

which commands reach it?