fix(reforcexy): close the review findings on the gate and its harness
Two of the guards could not fail on the defect they name.
The measured-file guard filtered registrations by the dotted prefix, which
discarded exactly the bare-stem duplicate its own comment called out as the
threat, so it stayed green with the shadow copy live. It now counts every
registration shape-agnostically, and a second guard rejects any measured file
registered under a bare stem. Both walks were also one level too high: they
scanned `ReforceXY/` and so matched the out-of-scope reward-space modules.
The shuffle guard asserted the identity of the comparator the harness had
just installed, which a constant comparator would satisfy. It now asserts the
ORDER the loader produces — alphabetical exactly when no seed is set, and not
alphabetical when one is — with the seeded comparator rebuilt rather than read
out of the module, so the seed is actually exercised.
Also from review: the hyperopt eval-frequency test was a fixed point that
certified a reduction it never performed, so deleting the reduction left it
green; the net-arch tests asserted a key set and a type where the names
claimed widths; the numpy restore compared one element of a five-tuple and
could not see an advanced stream position; the CI step was named for an
ordering it cannot permute, since unittest sorts module and class order
alphabetically and consults no hook for either; and the sampler-pin comment
claimed a guarantee two wholesale call sites void.
92 tests green under four orderings; gate exits 0 at 57.1%; ruff clean;
basedpyright snapshot unchanged.