code wiki / _hdl_build / _sponsor_review_gate_authored.nx

_sponsor_review_gate_authored.nx source

↩ module page · 196 lines · 8233 B

1// _sponsor_review_gate_authored.nx -- gate for the executive-sponsor loop. 2// Proves the FULL subjective lifecycle on a scratch queue with the REAL 3// reconcile elf and the sponsor core -- no mocks: 4// 1. CTRL (TODO, MARK green, NO ASK) -> reconcile -> DONE (objective 5// rows never wait for the sponsor: the doctrine's other half) 6// 2. SV1 (TODO, MARK green, ||ASK=result) -> reconcile -> VIEW not DONE 7// 3. APPROVE SV2 (VIEW) -> DONE 8// 4. DENY SV3 <feedback> (VIEW) -> NOVEL + PREF row appended 9// 5. APPROVE SV4 (TODO) -> REFUSED (illegal transition) 10// 6. APPROVE NOSUCH -> REFUSED (unknown id) 11// 7. SV5 (NOVEL ||ASK=spec) -> SPONSOR-SPEC census row 12// 8. re-run -> idempotent (applied=0, no 13// duplicate PREF row) 14// Markers: SRG-*; final SPONSORGATE row -> knowledge/status/sponsor_review.log 15// license_tier: ORIGINAL 16 17import "nx_sponsor_core.nx" 18 19func srg_p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 20func srg_f(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 } 21 22func srg_chk(label: *u8, ok: i64, bad: *i64) -> i64 { 23 srg_p("SRG-" as *u8) 24 srg_p(label) 25 if ok == 1 { srg_p(" ok\n" as *u8) } else { srg_p(" BAD\n" as *u8); bad[0] = bad[0] + 1 } 26 return 0 27} 28 29func srg_seed_queue(qp: *u8) -> i64 { 30 let fd: i64 = sys_openat_wr(qp, 0x1a4) 31 if fd < 0 { return 0 } 32 srg_f(fd, "# scratch queue for the sponsor gate\n" as *u8) 33 srg_f(fd, "CTRL\tX\t9\tS\tBuilder\tTODO\t-\tg||MARK=/tmp/_sr_toy.log::SRTOY::verdict=GREEN\tobjective row flows to DONE\n" as *u8) 34 srg_f(fd, "SV1\tX\t8\tS\tBuilder\tTODO\t-\tg||MARK=/tmp/_sr_toy.log::SRTOY::verdict=GREEN||ASK=result\tsubjective deliverable -> VIEW\n" as *u8) 35 srg_f(fd, "SV2\tX\t7\tS\tBuilder\tVIEW\t-\tg||ASK=result\tawaiting viewpoint (approve me)\n" as *u8) 36 srg_f(fd, "SV3\tX\t6\tS\tBuilder\tVIEW\t-\tg||ASK=result\tawaiting viewpoint (deny me)\n" as *u8) 37 srg_f(fd, "SV4\tX\t5\tS\tBuilder\tTODO\t-\tg\tillegal approve target\n" as *u8) 38 srg_f(fd, "SV5\tX\t4\tS\tPM\tNOVEL\t-\tco-spec-this||ASK=spec\tsubjective feature choice (needs us both)\n" as *u8) 39 srg_f(fd, "SV6\tX\t3\tS\tBuilder\tVIEW\t-\tg||ASK=result\tawaiting viewpoint (restart me)\n" as *u8) 40 srg_f(fd, "SV7\tX\t2\tS\tBuilder\tVIEW\t-\tg||ASK=result\tawaiting viewpoint (kill me)\n" as *u8) 41 srg_f(fd, "SV8\tX\t1\tS\tBuilder\tNOVEL\t-\tg\traised hand to be flagged no-roi\n" as *u8) 42 var i: i64 = 0 43 while i < 16 { srg_f(fd, "\n" as *u8); i = i + 1 } 44 sys_close(fd) 45 return 1 46} 47 48func srg_seed_decisions(dp: *u8) -> i64 { 49 let fd: i64 = sys_openat_wr(dp, 0x1a4) 50 if fd < 0 { return 0 } 51 srg_f(fd, "# scratch decisions\n" as *u8) 52 srg_f(fd, "APPROVE SV2 clean exceed on the privacy axis ship it\n" as *u8) 53 srg_f(fd, "REWORK SV3 needs richer drilldowns and cohort view\n" as *u8) 54 srg_f(fd, "RESTART SV6 wrong direction entirely re-spec against the callout\n" as *u8) 55 srg_f(fd, "DENY SV7 duplicative of existing W5 rows no roi\n" as *u8) 56 srg_f(fd, "DENY SV8 flagging the novel: no roi vs existing rows\n" as *u8) 57 srg_f(fd, "APPROVE SV4\n" as *u8) 58 srg_f(fd, "APPROVE NOSUCH\n" as *u8) 59 // pad against shorter rewrites of earlier longer runs (no O_TRUNC) 60 var i: i64 = 0 61 while i < 8 { srg_f(fd, "\n" as *u8); i = i + 1 } 62 sys_close(fd) 63 return 1 64} 65 66func srg_status_of(qp: *u8, id: *u8) -> i64 { 67 return sr_status(qp, id) 68} 69 70func srg_count(path: *u8, pat: *u8) -> i64 { 71 let buf: *u8 = sys_mmap(262144) 72 let fd: i64 = sys_openat_rd(path) 73 if fd < 0 { return 0 } 74 var n: i64 = 0 75 var r: i64 = sys_read(fd, buf, 262143) 76 while r > 0 { n = n + r; r = sys_read(fd, buf + n, 262143 - n) } 77 sys_close(fd) 78 var pl: i64 = 0 79 while pat[pl] != (0 as u8) { pl = pl + 1 } 80 var c: i64 = 0 81 var i: i64 = 0 82 while i < n { 83 if wd_at(buf, n, i, pat, pl) == 1 { c = c + 1 } 84 i = i + 1 85 } 86 return c 87} 88 89// spawn the durable reconcile elf on the scratch queue 90func srg_reconcile(qp: *u8) -> i64 { 91 let argv: *i64 = sys_mmap(32) as *i64 92 argv[0] = "_offc/nx_reconcile.elf" as *u8 as i64 93 argv[1] = qp as i64 94 argv[2] = 0 95 let envp: *i64 = sys_mmap(16) as *i64 96 envp[0] = 0 97 let pid: i64 = sys_fork() 98 if pid == 0 { 99 sys_execve("_offc/nx_reconcile.elf" as *u8, argv, envp) 100 sys_exit(127) 101 } 102 let st: *i64 = sys_mmap(16) as *i64 103 sys_wait4(pid, st, 0) 104 return (st[0] >> 8) & 0xff 105} 106 107func main() -> i64 { 108 let badv: *i64 = sys_mmap(16) as *i64 109 badv[0] = 0 110 srg_p("=== sponsor-review gate (executive-sponsor loop) ===\n" as *u8) 111 let qp: *u8 = "/tmp/_sr_scratch_queue.tsv" as *u8 112 let dp: *u8 = "/tmp/_sr_decisions.tsv" as *u8 113 let pp: *u8 = "/tmp/_sr_prefs.tsv" as *u8 114 let lp: *u8 = "/tmp/_sr_review.log" as *u8 115 116 if srg_seed_queue(qp) != 1 { srg_p("SPONSORGATE verdict=RED reason=seed-fail\n" as *u8); sys_exit(98) } 117 let tf: i64 = sys_openat_append("/tmp/_sr_toy.log" as *u8, 0x1a4) 118 if tf >= 0 { srg_f(tf, "SRTOY verdict=GREEN\n" as *u8); sys_close(tf) } 119 120 // reconcile: objective CTRL -> DONE; subjective SV1 -> VIEW 121 srg_reconcile(qp) 122 var c: i64 = 0 123 if srg_status_of(qp, "CTRL" as *u8) == 68 { c = 1 } 124 srg_chk("OBJECTIVE-STILL-DONE" as *u8, c, badv) 125 c = 0 126 if srg_status_of(qp, "SV1" as *u8) == 86 { c = 1 } 127 srg_chk("ASKRESULT-TO-VIEW" as *u8, c, badv) 128 129 // sponsor decisions (all four verbs, every reason captured) 130 srg_seed_decisions(dp) 131 let base_pref: i64 = srg_count(pp, "PREF id=SV3 action=REWORK" as *u8) 132 sr_run(qp, dp, pp, lp) 133 c = 0 134 if srg_status_of(qp, "SV2" as *u8) == 68 { c = 1 } 135 srg_chk("APPROVE-VIEW-TO-DONE" as *u8, c, badv) 136 c = 0 137 if srg_status_of(qp, "SV3" as *u8) == 78 { c = 1 } 138 srg_chk("REWORK-VIEW-TO-NOVEL" as *u8, c, badv) 139 c = 0 140 if srg_status_of(qp, "SV6" as *u8) == 78 { c = 1 } 141 srg_chk("RESTART-VIEW-TO-NOVEL" as *u8, c, badv) 142 c = 0 143 if srg_status_of(qp, "SV7" as *u8) == 75 { c = 1 } 144 srg_chk("DENY-VIEW-TO-KILLED" as *u8, c, badv) 145 c = 0 146 if srg_status_of(qp, "SV8" as *u8) == 75 { c = 1 } 147 srg_chk("DENY-NOVEL-TO-KILLED" as *u8, c, badv) 148 c = 0 149 if srg_status_of(qp, "SV4" as *u8) == 84 { c = 1 } 150 srg_chk("ILLEGAL-APPROVE-UNTOUCHED" as *u8, c, badv) 151 c = 0 152 if srg_count(pp, "PREF id=SV3 action=REWORK" as *u8) - base_pref == 1 { c = 1 } 153 srg_chk("PREF-LEARNED" as *u8, c, badv) 154 c = 0 155 var c4: i64 = 0 156 if srg_count(pp, "action=APPROVE feedback=clean exceed" as *u8) >= 1 { c4 = c4 + 1 } 157 if srg_count(pp, "PREF id=SV6 action=RESTART" as *u8) >= 1 { c4 = c4 + 1 } 158 if srg_count(pp, "PREF id=SV7 action=DENY" as *u8) >= 1 { c4 = c4 + 1 } 159 if c4 == 3 { c = 1 } 160 srg_chk("ALL-VERBS-CAPTURED" as *u8, c, badv) 161 c = 0 162 if srg_count(lp, "SPONSOR REFUSED" as *u8) >= 2 { c = 1 } 163 srg_chk("REFUSALS-LOUD" as *u8, c, badv) 164 c = 0 165 if srg_count(lp, "SPONSOR-SPEC id=SV5" as *u8) >= 1 { c = 1 } 166 srg_chk("ASKSPEC-CENSUS" as *u8, c, badv) 167 168 // idempotency: second pass moves nothing, learns nothing twice 169 sr_run(qp, dp, pp, lp) 170 c = 0 171 if srg_status_of(qp, "SV3" as *u8) == 78 { c = 1 } 172 srg_chk("IDEMPOTENT-STATUS" as *u8, c, badv) 173 c = 0 174 if srg_count(pp, "PREF id=SV3 action=REWORK" as *u8) - base_pref == 1 { c = 1 } 175 srg_chk("IDEMPOTENT-PREFS" as *u8, c, badv) 176 177 let lg: i64 = sys_openat_append("knowledge/status/sponsor_review.log" as *u8, 0x1a4) 178 var rcg: i64 = 0 179 if badv[0] == 0 { 180 srg_p("SPONSORGATE checks=14/14 verdict=GREEN\n" as *u8) 181 if lg >= 0 { 182 srg_f(lg, "SPONSORGATE checks=14/14 verdict=GREEN epoch=" as *u8) 183 wd_wn(lg, sys_now_realtime_sec()) 184 srg_f(lg, "\n" as *u8) 185 } 186 } else { 187 srg_p("SPONSORGATE verdict=RED bad=" as *u8) 188 wd_wn(1, badv[0]) 189 srg_p("\n" as *u8) 190 if lg >= 0 { srg_f(lg, "SPONSORGATE verdict=RED\n" as *u8) } 191 rcg = badv[0] 192 } 193 if lg >= 0 { sys_close(lg) } 194 sys_exit(rcg) 195 return rcg 196}