Selection-model prior checks: simulate from each prior, refit with the other
Generic simulation on the z scale (se 1, 40 originals filtered at |z| > 1.96, replication z_R ~ N(theta, 1), 300 reps). The residual is the sign-coded mean of z_R minus the posterior-mean prediction from a prior fitted to the originals by truncated MLE. Truth spike pi0=0.6 + N(0, 2.5): a normal-prior refit gave -0.16, a spike+normal refit +0.04. Truth pi0=0.8 + N(0, 2): -0.40 vs -0.03. Truth plain N(0, 1.5): normal +0.03, spike+normal +0.11 (SE about 0.02). So the misspecified normal prior invents a replication shortfall under a spike truth, and the flexible spike+normal prior over-shrinks under a normal truth. A one-directional known-truth check favours whichever prior you simulated from. Run both directions before attributing a subgroup residual to a moderator.