code wiki / _hdl_build / nx_minecov.nx
nx_minecov.nx
buildroot/runtime/_hdl_build/nx_minecov.nx
about
nx_minecov.nx -- MINER CLASS-COVERAGE CENSUS (miner-sota F969/MS06, 2026-07-23).
The operator's "features and bugs and capabilities and harnesses and workflows and agents" clause,
MECHANIZED: a data-driven class table (knowledge/status/minecov_classes.conf, hot-read, rule-11
tunable) declares every artifact class we want brought inside; the census VERIFIES each row by
actually READING its source (journal lines, or a seg-store plane loaded through the ALLOWLIST-
RESOLVED loader) and reports TWO gauges: coverage (a reader exists AND evidence exists) and mined
(that reader actually mines patterns rather than merely listing/deriving). A class can never be
"covered" by declaration alone -- no evidence, no credit; and no reader, no credit. The GAP list
IS the build queue. Composes nx_sovjson_lib (sj_*). Read-only. No hw writes (Rule 26).
census <classconf> [loader] -> JSON per-class rows + coverage_permil/mined_permil + gaps
selftest <scratch-prefix> -> gate T1..T8 (unique per-run scratch)
conf cols: id TAB class TAB kind(jrnl|plane|none) TAB source TAB reader(- = none) TAB mined(0|1) TAB note
license_tier: ORIGINAL
dependencies 4 imports · 0 importers
imports: nx_sovjson_lib.nxnx_syscalls.nxnx_gate_verdict.nxnx_tool_run.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
| 19 | const MC_CONF: i64 = 65536 |
| 20 | const MC_CAP: i64 = 4194304 |
| 21 | const MC_OUT: i64 = 65536 |
| 22 | const MC_PATH: i64 = 512 |
| 23 | const MC_ROWS: i64 = 64 |
| 24 | const MC_MODE_644: i64 = 420 |
| 25 | const MC_PERMIL: i64 = 1000 |
| 26 | const MC_ALLOW_BUF: i64 = 131072 |
| 27 | const MC_NOTE_MAX: i64 = 160 |
functions
| 29 | func mc_read(path: *u8, buf: *u8, cap: i64) -> i64 |
| 38 | func mc_find(q: *u8, n: i64, lit: *u8) -> i64 |
| 52 | func mc_count_lines(q: *u8, n: i64) -> i64 |
| 66 | func mc_allow_path(name: *u8, outp: *u8) -> i64 { return sj_allow_path(name, outp) } |
| 67 | func mc_key(d: *u8, o: i64, name: *u8) -> i64 |
| 77 | func mc_qspan(d: *u8, o: i64, q: *u8, s: i64, e: i64, maxb: i64) -> i64 |
| 85 | func mc_source_rows(cq: *u8, ks: i64, ke: i64, src: *u8, lp: *u8, lok: i64, tcx: *i64) -> i64 |
| 114 | func mc_census(conf: *u8, loader: *u8, d: *u8) -> i64 |
| 219 | func mc_selftest(prefix: *u8) -> i64 |
| 301 | func main(argc: i64, argv: *i64) -> i64 |