The router was close enough that KiCad could point directly at the remaining opens. The missing step was letting those exact endpoint pairs become bounded, DRC-gated repair candidates instead of treating every direct patch as a tiny local stitch.
After moving KiCad CLI behind the Nix flake, pipeline:zero 42 1 2000 produced a real, repeatable board: 0 shorts / 3 unconnected, 211 routes, 205 vias, score 3.0. That became the first trustworthy target after the phantom baseline and host-tool drift were removed.
The DRC JSON reported pad-to-pad missing connections with precise endpoint coordinates. The pipeline already had a direct endpoint patch pass, but it only admitted short local gaps. These failures were longer board-level gaps, so the direct patcher never got a chance to try them.
The hint builder now derives each direct bridge budget from the DRC endpoint distance, capped to keep it bounded, instead of hard-capping all endpoint pairs at 8 mm. The inputs are KiCad DRC endpoints, pad refs, and stackup layers. There are no board-specific net or component names in the implementation.
The net-component patch path already passed the board stackup as physical copper layer names. The same-round and final direct patch paths now do the same, so via-span obstacle checks agree with the real six-layer board rather than only the compressed signal-layer index.
One direct bridge joined its endpoints and removed a failed net, but the router proxy conflict counter increased. The default direct patch API stays strict. The pipeline now uses a separate exact-gated API only where it immediately writes the candidate PCB, runs KiCad DRC, and restores the prior route unless the full DRC score improves.
pipeline:zero 42 1 2000 on commit a72ace9f with this patch: 213 routes, 209 vias, score 2.0, 0 shorts / 2 unconnected in 1309.2s. The accepted bridge was generic DRC-driven endpoint repair, not a named-net exception.
The remaining endpoint candidates are found, but pre-commit geometry validation rejects them before KiCad can score a transaction. The next generic fix is to make direct-patch candidate validation use the same physical layer model as obstacle construction and post-commit sweeps, then let exact DRC decide only the candidates that are internally coherent.
mise run pipeline:zero 42 1 2000
# Result:
# bench-results/a72ace9f-s42-r1-i2000-1777958028.json
# /tmp/kvm-bench/a72ace9f-s42-r1-i2000-1777958028/board.kicad_pcb
# 213 routes, 209 vias, 0S/2U, score 2.0