code wiki / (root) / nx_research_page.nx

nx_research_page.nx

buildroot/runtime/nx_research_page.nx

24793 B305 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind tooltopic research
docsdependenciesstructsconstsfunctions

about

nx_research_page.nx -- EMIT the live nishifamily.com/research page. The beyond-SOTA frontier board + the fetch doctrine. Content is the researcher's; this organ authors document structure and design tokens only, and NEVER rewrites a claim. license_tier: ORIGINAL genealogy_id: nishi_research_board lineage_id: nx_research_page_v1 WHY THIS ORGAN EXISTS AT ALL. Before today /research was a HAND-WRITTEN file in the docroot with no emitter anywhere in the estate: proven 2026-08-25 by nx_absent over all 23,239 .nx sources (coverage_complete=1 corpus_complete=1) for the page's own prose -- an emitter must contain the strings it emits, and none did. nx_games_page.nx already states the law this violated: "HTML is never hand-written into a docroot", and ***A TOKEN SSOT THAT NO PAGE EMITTER CALLS IS A SECOND DESIGN SYSTEM, NOT A SHARED ONE.*** So the page was raised by giving it an OWNER, not by hand-editing it a second time. Editing the HTML directly would have hardcoded a second copy of the palette into the docroot -- the duplicate-ruler defect wearing a colour. MEASURED BEFORE (nx_ui_audit, live, 2026-08-25): score 3/12 DEV-GRADE -- design-tokens 2/3 (15 var(--) uses) . theme-aware 0/2 . responsive 0/3 (0 @media, viewport=1) . type-scale 1/2 (8 font-size, clamp=0) . polish 0/2 (0 transition/animation/:focus) Each of the five is a real missing ingredient, and each is fixed below by a real mechanism: theme-aware -- the page was DARK-ONLY. A prefers-color-scheme block on an already-dark page is a NO-OP that buys the point and changes nothing for a user, so the palette was inverted properly: light default + a real dark override from the SSOT. responsive -- 0 breakpoints and a 4-column table with white-space:nowrap on its label column. That table could not reflow. Fixed by removing the nowrap and by scrolling wide content in its OWN container, so the page body can never scroll sideways. type-scale -- six ad-hoc sizes (15/13.5/13/12.5/12/11px) collapsed onto a 4-step token scale, with a FLUID h1 whose max is the incumbent 25px, so desktop is unchanged. polish -- :focus-visible rings (WCAG 2.1 SC 2.4.7, an external bar) + a colour transition, wrapped in prefers-reduced-motion:no-preference so motion-sensitive users opt out. ***A SCORE IS NOT A GOAL. Every point above is the receipt of a change a visitor can feel; none of it is padding, and the one dimension that CANNOT be read as evidence is named next.*** ***explicit_colors WILL READ 0 AND THAT IS NOT EVIDENCE OF ANYTHING.*** nx_ui_audit counts the substring ":#" while bt_emit_root_buf emits ": " and then the value, i.e. ": #f6f7f4". Every SSOT-emitted colour is invisible to that counter whether or not hardcoded colours were removed. Do not report the 8 -> 0 move as "hardcoded colours removed".

dependencies 1 imports · 0 importers

nx_brand_tokens.nx nx_research_page.nx

imports: nx_brand_tokens.nx

imported by: nobody (leaf or entry point)

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

main rp_err rp_brand bt_len rp_s bt_app

structs

none

consts

42const RP_OUT: *u8 = "sites/nishifamily/research.html"
43const RP_TMP: *u8 = "sites/nishifamily/research.html.tmp"
46const RP_CAP: i64 = 65536
52const RP_TOKCAP: i64 = 8192
56const RP_BP_MD: i64 = 860
57const RP_BP_SM: i64 = 640
58const RP_MODE_0644: i64 = 0x1a4

functions

62func rp_err(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(2, s, n); return 0 }
called by 1: main
63func rp_out(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
67func rp_s(out: *u8, pos: i64, s: *u8) -> i64 { return bt_app(out, pos, RP_CAP, s) }
called by 1: main calls 1: bt_app
71func rp_num(out: *u8, pos: i64, cap: i64, v: i64) -> i64
84func rp_blk(out: *u8, pos: i64, tb: *u8, n: i64) -> i64
119func rp_brand() -> *u8
called by 1: main
123func main() -> i64