code wiki / _hdl_build / nx_vsbench.nx
nx_vsbench.nx source
↩ module page · 397 lines · 27165 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]=1000; 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]=1000; 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]=1000; 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]=1000; 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]=1000; 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]=1000; cthe[5]=1000; ctier[5]=VS_TIER_EXT; ncell=6 // VR HOT (knowledge/ref_vrhot.nxfh)
210 // ---- F1147 COMPLETION 2026-08-09: the last four visual refs scored ON the NAS, same registered
211 // instrument, same 400x240 scale, same png2hex encoder (recovered byte-identical from the July
212 // transcript -- one code path preserved). OURS unchanged: the shipped M2D frame 822. All four
213 // BEHIND; the full-population beat index over 10 EXT cells is now the honest number.
214 // MGI Prologue: Steam store screenshot 1 at native 1920x1080 (pal ~2.9k det4 142 cov 999).
215 // Operation Lovecraft: Steam store screenshot 1 at native 1920x1080 (pal ~1.5k det4 209 cov 999).
216 // Custom Maid 3D 2: KISS's own site system-page in-engine edit-screen capture, published 562x317,
217 // cropped exactly to the frame rect (pal ~5.1k det4 366 cov 999) -- SATURATES the known ceiling.
218 // Virt-a-Mate: MeshedVR's own campaign render (975x400 after removing the 25px banner strip;
219 // cov 635 is the scene's real dark-studio backdrop, captured at native size, not letterbox).
220 cti[6]=1; cax[6]=6; cmine[6]=1000; cthe[6]=905; ctier[6]=VS_TIER_EXT; ncell=7 // MGI Prologue (knowledge/mgi1.nxfh)
221 cti[7]=5; cax[7]=6; cmine[7]=1000; cthe[7]=990; ctier[7]=VS_TIER_EXT; ncell=8 // Operation Lovecraft (knowledge/oplc1.nxfh)
222 cti[8]=3; cax[8]=6; cmine[8]=1000; cthe[8]=1000; ctier[8]=VS_TIER_EXT; ncell=9 // Custom Maid 3D 2 (knowledge/cm3d21.nxfh, saturated)
223 cti[9]=8; cax[9]=6; cmine[9]=1000; cthe[9]=907; ctier[9]=VS_TIER_EXT; ncell=10 // Virt-a-Mate (knowledge/vam1.nxfh)
224 // RE-MEASURED 2026-08-09 (same session as the completion sweep): the ART-DIRECTION rung -- dungeon
225 // flagstones/bricks with cell-stable jitter + mortar seams + top-lit wall edges + torch light-pools,
226 // plus stage-7 features rendered into the overworld strip -- lifted OURS 822 -> 866 (pal 2363,
227 // det4 179, cohere 832 ~2x the noise cap; frame ALSO published to the site as
228 // sites/nishifamily/world/nx_m2d_frame.png on every battery run). All nine m2d-frame cells re-based
229 // to 866; Carnal 845 flips BEHIND -> EXCEED. Veloren keeps the 713 m1 pairing (yardstick discipline).
230 // CROSS-CLASS DISCIPLINE (operator 2026-08-09: "none of these are exceed" -- a 2D tile frame's
231 // statistical win over a downsampled 3D render is a variance artifact, not a perceptual win; the
232 // same Goodhart class the skull lane convicted the same day: field noise scored as anatomy).
233 // ccls=1 marks a cell whose OURS and THEIRS are DIFFERENT RENDER CLASSES: such a cell can lose
234 // (BEHIND stands -- losing to a 3D render is meaningful) but its stat win can NEVER mint EXCEED --
235 // it reports MIXED and the beat index refuses to count it. Today ALL pairings are cross-class
236 // (our 2D tile frame vs their 3D/rendered-art), so exceed=0 is the honest headline until a
237 // same-class pairing or a human-confirmed perceptual win exists.
238 let ccls: *i64 = sys_mmap(VS_CELLCAP*8) as *i64
239 var cc9: i64 = 0
240 while cc9 < ncell { ccls[cc9] = 1; cc9 = cc9 + 1 }
241 // RE-PAIRED 2026-08-09 (operator: "youve already built something better in /beach and /craft why
242 // are you constantly redoing work"): OURS is now the estate's TRUE best-foot-forward -- the LIVE
243 // NISHI CRAFT frame (knowledge/craft1.nxfh, first-person voxel 3D, wasm, captured from the served
244 // page): composite 1000-saturated, det4 302 = INSIDE the commercial band (their 209-366), and the
245 // SAME render class family as the references. ccls stays 1 on every cell: the saturated composite
246 // cannot rank the top, so EXCEED still requires the AL2 judge or a human-confirmed perceptual win
247 // (the caricature conviction stands). The M2D frame remains the certified-parts proof artifact;
248 // Craft is the ceiling. ★SURFACE-LEVEL DEDUP LAW: check-before-build applies to SURFACES, not just
249 // organs -- the flagship 3D engine was live on the site and absent from the hub and this board.
250 // RE-BASED AGAIN 2026-08-09 (sweep cycle 1): the ITERATIVE ART LOOP (m2d `sweep` verb -- 6 knob
251 // variants scored AND contact-sheeted to the site, pick v5: dense torches + rough stone + hot
252 // floor) lifted the battery frame 866 -> 875. Under the CROSS-CLASS discipline this changes NO
253 // verdict: every stat margin is prose until a same-class pairing exists; exceed stays 0.
254
255 // ---- tally by tier ----
256 var next: i64 = 0
257 var ndoc: i64 = 0
258 var ndecl: i64 = 0
259 var nexceed: i64 = 0
260 var ci: i64 = 0
261 while ci < ncell {
262 if ctier[ci]==VS_TIER_EXT { next=next+1 }
263 if ctier[ci]==VS_TIER_DOC { ndoc=ndoc+1 }
264 if ctier[ci]==VS_TIER_DECL { ndecl=ndecl+1 }
265 ci = ci + 1
266 }
267 // THE HEADLINE, over EXT cells ONLY. No EXT cells => 0 and UNGROUNDED. Nothing else can lift it.
268 ci = 0
269 while ci < ncell {
270 if ctier[ci]==VS_TIER_EXT { if cmine[ci] > cthe[ci] { if ccls[ci]==0 { nexceed=nexceed+1 } } }
271 ci = ci + 1
272 }
273 var beat: i64 = 0
274 if next > 0 { beat = (nexceed*1000)/next }
275 var bverd: *u8 = "UNGROUNDED" as *u8
276 if next > 0 { bverd = "MEASURED" as *u8 }
277
278 // ================= EMIT =================
279 var j: i64 = 0
280 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)
281 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)
282 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)
283
284 j = ocat(ob, j, ",\x22axes\x22:[" as *u8)
285 var ai: i64 = 0
286 while ai < NA {
287 if ai>0 { j = ocat(ob, j, "," as *u8) }
288 j = ocat(ob, j, "{\x22axis\x22:\x22" as *u8); j = ocat(ob, j, axnm[ai] as *u8)
289 j = ocat(ob, j, "\x22,\x22class\x22:\x22" as *u8); j = ocat(ob, j, vs_clsstr(axcls[ai]))
290 j = ocat(ob, j, "\x22,\x22adult_titles_needing\x22:" as *u8); j = onum(ob, j, axdem[ai])
291 j = ocat(ob, j, ",\x22ours_permil\x22:" as *u8); j = onum(ob, j, axours[ai])
292 j = ocat(ob, j, ",\x22our_artifact\x22:\x22" as *u8)
293 if axart[ai]!=0 { j = ocat(ob, j, axart[ai] as *u8) }
294 j = ocat(ob, j, "\x22,\x22theirs_measured\x22:0,\x22verdict\x22:\x22UNGROUNDED-NO-CELL\x22}" as *u8)
295 ai = ai + 1
296 }
297 j = ocat(ob, j, "]" as *u8)
298
299 j = ocat(ob, j, ",\x22reference_titles\x22:[" as *u8)
300 // Per-title tally COMPUTED from the cell arrays. This line used to be the hardcoded string
301 // "cells_ext":0,"NOT-RUN" -- honest when zero cells existed, a stale lie the moment one landed.
302 // A published number must be derived from the same rows as the headline, never frozen prose.
303 var ti: i64 = 0
304 while ti < NT {
305 if ti>0 { j = ocat(ob, j, "," as *u8) }
306 var text_n: i64 = 0
307 var texc_n: i64 = 0
308 var tbeh_n: i64 = 0
309 var ck: i64 = 0
310 while ck < ncell {
311 if cti[ck]==ti { if ctier[ck]==VS_TIER_EXT {
312 text_n = text_n + 1
313 if cmine[ck] > cthe[ck] { if ccls[ck]==0 { texc_n = texc_n + 1 } }
314 if cmine[ck] < cthe[ck] { tbeh_n = tbeh_n + 1 }
315 } }
316 ck = ck + 1
317 }
318 j = ocat(ob, j, "{\x22title\x22:\x22" as *u8); j = ocat(ob, j, ttnm[ti] as *u8)
319 j = ocat(ob, j, "\x22,\x22cells_ext\x22:" as *u8); j = onum(ob, j, text_n)
320 j = ocat(ob, j, ",\x22headtohead\x22:\x22" as *u8)
321 if text_n==0 { j = ocat(ob, j, "NOT-RUN" as *u8) }
322 if text_n>0 {
323 if texc_n==text_n { j = ocat(ob, j, "EXCEED" as *u8) }
324 if texc_n<text_n { if tbeh_n==text_n { j = ocat(ob, j, "BEHIND" as *u8) } }
325 if texc_n<text_n { if tbeh_n<text_n { j = ocat(ob, j, "MIXED" as *u8) } }
326 }
327 j = ocat(ob, j, "\x22}" as *u8)
328 ti = ti + 1
329 }
330 j = ocat(ob, j, "]" as *u8)
331
332 // ---- EVIDENCE WORKLIST: ranked by how many reference titles the axis matters to. This is the
333 // ranked TODO that turns UNGROUNDED into MEASURED -- the actual Phase-A build order.
334 j = ocat(ob, j, ",\x22evidence_worklist\x22:[" as *u8)
335 let used: *i64 = sys_mmap(NA*8) as *i64
336 ai = 0
337 while ai < NA { used[ai]=0; ai=ai+1 }
338 var emitted: i64 = 0
339 var rounds: i64 = 0
340 while rounds < NA {
341 var best: i64 = 0-1
342 var bsc: i64 = 0-1
343 ai = 0
344 while ai < NA {
345 if used[ai]==0 { if axdem[ai] > bsc { bsc=axdem[ai]; best=ai } }
346 ai = ai + 1
347 }
348 if best >= 0 {
349 used[best]=1
350 if emitted>0 { j = ocat(ob, j, "," as *u8) }
351 j = ocat(ob, j, "{\x22rank\x22:" as *u8); j = onum(ob, j, emitted+1)
352 j = ocat(ob, j, ",\x22axis\x22:\x22" as *u8); j = ocat(ob, j, axnm[best] as *u8)
353 j = ocat(ob, j, "\x22,\x22adult_titles_needing\x22:" as *u8); j = onum(ob, j, axdem[best])
354 j = ocat(ob, j, ",\x22ours_permil\x22:" as *u8); j = onum(ob, j, axours[best])
355 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)
356 emitted = emitted + 1
357 }
358 rounds = rounds + 1
359 }
360 j = ocat(ob, j, "]" as *u8)
361
362 // ---- ADVANTAGE HYPOTHESES: what we believe wins. Labelled so nobody can quote it as a result.
363 j = ocat(ob, j, ",\x22advantage_hypotheses\x22:[" as *u8)
364 var hem: i64 = 0
365 ai = 0
366 while ai < NA {
367 if axhyp[ai]!=0 {
368 if hem>0 { j = ocat(ob, j, "," as *u8) }
369 j = ocat(ob, j, "{\x22axis\x22:\x22" as *u8); j = ocat(ob, j, axnm[ai] as *u8)
370 j = ocat(ob, j, "\x22,\x22hypothesis\x22:\x22" as *u8); j = ocat(ob, j, axhyp[ai] as *u8)
371 j = ocat(ob, j, "\x22,\x22status\x22:\x22HYPOTHESIS-NOT-CLAIM\x22}" as *u8)
372 hem = hem + 1
373 }
374 ai = ai + 1
375 }
376 j = ocat(ob, j, "]" as *u8)
377
378 j = ocat(ob, j, ",\x22axes_total\x22:" as *u8); j = onum(ob, j, NA)
379 j = ocat(ob, j, ",\x22reference_titles_total\x22:" as *u8); j = onum(ob, j, NT)
380 j = ocat(ob, j, ",\x22cells_total\x22:" as *u8); j = onum(ob, j, ncell)
381 j = ocat(ob, j, ",\x22cells_ext\x22:" as *u8); j = onum(ob, j, next)
382 j = ocat(ob, j, ",\x22cells_doc\x22:" as *u8); j = onum(ob, j, ndoc)
383 j = ocat(ob, j, ",\x22cells_decl\x22:" as *u8); j = onum(ob, j, ndecl)
384 j = ocat(ob, j, ",\x22cells_exceeded\x22:" as *u8); j = onum(ob, j, nexceed)
385 j = ocat(ob, j, ",\x22beat_index_permil\x22:" as *u8); j = onum(ob, j, beat)
386 j = ocat(ob, j, ",\x22beat_verdict\x22:\x22" as *u8); j = ocat(ob, j, bverd); j = ocat(ob, j, "\x22" as *u8)
387
388 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)
389 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)
390 j = ocat(ob, j, ",\x22reality_anchor\x22:\x22operator 2026-08-09: the current OURS frame ranks below-1980s-commercial class perceptually; a cross-class stat win is Goodhart, so EXCEED additionally requires a SAME-RENDER-CLASS pairing (ccls=0) or a human-confirmed perceptual win. Cross-class stat-ahead cells report MIXED and never count toward the beat index. INSTRUMENT CONVICTION (measured same day): a random-squares mosaic control scores 628 RICH on the frame critic while commercial renders read 789-1000 -- every visual-scene-quality number on this board is a STRUCTURE statistic, not a quality rank.\x22" as *u8)
391 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. Cross-class cells (ccls=1) are excluded from exceeded_ext_cells by construction.\x22" as *u8)
392 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)
393 j = ocat(ob, j, "\n" as *u8)
394
395 sys_write(1, ob, j)
396 return 0
397}