code wiki / _hdl_build / nx_build_raci.nx

nx_build_raci.nx

buildroot/runtime/_hdl_build/nx_build_raci.nx

3410 B56 linesdepth 3pulls 3 transitivereach 15 importersview sourcekind librarytopic build
docsdependenciesstructsconstsfunctions

about

nx_build_raci.nx -- CLEAN RACI for the build pipeline (operator: "the doctor doesnt test the engineer does, the doctor fixes... make sure the raci is clean as we keep building up the team"). Encodes + ENFORCES who does what so roles never blur again: BUILDER AUTHORS the module (Responsible) ENGINEER VERIFIES/TESTS it (the gate) (Responsible) <- NOT the Doctor DOCTOR HEALS it when the test fails (Responsible) <- the FIX, doc_rebuild COUNCIL ADMITS/registers the proven cap (Accountable) <- exactly one owner The flow: author -> Engineer test; if FAIL -> Doctor heal -> Engineer RE-test; admit only when the test PASSES. SEPARATION OF DUTIES: the tester, the healer, and the author must be DIFFERENT roles -- you cannot test your own build, nor heal-and-pass your own failure. Composes nx_raci_collab (raci_clean = exactly 1 accountable). LAWS: struct-free, integer-only. license_tier: ORIGINAL

dependencies 2 imports · 3 importers

nx_raci_collab.nx nx_syscalls.nx nx_build_raci.nx nx_build_pipeline.nx nx_build_raci_test.nx nx_raci_audit.nx

imports: nx_raci_collab.nxnx_syscalls.nx

imported by: nx_build_pipeline.nxnx_build_raci_test.nxnx_raci_audit.nx

structs

none

consts

16const BR_BUILDER: i64 = 1
17const BR_ENGINEER: i64 = 2
18const BR_DOCTOR: i64 = 3
19const BR_COUNCIL: i64 = 4
22const BR_FLOW_ADMIT: i64 = 1 // tested green -> admitted
23const BR_FLOW_HEAL: i64 = 2 // tested red -> route to Doctor to heal, then re-test
24const BR_FLOW_REJECT: i64 = 3 // healed and STILL red after the heal budget -> reject (no false-admit)
25const BR_FLOW_RACI_BAD: i64 = 0 // roles blurred (separation violated) -> the pipeline itself is invalid

functions

28func br_separation_ok(author: i64, tester: i64, healer: i64) -> i64
36func br_roles_correct(tester: i64, healer: i64) -> i64
44func br_decide(author: i64, tester: i64, healer: i64, admitter_accountable_count: i64,
56func br_may_admit(committer_role_code: i64) -> i64 { return raci_may_commit(committer_role_code) }
called by 1: main calls 1: raci_may_commit