code wiki / _hdl_build / nx_pub_teacher_handoff.nx
nx_pub_teacher_handoff.nx
buildroot/runtime/_hdl_build/nx_pub_teacher_handoff.nx
about
nx_pub_teacher_handoff.nx -- the TEACHER -> NISHI PUBLISHER handoff (coordination, done RIGHT).
Operator (2026-06-20): "you dont publish, you pass to nishi publisher who manages all this." The REAL
Nishi Publisher already exists ([[project-nishi-publisher-role-2026-06-20]], 9 gates GREEN, S-class
exceed) -- so the teacher does NOT reinvent publishing (BL-012 before-build check): it REQUESTS, and
the publisher SHIPS. This organ is the handoff: it lives in _hdl_build/ so `import "nx_publisher.nx"`
resolves (a runtime/ file's import path is [own-dir, runtime/] only). It imports ONLY the publisher
(small object -> dodges the nxasm ctx-x-output-path landmine the over-stacked import hit).
Flow: the teacher coordinator emits web_assets/nishi-curriculum.html; THIS submits it to a teacher
queue (isolated -- never touches the shared queue / sibling requests) and runs the publisher's full
pipeline (serialize -> idempotent -> stage -> VERIFY-sha -> ATOMIC-promote -> ledger) to a LOCAL live
root. Outward transport live-root -> nishifamily.com = OPERATOR-GATED (publisher R6 policy). license_tier: ORIGINAL
dependencies 2 imports · 0 importers
imports: nx_publisher.nxnx_syscalls.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
| none |
functions
| 17 | func hp_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != 0 as u8 { n = n + 1 } sys_write(1, s, n); return 0 } |
| 18 | func hp_putn(v: i64) -> i64 |
| 27 | func hp_exists(path: *u8) -> i64 { let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 } sys_close(fd); return 1 } |
| 29 | func main() -> i64 |