nx_swcompare_evidence_gate.nx
buildroot/runtime/nx_swcompare_evidence_gate.nx
about
nx_swcompare_evidence_gate.nx -- THE REFEREE'S GROUNDING RULER, AND THE ONE QUESTION IT MUST NOT GET
WRONG: CAN A COMMENT GROUND A PUBLISHED CLAIM?
WHY IT EXISTS (measured 2026-09-01). nx_swcompare_evidence decided grounding with ev_find_line -- a
WORD-BOUNDARY SUBSTRING over the raw organ source, comments and string literals and call sites all
included. gt_drape_mesh returns matches=1 over 23,412 files (corpus_complete=1) and that ONE hit is
a COMMENT in nx_garment_twin.nx line 11. The referee reported phototwin's GARMENT row [LANDED] and
fired LANDED-UNFLIPPED -- the flip worklist is where a seat looks for the cheapest closure on a
board, so the instrument was actively instructing someone to publish a capability that does not
exist. A SCANNER THAT DOES NOT SKIP COMMENTS MEASURES THE DOCUMENTATION, NOT THE CODE.
THE SUBJECT OF THIS GATE IS THE RULER, and the fix was an ADOPTION, not an invention: the referee
now composes nx_symdecl_lib's sd_present_buf, the estate's ONE SYMBOL RULER, which the GENERATOR
(nx_swcompare_matrix), the REGEN, the RANKER and the WATCH-STATE lib were ALL already calling. The
referee was the fifth wheel. So every tooth here is IN-PROCESS against that lib plus the DEMOTED
ruler kept beside it as a named control -- a fixture on which the two rulers AGREE proves nothing
about either, so each discrimination tooth asserts BOTH answers.
AND THE CENSUS IS THE POINT, NOT AN EXTRA. A ruler change rewrites every published cell, so it may
not ship on a sampled number: `census` walks EVERY .matrix row in BOTH compare trees and reports how
many currently-grounded axes are carried ONLY by a non-declaration occurrence. That count is the
number of published capabilities that do not exist. It is REPORTED, never voted on -- an
uncalibrated classifier must report numbers and never verdicts, and a gate that went RED on other
boards' data would be permanently red and therefore ignored.
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 6 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_symdecl_lib.nxnx_matrix_sym_lib.nxnx_comparetree_lib.nxnx_artifact_root.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 33 | const EG_MODE_755: i64 = 493 |
| 34 | const EG_MODE_644: i64 = 420 |
| 35 | const EG_ROOT: *u8 = "/tmp/nx_swcompare_evidence_gate" |
| 38 | const EG_PATH: i64 = 512 |
| 39 | const EG_SRC_CAP: i64 = 2097152 |
| 43 | const EG_MATRIX_CAP: i64 = 524288 |
| 44 | const EG_DENT: i64 = 262144 |
| 45 | const EG_NAME: i64 = 256 |
| 46 | const EG_SET_CAP: i64 = 65536 |
| 47 | const EG_SYM: i64 = 512 |
| 48 | const EG_LINE: i64 = 8192 |
| 49 | const EG_FIELDS: i64 = 32 |
| 50 | const EG_MINFIELDS: i64 = 9 |
| 51 | const EG_PIPE: i64 = 124 |
| 52 | const EG_NL: i64 = 10 |
| 53 | const EG_HASH: i64 = 35 |
| 54 | const EG_AT: i64 = 64 |
| 55 | const EG_DQ: i64 = 34 |
| 56 | const EG_SEP: i64 = 58 |
| 60 | const EG_BOARD_BUDGET: i64 = 4096 |
| 61 | const EG_MATRIX_SUF: *u8 = ".matrix" |
| 63 | const EG_O_BOARDS: i64 = 0 |
| 64 | const EG_O_ROWS: i64 = 1 |
| 65 | const EG_O_NEW: i64 = 2 |
| 66 | const EG_O_OLD: i64 = 3 |
| 67 | const EG_O_SUBSTRONLY: i64 = 4 |
| 68 | const EG_O_DECLONLY: i64 = 5 |
| 69 | const EG_O_UNREAD: i64 = 6 |
| 70 | const EG_O_OVER: i64 = 7 |
| 71 | const EG_O_GAPS: i64 = 8 |
| 77 | const EG_O_ABSTAIN: i64 = 9 |
| 78 | const EG_O_ABSTAIN_OLD: i64 = 10 |
| 79 | const EG_O_SLOTS: i64 = 12 |
functions
| 81 | func eg_zlen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 82 | func eg_say(s: *u8) -> i64 { sys_write(1, s, eg_zlen(s)); return 0 } |
| 83 | func eg_num(v: i64) -> i64 { gv_num(v); return 0 } |
| 89 | func eg_identch(c: i64) -> i64 |
| 96 | func eg_wordbound_control(b: *u8, n: i64, sym: *u8) -> i64 |
| 115 | func eg_path(name: *u8, dst: *u8) -> i64 |
| 122 | func eg_write(path: *u8, body: *u8, n: i64) -> i64 |
| 130 | func eg_writez(path: *u8, body: *u8) -> i64 { return eg_write(path, body, eg_zlen(body)) } |
| 137 | func eg_split(line: *u8, ln: i64, fs: *i64, fe: *i64, maxf: i64) -> i64 called by 1: eg_board |
| 149 | func eg_fcopy(line: *u8, s: i64, e: i64, dst: *u8, cap: i64) -> i64 called by 1: eg_board |
| 156 | func eg_read(path: *u8, buf: *u8, cap: i64) -> i64 |
| 163 | func eg_line_at(buf: *u8, n: i64, off: i64, dst: *u8, cap: i64) -> i64 called by 1: eg_board |
| 173 | func eg_control_off(b: *u8, n: i64, sym: *u8) -> i64 |
| 191 | func eg_set_has(set: *u8, setlen: i64, name: *u8) -> i64 called by 1: eg_scan_dir |
| 209 | func eg_board(dom: *u8, out: *i64, verbose: i64, mbuf: *u8, src: *u8, line: *u8, fs: *i64, fe: *i64) -> i64 called by 1: eg_scan_dir calls 16: sys_mmapct_compare_read_publishedeg_spliteg_fcopymsym_is_bare_absent_zmsym_is_watch_z+10 |
| 309 | func eg_scan_dir(dir: *u8, set: *u8, setlen0: i64, out: *i64, verbose: i64, mbuf: *u8, src: *u8, line: *u8, fs: *i64, fe: *i64) -> i64 |
| 355 | func eg_census(out: *i64, verbose: i64) -> i64 |
| 369 | func eg_census_print(out: *i64) -> i64 |
| 393 | func main(argc: i64, argv: *i64) -> i64 |