code wiki / _hdl_build / nx_workflowmine.nx

nx_workflowmine.nx

buildroot/runtime/_hdl_build/nx_workflowmine.nx

16864 B393 linesdepth 3pulls 5 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_workflowmine.nx -- WORKFLOWS-CLASS MINER over the plan-/planrun- planes (miner-sota F1011, 2026-07-23). The census (nx_minecov MC08) measured workflows at ZERO readers: plans EXECUTE via nx_plan_run and nobody ever mines them, so a standing beat can rot silently. This derives, per tracked workflow: DECLARED steps (plan- plane) vs RUN steps (planrun- plane), every step's rc, the FIRST failing step id, and a health verdict that keeps three states DISTINCT: NEVER-RUN (no results -- an honest unknown, NOT a failure) | FAILING (some rc != 0) | PARTIAL (ran fewer steps than declared -- stopped early, or the plan grew) | HEALTHY. Conflating never-run with failing is the exact dishonesty this organ exists to avoid. Sources are declared as DATA (knowledge/status/workflow_plans.conf, hot-read); loader "-" reads them as FILES (deterministic gate fixtures), else forks the ALLOWLIST-RESOLVED loader (nx_store_put load). Composes nx_sovjson_lib (sj_*). Read-only. No hw writes (Rule 26). mine <plansconf> [loader] -> JSON per-workflow + totals (healthy/failing/never_run/health_permil) selftest <scratch-prefix> -> gate T1..T8 conf cols: id TAB plan_src TAB run_src TAB note planrun row: seq TAB rc=<n> TAB snippet license_tier: ORIGINAL

dependencies 4 imports · 0 importers

nx_sovjson_lib.nx nx_syscalls.nx nx_gate_verdict.nx nx_tool_run.nx nx_workflowmine.nx

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

main sj_puts sys_write sys_exit sj_vlen sj_lit_eq wm_selftest gv_ctr sys_mmap gv_head gv_puts sys_write ↻ sys_mmap ↻ sj_cat sj_catn sys_mmap ↻ sys_now_realtime_sec sys_mmap ↻ sys_clock_gettime_real sys_openat_wr sys_write ↻ sys_close wm_mine_json sys_mmap ↻ wm_read sys_openat_rd sys_read sys_close ↻ sj_lit_eq ↻ sj_vlen ↻ wm_allow_path sj_allow_path sys_mmap ↻ sys_openat_rd ↻ sys_read ↻ sys_close ↻ sj_le sj_col sj_lit_eq ↻ wm_key

structs

none

consts

20const WM_MAGIC_4088: i64 = 4088
22const WM_CAP: i64 = 1048576
23const WM_CONF: i64 = 65536
24const WM_OUT: i64 = 65536
25const WM_PATH: i64 = 512
26const WM_ROWS: i64 = 64
27const WM_ALLOW: i64 = 131072
28const WM_PERMIL: i64 = 1000
29const WM_NAME_MAX: i64 = 120
30const WM_MODE_644: i64 = 420

functions

32func wm_read(path: *u8, buf: *u8, cap: i64) -> i64
41func wm_find(q: *u8, n: i64, lit: *u8) -> i64
called by 1: wm_selftest calls 1: sj_vlen
55func wm_allow_path(name: *u8, outp: *u8) -> i64 { return sj_allow_path(name, outp) }
called by 1: wm_mine_json calls 1: sj_allow_path
56func wm_key(d: *u8, o: i64, name: *u8) -> i64
called by 1: wm_mine_json calls 1: sj_cat
67func wm_load(src: *u8, lp: *u8, lok: i64, buf: *u8) -> i64
84func wm_rows(q: *u8, n: i64) -> i64
called by 1: wm_mine_json calls 1: sj_le
95func wm_scan_run(q: *u8, n: i64, rcx: *i64) -> i64
128func wm_mine_json(conf: *u8, loader: *u8, d: *u8) -> i64
242func wm_selftest(prefix: *u8) -> i64
369func main(argc: i64, argv: *i64) -> i64