nx_comparetree_lib.nx -- THE ONE RESOLVER FOR A /compare DATA FILE THAT LIVES IN TWO TREES.
WHY THIS EXISTS (measured 2026-08-25). The estate keeps compare data in TWO forked trees:
knowledge/compare/ 45 matrices
buildroot/knowledge/compare/ 85 matrices (a strict SUPERSET -- all 45 names appear here)
Every reader that hard-codes ONE of them is blind to whatever the other holds, and the blindness is
silent: the reader reports a property OF THE DOMAIN when the true statement is about ITS OWN PATH.
MEASURED COST, THE CASE THAT PRODUCED THIS LIB: nx_swcompare_evidence -- the referee that judges
every domain's honesty -- built its matrix path from a single hard-coded "knowledge/compare/" prefix.
For the 40 buildroot-only domains it printed
EVIDENCE: matrix file missing -- fail loud / present_axes=0 grounded=0 ungrounded=0 / verdict=RED
having examined NOT ONE ROW. A CONTROL PAIR settled that the cause was the tree and not the domain:
typography (present in BOTH trees) graded MEASURED-HONEST 9/9, while procgen and dcc (buildroot-only)
returned the identical matrix-file-missing RED from the same binary minutes apart.
THIS IS THE THIRD INSTANCE OF ONE ROOT CAUSE IN A SINGLE DAY: nx_domain_admit's C3 read one tree, its
C4 rebuilt the gates path a second time, and then ev_scan. A two-tree estate needs a two-tree resolver
in EVERY reader, and each reader that lacks one fails silently -- flatteringly or alarmingly, never
visibly. So the resolution lives HERE, once, instead of being re-derived a fourth time.
ORDER -- SETTLED PER CLASS ON 2026-09-01, AND THERE IS NO LONGER ONE ORDER. .matrix resolves
PUBLISHED-first (buildroot) and .gates resolves AUTHORED-first (knowledge). The census behind that
split, and the reason a BLANKET flip would have been wrong in half the estate, are in the
adjudication block above ct_first_published(). This header now records only the standing fact both
orders rest on, and the caveat that turned out to decide the matter:
THE TWO TREES ARE NOT COPIES. Sampled with nx_filehash cmp, every shared domain DIFFERS, and the
buildroot copy is the larger one every time:
typography 3632 vs 3805 . warden 5570 vs 6095 . mangagen 7096 vs 7125 (identical:0, all three)
buildroot/knowledge/compare/ is the tree nx_compare_regen publishes from and the tree the ranker and
nx_gateadjudicate read (GA_CMP2), and nx_domain_admit's gate asserts it by name as "the publishing
tree". PRIMARY-first preserved every existing verdict at the price of grading a file the published
page does not render, on 45 boards. The prior text called that "a SECOND, SEPARATE defect ... named
here rather than silently decided" -- THIS CHANGE IS THAT DECISION, and the verdicts it moves are
re-censused and published with it rather than left to be discovered by whoever reads a board next.
EVERY ORDER IS PINNED BY GATE TEETH IN BOTH POSITIONS (first AND fallback), so the NEXT flip is also
an adjudication and not a tweak -- which is the property the original author built this file to have.
dependencies 1 imports · 22 importers
diagram shows first 10 each side; +0 more imports, +12 more importers in the complete lists below.