nx_explore_grow.nx
buildroot/runtime/nx_explore_grow.nx
about
nx_explore_grow.nx -- THE NISHI EXPLORE TEAM, RUNG R5 "GROW": self-discovers its own capability
gaps (operator 2026-06-23: "each rung to be s class exceed" + "self healing"). This is the
cap_gap->discover half of the self-grow loop: it probes the rung table, finds the FIRST MISSING
rung, and emits its exact build-target (path::symbol) -- the precise thing the team toolchain must
author next. It also confirms when the ladder is COMPLETE (no gap) which is the re-census trigger.
HONEST SCOPE (no-wave): R5 v1 = DISCOVER (find the gap) + DETECT-CLOSURE (ladder complete?) +
emit the build-target = the loop's orchestration. The AUTO-AUTHOR step (drive auto_builder to LAND
the discovered rung) routes to the team's emitter shapes -- NOT claimed here. So this exceeds a
static census (it names the NEXT build, not just present coverage) without overclaiming autonomy.
SELF-GATE: prove it can find an INJECTED gap (real discovery, not a "0 gaps" stub) AND that the real
6-rung ladder is now complete -> EXPLORE-GROW-GATE GREEN / run-exit=0. Reuses the census probe idiom.
license_tier: ORIGINAL
dependencies 2 imports · 0 importers
imports: nx_syscalls.nxnx_itoa_lib.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 18 | const EXG_FBUF: i64 = 4194304 |
functions
| 20 | func exg_strlen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 21 | func exg_puts(s: *u8) -> i64 { sys_write(1, s, exg_strlen(s)); return 0 } |
| 26 | func exg_putn(v: i64) -> i64 { nxi_out(v); return 0 } |
| 28 | func exg_find(buf: *u8, lo: i64, hi: i64, pat: *u8, pl: i64) -> i64 called by 1: exg_probe |
| 41 | func exg_probe(path: *u8, sym: *u8, fbuf: *u8) -> i64 |
| 50 | func exg_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { dst[off + i] = s[i]; i = i + 1 } return off + i } called by 1: exg_step |
| 54 | func exg_step(paths: *i64, syms: *i64, n: i64, fbuf: *u8, out_target: *u8) -> i64 |
| 72 | func main() -> i64 |