code wiki / _hdl_build / nx_prospector.nx

nx_prospector.nx source

↩ module page · 75 lines · 6149 B

1// nx_prospector.nx -- the CONTENT/BACKLOG MINER ("Prospector"), owned by the LIBRARIAN (operator: "do we have 2// a content miner... to make sure we are getting our backlog autonomously built until we truly have plans for 3// ALL our digital and physical projects with clear targets to s-class or s-class-exceed"). Distinct from the 4// Researcher (which mines EXTERNAL knowledge): the Prospector mines the PROJECT SPACE -- it surveys every 5// project (digital + physical) against COVERAGE criteria (has a PLAN? a SPEC? an S-CLASS TARGET?), and any 6// project missing one is a GAP it files to the backlog. Runs in the autonomous loop -> the backlog self-builds 7// until 100% coverage. Feeds the Researcher (spec the gap) + the PM (prioritize). license_tier: ORIGINAL 8import "nx_pm_review_log.nx" 9import "nx_syscalls.nx" 10 11func pr_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 12func pr_n(v: i64) -> i64 { let b: *u8=sys_mmap(28); var m: i64=v; 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{b[i]=t[k-1-i];i=i+1}; sys_write(1,b,k); return 0 } 13 14const DOM_DIGITAL: i64 = 0 15const DOM_PHYSICAL: i64 = 1 16const NPj: i64 = 20 17 18func main() -> i64 { 19 let name:*i64=sys_mmap(8*NPj) as *i64; let dom:*i64=sys_mmap(8*NPj) as *i64 20 let plan:*i64=sys_mmap(8*NPj) as *i64; let spec:*i64=sys_mmap(8*NPj) as *i64; let tgt:*i64=sys_mmap(8*NPj) as *i64 21 // DIGITAL projects (plan? spec? S-class target?) -- honest current coverage 22 name[0]="andelinwest site+brand" as *u8 as i64; dom[0]=DOM_DIGITAL; plan[0]=1; spec[0]=1; tgt[0]=1 23 name[1]="CMS / WYSIWYG" as *u8 as i64; dom[1]=DOM_DIGITAL; plan[1]=1; spec[1]=1; tgt[1]=1 24 name[2]="hosting platform" as *u8 as i64; dom[2]=DOM_DIGITAL; plan[2]=1; spec[2]=1; tgt[2]=1 25 name[3]="compiler (NishiLang->x86)" as *u8 as i64; dom[3]=DOM_DIGITAL; plan[3]=1; spec[3]=0; tgt[3]=1 26 name[4]="toolchain / linker (nxasm)" as *u8 as i64; dom[4]=DOM_DIGITAL; plan[4]=1; spec[4]=0; tgt[4]=1 27 name[5]="crypto" as *u8 as i64; dom[5]=DOM_DIGITAL; plan[5]=1; spec[5]=0; tgt[5]=1 28 name[6]="TLS / HTTPS" as *u8 as i64; dom[6]=DOM_DIGITAL; plan[6]=1; spec[6]=0; tgt[6]=1 29 name[7]="SSH client" as *u8 as i64; dom[7]=DOM_DIGITAL; plan[7]=1; spec[7]=0; tgt[7]=1 30 name[8]="onsite search (BM25)" as *u8 as i64; dom[8]=DOM_DIGITAL; plan[8]=1; spec[8]=0; tgt[8]=1 31 name[9]="wiki / roadmap dashboard" as *u8 as i64; dom[9]=DOM_DIGITAL; plan[9]=1; spec[9]=1; tgt[9]=1 32 name[10]="e-reader / unified format" as *u8 as i64; dom[10]=DOM_DIGITAL; plan[10]=1; spec[10]=1; tgt[10]=1 33 name[11]="information management / Library" as *u8 as i64; dom[11]=DOM_DIGITAL; plan[11]=1; spec[11]=1; tgt[11]=1 34 // PHYSICAL projects -- we USE them but have NO plan/spec/S-class target as projects (operator-enumerable) 35 name[12]="NAS hosting hardware" as *u8 as i64; dom[12]=DOM_PHYSICAL; plan[12]=0; spec[12]=0; tgt[12]=0 36 name[13]="RTX 5080 / image-gen" as *u8 as i64; dom[13]=DOM_PHYSICAL; plan[13]=0; spec[13]=0; tgt[13]=0 37 name[14]="(physical registry incomplete -- enumerate: solar? crops? robotics?)" as *u8 as i64; dom[14]=DOM_PHYSICAL; plan[14]=0; spec[14]=0; tgt[14]=0 38 // IMMERSIVE-REALISM cluster (operator: "full immersive realism starting with z-image-turbo across vr/video/games + authoring") 39 name[15]="image-gen (Z-Image-Turbo)" as *u8 as i64; dom[15]=DOM_DIGITAL; plan[15]=1; spec[15]=0; tgt[15]=0 40 name[16]="VR / immersive realism" as *u8 as i64; dom[16]=DOM_DIGITAL; plan[16]=0; spec[16]=0; tgt[16]=0 41 name[17]="video generation" as *u8 as i64; dom[17]=DOM_DIGITAL; plan[17]=0; spec[17]=0; tgt[17]=0 42 name[18]="games / interactive" as *u8 as i64; dom[18]=DOM_DIGITAL; plan[18]=0; spec[18]=0; tgt[18]=0 43 name[19]="authoring tools (scene/3D/content)" as *u8 as i64; dom[19]=DOM_DIGITAL; plan[19]=0; spec[19]=0; tgt[19]=0 44 45 let ifd: i64 = pm_open("/tmp/nishi_issues.log" as *u8) 46 pm_w(ifd, "\n# PROSPECTOR SURVEY 2026-06-06 (coverage gaps -> backlog)\n" as *u8) 47 48 pr_puts("=== PROSPECTOR -- mining the project space for coverage gaps (plan / spec / S-class target) ===\n\n" as *u8) 49 var covered: i64=0; var gaps: i64=0; var phys_gap: i64=0; var i: i64=0 50 while i < NPj { 51 let full: i64 = plan[i] * spec[i] * tgt[i] 52 pr_puts(" ["); if dom[i]==DOM_DIGITAL { pr_puts("DIGITAL " as *u8) } else { pr_puts("PHYSICAL" as *u8) } 53 pr_puts("] " as *u8); pr_puts(name[i] as *u8) 54 pr_puts(" plan=" as *u8); pr_n(plan[i]); pr_puts(" spec=" as *u8); pr_n(spec[i]); pr_puts(" target=" as *u8); pr_n(tgt[i]) 55 if full == 1 { pr_puts(" -> COVERED\n" as *u8); covered = covered + 1 } 56 else { 57 pr_puts(" -> GAP -> backlog\n" as *u8); gaps = gaps + 1 58 if dom[i]==DOM_PHYSICAL { phys_gap = phys_gap + 1 } 59 pm_w(ifd, "PROSPECT-GAP project=" as *u8); pm_w(ifd, name[i] as *u8) 60 if plan[i]==0 { pm_w(ifd, " missing=PLAN" as *u8) } 61 if spec[i]==0 { pm_w(ifd, " missing=SPEC" as *u8) } 62 if tgt[i]==0 { pm_w(ifd, " missing=S-CLASS-TARGET" as *u8) } 63 pm_w(ifd, " -> Researcher specs it / PM prioritizes\n" as *u8) 64 } 65 i = i + 1 66 } 67 sys_close(ifd) 68 69 let cov_pct: i64 = covered * 100 / NPj 70 pr_puts("\n>>> COVERAGE: " as *u8); pr_n(covered); pr_puts("/" as *u8); pr_n(NPj); pr_puts(" projects fully planned+spec'd+S-class-targeted = " as *u8); pr_n(cov_pct); pr_puts("%\n" as *u8) 71 pr_puts(">>> GAPS filed to the backlog: " as *u8); pr_n(gaps); pr_puts(" (of which PHYSICAL: " as *u8); pr_n(phys_gap); pr_puts(" -- the physical registry needs operator enumeration; the Prospector won't invent projects).\n" as *u8) 72 pr_puts(">>> DONE-condition: coverage=100% (every digital+physical project has a plan, a spec, and an S-class target).\n" as *u8) 73 pr_puts(">>> OWNER: Librarian runs the Prospector each loop beat; Researcher specs each gap; PM prioritizes. The backlog self-builds.\n" as *u8) 74 sys_exit(0); return 0 75}