code wiki / (root) / nx_shipcheck.nx

nx_shipcheck.nx

buildroot/runtime/nx_shipcheck.nx

20060 B537 linesdepth 2pulls 2 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_shipcheck.nx -- SHIP-COMPLETE integration-orphan detector (POST-submit lane; operator law feedback-ship-complete-lifecycle-standard 2026-07-21, ws=auto-shipcomplete-guards). Counts integration orphans per class over the REAL registry surfaces: noschema tool_allowlist.conf rows with NO schema row in knowledge/tool_schemas.conf staleschema tool_schemas.conf rows whose tool is NOT in tool_allowlist.conf (ghost schema) stagedref registry rows whose binary path contains .new (registered-but-never-promoted) missingbin registry rows whose binary is ABSENT on disk (tools/call would exec-fail) straynew stranded .new artifacts in the deploy root (one-level walk, DECLARED) verb `listnew [root]` PRINTS those names (exit code = the count) -- see sc_scan_new's header for why. noatlas registry tools absent from knowledge/registry/atlas_catalog.tsv col1 Composed context (owned elsewhere, echoed for the trend line, NEVER re-scanned or re-filed): dupsrc last count from knowledge/status/dup_source.log (seq207 lane) unreg_l003 last L003 measured from knowledge/status/law_warden.jrnl (warden lane) frowjoin=-1 DECLARED UNMEASURED: frontier rows carry no ws column (F209 evidence gap). verbs: scan [root] | beat [root] | file [root] [filer] scan: sweep + print + O_APPEND one trend line to <root>/knowledge/status/shipcheck.log beat: scan + auto-file debts via the ALLOWLIST-RESOLVED filer (default nx_debt) file: scan + file via an INJECTED filer tool name (the gate passes argecho -- selftest never writes the production debt plane; F872 harden pattern) Descs are CANONICAL and COUNT-FREE so nx_debt content-idempotent add (F868) makes any beat cadence spam-proof BY CONSTRUCTION. Envelope: per-file read caps DECLARED via capped=. license_tier: ORIGINAL Read-only sweep + O_APPEND log + debt filing. No hw writes (Rule 26).

dependencies 1 imports · 0 importers

nx_syscalls.nx nx_shipcheck.nx

imports: nx_syscalls.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap sc_span_lit sc_len sc_len ↻ sc_scan_new sys_openat_rd sys_mmap ↻ sys_getdents64 sys_write sys_close sc_scan sc_readf sys_mmap ↻ sc_path sc_cat sys_openat_rd ↻ sys_read sys_close ↻ sc_le sc_col sc_cpspan sc_name_in sc_le ↻ sc_col ↻ sc_span_lit ↻ sc_has_new sc_cpspan2 sc_exists sys_mmap ↻ sys_fstatat sc_scan_new ↻ sc_last_num_after sc_len ↻ sc_l003 sc_le ↻ sc_col ↻ sc_span_lit ↻ sc_atoi_span sc_emit

structs

none

consts

25const SC_TAB: i64 = 9
26const SC_NL: i64 = 10
27const SC_HASH: i64 = 35
28const SC_DOT: i64 = 46
29const SC_SLASH: i64 = 47
30const SC_COLON: i64 = 58
31const SC_ZERO: i64 = 48
32const SC_NINE: i64 = 57
33const SC_MINUS: i64 = 45
34const SC_B10: i64 = 10
35const SC_B256: i64 = 256
36const SC_LC_N: i64 = 110
37const SC_LC_E: i64 = 101
38const SC_LC_W: i64 = 119
39const SC_BUFCAP: i64 = 262144
40const SC_LOGCAP: i64 = 1048576
41const SC_PATHCAP: i64 = 1024
42const SC_OUTCAP: i64 = 8192
43const SC_DESCCAP: i64 = 1024
44const SC_DIRCAP: i64 = 262144
45const SC_MODE_F: i64 = 420
46const SC_EXITRED: i64 = 3
47const SC_EXEFAIL: i64 = 127
48const SC_STATBUF: i64 = 160
49const SC_NEWLEN: i64 = 4
50const SC_SEV_MISSINGBIN: i64 = 7
51const SC_SEV_STAGEDREF: i64 = 7
52const SC_SEV_NOSCHEMA: i64 = 6
53const SC_SEV_STALESCHEMA: i64 = 5
54const SC_SEV_STRAYNEW: i64 = 5
55const SC_SEV_NOATLAS: i64 = 4

functions

81func sc_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
83func sc_cat(d: *u8, o: i64, s: *u8) -> i64
91func sc_catn(d: *u8, o: i64, v: i64) -> i64
105func sc_path(d: *u8, rel: *u8) -> *u8
called by 2: sc_readfsc_append calls 1: sc_cat
113func sc_readf(rel: *u8, cap: i64) -> *u8
132func sc_le(b: *u8, i: i64, n: i64) -> i64
141func sc_col(b: *u8, ls: i64, le: i64, want: i64, sp: *i64) -> i64
157func sc_span_lit(b: *u8, s: i64, e: i64, lit: *u8) -> i64
165func sc_cpspan(b: *u8, sp: *i64) -> *u8
called by 1: sc_scan
173func sc_cpspan2(b: *u8, sp: *i64) -> *u8
called by 1: sc_scan
181func sc_name_in(b: *u8, n: i64, name: *u8, col: i64) -> i64
called by 1: sc_scan calls 3: sc_lesc_colsc_span_lit
198func sc_has_new(b: *u8, sp: *i64) -> i64
called by 1: sc_scan
207func sc_exists(p: *u8) -> i64
called by 1: sc_scan calls 2: sys_mmapsys_fstatat
220func sc_scan_new(emit: i64) -> i64
246func sc_atoi_span(b: *u8, sp: *i64) -> i64
called by 1: sc_l003
253func sc_last_num_after(b: *u8, pat: *u8) -> i64
called by 1: sc_scan calls 1: sc_len
280func sc_l003(b: *u8) -> i64
300func sc_scan() -> i64
365func sc_append(b: *u8, n: i64) -> i64
375func sc_emit(verb: *u8) -> i64
418func sc_allow_path(name: *u8, outp: *u8) -> i64
called by 1: sc_file calls 3: sc_lesc_colsc_span_lit
445func sc_spawn_filer(fpath: *u8, desc: *u8) -> i64
467func sc_file_cls(fpath: *u8, tail: *u8) -> i64
491func sc_file(filer: *u8) -> i64
513func main(argc: i64, argv: *i64) -> i64