code wiki / _hdl_build / nx_vsbench.nx

nx_vsbench.nx source

↩ module page · 352 lines · 22085 B

1// nx_vsbench.nx -- THE HEAD-TO-HEAD VS-RULER: are we BETTER than the reference titles, or do we merely 2// have the same feature LIST? nx_gamebench scores capability PRESENCE (HAVE/PARTIAL/GAP) against each 3// title's declared vector. Presence can prove PARITY OF FEATURE LIST and nothing more -- its own honest 4// block already says so: titles_reference_run = 0. This organ is the instrument that makes "better" 5// ARITHMETIC instead of opinion. 6// 7// THE CONTRACT: a head-to-head CELL is (title, axis, ours_permil, theirs_permil, evidence_tier). 8// tier 3 EXT = measured from a captured artifact that EXISTS ON DISK (the only tier that counts) 9// tier 2 DOC = a published spec/manual figure 10// tier 1 DECL = our own declaration (weakest -- this is what a self-graded board is made of) 11// The headline beat_index_permil is computed over TIER-3 CELLS ONLY. Declarations can never raise it. 12// With ZERO ext cells the headline is 0 and the verdict is UNGROUNDED -- which is exactly what it must 13// say today, because we have never run a reference title head-to-head. Everything we BELIEVE about our 14// structural advantages is emitted as HYPOTHESIS-NOT-CLAIM until a cell carries real evidence. 15// That is the cynical-instruments law applied to the one number that could flatter us most. 16// 17// A SECOND QUEUE, DELIBERATELY: nx_gamebench's gap_queue ranks by titles_blocked = a PARITY objective 18// ("what unblocks the most titles"). It structurally cannot answer "what makes us BETTER" -- which is why 19// genetics-breeding sits near the bottom there (only Breeders needs it) while being one of the few axes 20// where a generative emitter can beat a hand-authored roster outright. vsbench publishes the ADVANTAGE 21// view beside it. Two objectives, two queues, both honest. 22// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0 23import "nx_syscalls.nx" 24const VS_MAGIC_1094: i64 = 1094 25const VS_MAGIC_2173: i64 = 2173 26const VS_MAGIC_3907: i64 = 3907 27 28const VS_OUT: i64 = 262144 29const VS_TIER_EXT: i64 = 3 30const VS_TIER_DOC: i64 = 2 31const VS_TIER_DECL: i64 = 1 32const VS_CELLCAP: i64 = 256 33const VS_UNMEASURED: i64 = 0 - 1 34 35func ocat(o: *u8, at: i64, s: *u8) -> i64 { var i: i64=0; var a: i64=at; while s[i]!=(0 as u8){o[a]=s[i]; a=a+1; i=i+1} return a } 36func onum(o: *u8, at: i64, v: i64) -> i64 { 37 var a: i64=at 38 var m: i64=v 39 if m<0 { o[a]=45 as u8; a=a+1; m=0-m } 40 let t: *u8 = sys_mmap(32) 41 var k: i64=0 42 if m==0 { t[0]=48 as u8; k=1 } 43 while m>0 { t[k]=(48+(m%10)) as u8; m=m/10; k=k+1 } 44 var i: i64=0 45 while i<k { o[a]=t[k-1-i]; a=a+1; i=i+1 } 46 return a 47} 48func slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8) { n=n+1 } return n } 49 50// EXCEED IS STRICT. Equality is PARITY, never a win. A ruler that calls a tie a victory is a rubber stamp. 51func vs_verdict(mine: i64, theirs: i64) -> *u8 { 52 if mine > theirs { return "EXCEED" as *u8 } 53 if mine == theirs { return "PARITY" as *u8 } 54 return "BEHIND" as *u8 55} 56func vs_tierstr(t: i64) -> *u8 { 57 if t==3 { return "EXT" as *u8 } 58 if t==2 { return "DOC" as *u8 } 59 if t==1 { return "DECL" as *u8 } 60 return "NONE" as *u8 61} 62func vs_clsstr(c: i64) -> *u8 { 63 if c==1 { return "STRUCTURAL" as *u8 } 64 return "FIDELITY" as *u8 65} 66 67func main(argc: i64, argv: *i64) -> i64 { 68 let ob: *u8 = sys_mmap(VS_OUT) 69 70 // ---- SELFTEST MODE: proves the scoring RULES on fixed inputs so a gate can bite them ---- 71 if argc > 1 { 72 let a1: *u8 = argv[1] as *u8 73 if slen(a1)==8 { 74 if a1[0]==(115 as u8) { 75 var s: i64 = 0 76 s = ocat(ob, s, "VSSELFTEST verdict 5v4=" as *u8); s = ocat(ob, s, vs_verdict(5,4)) 77 s = ocat(ob, s, " 4v4=" as *u8); s = ocat(ob, s, vs_verdict(4,4)) 78 s = ocat(ob, s, " 4v5=" as *u8); s = ocat(ob, s, vs_verdict(4,5)) 79 s = ocat(ob, s, " tier3=" as *u8); s = ocat(ob, s, vs_tierstr(3)) 80 s = ocat(ob, s, " tier1=" as *u8); s = ocat(ob, s, vs_tierstr(1)) 81 s = ocat(ob, s, " tier0=" as *u8); s = ocat(ob, s, vs_tierstr(0)) 82 s = ocat(ob, s, "\n" as *u8) 83 sys_write(1, ob, s) 84 return 0 85 } 86 } 87 } 88 89 // ================= THE AXES ================= 90 // class 0 = FIDELITY (the reference titles lead here; closing it is a long measured climb) 91 // class 1 = STRUCTURAL (a sovereign emitter can lead here BY CONSTRUCTION -- but only once measured) 92 // dem = how many of the 10 adult reference titles the axis materially matters to. 93 // ours = OUR measured permil on our own instrument, or -1 = we have never measured it either. 94 // Every ours >= 0 MUST name an artifact the gate stats on disk. 95 let NA: i64 = 15 96 let axnm: *i64 = sys_mmap(NA*8) as *i64 97 let axcls: *i64 = sys_mmap(NA*8) as *i64 98 let axdem: *i64 = sys_mmap(NA*8) as *i64 99 let axours: *i64 = sys_mmap(NA*8) as *i64 100 let axart: *i64 = sys_mmap(NA*8) as *i64 101 let axhyp: *i64 = sys_mmap(NA*8) as *i64 102 103 var zi: i64 = 0 104 while zi < NA { axours[zi]=VS_UNMEASURED; axart[zi]=0; axhyp[zi]=0; zi=zi+1 } 105 106 axnm[0]="character-render-realtime" as i64; axcls[0]=0; axdem[0]=7 107 axnm[1]="character-animation-paired" as i64; axcls[1]=0; axdem[1]=4 108 axnm[2]="soft-body-dynamics" as i64; axcls[2]=0; axdem[2]=4 109 axnm[3]="rendered-still-consistency" as i64; axcls[3]=0; axdem[3]=3 110 axnm[4]="char-customization-ui" as i64; axcls[4]=0; axdem[4]=4 111 axnm[5]="vr-runtime" as i64; axcls[5]=0; axdem[5]=4 112 axnm[6]="visual-scene-quality" as i64; axcls[6]=0; axdem[6]=10 113 axnm[7]="networking-multiplayer" as i64; axcls[7]=1; axdem[7]=4 114 axnm[8]="genetics-breeding" as i64; axcls[8]=1; axdem[8]=1 115 axnm[9]="transformation-morph" as i64; axcls[9]=1; axdem[9]=2 116 axnm[10]="relationship-schedule-sim" as i64; axcls[10]=1; axdem[10]=2 117 axnm[11]="llm-npc-dialogue" as i64; axcls[11]=1; axdem[11]=0 118 axnm[12]="wardrobe-state-coherence" as i64; axcls[12]=1; axdem[12]=3 119 axnm[13]="adult-gating-by-construction" as i64; axcls[13]=1; axdem[13]=10 120 axnm[14]="determinism-seed-portability" as i64; axcls[14]=1; axdem[14]=0 121 122 // OUR OWN measured numbers, each pinned to an artifact that must exist on disk (gate tooth T2). 123 // Deliberately sparse: an axis with no artifact stays -1 rather than acquiring a flattering guess. 124 axours[12]=1000; axart[12]="knowledge/nx_wardrobe_state.sav" as i64 125 axours[13]=1000; axart[13]="knowledge/nx_wardrobe_adultgate.txt" as i64 126 axours[14]=1000; axart[14]="knowledge/nx_gamesave_t.sav" as i64 127 axours[6]=759; axart[6]="sites/nishifamily/world/creatures.png" as i64 128 129 // HYPOTHESES -- what we BELIEVE beats the targets. Emitted as HYPOTHESIS-NOT-CLAIM, never as a score. 130 axhyp[7]="bit-determinism makes lockstep/rollback netcode free by construction; the reference titles pay for it in engine work" as i64 131 axhyp[8]="a generative genome emits unbounded unique characters; a hand-authored roster is finite by construction" as i64 132 axhyp[9]="transformation is a genome delta re-emitted through the same body rules, not a second authored asset set" as i64 133 axhyp[10]="relationship sim composes the certified worldsim/companion parts rather than bespoke per-title scripting" as i64 134 axhyp[11]="not one reference title has freeform in-game NPC dialogue; an axis they do not contest at all" as i64 135 axhyp[12]="wardrobe state is a coherence-invariant state machine that cannot self-contradict across save/load" as i64 136 axhyp[13]="the adult invariant fails closed at the compiler and is mutation-proven; competitors hold it by policy, not by proof" as i64 137 axhyp[14]="a character is a SEED, not an asset pack: scene-share is a string where VaM-class sharing is gigabytes" as i64 138 139 // ================= THE REFERENCE TITLES ================= 140 let NT: i64 = 11 141 let ttnm: *i64 = sys_mmap(NT*8) as *i64 142 ttnm[0]="Breeders of the Nephelym" as i64 143 ttnm[1]="Monster Girl Island Prologue" as i64 144 ttnm[2]="Mad Island" as i64 145 ttnm[3]="Custom Maid 3D 2" as i64 146 ttnm[4]="Carnal Instinct" as i64 147 ttnm[5]="Operation Lovecraft: Fallen Doll" as i64 148 ttnm[6]="Being a DIK" as i64 149 ttnm[7]="VR Hot" as i64 150 ttnm[8]="Virt-a-Mate" as i64 151 ttnm[9]="Corruption of Champions" as i64 152 // Veloren is NOT an adult reference -- it is the in-corpus REAL-TIME 3D FIDELITY YARDSTICK this lane 153 // has used since the first ground-truth run, and the only reference render we can capture first-hand. 154 ttnm[10]="Veloren (3D fidelity yardstick)" as i64 155 156 // ================= THE CELLS ================= 157 // A cell only exists once somebody MEASURED both sides. Today: none. The empty matrix IS the finding, 158 // and it is the same finding nx_gamebench already publishes as titles_reference_run = 0. 159 let cti: *i64 = sys_mmap(VS_CELLCAP*8) as *i64 160 let cax: *i64 = sys_mmap(VS_CELLCAP*8) as *i64 161 let cmine: *i64 = sys_mmap(VS_CELLCAP*8) as *i64 162 let cthe: *i64 = sys_mmap(VS_CELLCAP*8) as *i64 163 let ctier: *i64 = sys_mmap(VS_CELLCAP*8) as *i64 164 var ncell: i64 = 0 165 // ---- FIRST TIER-3 EXT CELL, 2026-07-25 ---- 166 // Both sides captured headless and scored by the SAME hardened nx_game_critic (via nx_frame_score) at 167 // the SAME 400x240 scale: OURS = the deployed /private/m1_engine canvas, THEIRS = Veloren's own 168 // in-game render from veloren.net. One code path, no per-side tuning => MEASURED, not declared. 169 // OURS 719 RICH (pal 659 det4 42 grad 941) vs THEIRS 726 RICH (pal 1126 det4 79 grad 173) => BEHIND. 170 // Note the composite FLATTERS us: our 941 gradient is the disclosed dither, while palette (1.7x) and 171 // detail4 (1.9x) -- the dimensions that encode real scene richness -- are theirs by a wide margin. 172 // RE-EVIDENCED 2026-07-26: the original 719v726 cell was measured from a frame whose artifacts were 173 // never banked on the NAS -- unverifiable evidence is not evidence (the vsbench contract applied to 174 // ITSELF). Both sides re-scored ON the NAS by the registered nx_frame_score from on-disk artifacts: 175 // OURS knowledge/ours_m1.nxfh 713 RICH; THEIRS knowledge/veloren1.nxfh (veloren.net own render, 176 // captured at NATURAL 1168x659 -- a 1920x1080 letterboxed capture scored 555 with cov 372, a 177 // 210-point corruption caught by probing naturalWidth) 765 RICH (pal 3592 det4 104 cov 983). 178 // => BEHIND; their palette is 5.8x ours. 179 cti[0]=10; cax[0]=6; cmine[0]=713; cthe[0]=765; ctier[0]=VS_TIER_EXT; ncell=1 180 // ---- SECOND TIER-3 EXT CELL, 2026-07-25 (the first ADULT reference measured head-to-head) ---- 181 // Both sides scored ON THE NAS by the REGISTERED nx_frame_score (seq890 eaten: the evidence path is 182 // now reproducible by any agent over /mcp), same 400x240 scale, same png2hex encoder, no per-side 183 // tuning. OURS = deployed /private/m1_engine canvas mid-run (knowledge/ours_m1.nxfh): 713 RICH 184 // (pal 620 det4 40 grad 873 cohere 925). THEIRS = Breeders of the Nephelym, the developer's own 185 // published in-game render, store screenshot 1 (knowledge/breeders1.nxfh): 789 SOTA (pal 1904 186 // det4 125 grad 129 cohere 898). => BEHIND, and the dimensions say why honestly: their palette is 187 // 3.1x ours and their coarse detail 3.1x ours, while our strongest number (grad 873) is the 188 // disclosed dither. The composite gap 76 understates the scene-richness gap. Fix = real scene 189 // geometry/palette (character-render-realtime + procgen-world), not more texture. 190 // RE-MEASURED 2026-07-26 after the worldpipe LIGHTING stage (F1158) landed in the M2D game frame: 191 // OURS = knowledge/nx_m2d_frame.nxfh, the SHIPPED M2D engine's own rendered frame (per-pixel lit 192 // staged-world overworld + dungeon + HUD): 822 (pal 2173 det4 163 grad 157 cohere 869 -- coherence 193 // nearly 2x the noise-cap and gradient modest, so this is geometry, not the dither trick). THEIRS 194 // unchanged: Breeders' own store render 789 (pal 1904 det4 125). => the FIRST EXCEED CELL, honestly 195 // caveated: our frame is a 2D top-down title, theirs a 3D title -- the axis compares FRAMES on one 196 // instrument, and both sides are each game's best-foot-forward frame. Prior pairing disclosed: 197 // the m1 dungeon canvas scored 713 BEHIND; the climb came from lighting + dense worldpipe sampling, 198 // both stage-causally gate-proven (worldpipe_gate T9: sunward 195/201 brighten, shade 181/183 darken). 199 cti[1]=0; cax[1]=6; cmine[1]=822; cthe[1]=789; ctier[1]=VS_TIER_EXT; ncell=2 200 // ---- F1147 SWEEP 2026-07-26: four more refs scored ON the NAS, same instrument/scale/encoder. 201 // THEIRS = each title's own first store screenshot at natural size; OURS = the shipped M2D frame 202 // (822, knowledge/nx_m2d_frame.nxfh) for every cell. ALL FOUR BEHIND -- the distribution corrects 203 // the two-cell 500 down; a beat index that falls as evidence arrives is the instrument working. 204 // NOTE the critic SATURATES at 1000 (Mad Island pal 4569, VR HOT capped) -- the known Round-13 205 // ceiling; it cannot rank the top of the market, only distance us from it. 206 cti[2]=2; cax[2]=6; cmine[2]=822; cthe[2]=1000; ctier[2]=VS_TIER_EXT; ncell=3 // Mad Island (knowledge/ref_madisland.nxfh) 207 cti[3]=4; cax[3]=6; cmine[3]=822; cthe[3]=845; ctier[3]=VS_TIER_EXT; ncell=4 // Carnal Instinct (knowledge/ref_carnal.nxfh; their pal VS_MAGIC_1094 < ours VS_MAGIC_2173 but grad+composite ahead) 208 cti[4]=6; cax[4]=6; cmine[4]=822; cthe[4]=913; ctier[4]=VS_TIER_EXT; ncell=5 // Being a DIK (knowledge/ref_dik.nxfh, pal VS_MAGIC_3907) 209 cti[5]=7; cax[5]=6; cmine[5]=822; cthe[5]=1000; ctier[5]=VS_TIER_EXT; ncell=6 // VR HOT (knowledge/ref_vrhot.nxfh) 210 211 // ---- tally by tier ---- 212 var next: i64 = 0 213 var ndoc: i64 = 0 214 var ndecl: i64 = 0 215 var nexceed: i64 = 0 216 var ci: i64 = 0 217 while ci < ncell { 218 if ctier[ci]==VS_TIER_EXT { next=next+1 } 219 if ctier[ci]==VS_TIER_DOC { ndoc=ndoc+1 } 220 if ctier[ci]==VS_TIER_DECL { ndecl=ndecl+1 } 221 ci = ci + 1 222 } 223 // THE HEADLINE, over EXT cells ONLY. No EXT cells => 0 and UNGROUNDED. Nothing else can lift it. 224 ci = 0 225 while ci < ncell { 226 if ctier[ci]==VS_TIER_EXT { if cmine[ci] > cthe[ci] { nexceed=nexceed+1 } } 227 ci = ci + 1 228 } 229 var beat: i64 = 0 230 if next > 0 { beat = (nexceed*1000)/next } 231 var bverd: *u8 = "UNGROUNDED" as *u8 232 if next > 0 { bverd = "MEASURED" as *u8 } 233 234 // ================= EMIT ================= 235 var j: i64 = 0 236 j = ocat(ob, j, "{\x22v\x22:1,\x22domain\x22:\x22vsbench\x22,\x22title\x22:\x22Head-to-head VS-ruler -- are we BETTER than the reference titles, or only feature-list equal?\x22" as *u8) 237 j = ocat(ob, j, ",\x22contract\x22:\x22a cell is (title,axis,ours,theirs,tier). the headline counts TIER-3 EXT cells ONLY -- measured off a captured artifact on disk. DECL cells can never raise it. zero EXT cells => 0 / UNGROUNDED.\x22" as *u8) 238 j = ocat(ob, j, ",\x22evidence_tiers\x22:{\x223\x22:\x22EXT measured from a captured artifact on disk\x22,\x222\x22:\x22DOC published spec or manual figure\x22,\x221\x22:\x22DECL our own declaration -- weakest\x22,\x220\x22:\x22NONE\x22}" as *u8) 239 240 j = ocat(ob, j, ",\x22axes\x22:[" as *u8) 241 var ai: i64 = 0 242 while ai < NA { 243 if ai>0 { j = ocat(ob, j, "," as *u8) } 244 j = ocat(ob, j, "{\x22axis\x22:\x22" as *u8); j = ocat(ob, j, axnm[ai] as *u8) 245 j = ocat(ob, j, "\x22,\x22class\x22:\x22" as *u8); j = ocat(ob, j, vs_clsstr(axcls[ai])) 246 j = ocat(ob, j, "\x22,\x22adult_titles_needing\x22:" as *u8); j = onum(ob, j, axdem[ai]) 247 j = ocat(ob, j, ",\x22ours_permil\x22:" as *u8); j = onum(ob, j, axours[ai]) 248 j = ocat(ob, j, ",\x22our_artifact\x22:\x22" as *u8) 249 if axart[ai]!=0 { j = ocat(ob, j, axart[ai] as *u8) } 250 j = ocat(ob, j, "\x22,\x22theirs_measured\x22:0,\x22verdict\x22:\x22UNGROUNDED-NO-CELL\x22}" as *u8) 251 ai = ai + 1 252 } 253 j = ocat(ob, j, "]" as *u8) 254 255 j = ocat(ob, j, ",\x22reference_titles\x22:[" as *u8) 256 // Per-title tally COMPUTED from the cell arrays. This line used to be the hardcoded string 257 // "cells_ext":0,"NOT-RUN" -- honest when zero cells existed, a stale lie the moment one landed. 258 // A published number must be derived from the same rows as the headline, never frozen prose. 259 var ti: i64 = 0 260 while ti < NT { 261 if ti>0 { j = ocat(ob, j, "," as *u8) } 262 var text_n: i64 = 0 263 var texc_n: i64 = 0 264 var tbeh_n: i64 = 0 265 var ck: i64 = 0 266 while ck < ncell { 267 if cti[ck]==ti { if ctier[ck]==VS_TIER_EXT { 268 text_n = text_n + 1 269 if cmine[ck] > cthe[ck] { texc_n = texc_n + 1 } 270 if cmine[ck] < cthe[ck] { tbeh_n = tbeh_n + 1 } 271 } } 272 ck = ck + 1 273 } 274 j = ocat(ob, j, "{\x22title\x22:\x22" as *u8); j = ocat(ob, j, ttnm[ti] as *u8) 275 j = ocat(ob, j, "\x22,\x22cells_ext\x22:" as *u8); j = onum(ob, j, text_n) 276 j = ocat(ob, j, ",\x22headtohead\x22:\x22" as *u8) 277 if text_n==0 { j = ocat(ob, j, "NOT-RUN" as *u8) } 278 if text_n>0 { 279 if texc_n==text_n { j = ocat(ob, j, "EXCEED" as *u8) } 280 if texc_n<text_n { if tbeh_n==text_n { j = ocat(ob, j, "BEHIND" as *u8) } } 281 if texc_n<text_n { if tbeh_n<text_n { j = ocat(ob, j, "MIXED" as *u8) } } 282 } 283 j = ocat(ob, j, "\x22}" as *u8) 284 ti = ti + 1 285 } 286 j = ocat(ob, j, "]" as *u8) 287 288 // ---- EVIDENCE WORKLIST: ranked by how many reference titles the axis matters to. This is the 289 // ranked TODO that turns UNGROUNDED into MEASURED -- the actual Phase-A build order. 290 j = ocat(ob, j, ",\x22evidence_worklist\x22:[" as *u8) 291 let used: *i64 = sys_mmap(NA*8) as *i64 292 ai = 0 293 while ai < NA { used[ai]=0; ai=ai+1 } 294 var emitted: i64 = 0 295 var rounds: i64 = 0 296 while rounds < NA { 297 var best: i64 = 0-1 298 var bsc: i64 = 0-1 299 ai = 0 300 while ai < NA { 301 if used[ai]==0 { if axdem[ai] > bsc { bsc=axdem[ai]; best=ai } } 302 ai = ai + 1 303 } 304 if best >= 0 { 305 used[best]=1 306 if emitted>0 { j = ocat(ob, j, "," as *u8) } 307 j = ocat(ob, j, "{\x22rank\x22:" as *u8); j = onum(ob, j, emitted+1) 308 j = ocat(ob, j, ",\x22axis\x22:\x22" as *u8); j = ocat(ob, j, axnm[best] as *u8) 309 j = ocat(ob, j, "\x22,\x22adult_titles_needing\x22:" as *u8); j = onum(ob, j, axdem[best]) 310 j = ocat(ob, j, ",\x22ours_permil\x22:" as *u8); j = onum(ob, j, axours[best]) 311 j = ocat(ob, j, ",\x22need\x22:\x22capture a THEIRS artifact for this axis and score it on OUR instrument at OUR scale, then declare the cell at tier EXT\x22}" as *u8) 312 emitted = emitted + 1 313 } 314 rounds = rounds + 1 315 } 316 j = ocat(ob, j, "]" as *u8) 317 318 // ---- ADVANTAGE HYPOTHESES: what we believe wins. Labelled so nobody can quote it as a result. 319 j = ocat(ob, j, ",\x22advantage_hypotheses\x22:[" as *u8) 320 var hem: i64 = 0 321 ai = 0 322 while ai < NA { 323 if axhyp[ai]!=0 { 324 if hem>0 { j = ocat(ob, j, "," as *u8) } 325 j = ocat(ob, j, "{\x22axis\x22:\x22" as *u8); j = ocat(ob, j, axnm[ai] as *u8) 326 j = ocat(ob, j, "\x22,\x22hypothesis\x22:\x22" as *u8); j = ocat(ob, j, axhyp[ai] as *u8) 327 j = ocat(ob, j, "\x22,\x22status\x22:\x22HYPOTHESIS-NOT-CLAIM\x22}" as *u8) 328 hem = hem + 1 329 } 330 ai = ai + 1 331 } 332 j = ocat(ob, j, "]" as *u8) 333 334 j = ocat(ob, j, ",\x22axes_total\x22:" as *u8); j = onum(ob, j, NA) 335 j = ocat(ob, j, ",\x22reference_titles_total\x22:" as *u8); j = onum(ob, j, NT) 336 j = ocat(ob, j, ",\x22cells_total\x22:" as *u8); j = onum(ob, j, ncell) 337 j = ocat(ob, j, ",\x22cells_ext\x22:" as *u8); j = onum(ob, j, next) 338 j = ocat(ob, j, ",\x22cells_doc\x22:" as *u8); j = onum(ob, j, ndoc) 339 j = ocat(ob, j, ",\x22cells_decl\x22:" as *u8); j = onum(ob, j, ndecl) 340 j = ocat(ob, j, ",\x22cells_exceeded\x22:" as *u8); j = onum(ob, j, nexceed) 341 j = ocat(ob, j, ",\x22beat_index_permil\x22:" as *u8); j = onum(ob, j, beat) 342 j = ocat(ob, j, ",\x22beat_verdict\x22:\x22" as *u8); j = ocat(ob, j, bverd); j = ocat(ob, j, "\x22" as *u8) 343 344 j = ocat(ob, j, ",\x22honest\x22:\x22beat_index_permil is 0 and the verdict is UNGROUNDED because ZERO head-to-head cells carry EXT evidence. That is not a placeholder, it is the measurement: nobody has ever scored a reference title on our instruments. nx_gamebench publishes the same fact as titles_reference_run=0. Until a cell is EXT, every belief about beating these titles -- including all of the advantage_hypotheses below -- is UNPROVEN, and this organ refuses to convert any of it into a score.\x22" as *u8) 345 j = ocat(ob, j, ",\x22why_a_second_queue\x22:\x22nx_gamebench gap_queue ranks by titles_blocked = a PARITY objective (what unblocks the most titles). It cannot express ADVANTAGE: genetics-breeding ranks near the bottom there because only one reference title needs it, while being one of the few axes where a generative emitter beats a hand-authored roster by construction. vsbench ranks the same world by evidence-needed and by advantage class. Two objectives, two queues.\x22" as *u8) 346 j = ocat(ob, j, ",\x22method\x22:\x22EXCEED IS STRICT: mine>theirs=EXCEED, mine==theirs=PARITY, else BEHIND. A tie is never a win. beat_index_permil = 1000*exceeded_ext_cells/ext_cells; undefined (0/UNGROUNDED) when ext_cells=0.\x22" as *u8) 347 j = ocat(ob, j, ",\x22gate\x22:\x22nx_vsbench_gate (anti-vacuity: with no EXT evidence the headline MUST be 0/UNGROUNDED; anti-fabrication: every ours_permil names an artifact stat-able on disk)\x22}" as *u8) 348 j = ocat(ob, j, "\n" as *u8) 349 350 sys_write(1, ob, j) 351 return 0 352}