nx_field_seedgen.nx
buildroot/runtime/nx_field_seedgen.nx
about
nx_field_seedgen.nx -- DERIVE A DOMAIN'S SEEDS FROM ITS OWN BOARD (/compare/fieldwatch fleet campaign, 2026-09-05).
The first fieldbeat skipped 110 of 111 domains for having no .seeds file. Every one of them already declares its
population -- the @cols rivals of <dom>.matrix -- and pins their pages in <dom>.refs. This program writes <dom>.seeds
rows of kind named from those two files (decisions in nx_field_seedgen_lib), so the next beat discovers a field for
every board without a seat authoring URLs, and it never guesses: an unsourced column is a counted comment, a file a
seat curated by hand (no marker line) is refused untouched, and a domain with nothing sourced gets NO file so the
beat keeps skipping it cleanly. Discovery seeds (wiki-raw, gh-topic, md-list) remain per-domain curation.
Usage: nx_field_seedgen <dom> | --all [--dir <compare-dir>] [--list <regen-list>]
Receipt per domain: SEEDGEN dom= class= cols= sourced= unsourced= out=; summary SEEDGEN-OK ... sum= (partition printed)
Exits: 0 | 1 a domain was UNWRITABLE | 2 usage | 3 refused (single domain: hand-authored, no matrix, no cols or nothing sourced;
--all: the list was unreadable or named no domain)
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 2 imports · 0 importers
imports: nx_syscalls.nxnx_field_seedgen_lib.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 16 | const SGP_ROOT: *u8 = "/volume1/homes/elderwesto/nishihost/" |
| 17 | const SGP_DIR_DEFAULT: *u8 = "buildroot/knowledge/compare/" |
| 18 | const SGP_LIST_DEFAULT: *u8 = "buildroot/knowledge/compare/regen.list" |
| 19 | const SGP_PATH_CAP: i64 = 1024 |
| 20 | const SGP_EXIT_RED: i64 = 1 |
| 21 | const SGP_EXIT_USAGE: i64 = 2 |
| 22 | const SGP_EXIT_REFUSE: i64 = 3 |
| 23 | const SGP_OUTFD: i64 = 1 |
| 24 | const SGP_ERRFD: i64 = 2 |
| 25 | const SGP_T_COLS: i64 = 0 // totals vector slots |
| 26 | const SGP_T_SOURCED: i64 = 1 |
| 27 | const SGP_T_UNSOURCED: i64 = 2 |
| 28 | const SGP_T_N: i64 = 3 |
functions
| 30 | func sgp_out(s: *u8) -> i64 { fb_puts(SGP_OUTFD, s); return 0 } called by 1: main |
| 31 | func sgp_err(s: *u8) -> i64 { fb_puts(SGP_ERRFD, s); return 0 } called by 1: main |
| 32 | func sgp_read(path: *u8, lenout: *i64) -> *u8 |
| 39 | func sgp_path(dst: *u8, dir: *u8, dom: *u8, ext: *u8) -> i64 called by 1: sg_one |
| 46 | func sg_one(dir: *u8, dom: *u8, ts: i64, tot: *i64) -> i64 |
| 78 | func main(argc: i64, argv: *i64) -> i64 |