code wiki / _hdl_build / nx_cms_w2345_register.nx

nx_cms_w2345_register.nx source

↩ module page · 103 lines · 7530 B

1// nx_cms_w2345_register.nx -- registers the EXCEED-WORDPRESS rungs W2/W3/W4/W5 (2026-06-10) that 2// took the scorecard to permil=1000 EXCEED-WP. ENGINEER evidence = the durable gate log: every 3// rung's row must be verdict=PASS, the snapshot KAT rebuilds here, and the scorecard verdict must 4// read EXCEED-WP. RACI: caps named per role verb. license_tier: ORIGINAL 5import "nx_cap_register.nx" 6import "nx_capreg_librarian.nx" 7import "nx_syscalls.nx" 8const K_MAGIC_262144: i64 = 262144 9const K_MAGIC_262143: i64 = 262143 10const K_MAGIC_65536: i64 = 65536 11const K_MAGIC_65535: i64 = 65535 12 13func wr_find_last(buf: *u8, len: i64, pat: *u8) -> i64 { 14 var plen: i64 = 0 15 while pat[plen] != (0 as u8) { plen = plen + 1 } 16 if plen == 0 { return 0 - 1 } 17 var best: i64 = 0 - 1 18 var i: i64 = 0 19 while i + plen <= len { 20 var j: i64 = 0 21 var ok: i64 = 1 22 while j < plen { if buf[i + j] != pat[j] { ok = 0; j = plen } else { j = j + 1 } } 23 if ok == 1 { best = i } 24 i = i + 1 25 } 26 return best 27} 28func wr_row_pass(buf: *u8, len: i64, rowpat: *u8) -> i64 { 29 let at: i64 = wr_find_last(buf, len, rowpat) 30 if at < 0 { return 0 } 31 var e: i64 = at 32 var sc: i64 = 1 33 while sc == 1 { if e >= len { sc = 0 } if sc == 1 { if buf[e] == (10 as u8) { sc = 0 } } if sc == 1 { e = e + 1 } } 34 let sub: *u8 = ((buf as i64) + at) as *u8 35 if wr_find_last(sub, e - at, "verdict=PASS" as *u8) >= 0 { return 1 } 36 return 0 37} 38func wr_read(path: *u8, buf: *u8, cap: i64) -> i64 { 39 let fd: i64 = sys_openat_rd(path) 40 var len: i64 = 0 41 if fd >= 0 { 42 var go: i64 = 1 43 while go == 1 { let r: i64 = sys_read(fd, (buf + len) as *u8, cap - len); go = 0; if r > 0 { len = len + r; if len < cap { go = 1 } } } 44 sys_close(fd) 45 } 46 return len 47} 48func wr_build_run(name: *u8) -> i64 { 49 let pid: i64 = sys_fork() 50 if pid == 0 { 51 let dn: i64 = sys_openat_wr("/dev/null" as *u8, 0x1a4) 52 if dn >= 0 { sys_dup3(dn, 1, 0); sys_dup3(dn, 2, 0) } 53 let argv: *i64 = sys_mmap(32) as *i64 54 argv[0] = "_offc/nx_sov_build_run.elf" as *u8 as i64 55 argv[1] = name as i64 56 argv[2] = 0 57 let envp: *i64 = sys_mmap(16) as *i64; envp[0] = 0 58 sys_execve("_offc/nx_sov_build_run.elf" as *u8, argv, envp); sys_exit(127) 59 } 60 let st: *i64 = sys_mmap(16) as *i64 61 sys_wait4(pid, st, 0) 62 return st[0] 63} 64 65func main() -> i64 { 66 var allok: i64 = 1 67 if wr_build_run("nx_cms_snapshot_test" as *u8) != 0 { allok = 0 } 68 if wr_build_run("nx_cms_wp_scorecard" as *u8) != 0 { allok = 0 } 69 let buf: *u8 = sys_mmap(K_MAGIC_262144) 70 let len: i64 = wr_read("knowledge/status/cms_gate.log" as *u8, buf, K_MAGIC_262143) 71 if wr_row_pass(buf, len, "row=nx_cms_seo " as *u8) != 1 { allok = 0 } 72 if wr_row_pass(buf, len, "row=nx_cms_analytics " as *u8) != 1 { allok = 0 } 73 if wr_row_pass(buf, len, "row=nx_cms_forms " as *u8) != 1 { allok = 0 } 74 if wr_row_pass(buf, len, "row=nx_cms_snapshot " as *u8) != 1 { allok = 0 } 75 let sbuf: *u8 = sys_mmap(K_MAGIC_65536) 76 let slen: i64 = wr_read("knowledge/status/cms_wp_scorecard.log" as *u8, sbuf, K_MAGIC_65535) 77 if wr_find_last(sbuf, slen, "verdict=EXCEED-WP" as *u8) < 0 { allok = 0 } 78 cr_w(1, "ENGINEER: W2/W3/W4/W5 rows PASS + snapshot KAT + scorecard EXCEED-WP -> pass=" as *u8); cr_wn(1, allok); cr_w(1, "\n" as *u8) 79 let eng: i64 = ig_engineer(1, 1, 1, allok) 80 let dec: i64 = ig_decision(eng, ig_council(eng, 1, 1, 2), 1) 81 if dec != IG_INGEST { cr_w(1, "HELD\n" as *u8); sys_exit(1) } 82 if cr_can_register(5, 2, 6, dec) != 1 { cr_w(1, "REFUSED\n" as *u8); sys_exit(1) } 83 let lp: *u8 = "/tmp/nishi_cap_registry.log" as *u8 84 let jp: *u8 = "knowledge/status/cap_registry_durable.log" as *u8 85 let i1: i64 = cl_next_idx(lp, jp) 86 let o1: i64 = cl_register_dual(lp, jp, i1, 3, 2, "BLD CMS-SEO-RENDERER (W2, _pe_seohead) -- the SECOND independent use of emit12 TEMPLATE_TABLE (after _pe_blockr) proving the shape generalizes: the team authors the <head> meta vocabulary (title/description/og:title/og:description/og:image/canonical/og:type) as a DATA table, every value attribute-ESCAPED, zero Claude core. Admin composes them with field fallbacks (seo_title->hero_title, seo_desc->hero_tag) into {{seo_head_html}} + serves /sitemap.xml + /robots.txt. GATE 8/8 row=nx_cms_seo: fallback title, explicit tags, SEO-field XSS escaped-not-injected, sitemap well-formed, robots references sitemap") 87 let i2: i64 = cl_next_idx(lp, jp) 88 let o2: i64 = cl_register_dual(lp, jp, i2, 3, 2, "VER CMS-ANALYTICS (W5, vs Site Kit/Jetpack) -- first-party per-path view counters incremented server-side (no third-party beacon by construction), additive + file-backed (survive restart), session-only /admin/stats. GATE 5/5 row=nx_cms_analytics: 5 views counted exactly, no google-analytics/gtag in page, stats refused unauth, counts survive a daemon restart (5->6). EXCEED: privacy by construction -- nothing leaves the box") 89 let i3: i64 = cl_next_idx(lp, jp) 90 let o3: i64 = cl_register_dual(lp, jp, i3, 3, 2, "VER CMS-FORMS (W3, vs CF7/Akismet) -- public POST /form/<name> -> ADDITIVE submissions log (never lost) + honeypot field (hp_url filled = bot, silently discarded) + per-IP sliding-window rate cap (config DATA form.conf max_per_window/window_sec, 429 over cap), session-only /admin/submissions. Peer IP via sys_accept_with_addr. GATE 6/6 row=nx_cms_forms: stored+listed, honeypot discarded, rate cap 429+not-stored, list refused unauth") 91 let i4: i64 = cl_next_idx(lp, jp) 92 let o4: i64 = cl_register_dual(lp, jp, i4, 3, 2, "VER CMS-SNAPSHOT (W4, vs UpdraftPlus) -- nx_cms_snapshot: binary-safe length-prefixed site archive (NXSNAP1; N<namelen>name D<datalen>data; END) packing N named files, restore BYTE-EXACT (additive-history law). KAT round-trips all 256 byte values + rejects bad magic. Admin POST /admin/snapshot + GET /admin/snapshot.nxsnap download + POST /admin/restore (re-renders). GATE 7/7 row=nx_cms_snapshot: snapshot baseline, change live, restore brings back byte-exact baseline, magic present, restore session+CSRF guarded") 93 let i5: i64 = cl_next_idx(lp, jp) 94 let o5: i64 = cl_register_dual(lp, jp, i5, 4, 2, "CON CMS-EXCEED-WP-1000 (program W milestone) -- nx_cms_wp_scorecard verdict flipped ON-LADDER->EXCEED-WP: buckets=14 covered=14 open=0 failing=0 permil=1000 (was 714 at baseline). All 14 top-WP-plugin-class buckets now gate-COVERED (field-edit/blocks/uploads/revisions/draft/creds/hardening/multisite/tls/caching/seo/forms/backup/analytics). MEASURED not asserted: each bucket maps to a re-runnable gate row in cms_gate.log; the scorecard derives the verdict mechanically. Warden board 11 rungs permil=1000 (all ADMITTED). Standing EXCEEDS WP cannot match: own TLS1.3 stack both sides, team-authored renderers from data tables (emit12 x2), additive-history everywhere (snapshot/revisions/submissions byte-proven), privacy-by-construction analytics. Spec 2026-06-10-cms-exceed-wordpress-ladder.md") 95 if o1 != 1 { cr_w(1, "DW1\n" as *u8); sys_exit(1) } 96 if o2 != 1 { cr_w(1, "DW2\n" as *u8); sys_exit(1) } 97 if o3 != 1 { cr_w(1, "DW3\n" as *u8); sys_exit(1) } 98 if o4 != 1 { cr_w(1, "DW4\n" as *u8); sys_exit(1) } 99 if o5 != 1 { cr_w(1, "DW5\n" as *u8); sys_exit(1) } 100 cr_w(1, "CAPREG idx=" as *u8); cr_wn(1, i1); cr_w(1, ".." as *u8); cr_wn(1, i5); cr_w(1, " REGISTERED (W2 SEO + W5 analytics + W3 forms + W4 snapshot + EXCEED-WP=1000)\n" as *u8) 101 sys_exit(0) 102 return 0 103}