nx_workmix.nx
buildroot/runtime/nx_workmix.nx
about
nx_workmix.nx -- THE WORK-MIX CENSUS (ecosystem EC56, 2026-09-17): what LANDED in the window, classed FEATURE,
ENABLEMENT, REWORK or UNCLASSED, so investment is a measured axis and the mix can be steered toward features.
usage: nx_workmix census [days] [ledger]
reads the costcal ledger (land, retract and open rows; ONE reader of the boards' journals wrote them),
every published board's plan (rungrole rows and deps only), the class table compare/workmix.conf
prints the partition, the boards no class row names (the shrink-only worklist), then ONE canonical WORKMIX line LAST
writes that line to knowledge/status/workmix.status (truncate) and appends it to knowledge/status/workmix.log;
a run over a non-default ledger writes BESIDE that ledger, never over the production status
exit 0 CENSUSED | 2 usage | 3 NO-LEDGER or NO-POPULATION (could not look is never an empty window)
The ruler is nx_workmix_lib (wm_mix_census); this file only gathers the inputs and publishes the line.
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 5 imports · 0 importers
imports: nx_syscalls.nxnx_costest_lib.nxnx_ladder_lib.nxnx_comparetree_lib.nxnx_workmix_lib.nx
imported by: nobody (leaf or entry point)
structs
| none |
consts
| 18 | const WP_LEDGER: *u8 = "knowledge/status/costcal.ledger" |
| 19 | const WP_STATUS: *u8 = "knowledge/status/workmix.status" // ONE canonical line, truncate-written |
| 20 | const WP_LOG: *u8 = "knowledge/status/workmix.log" // the same line appended: one census says a level, two say a trend |
| 21 | const WP_STATUS_SFX: *u8 = ".workmix.status" |
| 22 | const WP_LOG_SFX: *u8 = ".workmix.log" |
| 23 | const WP_CONF_NAME: *u8 = "workmix" |
| 24 | const WP_CONF_SFX: *u8 = ".conf" |
| 25 | const WP_LIST_NAME: *u8 = "regen" |
| 26 | const WP_LIST_SFX: *u8 = ".list" |
| 27 | const WP_DAY_S: i64 = 86400 |
| 28 | const WP_EXIT_OK: i64 = 0 |
| 29 | const WP_EXIT_USAGE: i64 = 2 |
| 30 | const WP_EXIT_UNOBS: i64 = 3 |
functions
| 32 | func wp_w(s: *u8) -> i64 { return sys_write(1, s, ces_slen(s)) } |
| 33 | func wp_n(v: i64) -> i64 |
| 39 | func wp_usage() -> i64 |
| 45 | func wp_span_copy(buf: *u8, off: i64, len: i64) -> *u8 |
| 52 | func wp_read_compare(name: *u8, sfx: *u8, lenp: *i64) -> *u8 |
| 64 | func wp_beside(base: *u8, sfx: *u8) -> *u8 |
| 71 | func wp_census(days: i64, ledger: *u8, isdefault: i64) -> i64 |
| 165 | func main(argc: i64, argv: *i64) -> i64 |