code wiki / _hdl_build / nx_backlog_loop.nx

nx_backlog_loop.nx source

↩ module page · 91 lines · 5021 B

1// nx_backlog_loop.nx -- the team WORKS THE BACKLOG ON ITS OWN (operator: "is the team on its own loop to work 2// the backlog?"). One tick: SCAN the layered backlog in build order -> the BUILDER ATTEMPTS each task by 3// composition (type-spec in->out over its authored-primitive library) -> COMPOSED => Engineer-gate + governed 4// BANK; RAISED HAND (-1) => ESCALATE to /tmp/nishi_escalations.log (the tutoring queue Claude works). It is NOT 5// a blind 24/7 miner (that failure is logged in memory): it works until every remaining task is tutoring-gated, 6// then STOPS and surfaces the raised hands. After Claude tutors a primitive (marks it available), the next tick 7// composes the unblocked task. Loop + tutoring alternate = the partnership. license_tier: ORIGINAL 8import "nx_syscalls.nx" 9 10func bl_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 11func bl_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 } 12 13// types + the Builder's authored-primitive library (availability = the authored module exists). 14const T_NONE:i64=0 15const T_PATH:i64=1 16const T_BYTES:i64=2 17const T_HEX:i64=3 18const T_FIELD:i64=4 19const T_KDF:i64=5 20const T_SAFE:i64=6 21const T_DOM:i64=7 22const NTYPE:i64=8 23const NP:i64=8 24const NTASK:i64=6 25 26func bl_reach(cur: i64, target: i64, pin: *i64, pout: *i64, pav: *i64, vis: *i64) -> i64 { 27 if cur == target { return 1 } 28 vis[cur] = 1 29 var p: i64 = 0 30 while p < NP { 31 if pin[p] == cur { if pav[p] == 1 { if vis[pout[p]] == 0 { if bl_reach(pout[p], target, pin, pout, pav, vis) == 1 { return 1 } } } } 32 p = p + 1 33 } 34 return 0 35} 36 37func bl_attempt(tin: i64, tout: i64, pin: *i64, pout: *i64, pav: *i64) -> i64 { 38 let vis: *i64 = sys_mmap(8*NTYPE) as *i64 39 var i: i64 = 0; while i < NTYPE { vis[i]=0; i=i+1 } 40 return bl_reach(tin, tout, pin, pout, pav, vis) 41} 42 43func main() -> i64 { 44 // primitive library (avail=1 = the Builder already authored it; avail=0 = missing -> raised hand) 45 let pin: *i64=sys_mmap(8*NP) as *i64; let pout:*i64=sys_mmap(8*NP) as *i64; let pav:*i64=sys_mmap(8*NP) as *i64 46 pin[0]=T_PATH; pout[0]=T_BYTES; pav[0]=1 47 pin[1]=T_NONE; pout[1]=T_BYTES; pav[1]=1 48 pin[2]=T_BYTES;pout[2]=T_HEX; pav[2]=1 49 pin[3]=T_BYTES;pout[3]=T_FIELD; pav[3]=1 50 pin[4]=T_BYTES;pout[4]=T_FIELD; pav[4]=1 51 pin[5]=T_BYTES;pout[5]=T_KDF; pav[5]=0 // ARGON2ID -- missing 52 pin[6]=T_BYTES;pout[6]=T_DOM; pav[6]=0 // HTML_PARSE -- missing 53 pin[7]=T_DOM; pout[7]=T_SAFE; pav[7]=0 // SANITIZE -- missing 54 55 // the backlog (build-ordered), each a type-spec the Builder attempts. 56 let tname:*i64=sys_mmap(8*NTASK) as *i64; let tin:*i64=sys_mmap(8*NTASK) as *i64; let tout:*i64=sys_mmap(8*NTASK) as *i64 57 tname[0]="secure-token" as *u8 as i64; tin[0]=T_NONE; tout[0]=T_HEX 58 tname[1]="csrf-token" as *u8 as i64; tin[1]=T_NONE; tout[1]=T_HEX 59 tname[2]="intake-form-parse" as *u8 as i64; tin[2]=T_BYTES;tout[2]=T_FIELD 60 tname[3]="content-load" as *u8 as i64; tin[3]=T_PATH; tout[3]=T_FIELD 61 tname[4]="password-hash" as *u8 as i64; tin[4]=T_BYTES;tout[4]=T_KDF 62 tname[5]="html-sanitize" as *u8 as i64; tin[5]=T_BYTES;tout[5]=T_SAFE 63 64 let esc: i64 = sys_openat_append("/tmp/nishi_escalations.log" as *u8, 0x1a4) 65 bl_w(esc, "\n# BACKLOG-LOOP TICK 2026-06-06 (raised hands = Claude tutoring queue)\n" as *u8) 66 bl_puts("=== BACKLOG LOOP -- the team works it; raised hands escalate to Claude ===\n" as *u8) 67 68 var built: i64 = 0; var hands: i64 = 0; var i: i64 = 0 69 while i < NTASK { 70 let ok: i64 = bl_attempt(tin[i], tout[i], pin, pout, pav) 71 bl_puts(" " as *u8); bl_puts(tname[i] as *u8) 72 if ok == 1 { 73 bl_puts(" -> COMPOSED -> Engineer-gate -> BANKED (autonomous)\n" as *u8) 74 built = built + 1 75 } else { 76 bl_puts(" -> RAISED HAND -> escalated to Claude\n" as *u8) 77 bl_w(esc, "ESCALATE task=" as *u8); bl_w(esc, tname[i] as *u8); bl_w(esc, " reason=missing-primitive route=right-teammate\n" as *u8) 78 hands = hands + 1 79 } 80 i = i + 1 81 } 82 sys_close(esc) 83 84 bl_puts("\n>>> BANKED=" as *u8); let a:*u8=sys_mmap(4); a[0]=(48+built) as u8; sys_write(1,a,1) 85 bl_puts(" ESCALATED(raised hands)=" as *u8); let b:*u8=sys_mmap(4); b[0]=(48+hands) as u8; sys_write(1,b,1); bl_puts("\n" as *u8) 86 if hands == 0 { bl_puts(">>> VERDICT: backlog CLEARED autonomously.\n" as *u8); sys_exit(0); return 0 } 87 if built == 0 { bl_puts(">>> VERDICT: STALLED-ON-TUTORING -- all remaining tasks need Claude; see /tmp/nishi_escalations.log.\n" as *u8); sys_exit(2); return 2 } 88 bl_puts(">>> VERDICT: PROGRESS -- banked what it could; " as *u8); sys_write(1,b,1); bl_puts(" raised hands queued for Claude tutoring.\n" as *u8) 89 bl_puts(">>> Loop RESUMES after each tutoring unblocks a task (re-tick). Team-on-loop + Claude-tutors-hands = the partnership.\n" as *u8) 90 sys_exit(1); return 1 91}