code wiki / (root) / nx_product_board.nx

nx_product_board.nx

buildroot/runtime/nx_product_board.nx

15573 B264 linesdepth 5pulls 6 transitivereach 0 importersview sourcekind tooltopic product
docsdependenciesstructsconstsfunctions

about

nx_product_board.nx -- THE PRODUCT CATALOG + ROADMAP, rendered from the `products-` information plane into the ALREADY-GATED wiki tree (sites/nishifamily/wiki/products.html -> /wiki/products.html). WHY THIS EXISTS: nx_wiki_products_page claimed in its header AND on the rendered page that it was "Sourced from knowledge/registry/product_catalog.tsv", but it contained NO file read at all -- all 10 families were hardcoded string literals, so every catalog edit was invisible to the page (debt 1785625149). There was no reader to repoint; the reader never existed. This organ is the reader. A product is an OUTCOME, and products live in FAMILIES (games contains checkers and chess). Families are NOT hardcoded here either: they are the DISTINCT values of the family column in first-seen order, so a new family appears by adding ONE plane row -- the same property that makes nx_research_ocean free to extend. Adding a product must cost a data row, never code (the gen-2 golden-path bar). GATING: this writes INTO /wiki, which is OPAQUE-gated by nx_sites_daemon_v2 (no X-Nishi-Session + text/html -> login bootstrap; else proxy to the session-validating gateway, fail-closed). Product strategy is therefore behind the wall BY PLACEMENT, using the wall that already exists rather than standing up a second one. Research stays public in its own rivers. Reads with sts_load_honest so a stale q:n cannot silently truncate the catalog and present a partial board as complete; declared/loaded/rendered are printed on the page itself. Plane row (8 col): id family product arc status governance evidence rung license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 3 imports · 0 importers

nx_store_seed_lib.nx nx_seg_store.nx nx_syscalls.nx nx_product_board.nx

imports: nx_store_seed_lib.nxnx_seg_store.nxnx_syscalls.nx

imported by: nobody (leaf or entry point)

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

main sts_mm sys_mmap sts_werr sys_write sys_exit sts_load_honest ss_open_cached ssc_init sys_mmap ↻ ssc_sig_of ss_cat sys_fstatat ssc_streq ss_open ss_open2 sys_mmap ↻ ss_manifest_dyn ss_manifest_file_dyn ss_cat ↻ ss_loadfile sys_map_file ss_readall ss_load_aux2 sys_mmap ↻ ss_cat ↻ ss_loadfile ↻ ss_r32 sys_munmap ssl_total_keys ss_r32 ↻ ssl_pow2 ssl_build ss_r32 ↻ ssl_hash_entry ssl_key_eq ss_r32 ↻ ssl_lookup ssl_hash_entry ↻ ssl_key_eq ↻

structs

none

consts

28const PB_PLANE: *u8 = "knowledge/store/products-"
29const PB_OUT: *u8 = "sites/nishifamily/wiki/products.html"
30const PB_RCAP: i64 = 262144
31const PB_HCAP: i64 = 524288
32const PB_NL: i64 = 10
33const PB_TAB: i64 = 9
34const PB_MAXCOL: i64 = 16
35const PB_PAIR: i64 = 2
36const PB_SPB: i64 = 256
37const PB_MAXFAM: i64 = 32
38const PB_FAMB: i64 = 512
39const PB_FLAGB: i64 = 64
40const PB_C_FAM: i64 = 1
41const PB_C_PROD: i64 = 2
42const PB_C_ARC: i64 = 3
43const PB_C_STATUS: i64 = 4
44const PB_C_GOV: i64 = 5
45const PB_C_EV: i64 = 6
46const PB_C_RUNG: i64 = 7
47const PB_NCOL: i64 = 8
48const PB_MODE: i64 = 0x1a4
49const PB_ERRFD: i64 = 2
50const PB_EXIT_IO: i64 = 1
51const PB_EXIT_EMPTY: i64 = 3
52const PB_LT: i64 = 60
53const PB_GT: i64 = 62
54const PB_AMP: i64 = 38

functions

56func pb_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 2: pb_werrpb_slice_eqs
57func pb_werr(s: *u8) -> i64 { sys_write(PB_ERRFD, s, pb_slen(s)); return 0 }
called by 1: main calls 2: sys_writepb_slen
58func pb_slice_eqs(q: *u8, a: i64, b: i64, s: *u8) -> i64
called by 1: main calls 1: pb_slen
65func pb_slice_eq(q: *u8, a: i64, b: i64, r: *u8, c: i64, d: i64) -> i64
called by 1: main
71func pb_cols(q: *u8, ls: i64, le: i64, sp: *i64) -> i64
called by 1: main
86func pb_cat_esc(d: *u8, o: i64, q: *u8, a: i64, b: i64) -> i64
called by 1: main calls 1: ss_cat
100func main() -> i64