code wiki / _hdl_build / nx_vizsla_remind_gate.nx
nx_vizsla_remind_gate.nx
buildroot/runtime/_hdl_build/nx_vizsla_remind_gate.nx
about
nx_vizsla_remind_gate.nx -- VIZSLA REMINDER gate: lead-time due scan + sent-once ledger
proven against hand-computed fixtures. COMPOSITION: the calendar side is loaded through the
REAL nx_vizsla_calendar organ; birthdays come from the relate CONTACT file format.
calendar: launch 07-21, soon 07-08, far 08-30(out), RRULE standup WEEKLY x4 (07-01..07-22)
contacts: mom 07-14, dad 07-08, alex -, leap 02-29
A) today=2026-07-07 leads=14,7,1,0 -> due=5 (launch@14, soon@1, standup-0708@1, mom@7, dad@1)
B) today=2026-07-21 -> due=2 (launch@0 day-of, standup-0722@1)
C) today=2027-02-27 leads=1, no calendar -> leap birthday clamps to 2027-02-28 -> due@1
D) mark launch sent -> re-mark new=0 -> B re-run with ledger: launch SENT-SKIPPED, due=1
Rows: 1 fixture-loads 2 due-verdict 3 due-event-lead14 4 due-recurring 5 due-birthday7
6 due-birthday1 7 due-day-of 8 leap-clamp 9 mark-sent 10 mark-idempotent
11 sent-skipped 12 due-determinism 13 loud-fail-bad-today[neg] 14 loud-fail-bad-leads[neg]
Evidence: VIZSLA-REM-GATE -> stdout + knowledge/status/vizsla_gate.log; exit 0 iff 14/14.
spec: knowledge/research/2026-06-22-vizsla-sclass-roadmap.md license_tier: ORIGINAL
dependencies 1 imports · 0 importers
imports: nx_syscalls.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
| none |
functions
| 19 | func rg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 20 | func rg_p(s: *u8) -> i64 { sys_write(1, s, rg_slen(s)); return 0 } |
| 22 | func rg_cat(dst: *u8, off: i64, s: *u8) -> i64 |
| 28 | func rg_catn(dst: *u8, off: i64, v: i64) -> i64 |
| 41 | func rg_write(path: *u8, content: *u8) -> i64 |
| 49 | func rg_readall(path: *u8, szout: *i64) -> *u8 |
| 66 | func rg_runv(elf: *u8, args: *i64, outpath: *u8) -> i64 |
| 96 | func rg_has(path: *u8, needle: *u8) -> i64 |
| 115 | func rg_fileeq(p1: *u8, p2: *u8) -> i64 |
| 130 | func rg_row(name: *u8, pass: i64) -> i64 |
| 137 | func rg_args(a1: *u8, a2: *u8, a3: *u8, a4: *u8, a5: *u8, a6: *u8, a7: *u8, a8: *u8) -> *i64 |
| 151 | func rg_ensure(elf: *u8, organ: *u8) -> i64 |
| 159 | func rg_mkpfx(tag: *u8, us: i64) -> *u8 |
| 169 | func main(argc: i64, argv: *i64) -> i64 |