code wiki / (root) / nx_writestyle_gate.nx

nx_writestyle_gate.nx source

↩ module page · 126 lines · 5301 B

1// nx_writestyle_gate.nx -- REFEREE for WRITING rung W-R1 (nx_writestyle). 2// 3// [T1] exact adverb / passive / weak counts on a crafted sentence 4// [T2] exact dialogue char-fraction (milli) on a quoted line 5// [T3] exact longest-sentence + hard-sentence count 6// [T4] NEGATIVE CONTROL: clean prose scores 0 on all flags; adverb/passive/ 7// weak-heavy prose scores high -- the detector discriminates, it does not 8// return a constant. 9// 10// Evidence -> stdout + knowledge/status/writestyle_gate.log. Exit 0 GREEN / 1 RED. 11// Sovereign x86_64. license_tier: ORIGINAL 12import "nx_syscalls_x86_64.nx" 13import "nx_writestyle.nx" 14 15func gp(logfd: i64, s: *u8) -> i64 { 16 var n: i64 = 0 17 while s[n] != (0 as u8) { n = n + 1 } 18 sys_write(1, s, n) 19 if logfd > 0 { sys_write(logfd, s, n) } 20 return 0 21} 22func gn(logfd: i64, v: i64) -> i64 { 23 var m: i64 = v 24 if m < 0 { 25 sys_write(1, "-\x00" as *u8, 1) 26 if logfd > 0 { sys_write(logfd, "-\x00" as *u8, 1) } 27 m = 0 - m 28 } 29 let bb: *u8 = sys_mmap(32) 30 let t: *u8 = sys_mmap(32) 31 var k: i64 = 0 32 if m == 0 { t[0] = 48 as u8; k = 1 } 33 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 34 var i: i64 = 0 35 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 36 sys_write(1, bb, k) 37 if logfd > 0 { sys_write(logfd, bb, k) } 38 return 0 39} 40func slen(s: *u8) -> i64 { 41 var n: i64 = 0 42 while s[n] != (0 as u8) { n = n + 1 } 43 return n 44} 45func pr_kv(logfd: i64, label: *u8, got: i64, exp: i64) -> i64 { 46 gp(logfd, label) 47 gp(logfd, " got=\x00" as *u8); gn(logfd, got) 48 gp(logfd, " exp=\x00" as *u8); gn(logfd, exp) 49 if got == exp { gp(logfd, " OK\n\x00" as *u8); return 1 } 50 gp(logfd, " FAIL\n\x00" as *u8) 51 return 0 52} 53func pr_cond(logfd: i64, label: *u8, cond: i64) -> i64 { 54 gp(logfd, label) 55 if cond != 0 { gp(logfd, " OK\n\x00" as *u8); return 1 } 56 gp(logfd, " FAIL\n\x00" as *u8) 57 return 0 58} 59 60func main() -> i64 { 61 let logfd: i64 = sys_openat_append("knowledge/status/writestyle_gate.log\x00" as *u8, 0x1a4) 62 gp(logfd, "WRITESTYLE-GATE W-R1 (prose signals: adverb/passive/weak/dialogue/sentence)\n\x00" as *u8) 63 64 let out: *i64 = sys_mmap(64) as *i64 65 var ok: i64 = 1 66 67 // ---- T1: adverbs / passive / weak ---- 68 gp(logfd, " [T1] \"The door opened slowly. She was clearly frightened. He shouted very loudly.\"\n\x00" as *u8) 69 let t1: *u8 = "The door opened slowly. She was clearly frightened. He shouted very loudly.\x00" as *u8 70 ws_signals(t1, slen(t1), out) 71 if pr_kv(logfd, " adverbs\x00" as *u8, out[0], 3) == 0 { ok = 0 } 72 if pr_kv(logfd, " passive\x00" as *u8, out[1], 1) == 0 { ok = 0 } 73 if pr_kv(logfd, " weak\x00" as *u8, out[2], 1) == 0 { ok = 0 } 74 75 // ---- T2: dialogue fraction ---- 76 gp(logfd, " [T2] dialogue fraction of '\"Stop right there!\" she said.'\n\x00" as *u8) 77 let t2: *u8 = "\"Stop right there!\" she said.\x00" as *u8 78 ws_signals(t2, slen(t2), out) 79 if pr_kv(logfd, " dialogue_milli\x00" as *u8, out[3], 586) == 0 { ok = 0 } 80 81 // ---- T3: longest + hard sentence ---- 82 gp(logfd, " [T3] longest/hard on a 2-then-14-word pair\n\x00" as *u8) 83 let t3: *u8 = "Short one. This particular sentence has quite a few more words inside it than the first.\x00" as *u8 84 ws_signals(t3, slen(t3), out) 85 if pr_kv(logfd, " longest_sentence\x00" as *u8, out[4], 14) == 0 { ok = 0 } 86 if pr_kv(logfd, " hard_sentences\x00" as *u8, out[5], 1) == 0 { ok = 0 } 87 88 // ---- T4: NEGATIVE CONTROL -- clean vs flag-heavy ---- 89 gp(logfd, " [T4] NEG-CONTROL discrimination (clean vs flag-heavy)\n\x00" as *u8) 90 let clean: *u8 = "She opened the door and walked outside.\x00" as *u8 91 ws_signals(clean, slen(clean), out) 92 let cl_adv: i64 = out[0] 93 let cl_pas: i64 = out[1] 94 let cl_wk: i64 = out[2] 95 if pr_kv(logfd, " clean adverbs\x00" as *u8, cl_adv, 0) == 0 { ok = 0 } 96 if pr_kv(logfd, " clean passive\x00" as *u8, cl_pas, 0) == 0 { ok = 0 } 97 if pr_kv(logfd, " clean weak\x00" as *u8, cl_wk, 0) == 0 { ok = 0 } 98 let bad: *u8 = "The door was opened very carelessly and the matter was being handled really quickly and badly.\x00" as *u8 99 ws_signals(bad, slen(bad), out) 100 gp(logfd, " bad adverbs=\x00" as *u8); gn(logfd, out[0]) 101 gp(logfd, " passive=\x00" as *u8); gn(logfd, out[1]) 102 gp(logfd, " weak=\x00" as *u8); gn(logfd, out[2]); gp(logfd, "\n\x00" as *u8) 103 var d1: i64 = 0 104 if out[0] >= 3 { d1 = 1 } 105 if pr_cond(logfd, " bad adverbs >= 3\x00" as *u8, d1) == 0 { ok = 0 } 106 var d2: i64 = 0 107 if out[0] > cl_adv { d2 = 1 } 108 if pr_cond(logfd, " bad adverbs > clean adverbs\x00" as *u8, d2) == 0 { ok = 0 } 109 var d3: i64 = 0 110 if out[1] >= 1 { d3 = 1 } 111 if pr_cond(logfd, " bad passive >= 1\x00" as *u8, d3) == 0 { ok = 0 } 112 var d4: i64 = 0 113 if out[2] >= 2 { d4 = 1 } 114 if pr_cond(logfd, " bad weak >= 2\x00" as *u8, d4) == 0 { ok = 0 } 115 116 if ok == 1 { 117 gp(logfd, "WRITESTYLE-GATE result=ALL-PASS verdict=GREEN\n\x00" as *u8) 118 if logfd > 0 { sys_close(logfd) } 119 sys_exit(0) 120 return 0 121 } 122 gp(logfd, "WRITESTYLE-GATE result=FAIL verdict=RED\n\x00" as *u8) 123 if logfd > 0 { sys_close(logfd) } 124 sys_exit(1) 125 return 1 126}