code wiki / _hdl_build / nx_raci_collab.nx

nx_raci_collab.nx

buildroot/runtime/_hdl_build/nx_raci_collab.nx

2969 B54 linesdepth 2pulls 2 transitivereach 17 importersview sourcekind librarytopic raci
docsdependenciesstructsconstsfunctions

about

nx_raci_collab.nx -- structured inter-organ collaboration: organs INGEST each other's deliverables and go BACK AND FORTH (feedback rounds) while keeping a CLEAN RACI (operator: "build their capabilities to ingest and work together and go back and forth while still keeping a clean raci"). The rule that keeps roles non-blurred: exactly ONE Accountable owns each decision; Consulted organs iterate two-way, but only the Accountable COMMITS. Iteration is bounded -> escalate if it can't converge. license_tier: ORIGINAL Composes the RACI doctrine (separation of duties) with the council/peer-review patterns.

dependencies 1 imports · 2 importers

nx_syscalls.nx nx_raci_collab.nx nx_build_raci.nx nx_pm_decision_demo.nx

imports: nx_syscalls.nx

imported by: nx_build_raci.nxnx_pm_decision_demo.nx

structs

none

consts

10const RACI_RESPONSIBLE: i64 = 1 // does the work
11const RACI_ACCOUNTABLE: i64 = 2 // owns the decision -- exactly ONE per item
12const RACI_CONSULTED: i64 = 3 // two-way feedback (the back-and-forth)
13const RACI_INFORMED: i64 = 4 // one-way notification
21const COLLAB_CONVERGED: i64 = 1 // Consulted organs satisfied -> Accountable commits
22const COLLAB_ITERATE: i64 = 2 // open objections, rounds remain -> another revision
23const COLLAB_ESCALATE: i64 = 3 // out of rounds, still contested -> escalate to council/operator

functions

16func raci_clean(accountable_count: i64) -> i64 { if accountable_count == 1 { return 1 } return 0 }
called by 2: br_decidemain
19func raci_may_commit(committer_role: i64) -> i64 { if committer_role == RACI_ACCOUNTABLE { return 1 } return 0 }
called by 2: br_may_admitmain
26func collab_round(consulted_objections: i64, round: i64, max_rounds: i64) -> i64
called by 1: collab_run
34func collab_run(initial_objections: i64, resolved_per_round: i64, max_rounds: i64, out_rounds: *i64) -> i64
called by 1: main calls 1: collab_round
50func collab_label(v: i64) -> *u8
called by 1: main