nx_forkfresh_gate.nx
buildroot/runtime/nx_forkfresh_gate.nx
about
nx_forkfresh_gate.nx -- THE REFEREE FOR FORK FRESHNESS (nx_forkfresh_lib), 2026-08-31.
IN-PROCESS over nx_forkfresh_lib.nx, deliberately. Nothing can import a main(), and a gate that
fork/execs the deployed nx_compare_regen.elf reports NOT-REACHED for every mutant -- its GREEN would
prove nothing about the code under test. organ_gate.conf carries that reasoning five times over.
SCOPE, STATED SO IT CANNOT BE OVER-READ: this proves the DECISION CORE -- path derivation, the digest
ruler, the four-state classification and the abstention contract. It does NOT prove the nx_compare_regen
emit loop, its watchlist pass or its census; those stay unreferee'd and are the next rung, not a claim
being made here.
FIXTURES LIVE IN /tmp/nx_forkfresh_gate/ AND NEVER IN knowledge/store/: a gate that shares its fixture
with a production beat reports on the fixture, not on the code (measured estate-wide, ratcheted).
Setup truncate-writes every fixture it needs on every run, and the two ABSENT fixtures are absent BY
CONSTRUCTION -- they are paths this gate never creates -- so the run is idempotent without a teardown.
A gate that is not idempotent reports on its first run and lies about every run after.
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 2 imports · 0 importers
imports: nx_gate_verdict.nxnx_forkfresh_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
| 21 | const FG_DIR: *u8 = "/tmp/nx_forkfresh_gate" |
| 22 | const FG_MODE_DIR: i64 = 493 // 0755 |
| 23 | const FG_MODE_FILE: i64 = 420 // 0644 |
| 24 | const FG_BODY_BYTES: i64 = 4096 |
| 25 | const FG_SUBJECTS: i64 = 5 // the five fixture pairs this gate classifies |
| 26 | const FG_ABC_LEN: i64 = 3 |
| 27 | const FG_FILLER: i64 = 65 // ASCII A -- fixture body filler |
| 28 | const FG_MUTANT: i64 = 66 // ASCII B -- the ONE byte that differs at equal size |
| 29 | const FG_MUT_AT: i64 = 2048 // mid-body, so neither a header nor a tail special case |
| 30 | const FG_SETUP_FILES: i64 = 7 |
| 33 | const FG_DIR_SMALL: i64 = 1024 |
| 34 | const FG_DIR_LARGE: i64 = 4096 |
functions
| 36 | func fg_write(path: *u8, buf: *u8, n: i64) -> i64 called by 1: main |
| 48 | func fg_streq(a: *u8, b: *u8) -> i64 called by 1: main |
| 58 | func main(argc: i64, argv: *i64) -> i64 |