nx_kkslider_stats.nx
buildroot/runtime/nx_kkslider_stats.nx
about
nx_kkslider_stats.nx -- SLIDER-SEMANTICS MEASUREMENT for the card lane (2026-08-19, the
re_card_to_being middle: which shapeValueBody index MEANS what). The bones cheatsheet in the KK
pack grounds the SKELETON side; the slider INDEX order is not documented in any artifact we bank,
so it is MEASURED instead of recalled: decode shapeValueBody from every banked card whose BepisDB
metadata carries community tags (tall, petite, busty, slim...), and report the per-index value
distribution of tagged vs untagged cards. An index whose tagged-mean separates from its rest-mean
across a growing corpus is that tag's slider, with the evidence count printed beside it.
NUMBERS, NEVER VERDICTS (an uncalibrated classifier must report numbers): this organ prints
n/mean/delta per (tag, index) and the caller judges with the counts in view.
Corpus shape = the bepis mirror lane: <dir>/<name>.png + <dir>/<name>.meta.json pairs.
HONESTY COUNTERS: pairs_seen / kk_decoded / skipped_dialect (AIS and friends decode with other
keys -- skipped, never silently zero) / decode_partial (parsed<declared stops the card's row).
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 2 imports · 0 importers
imports: nx_syscalls.nxnx_kkfacts_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
| 17 | const KS_MAXCARDS: i64 = 512 // corpus ceiling per run; reaching it REFUSES loudly, never truncates |
| 18 | const KS_MAXTAGS: i64 = 64 // distinct tags tracked; overflow is counted and announced |
| 19 | const KS_TAGLEN: i64 = 32 // one tag name slot |
| 20 | const KS_NBODY: i64 = 44 // shapeValueBody carries 44 floats (measured on the benchmark card) |
| 21 | const KS_MAXVALS: i64 = 256 // decode reserve, same bound the kkfacts CLI uses |
| 22 | const KS_DIRBUF: i64 = 65536 |
| 23 | const KS_PATH: i64 = 1024 |
| 24 | const KS_METAEXT: *u8 = ".meta.json" |
| 25 | const KS_METAEXT_LEN: i64 = 10 |
| 26 | const KS_NL: i64 = 10 |
functions
| 28 | func ks_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 29 | func ks_w(s: *u8) -> i64 { sys_write(1, s, ks_len(s)); return 0 } |
| 30 | func ks_n(v: i64) -> i64 |
| 43 | func ks_cat(d: *u8, o: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { d[o+i] = s[i]; i = i + 1 } d[o+i] = 0 as u8; return o + i } |
| 44 | func ks_find(b: *u8, start: i64, end: i64, needle: *u8) -> i64 |
| 57 | func ks_has_tag(mb: *u8, mn: i64, tag: *u8) -> i64 |
| 66 | func ks_collect_tags(mb: *u8, mn: i64, tags: *u8, ntags: *i64) -> i64 |
| 100 | func main(argc: i64, argv: *i64) -> i64 |