KB-7C29

02 — PROC-OWN-01..05 Execution Packet

4 min read Revision 1

02 — PROC-OWN-01..05 Execution Packet

Views: v_rp_proc_own_execution_packet, v_rp_proc_own_side_effect_preview, v_rp_proc_own_no_go_guard. Underlying scaffold: v_process_axis_post_vote_handler_readiness, v_process_axis_approval_side_effect_preview, fn_pa_domain_handler, fn_pa_post_vote_dryrun.

Request inventory (all pending, unreviewed)

code request_type entity handler proposed_action
PROC-OWN-01 axis_ownership AX-PROCESS fn_pa_handler_assign_axis_owner assign_axis_owner
PROC-OWN-02 axis_canon AX-PROCESS fn_pa_handler_register_axis register_axis
PROC-OWN-03 process_registration PROC-CAND:job:cut fn_pa_handler_register_process assign_governance_owner
PROC-OWN-04 process_family_registration PROC-CAND:dot:kg fn_pa_handler_assign_governance_owner assign_governance_owner
PROC-OWN-05 event_activation process.* fn_pa_handler_activate_event_type activate_event_type

Guarded execution order: 01 → 02 → 03 → 05 → 04

exec_order code depends_on gate_status side effect (after canon)
1 PROC-OWN-01 BLOCKED_NO_PRESIDENT_VOTE INSERT ownership(axis:AX-PROCESS)
2 PROC-OWN-02 PROC-OWN-01 BLOCKED_NO_PRESIDENT_VOTE UPDATE axis_registry SET status=ACTIVE, approval_ref=PROC-OWN-02
3 PROC-OWN-03 PROC-OWN-02 BLOCKED_NO_PRESIDENT_VOTE INSERT axis_assignment(AX-PROCESS, job:cut) → official RP 0→1
4 PROC-OWN-05 PROC-OWN-02 BLOCKED_NO_PRESIDENT_VOTE UPDATE event_type_registry SET active=true (7 rows)
5 PROC-OWN-04 PROC-OWN-01 BLOCKED_NO_PRESIDENT_VOTE INSERT ownership(dot:kg) + authorize 10-process split post REAL_RUN

Why 04 is last (and different)

PROC-OWN-04 authorizes the dot:kg family 10-process definition split, which only materializes post-REAL_RUN. It is the largest irreversible birth and depends only on the axis owner (01), not on canon (02). It is deliberately sequenced after the reversible-first chain (01→02→03→05) so official-RP increments stay minimal and each earlier step is independently reversible before the big split is authorized. 03 registers the first official process (job:cut, RP 0→1) under the canon'd axis; 05 (event activation) needs only canon (02), so it slots before 04.

Side-effect preview + rollback (per request)

code target write_effect_after_canon rollback_step
01 governance_object_ownership INSERT ownership(axis:AX-PROCESS) DELETE ownership row
02 axis_registry UPDATE status=ACTIVE UPDATE status=CANDIDATE
03 axis_assignment INSERT (AX-PROCESS, job:cut) DELETE row (RP 1→0)
04 governance_object_ownership INSERT ownership(dot:kg) + split DELETE ownership + revoke split
05 event_type_registry UPDATE active=true (7) UPDATE active=false (7)

No-go guard (v_rp_proc_own_no_go_guard) — all hold

  • all_5_blocked_no_president_vote — true
  • zero_president_votes_on_proc_own — true (0)
  • zero_axis_owner — true (no AX-PROCESS owner)
  • official_rp_zero — true
  • ai_agent_handler_blocked — true (fn_pa_domain_handler(...,'ai_agent',false) → phase BLOCKED)

Fail-closed proof

Every handler preview returns phase=BLOCKED, blocker = "actor_type=ai_agent cannot satisfy president authority (human-only)". fn_pa_post_vote_dryrun() is annotated "HYPOTHETICAL / READ-ONLY: this function writes nothing" and even after authority, "each step is still a deliberate canon action; no handler auto-writes." Do not approve. Action-ready only.

Back to Knowledge Hub knowledge/dev/reports/architecture/rp-governance-birth-synthetic-axis-registration-final-readiness-2026-06-05/02-proc-own-execution-packet.md