When the gate says "this PR duplicates that one", it is right 98 times in 100. Half the time the right move is a link, not a close.
Run 3 found that most agent-PR rejections are coordination — someone else already landed it — and runs 4–5 built a PR memory that holds a PR when a cheap model says it is the same change as an open one. Nobody had checked whether those holds were right. Run 6B did: 100 PRs that the 4B model holds at duplicate_of ≥ 0.7 with a 20-candidate pool, stratified by what later happened to them, labelled blind by the author over five days (A, its top candidate B, the repository; no score, rank or model name) with three labels: duplicate (B makes A unnecessary), pointer (A's author should have looked at B first — backport, edge→stable promote, competing fix, follow-up, same area), unrelated. Result: 98 of 100 holds were right (bar 0.60) and 44 were the same change (bar 0.30). The 54 pointers are the finding: 28 are the same change moving to another branch, 8 are two independent fixes of one bug, 6 are follow-ups or repro↔fix pairs. When the held PR was later merged, six in seven holds are pointers; when it was closed unlabelled, three in four are the same change. A second blind labeller agrees at κ 0.77 and disagrees only on where duplicate ends and pointer begins; the 12 disagreements are adjudicated in the open. The pool size turned out not to be the lever (the verdict-level bar fails at every k; k = 10 is the default) and the whole thing costs $0.0004 per PR. Consequences: the dedup rule stays a hold; a hold never closes a PR — even at a 0.9 threshold two in five holds are pointers; and the next question the model has to answer is the relation between two PRs, not just whether they are the same. That is run 7.