{"v":1,"domain":"projectmgmt","kind":"evidence",
  "executed":[
    {"proof":"nx_project self-gate: 31 checks over tasks/deps/role-scope/level/risk/EVM/timesheet/notes/template/workload/scoped-HTML/ASSIGN/baseline/burndown, forked live","elf":"_offc/nx_project.elf","exit":0,"pass":31,"of":31,"green":1}
  ],
  "axes":[
    {"axis":"Task management + status workflow","organ":"runtime/_hdl_build/nx_vizsla_plan.nx","symbol":"TASK","grounded":1,"occurrences":16,"evidence_line":"//   TASK <plan> <tid> <owner> <due> <effort_min> <imp 1-5> <dep[,dep..]|-> <title> -> \"tsk:\""},
    {"axis":"Dependency scheduling + critical path","organ":"runtime/_hdl_build/nx_vizsla_plan.nx","symbol":"CRITICAL","grounded":1,"occurrences":2,"evidence_line":"//     data error, not a rendering choice). CRITICAL PATH = longest-effort dependency chain"},
    {"axis":"Kanban / priority board","organ":"runtime/_hdl_build/nx_vizsla_plan.nx","symbol":"board","grounded":1,"occurrences":9,"evidence_line":"//   board <prefix> <plan> <today>"},
    {"axis":"Milestones + progress percent","organ":"runtime/_hdl_build/nx_vizsla_plan.nx","symbol":"MILE","grounded":1,"occurrences":7,"evidence_line":"//   MILE <plan> <mid> <date> <title>            -> \"mil:\" milestone"},
    {"axis":"Calendar time-blocking of ready tasks","organ":"runtime/_hdl_build/nx_vizsla_plan.nx","symbol":"timeblock","grounded":1,"occurrences":13,"evidence_line":"//   timeblock <prefix> <plan> <calprefix> <date> [earliest latest]"},
    {"axis":"Group find-a-time + scheduling polls","organ":"runtime/_hdl_build/nx_vizsla_group.nx","symbol":"findtime","grounded":1,"occurrences":17,"evidence_line":"//   findtime <prefix> <gid> <from> <to> <dur_min> [earliest_min latest_min]"},
    {"axis":"Portfolio multi-project registry + live board","organ":"runtime/_hdl_build/nx_workstream_store.nx","symbol":"ws_put","grounded":1,"occurrences":4,"evidence_line":"// ws_put: register/update ONE workstream record (idempotent: skip-if-unchanged via a current-value"},
    {"axis":"Calendar interop RFC5545 export + import","organ":"runtime/_hdl_build/nx_vizsla_ics.nx","symbol":"RRULE","grounded":1,"occurrences":5,"evidence_line":"// rec: RRULE records written by nx_vizsla_calendar); the data never needs a cloud account."},
    {"axis":"Reminders + once-only notification ledger","organ":"runtime/_hdl_build/nx_vizsla_remind.nx","symbol":"VIZSLA-REM-DUE","grounded":1,"occurrences":4,"evidence_line":"//     -> VIZSLA-REM-DUE; already in the sent ledger -> VIZSLA-REM-SENT-SKIP (counted, shown)."},
    {"axis":"Versioned document management","organ":"runtime/_hdl_build/nx_vizsla_doc.nx","symbol":"history","grounded":1,"occurrences":8,"evidence_line":"//   history <prefix> <docid>                every version: date + bytes + doctype + rel"},
    {"axis":"Coordination-to-document generation","organ":"runtime/_hdl_build/nx_vizsla_docgen.nx","symbol":"docx","grounded":1,"occurrences":18,"evidence_line":"// COORDINATION (a venue booking / plan / event supplies the fields) -> OFFICE (a valid .docx via nx_docx) ->"},
    {"axis":"Team + contractor relationship graph","organ":"runtime/nx_relate.nx","symbol":"tenant","grounded":1,"occurrences":16,"evidence_line":"//   TENANT      : every entity is scoped to a workspace/tenant, so clients like andelinwest get isolation"},
    {"axis":"Bulk personalized multi-channel comms","organ":"runtime/nx_send_merge.nx","symbol":"MERGE","grounded":1,"occurrences":6,"evidence_line":"// nx_send_merge.nx -- BULK-MERGE: personalized sending to a whole SEGMENT across channels (CRM census E4; the"},
    {"axis":"RACI accountable-owner routing","organ":"runtime/_hdl_build/nx_pm.nx","symbol":"pm_route","grounded":1,"occurrences":2,"evidence_line":"func pm_route(activity: *u8, target: *u8, oldf: *u8, newf: *u8, requester: *u8) -> i64 {"},
    {"axis":"API + MCP agent tools","organ":"runtime/nx_vizsla_tool_register.nx","symbol":"vizsla_plan","grounded":1,"occurrences":2,"evidence_line":"ok = ok + vt_reg1(\"vizsla_plan\" as *u8,"},
    {"axis":"Gantt / timeline schedule view","organ":"runtime/nx_project.nx","symbol":"gbR","grounded":1,"occurrences":2,"evidence_line":"o = pj_cat(hb, o, \"</title><style>:root{--nx-color-bg:rgb(247,248,250);--nx-color-surface:rgb(255,255,255);--nx-color-ink:rgb(24,28,35);--nx-color-muted:rgb(95,102,112);--nx-color-line:rgb(216,220,228);--nx-color-accent:rgb(11,84,196);--nx"},
    {"axis":"Time tracking / timesheets","organ":"runtime/nx_project.nx","symbol":"PROJECT-TIME","grounded":1,"occurrences":2,"evidence_line":"t = pj_cat(rep, t, \"PROJECT-TIME person=\" as *u8)"},
    {"axis":"Budget / cost / earned value","organ":"runtime/nx_project.nx","symbol":"PROJECT-EVM","grounded":1,"occurrences":1,"evidence_line":"z = pj_cat(rep, z, \"PROJECT-EVM bac_cents=\" as *u8)"},
    {"axis":"Risk register + delay prediction","organ":"runtime/nx_project.nx","symbol":"PROJECT-RISK","grounded":1,"occurrences":3,"evidence_line":"t = pj_cat(rep, t, \"PROJECT-RISK tid=\" as *u8)"},
    {"axis":"Resource workload allocation + leveling","organ":"runtime/nx_project.nx","symbol":"PROJECT-LEVEL","grounded":1,"occurrences":5,"evidence_line":"s1 = pj_cat(rep, s1, \"PROJECT-LEVEL-STUCK person=\" as *u8)"},
    {"axis":"Project templates / blueprints","organ":"runtime/nx_project.nx","symbol":"TPLTASK","grounded":1,"occurrences":12,"evidence_line":"// tpl rows: TPLTASK <tid> <owner> <offset-days> <effort> <imp> <deps|-> <title>"},
    {"axis":"Task comments / discussion threads","organ":"runtime/nx_project.nx","symbol":"PROJECT-NOTE","grounded":1,"occurrences":2,"evidence_line":"t = pj_cat(rep, t, \"PROJECT-NOTE tid=\" as *u8)"},
    {"axis":"Contractor portal with scoped access","organ":"runtime/_hdl_build/nx_project_serve.nx","symbol":"PSV_BOOTSTRAP","grounded":1,"occurrences":3,"evidence_line":"const PSV_BOOTSTRAP: *u8 = \"<!DOCTYPE html><html lang='en'><head><meta charset='utf-8'><meta name='viewport' content='width=device-width, initial-scale=1'><title>Nishi Project</title></head><body><script>(function(){var t=sessionStorage.ge"},
    {"axis":"Sovereign own-stack zero per-seat cost","organ":"runtime/_hdl_build/nx_ws_cas.nx","symbol":"ws_put_locked","grounded":1,"occurrences":2,"evidence_line":"// ws_put_locked: ws_put_p serialized under flock(LOCK_EX) on <prefix>wlock so concurrent writers"},
    {"axis":"Concurrent-durable additive store measured vs git","organ":"runtime/_hdl_build/nx_ws_exceed_git_live_gate.nx","symbol":"WMS","grounded":1,"occurrences":17,"evidence_line":"// nx_ws_exceed_git_live_gate.nx -- SCLASS-NEUTRAL-01: the WMS-vs-git durability exceed measured against"},
    {"axis":"Work liveness heartbeats ALIVE/STALLED","organ":"runtime/_hdl_build/nx_heartbeat_str.nx","symbol":"hbm_scan_registry","grounded":1,"occurrences":2,"evidence_line":"// beats under its REGISTRY id, and hbm_scan_registry sources the monitored set straight from ws:ids,"},
    {"axis":"Autonomous dispatch runs + completes work","organ":"runtime/_hdl_build/nx_dispatch_lease.nx","symbol":"lease","grounded":1,"occurrences":53,"evidence_line":"// nx_dispatch_lease.nx -- WMS rung M4: the LEASING DISPATCHER / SCHEDULER."},
    {"axis":"Effective-owner reassignment (latest-wins history)","organ":"runtime/nx_project.nx","symbol":"ASSIGN","grounded":1,"occurrences":14,"evidence_line":"if pj_eq(t0, \"ASSIGN\" as *u8) == 1 {"},
    {"axis":"Critical-chain slack + delay forecast","organ":"runtime/nx_project.nx","symbol":"pj_chain_min","grounded":1,"occurrences":4,"evidence_line":"func pj_chain_min(st: *i64, idx: i64, depth: i64) -> i64 {"},
    {"axis":"Scheduling poll vote tally","organ":"runtime/_hdl_build/nx_vizsla_group.nx","symbol":"tally","grounded":1,"occurrences":8,"evidence_line":"//   tally <prefix> <pid>"},
    {"axis":"Path-guarded store security (deny-by-default)","organ":"runtime/nx_project.nx","symbol":"pj_pathok","grounded":1,"occurrences":17,"evidence_line":"func pj_pathok(s: *u8) -> i64 {"},
    {"axis":"Saved baseline + schedule variance","organ":"runtime/nx_project.nx","symbol":"PROJECT-BASELINE","grounded":1,"occurrences":2,"evidence_line":"t = pj_cat(rep, t, \"PROJECT-BASELINE tid=\" as *u8)"},
    {"axis":"Burndown / velocity / cumulative-flow charts","organ":"runtime/nx_project.nx","symbol":"PROJECT-BURN","grounded":1,"occurrences":2,"evidence_line":"t = pj_cat(rep, t, \"PROJECT-BURN date=\" as *u8)"}
  ],
  "present_axes":33,"grounded":33,"ungrounded":0,"gates_green":1,"gates_ran":1
}
