/** * The naming pass: decide which occurrences are the same point. * * This is the stage the pipeline was missing. Mining is a map over sessions and * counting is a reduce over labels, but nothing sat in between to agree on what * the labels *are*. The miner was asked to produce them from inside a single * session — to hit a shared vocabulary it had never seen — and on a real corpus * it agreed with itself 3 times in 188 candidates. `use-bun-not-npm` and * `prefer-bun-over-npm` are the same rule and never met. * * So naming happens once, with everything visible at the same time. That is a * different question than the miner was being asked: not "what is a good name * for this sentence" but "which of these sentences are the same point", which * is only answerable in the presence of the others. * * Two properties matter more than elegance here: * * - **Stability across runs.** State keys are `directive: