code wiki / _hdl_build / nx_hr_census_gate.nx
nx_hr_census_gate.nx source
↩ module page · 64 lines · 5214 B
1// nx_hr_census_gate.nx -- referee for the HR maturity census. PROVES the organ-computed grade + the LIAR-KILL:
2// green gate + no h2h -> PRESENT (honest ceiling) ; red/missing gate -> ABSENT ; green + measured h2h -> PARITY/EXCEEDS ;
3// green + a CLAIM of exceeds but NO h2h record -> stays PRESENT (cannot self-promote). Also grades the REAL HR
4// module gate logs from this session (all PRESENT, EXCEEDS=0 -- the honest reading). GREEN iff every row matches.
5// Prints verdict=GREEN to STDOUT *and* returns the exit code. Durable -> knowledge/status/hr_census_gate.log.
6// license_tier: ORIGINAL
7import "nx_hr_census.nx"
8import "nx_g_puts_lib.nx"
9import "nx_syscalls.nx"
10
11func g_num(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=(48 as u8);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(1,bb,k); return 0 }
12func g_w(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 }
13func g_wn(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 as u8);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 }
14func gwrite(path: *u8, s: *u8, n: i64) -> i64 { let fd: i64 = sys_openat_wr(path, 0x1a4); if fd<0 { return 0 } if n>0 { sys_write(fd, s, n) } sys_close(fd); return 0 }
15func slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
16func chk(got: i64, want: i64, label: *u8) -> i64 {
17 g_puts(" "); g_puts(label); g_puts(" got="); g_num(got); g_puts(" want="); g_num(want)
18 if got == want { g_puts(" PASS\n"); return 1 }
19 g_puts(" FAIL\n"); return 0
20}
21
22func main() -> i64 {
23 g_puts("=== NISHI HR CENSUS GATE (organ-graded maturity, never self-scored; liar-kill on unmeasured EXCEEDS) ===\n" as *u8)
24 var pass: i64=0
25 var rows: i64=0
26
27 let grn: *u8 = "/tmp/hcg_green" as *u8; gwrite(grn, "NISHI-HR-GATE rows=13 pass=13 verdict=GREEN\n" as *u8, slen("NISHI-HR-GATE rows=13 pass=13 verdict=GREEN\n" as *u8))
28 let red: *u8 = "/tmp/hcg_red" as *u8; gwrite(red, "SOME-GATE verdict=RED\n" as *u8, slen("SOME-GATE verdict=RED\n" as *u8))
29 let h2hx:*u8 = "/tmp/hcg_h2h_ex" as *u8; gwrite(h2hx, "h2h=exceeds vs Workday/Okta measured\n" as *u8, slen("h2h=exceeds vs Workday/Okta measured\n" as *u8))
30 let h2hp:*u8 = "/tmp/hcg_h2h_par" as *u8; gwrite(h2hp, "h2h=parity measured\n" as *u8, slen("h2h=parity measured\n" as *u8))
31 let none:*u8 = "/tmp/hcg_none" as *u8; gwrite(none, "" as *u8, 0)
32 let miss:*u8 = "/tmp/hcg_missing_xyz" as *u8 // never created
33
34 rows=rows+1; pass=pass+chk(hc_grade(grn, miss), HC_PRESENT, "green gate + no h2h -> PRESENT (honest ceiling)" as *u8)
35 rows=rows+1; pass=pass+chk(hc_grade(red, h2hx), HC_ABSENT, "RED gate -> ABSENT (even w/ exceeds claim)" as *u8)
36 rows=rows+1; pass=pass+chk(hc_grade(miss, h2hx), HC_ABSENT, "missing gate log -> ABSENT" as *u8)
37 rows=rows+1; pass=pass+chk(hc_grade(grn, h2hx), HC_EXCEEDS, "green + measured h2h=exceeds -> EXCEEDS" as *u8)
38 rows=rows+1; pass=pass+chk(hc_grade(grn, h2hp), HC_PARITY, "green + measured h2h=parity -> PARITY" as *u8)
39 rows=rows+1; pass=pass+chk(hc_grade(grn, none), HC_PRESENT, "green + EMPTY h2h -> PRESENT (LIAR-KILL: no self-promote)" as *u8)
40 rows=rows+1; pass=pass+chk(hc_file_contains(grn, "verdict=GREEN" as *u8), 1, "file_contains(green, verdict=GREEN)=1" as *u8)
41
42 // --- REAL census: grade this session's actual HR module gate logs (no h2h yet -> PRESENT, EXCEEDS=0 honest) ---
43 g_puts("--- live HR census (from knowledge/status/*.log; no measured h2h yet) ---\n" as *u8)
44 let g1: i64 = hc_grade("knowledge/status/hr_gate.log" as *u8, miss)
45 let g2: i64 = hc_grade("knowledge/status/hr_team_gate.log" as *u8, miss)
46 let g3: i64 = hc_grade("knowledge/status/hr_visitor_gate.log" as *u8, miss)
47 g_puts(" nx_hr (users/roles) = "); g_puts(hc_grade_name(g1)); g_puts("\n" as *u8)
48 g_puts(" nx_hr_team (RACI/staff/trn)= "); g_puts(hc_grade_name(g2)); g_puts("\n" as *u8)
49 g_puts(" nx_hr_visitor (front desk) = "); g_puts(hc_grade_name(g3)); g_puts("\n" as *u8)
50 rows=rows+1; pass=pass+chk(g1, HC_PRESENT, "REAL nx_hr -> PRESENT" as *u8)
51 rows=rows+1; pass=pass+chk(g2, HC_PRESENT, "REAL nx_hr_team -> PRESENT" as *u8)
52 rows=rows+1; pass=pass+chk(g3, HC_PRESENT, "REAL nx_hr_visitor -> PRESENT" as *u8)
53
54 g_puts("----\nNISHI-HR-CENSUS-GATE rows=" as *u8); g_num(rows); g_puts(" pass=" as *u8); g_num(pass)
55 if pass==rows { g_puts(" verdict=GREEN\n" as *u8) } else { g_puts(" verdict=RED\n" as *u8) }
56 let lg: i64=sys_openat_append("knowledge/status/hr_census_gate.log" as *u8, 0x1a4)
57 if lg>=0 {
58 g_w(lg, "NISHI-HR-CENSUS-GATE rows=" as *u8); g_wn(lg, rows); g_w(lg, " pass=" as *u8); g_wn(lg, pass)
59 if pass==rows { g_w(lg, " verdict=GREEN\n" as *u8) } else { g_w(lg, " verdict=RED\n" as *u8) }
60 sys_close(lg)
61 }
62 if pass==rows { sys_exit(0); return 0 }
63 sys_exit(1); return 1
64}