code wiki / _hdl_build / nx_vizsla_plan.nx

nx_vizsla_plan.nx

buildroot/runtime/_hdl_build/nx_vizsla_plan.nx

47553 B1309 linesdepth 6pulls 7 transitivereach 0 importersview sourcekind tooltopic vizsla
docsdependenciesstructsconstsfunctions

about

nx_vizsla_plan.nx -- NISHI VIZSLA PLANNER: PMP-grade mechanics, friend-group simple. Operator 2026-07-07: "planning with pmp level but simple for a friend group". Closes the last census-ABSENT planning axes: PA7 PRIORITY (Eisenhower urgency x importance), PA8 DEPENDENCIES (DAG + cycle detection + critical path), PA13 TIME-BLOCKING (place ready tasks into real calendar free windows). All integer, NO-FLOAT, deterministic (today/date are argv, never a clock). Records (load <file> <prefix> [segid], additive + CID-idempotent law 10): CONF <plan> <u4_days> <u3_days> <u2_days> -> "cnf:" urgency bands (data, not magic numbers; absent -> bootstrap defaults 2/7/30) TASK <plan> <tid> <owner> <due> <effort_min> <imp 1-5> <dep[,dep..]|-> <title> -> "tsk:" MILE <plan> <mid> <date> <title> -> "mil:" milestone DONE <plan> <tid> <date> -> "don:" completion marker (additive history) Commands: board <prefix> <plan> <today> per task: state READY (deps done) / BLOCKED / DONE; urgency from days-to-due vs the CONF bands (overdue=5); score = urg*10 + imp*2; late flag. Dependency DAG is Kahn-checked -- a CYCLE or unknown dep names the offenders and fails loud (a plan you cannot execute is a data error, not a rendering choice). CRITICAL PATH = longest-effort dependency chain (topo-order DP), named task-by-task. Milestones report done/due_tasks/pct. Verdict rolls up. timeblock <prefix> <plan> <calprefix> <date> [earliest latest] READY tasks in priority order first-fit into the calendar's real free windows that day (composes the R-CAL busy walk: cal: events + rec: occurrences). Too-big tasks are named UNPLACED -- honesty over silent drop. Loud-fail: bad dates/imp/effort, unknown dep, cycle, unknown plan, bad bounds. spec: knowledge/research/2026-06-22-vizsla-sclass-roadmap.md license_tier: ORIGINAL

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_canon_cid.nx nx_seg_store.nx nx_vizsla_plan.nx

imports: nx_syscalls.nxnx_canon_cid.nxnx_seg_store.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main vp_p sys_write vp_slen vp_eq vp_cmd_load vp_p ↻ vp_atoi sys_now_us sys_mmap sys_clock_gettime_mono sys_mmap ↻ ss_readall sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_close ss_begin ss_begin_cap sys_mmap ↻ vp_tok vp_isws vp_eq ↻ vp_digits vp_put sys_mmap ↻ canon_encode sys_mmap ↻ cc_cmp cc_w32 cc_len sys_munmap cid_of sys_mmap ↻ sha256_digest sys_mmap ↻ sha256_init sys_mmap ↻ sha256_k

structs

none

consts

29const K_MAGIC_1970: i64 = 1970
30const K_MAGIC_146097: i64 = 146097
31const K_MAGIC_719468: i64 = 719468
32const K_MAGIC_146096: i64 = 146096
33const K_MAGIC_1460: i64 = 1460
34const K_MAGIC_36524: i64 = 36524
35const K_MAGIC_2048: i64 = 2048
36const K_MAGIC_4096: i64 = 4096
37const K_MAGIC_262144: i64 = 262144
38const K_MAGIC_1440: i64 = 1440
39const K_MAGIC_65536: i64 = 65536

functions

41func vp_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 3: vp_pvp_dupvp_kmemeq
42func vp_p(s: *u8) -> i64 { sys_write(1, s, vp_slen(s)); return 0 }
44func vp_eq(a: *u8, b: *u8) -> i64
55func vp_cmp(a: *u8, b: *u8) -> i64
69func vp_dup(s: *u8) -> *u8
called by 2: vp_putvp_gather calls 2: vp_slensys_mmap
77func vp_atoi(s: *u8) -> i64
88func vp_digits(s: *u8) -> i64
100func vp_isws(c: i64) -> i64
called by 1: vp_tok
107func vp_tok(b: *u8, off: i64, lend: i64, dst: *u8, cap: i64) -> i64
called by 1: vp_cmd_load calls 1: vp_isws
129func vp_cat(dst: *u8, off: i64, s: *u8) -> i64
135func vp_catn(dst: *u8, off: i64, v: i64) -> i64
148func vp_hhmm(dst: *u8, off: i64, m: i64) -> i64
called by 1: vp_cmd_timeblock calls 1: vp_catn
160func vp_kmemeq(b: *u8, off: i64, n: i64, s: *u8) -> i64
called by 2: vp_fieldvp_iskind calls 1: vp_slen
170func vp_field(rec: *u8, rl: i64, want: *u8, out: *u8, cap: i64) -> i64
197func vp_iskind(b: *u8, koff: i64, kl: i64, pfx: *u8) -> i64
called by 2: vp_gathervp_busy_day calls 1: vp_kmemeq
202func vp_datedays(s: *u8) -> i64
243func vp_ymd2days(y0: i64, m: i64, d: i64) -> i64
called by 1: vp_occ
255func vp_civil(z0: i64, out: *i64) -> i64
called by 1: vp_busy_day
273func vp_dim(y: i64, m: i64) -> i64
called by 1: vp_occ
289func vp_occ(freq: *u8, sd0: i64, sy: i64, sm: i64, sd: i64, interval: i64, k: i64) -> i64
called by 1: vp_busy_day calls 3: vp_eqvp_dimvp_ymd2days
303func vp_find(list: *i64, n: i64, s: *u8) -> i64
called by 3: vp_putvp_gathervp_depidx calls 1: vp_eq
312func vp_put(keys: *i64, vals: *i64, nf: i64, kp: *u8, st: *i64) -> i64
345func vp_cmd_load(argc: i64, argv: *i64) -> i64
539func vp_gather(prefix: *u8, plan: *u8, st: *i64) -> i64
674func vp_urgency(duedays: i64, today: i64, u4: i64, u3: i64, u2: i64) -> i64
684func vp_depidx(depstr: *u8, tids: *i64, n: i64, out: *i64) -> i64
714func vp_alloc_state() -> *i64
737func vp_cmd_board(argc: i64, argv: *i64) -> i64
1027func vp_busy_day(calpfx: *u8, qd: i64, bs: *i64, be: *i64, np: *i64) -> i64
1108func vp_cmd_timeblock(argc: i64, argv: *i64) -> i64
1301func main(argc: i64, argv: *i64) -> i64