code wiki / _hdl_build / nx_reader_sclass_coverage.nx
nx_reader_sclass_coverage.nx source
↩ module page · 111 lines · 5415 B
1// nx_reader_sclass_coverage.nx -- measures the Nishi reader's coverage of the S-class target (Reader-arc).
2//
3// AUTHOR=ORGAN, HONEST (no-wave): reads the census from the SOVEREIGN seg-store (knowledge/store/rcen-*, via
4// nx_reader_census_store -- NO TSV; operator 2026-06-21 "stop using tsv") and COUNTS how many capabilities the
5// Nishi reader currently HAS / PARTIAL / is MISSING -- a measured self-assessment, NOT an exceed claim. It prints
6// the prioritized GAP list (every PARTIAL/MISSING capability, tier-1 = the moat) to stdout + the run log (a .log,
7// not a data store). Coverage permil = (HAVE*1000 + PARTIAL*500) / total. license_tier: ORIGINAL
8import "nx_reader_census_store.nx" // RC_PREFIX / rc_get / rc_field
9import "nx_seg_store.nx"
10import "nx_syscalls.nx"
11
12const SC_LOG: *u8 = "knowledge/status/reader_sclass_coverage.log"
13
14func sc_p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
15func sc_fp(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 }
16func sc_fn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 }
17func sc_streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8){ if a[i]!=b[i]{return 0} i=i+1 } if b[i]!=(0 as u8){return 0} return 1 }
18
19func main() -> i64 {
20 sc_p("=== nx_reader_sclass_coverage: Nishi reader vs S-class target (from the sovereign seg-store, NO TSV) ===\n" as *u8)
21
22 // the index: rc:ids = TAB-separated capability ids
23 let pq: *i64 = sys_mmap(16) as *i64
24 let lq: *i64 = sys_mmap(16) as *i64
25 if rc_get("rc:ids" as *u8, pq, lq) != 1 {
26 sc_p("SCLASS-COVERAGE verdict=RED reason=census-store-empty (run nx_reader_census to migrate)\n" as *u8); sys_exit(1); return 1
27 }
28 let ids: *u8 = pq[0] as *u8
29 let idn: i64 = lq[0]
30
31 let idbuf: *u8 = sys_mmap(64)
32 let keybuf: *u8 = sys_mmap(128)
33 let stbuf: *u8 = sys_mmap(64)
34 let tibuf: *u8 = sys_mmap(64)
35 let dibuf: *u8 = sys_mmap(128)
36 let rq: *i64 = sys_mmap(16) as *i64
37 let rl: *i64 = sys_mmap(16) as *i64
38
39 var have: i64 = 0
40 var partial: i64 = 0
41 var missing: i64 = 0
42 var total: i64 = 0
43 var tier1_gap: i64 = 0
44
45 var i: i64 = 0
46 while i < idn {
47 var o: i64 = 0
48 while i < idn { if ids[i] == (9 as u8) { break } idbuf[o] = ids[i]; o = o + 1; i = i + 1 }
49 if i < idn { i = i + 1 } // skip the TAB
50 idbuf[o] = 0 as u8
51 if o > 0 {
52 keybuf[0] = 114 as u8; keybuf[1] = 99 as u8; keybuf[2] = 58 as u8 // "rc:"
53 var k: i64 = 0
54 while k < o { keybuf[3 + k] = idbuf[k]; k = k + 1 }
55 keybuf[3 + o] = 0 as u8
56 if rc_get(keybuf, rq, rl) == 1 {
57 let rec: *u8 = rq[0] as *u8
58 let rln: i64 = rl[0]
59 rc_field(rec, rln, 5, stbuf) // status field
60 var st: i64 = 0
61 if sc_streq(stbuf, "HAVE" as *u8) == 1 { st = 1 }
62 else { if sc_streq(stbuf, "PARTIAL" as *u8) == 1 { st = 2 }
63 else { if sc_streq(stbuf, "MISSING" as *u8) == 1 { st = 3 } } }
64 if st > 0 {
65 total = total + 1
66 if st == 1 { have = have + 1 }
67 if st == 2 { partial = partial + 1 }
68 if st == 3 { missing = missing + 1 }
69 if st != 1 {
70 rc_field(rec, rln, 1, tibuf) // tier
71 rc_field(rec, rln, 2, dibuf) // dimension
72 if sc_streq(tibuf, "1" as *u8) == 1 { tier1_gap = tier1_gap + 1 }
73 sc_p(" GAP " as *u8); sc_p(idbuf); sc_p(" t" as *u8); sc_p(tibuf)
74 sc_p(" " as *u8); sc_p(stbuf); sc_p(" " as *u8); sc_p(dibuf); sc_p("\n" as *u8)
75 }
76 }
77 }
78 }
79 }
80
81 var cov: i64 = 0
82 if total > 0 { cov = (have*1000 + partial*500) / total }
83
84 sc_p(" total=" as *u8); sc_fn(1, total)
85 sc_p(" HAVE=" as *u8); sc_fn(1, have)
86 sc_p(" PARTIAL=" as *u8); sc_fn(1, partial)
87 sc_p(" MISSING=" as *u8); sc_fn(1, missing)
88 sc_p(" coverage_permil=" as *u8); sc_fn(1, cov)
89 sc_p(" tier1_gaps=" as *u8); sc_fn(1, tier1_gap)
90 sc_p("\n (gaps printed above; census SSOT = the sovereign seg-store knowledge/store/rcen-, NO TSV)\n" as *u8)
91
92 let lf: i64 = sys_openat_append(SC_LOG, 0x1a4)
93 if lf >= 0 {
94 sc_fp(lf, "SCLASS-COVERAGE store=rcen total=" as *u8); sc_fn(lf, total)
95 sc_fp(lf, " have=" as *u8); sc_fn(lf, have)
96 sc_fp(lf, " partial=" as *u8); sc_fn(lf, partial)
97 sc_fp(lf, " missing=" as *u8); sc_fn(lf, missing)
98 sc_fp(lf, " coverage_permil=" as *u8); sc_fn(lf, cov)
99 sc_fp(lf, " tier1_gaps=" as *u8); sc_fn(lf, tier1_gap)
100 sc_fp(lf, " epoch=" as *u8); sc_fn(lf, sys_now_realtime_sec())
101 sc_fp(lf, "\n" as *u8)
102 sys_close(lf)
103 }
104
105 if total > 0 {
106 sc_p("SCLASS-COVERAGE verdict=GREEN (measured from the sovereign seg-store; honest self-assessment, NOT an exceed claim)\n" as *u8)
107 sys_exit(0); return 0
108 }
109 sc_p("SCLASS-COVERAGE verdict=RED (no rows in the store)\n" as *u8)
110 sys_exit(1); return 1
111}