KB-4862

12 — Governance/Birth Fail-Closed Regression Proof (10/10)

2 min read Revision 1

12 — Governance / Birth Fail-Closed Regression Proof

View: v_rp_governance_birth_failclosed_regression_guard. Result: 10/10 hold (live).

test holds detail
ai_cannot_president_vote true ai_agent handler preview → BLOCKED (president human-only)
human_nonpresident_cannot_approve true 0 president-type approvals exist (apr_approvals: 28 ai_council, 14 human, none president)
owner_action_blocked_no_owner true no axis owner → owner-gated actions blocked
birth_blocked_no_president_vote true all 5 PROC-OWN gate BLOCKED_NO_PRESIDENT_VOTE
event_activation_blocked true 7 process.* events inactive (no_go_until_authority)
realrun_blocked true realrun no-go 8/8 holds
ax_trigger_registration_blocked true AX-TRIGGER unregistered (axis_registry count = 0)
official_rp_zero true official AX-PROCESS RP = 0 (0 active axis_assignment)
preview_birth_free true fn_pa_post_vote_dryrun note = "writes nothing"
candidate_actions_preview_or_blocked_only true all wf_candidate_action_log phases ∈ {PREVIEW, BLOCKED}

Teeth (these are real, not cosmetic)

  • ai_cannot_president_vote calls fn_pa_domain_handler('PROC-OWN-01','ai','ai_agent',false) live and asserts phase=BLOCKED. If a future change let an AI satisfy president authority, this flips to false.
  • official_rp_zero / ax_trigger_registration_blocked count live rows; a fake registration would break them.
  • candidate_actions_preview_or_blocked_only scans the full action log; a single real-run row flips it.
  • preview_birth_free reads the dryrun annotation; if the dryrun function ever wrote, the note changes.

The companion guards v_rp_proc_own_no_go_guard (5/5) and v_rp_realrun_no_go_guard (8/8) also hold, giving 23 independent fail-closed assertions across the governance/birth/realrun surface.

Back to Knowledge Hub knowledge/dev/reports/architecture/rp-governance-birth-synthetic-axis-registration-final-readiness-2026-06-05/12-regression-failclosed-proof.md