code wiki / _hdl_build / nx_mmbench.nx
nx_mmbench.nx
buildroot/runtime/_hdl_build/nx_mmbench.nx
about
nx_mmbench.nx -- THE MEDIA-MANAGER + COMPANION CAPABILITY RULER.
WHY: the ecosystem had NO product-grade ruler for either plane. nx_media_census grades the
codec/room subsystem; nx_companion_census grades us against the OLD Elder AI platform. Neither
answers "how far is our media manager + companion from the products people actually use".
Without that number the build order is TASTE. This organ makes it ARITHMETIC.
RULER = 12 REAL reference products (Jellyfin/Plex/Emby/Sonarr/qBittorrent/Kavita/yt-dlp/Immich
for media; Character.AI/Replika/SillyTavern/ChatGPT-memory for companion). Each declares the
capability vector it actually ships. We score OUR organs per capability and COMPUTE (never
assert) coverage + a demand-ranked GAP QUEUE. That queue IS the build order.
HONEST BY CONSTRUCTION (the anti-author-optimism teeth):
- every HAVE must NAME an evidence artifact, and this organ STATS IT AT RUN TIME. A HAVE whose
artifact is absent is LIAR-KILLED to GAP -- not warned about, DOWNGRADED. unproven = ABSENT.
- a HAVE with NO named evidence is UNGROUNDED and capped at PARTIAL. You cannot assert a win.
- coverage is COMPUTED from the surviving rows, so a liar-kill MOVES THE HEADLINE DOWN.
- only capabilities some reference product actually ships count toward the denominator, so we
cannot inflate the score by inventing axes nobody else has.
- scan honesty (law L011): caps_scanned/titles_scanned/coverage_complete are emitted, never implied.
Self-contained (imports only nx_syscalls) so it runs on the NAS as an MCP tool.
license_tier: ORIGINAL expect_exit: 0
dependencies 1 imports · 0 importers
imports: nx_mmbench_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
| 25 | const NC: i64 = 56 |
| 26 | const NT: i64 = 12 |
| 27 | const DOM_MEDIA: i64 = 0 |
| 28 | const DOM_COMP: i64 = 1 |
| 29 | const GAPQ_SHOW: i64 = 14 |
functions
| 32 | func nd(mat: *i64, t: i64, a: i64, b: i64, c: i64, d: i64, e: i64, f: i64, g: i64, h: i64, i: i64, j: i64) -> i64 called by 1: reg_titles |
| 45 | func cp(nm: *i64, dm: *i64, vv: *i64, ev: *i64, id: i64, name: *u8, dom: i64, v: i64, evp: *u8) -> i64 |
| 51 | func reg_media(nm: *i64, dm: *i64, vv: *i64, ev: *i64) -> i64 |
| 80 | func reg_media2(nm: *i64, dm: *i64, vv: *i64, ev: *i64) -> i64 |
| 106 | func reg_comp(nm: *i64, dm: *i64, vv: *i64, ev: *i64) -> i64 |
| 132 | func wr(w: *i64, id: i64, p: *u8) -> i64 { w[id]=p as i64; return 0 } called by 1: reg_wire |
| 136 | func sv(sb: *i64, nd: *i64, id: i64, binpath: *u8, needle: *u8) -> i64 { sb[id]=binpath as i64; nd[id]=needle as i64; return 0 } called by 1: reg_serving |
| 137 | func reg_serving(sb: *i64, nd: *i64) -> i64 |
| 147 | func reg_wire(w: *i64) -> i64 |
| 195 | func reg_titles(tnm: *i64, tdm: *i64, mat: *i64) -> i64 |
| 231 | func main(argc: i64, argv: *i64) -> i64 |