shootflow cull --picks FILE scores a folder cull against the frames a photographer actually kept: keeper hit rate, and the false-reject rate, the costly miss where a wanted frame is flagged reject.
A rate alone does not say what to change. The report now adds reject_reasons, a count of why the rejected picks were rejected (blurry, bad exposure, closed eyes, or "lost to a better frame" for near-duplicates). If most misses are "blurry", the sharpness threshold is too strict for that shoot's style; if they are "closed eyes", the blink score is.
The test uses a made-up folder where one pick is rejected as blurry and one for closed eyes. We still have no real shoot with a photographer's picks, so the thresholds are untuned. That remains the open item in the project's README.