code wiki / _hdl_build / nx_wiki_roadmap_page.nx

nx_wiki_roadmap_page.nx source

↩ module page · 119 lines · 8348 B

1// nx_wiki_roadmap_page.nx -- GENERATE the live "Roadmap" wiki article, a TYPED Diataxis EXPLANATION page 2// built through the sovereign page builder (nx_wiki_shell) so it clears the full MediaWiki feature bar 3// (measured by nx_wiki_exceed) AND is walkable into the wiki spine (breadcrumb/tree/prev-next/related/ 4// backlinks). Summarizes the living roadmap: the stack hardware-up, maturity per layer, where the external 5// footprint is shrinking, and the highest-leverage opportunities. Facts mirror the team-measured roadmap. 6// Emits web_assets/roadmap.html (-> nishifamily.com/wiki/roadmap.html). license_tier: ORIGINAL 7 8import "nx_syscalls.nx" 9import "nx_wiki_shell.nx" 10 11const RM_OUT: *u8 = "web_assets/roadmap.html" 12const RM_CAP: i64 = 262144 13 14// HTML-escape dynamic text. 15func rm_cat_esc(dst: *u8, off: i64, s: *u8) -> i64 { 16 var o: i64 = off; var i: i64 = 0 17 while s[i] != 0 as u8 { 18 let c: u8 = s[i] 19 if c == 60 as u8 { o = sh_cat(dst, o, "&lt;" as *u8) } 20 else { if c == 62 as u8 { o = sh_cat(dst, o, "&gt;" as *u8) } 21 else { if c == 38 as u8 { o = sh_cat(dst, o, "&amp;" as *u8) } 22 else { dst[o] = c; o = o + 1 } } } 23 i = i + 1 24 } 25 return o 26} 27 28// one layer <tr>: layer, capability, maturity, the raised-hand opportunity. 29func rm_row(dst: *u8, off: i64, layer: *u8, cap: *u8, mat: *u8, op: *u8) -> i64 { 30 var w: i64 = off 31 w = sh_cat(dst, w, "<tr><td><strong>" as *u8); w = rm_cat_esc(dst, w, layer) 32 w = sh_cat(dst, w, "</strong></td><td>" as *u8); w = rm_cat_esc(dst, w, cap) 33 w = sh_cat(dst, w, "</td><td>" as *u8); w = rm_cat_esc(dst, w, mat) 34 w = sh_cat(dst, w, "</td><td>" as *u8); w = rm_cat_esc(dst, w, op) 35 w = sh_cat(dst, w, "</td></tr>\n" as *u8) 36 return w 37} 38 39func main() -> i64 { 40 let now: i64 = sys_now_realtime_sec() 41 let h: *u8 = sys_mmap(RM_CAP) 42 var w: i64 = 0 43 44 let wl: *NxWikiLinks = sys_mmap(128) as *NxWikiLinks 45 sh_links_load(wl, "knowledge/registry/wiki_links.tsv" as *u8) 46 let store: *NxWikiDocStore = sh_corpus_store() 47 48 w = sh_head(h, w, "Roadmap" as *u8, "roadmap" as *u8) 49 w = sh_nav(h, w, "roadmap" as *u8) 50 w = sh_walk_furniture(h, w, wl, store, "roadmap" as *u8) 51 52 w = sh_cat(h, w, "<h1>Living Roadmap &amp; Footprint</h1>\n" as *u8) 53 w = sh_cat(h, w, "<p class=\"fresh\">&#10227; Generated LIVE by <code>nx_wiki_roadmap_page</code> at epoch=" as *u8) 54 w = sh_catn(h, w, now) 55 w = sh_cat(h, w, " &mdash; a Diataxis <strong>explanation</strong> page. Maturity per layer is re-graded by the team (Auditor + Compliance) and regenerated.</p>\n" as *u8) 56 57 w = sh_cat(h, w, "<p class=\"lede\">The ecosystem is built <strong>hardware up</strong> &mdash; from machine code and the sovereign compiler through crypto, transport, hosting, and apps. This roadmap shows the maturity of each layer, where the external (non-sovereign) <strong>footprint is shrinking</strong>, and the highest-leverage opportunities next. Overall progress to <strong>S-class-EXCEED: 47%</strong>.</p>\n" as *u8) 58 59 w = sh_infobox_open(h, w, "Living Roadmap" as *u8) 60 w = sh_infobox_row(h, w, "Type" as *u8, "Explanation" as *u8) 61 w = sh_infobox_row(h, w, "Progress to S-EXCEED" as *u8, "47%" as *u8) 62 w = sh_infobox_row(h, w, "Direction" as *u8, "hardware up (L0 -> apps)" as *u8) 63 w = sh_infobox_row(h, w, "Footprint target" as *u8, "external deps -> 0 (gcc + .sh remaining)" as *u8) 64 w = sh_infobox_row(h, w, "Re-graded by" as *u8, "the team (Auditor + Compliance)" as *u8) 65 w = sh_infobox_close(h, w) 66 67 w = sh_toc_open(h, w) 68 w = sh_toc_item(h, w, "stack" as *u8, "The stack, hardware up" as *u8) 69 w = sh_toc_item(h, w, "footprint" as *u8, "The shrinking footprint" as *u8) 70 w = sh_toc_item(h, w, "opps" as *u8, "Where the opportunities are" as *u8) 71 w = sh_toc_item(h, w, "refs" as *u8, "References &amp; evidence" as *u8) 72 w = sh_toc_close(h, w) 73 74 w = sh_section(h, w, "stack" as *u8, "The stack, hardware up" as *u8) 75 w = sh_cat(h, w, "<p>Maturity runs from TOY &rarr; FUNCTIONAL &rarr; PRODUCTION &rarr; EXCEED; a raised hand marks the blocker on a layer.</p>\n" as *u8) 76 w = sh_cat(h, w, "<table><tr><th>Layer</th><th>Capability</th><th>Maturity</th><th>Raised hand / next</th></tr>\n" as *u8) 77 w = rm_row(h, w, "L0" as *u8, "Machine code / syscalls" as *u8, "PRODUCTION" as *u8, "stable foundation" as *u8) 78 w = rm_row(h, w, "L1" as *u8, "Compiler (NishiLang -> x86)" as *u8, "TOY" as *u8, "KEYSTONE: regalloc + captured miscompile" as *u8) 79 w = rm_row(h, w, "L2" as *u8, "Toolchain / linker (nxasm/ELF)" as *u8, "PRODUCTION" as *u8, "byte-exact -> retire gcc" as *u8) 80 w = rm_row(h, w, "L3" as *u8, "Crypto (SHA / ECDSA / ChaCha)" as *u8, "FUNCTIONAL" as *u8, "raised hand: Argon2id" as *u8) 81 w = rm_row(h, w, "L5" as *u8, "TLS 1.3 + SSH" as *u8, "FUNCTIONAL" as *u8, "W1: OpenSSH benchmark" as *u8) 82 w = rm_row(h, w, "L7" as *u8, "Hosting (multi-site, hot)" as *u8, "PRODUCTION" as *u8, "A1 boot / A3 zero-downtime" as *u8) 83 w = rm_row(h, w, "L8" as *u8, "Site / CMS / search" as *u8, "FUNCTIONAL" as *u8, "raised hand: sanitizer + content" as *u8) 84 w = rm_row(h, w, "L9" as *u8, "Team / process / autonomy" as *u8, "PRODUCTION" as *u8, "drive Claude-load -> 0" as *u8) 85 w = sh_cat(h, w, "</table>\n" as *u8) 86 87 w = sh_section(h, w, "footprint" as *u8, "The shrinking footprint" as *u8) 88 w = sh_cat(h, w, "<p>The external / non-sovereign dependencies <strong>retired</strong> over the arc: Python, bash orchestration, C on the x86 path, hand <code>.sh</code> deploys. Still on the path (the last rungs): <strong>gcc</strong> (link) and the <code>.sh</code> boot supervisor &mdash; target <strong>0</strong>.</p>\n" as *u8) 89 w = sh_cat(h, w, "<p class=\"why\">Claude-load (the tutoring footprint we drive to zero) is honestly tracked: it spikes during novel authoring, then falls as the Builder gains the capability. The metric is the point &mdash; the ecosystem must become self-sufficient.</p>\n" as *u8) 90 91 w = sh_section(h, w, "opps" as *u8, "Where the opportunities are" as *u8) 92 w = sh_cat(h, w, "<p>Prioritized by WSJF in the PM backlog; each is a callout on the maturity graph:</p>\n<ul>" as *u8) 93 w = sh_cat(h, w, "<li><strong>L1 compiler keystone</strong> &mdash; regalloc O(n^2) -> O(n log n) + fix the captured miscompile. Unblocks fast sovereign builds across the whole stack.</li>" as *u8) 94 w = sh_cat(h, w, "<li><strong>Two raised hands</strong> &mdash; Argon2id (Engineer) + the HTML allowlist-sanitizer (Builder). Unblock CMS auth + safe editing.</li>" as *u8) 95 w = sh_cat(h, w, "<li><strong>A1 sovereign supervisor at boot</strong> &mdash; retires the last <code>.sh</code>, shrinking the footprint to gcc-only.</li>" as *u8) 96 w = sh_cat(h, w, "<li><strong>Real site content + WCAG 2.2 AA audit</strong> &mdash; moves the sites FUNCTIONAL -> S-class.</li>" as *u8) 97 w = sh_cat(h, w, "</ul>\n" as *u8) 98 w = sh_cat(h, w, "<p>Track the work on the <a href=\"/wiki/board.html\">workstream board</a>; see what ships in the <a href=\"/wiki/products.html\">product catalog</a>.</p>\n" as *u8) 99 100 w = sh_refs_open(h, w) 101 w = sh_cat(h, w, "<li>Living roadmap &mdash; auto-generated from team measurements, re-graded by the Auditor + Compliance, pushed hot to this wiki</li>\n" as *u8) 102 w = sh_cat(h, w, "<li><a href=\"/wiki/board.html\">Workstream board</a> &mdash; the streams + empires this roadmap prioritizes</li>\n" as *u8) 103 w = sh_cat(h, w, "<li><a href=\"/wiki/charter.html\">Graceful Evolution Charter</a> &mdash; the telos the roadmap serves</li>\n" as *u8) 104 w = sh_refs_close(h, w) 105 106 w = sh_footer_wl(h, w, wl, "roadmap" as *u8, now) 107 108 let fd: i64 = sys_openat_wr(RM_OUT, 0x1a4) 109 if fd < 0 { sys_write(2, "FATAL: cannot open roadmap.html\n" as *u8, 32); sys_exit(2); return 2 } 110 sys_write(fd, h, w) 111 sys_close(fd) 112 sys_write(1, "[nx_wiki_roadmap_page] wrote roadmap.html bytes=" as *u8, 48) 113 let nb: *u8 = sys_mmap(28); var k2: i64 = 0; var m2: i64 = w 114 if m2 == 0 { nb[0] = 48 as u8; k2 = 1 } 115 while m2 > 0 { nb[k2] = (48 + (m2 % 10)) as u8; m2 = m2 / 10; k2 = k2 + 1 } 116 var q: i64 = k2 - 1; while q >= 0 { let o1: *u8 = sys_mmap(1); o1[0] = nb[q]; sys_write(1, o1, 1); q = q - 1 } 117 sys_write(1, "\n" as *u8, 1) 118 sys_exit(0); return 0 119}