nx_group_composite.nx
buildroot/runtime/nx_group_composite.nx
about
nx_group_composite.nx -- aggregate N character verdicts + pair scores into one outcome.
For multi-character scenes the substrate produces:
- N per-character verdicts (canon score, mannequin index, eroticism rank, etc.)
- N*(N-1)/2 pair-synchrony scores between every pair
This composite aggregates all of them into ONE scene-quality verdict
so the auto_fix loop has a single decision criterion.
Per-character contribution: average composite (sum / N).
Pair contribution: average pair-synchrony (sum / pair_count).
Group composite = weighted average (75% character + 25% pair).
Sealed verdict ladder:
GROUP_FAILED composite < 410 scene has multiple severe failures
GROUP_PARTIAL 410-614 some characters/pairs ok
GROUP_COHERENT 614-819 scene reads well
GROUP_S_CLASS >= 819 every character + every pair S-class
dependencies 1 imports · 1 importers
imports: nx_syscalls.nx
imported by: nx_group_composite_test.nx
structs
| none |
consts
| 27 | const NX_MAGIC_1024: i64 = 1024 |
| 29 | const NX_GRP_RES_N_CHARS: i64 = 0 |
| 30 | const NX_GRP_RES_N_PAIRS: i64 = 1 |
| 31 | const NX_GRP_RES_CHAR_AVG: i64 = 2 |
| 32 | const NX_GRP_RES_PAIR_AVG: i64 = 3 |
| 33 | const NX_GRP_RES_WORST_CHAR_SCORE: i64 = 4 |
| 34 | const NX_GRP_RES_WORST_PAIR_SCORE: i64 = 5 |
| 35 | const NX_GRP_RES_COMPOSITE_Q10: i64 = 6 |
| 36 | const NX_GRP_RES_VERDICT: i64 = 7 |
| 37 | const NX_GRP_RES_FIELDS: i64 = 8 |
| 39 | const NX_GRP_FAILED: i64 = 0 |
| 40 | const NX_GRP_PARTIAL: i64 = 1 |
| 41 | const NX_GRP_COHERENT: i64 = 2 |
| 42 | const NX_GRP_S_CLASS: i64 = 3 |
| 44 | const NX_GRP_WEIGHT_CHARS_PCT: i64 = 75 |
| 45 | const NX_GRP_WEIGHT_PAIRS_PCT: i64 = 25 |
functions
| 51 | func nx_group_composite(char_scores: *i64, n_chars: i64, called by 1: main |