nx_teacher_publish.nx
buildroot/runtime/nx_teacher_publish.nx
about
nx_teacher_publish.nx -- the PUBLISHER of the Nishi Teacher loop (Teacher arc, rung R5 = surface it).
Operator: "see the nishi teacher and the nishi trainer and the nishi publisher COORDINATING." The
publisher EMITS a data-driven curriculum page FROM the unified native capability store (the teacher's
output) annotated with the trainer's coverage meter + per-insight practiced/due badge -- so the page
is a JOINT artifact of teacher (insights) + trainer (schedule), the coordination made visible.
Emit-never-handwrite ([[feedback-live-testable-publish-loop-standard]]); a LIVE push to the site is
outward-facing -> operator go-ahead (this organ only STAGES the page to web_assets/).
tpub_emit(cap_store, state_store, out_path, now) -> bytes written (or -1)
The page carries machine-checkable markers (INSIGHTS=/COVERED=/DUE=/COVERAGE_PERMIL=) + a card per
insight (source, id, HTML-escaped rule, practiced|due badge). No hardware writes/network (Rule 26).
license_tier: ORIGINAL
dependencies 2 imports · 2 importers
imports: nx_teacher_trainer.nxnx_syscalls.nx
imported by: nx_teacher_coordinate.nxnx_teacher_coordinate_gate.nx
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 17 | func tpub_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 tpub_putn(v: i64) -> i64 |
| 27 | func tpub_wr(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return n } |
| 28 | func tpub_wrn(fd: i64, v: i64) -> i64 |
| 42 | func tpub_wresc(fd: i64, s: *u8) -> i64 |
| 56 | func tpub_emit(cap_store: *u8, state_store: *u8, out_path: *u8, now: i64) -> i64 called by 3: mainmainmain calls 13: ncfg_openncfg_counttrn_coveragetrn_due_countsys_openat_wrtpub_wr+7 |
| 103 | func main() -> i64 |