KB-6BAC

07 · Birth / Governance / RP Synchronization Matrix

6 min read Revision 1
terminal2sync-matrixbirth-registrygovernancerp-visibilitydangerous-mismatch2026-06-05

07 · Birth / Governance / RP Synchronization Matrix

Area 7 verdict: PARTIAL. The governance posture is honest (no fakes), but several objects are RP-visible-but-not-governed and the per-node contract does not yet carry governance sync state. One dangerous-mismatch risk is identified and must be labeled.


1. Sync states (legend)

  • DESIGNED — specified in this/earlier design, not built.
  • IMPLEMENTED — live in PG.
  • CANDIDATE_ONLY — exists but status=CANDIDATE, not ratified.
  • GOVERNANCE_MISSING — no owner / no axis_registry row / no vote.
  • BIRTH_MISSING — object exists without a birth_registry record.
  • RP_VISIBLE_NOT_GOVERNED — surfaced in the contract but no governance home.
  • DANGEROUS_MISMATCH — RP shows a number/state that could be read as official/authoritative but is not.

2. Synchronization matrix

Object / concept birth_registry axis_registry axis_assignment ownership approval / vote pivot_definitions event_type_registry UI contract Sync state
AX-TOPIC n/a (lens) CANDIDATE row 25 (all AX-TOPIC) 0 none v_axis_topic_pivots emitted (7) CANDIDATE_ONLY
AX-PROCESS n/a CANDIDATE row 0 0 PROC-OWN-01..05 pending v_axis_process_pivots process.* 0/7 emitted (22) CANDIDATE_ONLY + GOVERNANCE_MISSING (owner)
AX-BASE base objs born absent n/a (lens) n/a n/a PIV-*/dot_tools event_type_registry emitted (39) RP_VISIBLE_NOT_GOVERNED → fix: DERIVED_STRUCTURAL (doc 06)
AX-PXT n/a (derived) absent n/a n/a n/a emitted (12) RP_VISIBLE_NOT_GOVERNED → fix: DERIVED_CROSS (terminal)
AX-TRIGGER triggers exist absent 0 0 none 52 evt emitted (7) RP_VISIBLE_NOT_GOVERNED + GOVERNANCE_MISSING (owner)
Official RP (any axis) 0/453 0 0 votes shown as 0 IMPLEMENTED-honest (0, not faked)
job:cut (first official process) born via AX-PROCESS pending 0 PROC-OWN-03 pending READY_FOR_PRESIDENT CANDIDATE_ONLY (ready)
wf_process_candidate (19) born AX-PROCESS lens n/a 0 n/a drill children IMPLEMENTED + GOVERNANCE_MISSING (owner)
Canonical _current contract n/a n/a n/a n/a n/a n/a n/a not built DESIGNED (doc 02)
Registry-driven base n/a needs cols n/a n/a n/a n/a n/a not built DESIGNED (doc 03)
Full-population invariant n/a n/a n/a n/a n/a n/a n/a not built DESIGNED (doc 04)
Reliability fields (full) n/a reads governance_class n/a n/a n/a n/a n/a proxies only PARTIAL (doc 05)
PXT ledger static literals n/a n/a n/a n/a n/a residual 8≠2; job_queue 8≠13 shown as counts DANGEROUS_MISMATCH (stale number readable as live)
process. events* PROC-OWN-05 + 1st official 0/7 active, emit=false IMPLEMENTED-honest (fail-closed)

3. The dangerous-mismatch (must label until fixed)

PXT ledger static literals (v_rp_static_literal_detector: residual_reconcile 8 vs live 2; job_queue 8 vs live 13). These are hardcoded counts rendered alongside live counts. A viewer cannot tell which numbers are live and which are stale literals. Until refactored to live subqueries (doc 05 / data-debt), the per-node reliability_label for these nodes must be STALE and the UI must badge them. This is the only place where RP could mislead — and it is already detected (just not yet propagated to the node).

Not dangerous (verified honest): official RP shows 0 (not faked); ownership/votes/REAL_RUN all 0; events fail-closed. The system does not invent authority.

4. Synchronization design requirement

Add a per-node governance sync column to _current (or a sibling v_rp_node_governance_sync):

gov_sync_state TEXT  -- OFFICIAL | CANDIDATE | DERIVED | RP_VISIBLE_NOT_GOVERNED | STALE_NUMBER | BIRTH_MISSING

computed from: axis_registry presence + governance_class + axis_assignment + ownership + the static-literal detector. This makes the matrix above live and per-node, so the UI never shows a node without its governance sync state.

5. Five-layer sync note (law §5 constitutional)

RP is currently a PG-only reflection; the five-layer chain is PG → Directus → Nuxt → AgentData/KB → Qdrant. RP contract lives in PG; the UI (Nuxt) consumes via API pass-through (assembly-first, no direct-PG-from-Nuxt — confirmed by the UI package design). Directus/KB/Qdrant are not part of the contract surface (RP is a read-model), which is acceptable — but doc 09 must confirm the Nuxt layer binds _current only.

6. Classification

Issue Class Severity
AX-BASE/AX-PXT/AX-TRIGGER RP-visible-not-governed GOVERNANCE_BLOCKED + DESIGN_DRIFT P1
PXT ledger stale literals readable as live (dangerous-mismatch) DATA_DEBT P1 (label now), P2 (refactor)
No per-node gov_sync_state ARCHITECTURE_GAP P2
AX-PROCESS/job:cut owner missing GOVERNANCE_BLOCKED P3 (authority)

7. Required technical spec for T1 (Area 7)

  1. Propagate STALE_LITERAL from v_rp_static_literal_detector onto the node reliability_label/warning_flags (closes the dangerous-mismatch labeling).
  2. Build gov_sync_state (per-node) from registry+ownership+assignment+detectors.
  3. Register the 3 synthetic axes (doc 06) → flips their state out of RP_VISIBLE_NOT_GOVERNED.
  4. Acceptance: no node has gov_sync_state=RP_VISIBLE_NOT_GOVERNED; every stale-literal node shows STALE; official RP still shows 0 (honest).
Back to Knowledge Hub knowledge/dev/reports/architecture/parallel-terminal2-rp-canonical-contract-design-alignment-technical-spec-2026-06-05/07-birth-governance-rp-sync-matrix.md