KB-2D9A
Topic Axis Self-Operated — 01 Live State & SSOT Confirmation
3 min read Revision 1
topic-axislive-checkssot2026-06-04
01 — Live State & SSOT Confirmation (2026-06-04)
SSOT read: checkpoint-rp-ui-axis-decision-queue-2026-06-04.md + package docs 02–07. Live re-verified via query_pg (RO) and ssh→psql (RW). Old reports = evidence; live wins. Every accepted-state number matched live before any mutation.
Topic Axis core (matched checkpoint exactly, pre-mutation)
| Object | Live | Expected |
|---|---|---|
| axis_registry | 1 row, AX-TOPIC = CANDIDATE | CANDIDATE |
| axis_assignment | 25 rows / 7 distinct nodes | 25 / 7 |
| v_registries_pivot_axis_surface | 7 rows | 7 |
| v_axis_topic_pivots | 14 rows | 14 |
| v_axis_topic_decision_queue | 7 rows | 7 (LIVE) |
| fn_topic_node_substrate(text) | live; KG → 10 IUs / 10 evidence tags | live |
| taxonomy | 58 rows; FAC-08 = 0 governed nodes | 58 / 0 |
| source iu_metadata_tag topic:* | 25 tags / 16 IUs | 25 / 16 |
| governance_object_ownership | 0 rows (empty system-wide) | 0 |
| governance_responsibility_scope | 6 rows | (new finding) |
| universal_edges | 2,199 | 2,199 |
| event_type_registry | 45 rows | — |
| approval_requests | 211 (pre) → 225 (post) | 211 pre |
| birth_registry | 1,152,873 (pre) → 1,152,887 (post, +14) | ~1,152,860 |
Schema / constraint facts that shaped the plan
- approval_requests.status CHECK =
pending|approved|applied|rejected|expired. Nodraft→pendingis the safe human-gate state. - approval_requests has 2 FKs:
request_type_code → apr_request_types.request_code,proposed_action_code → apr_action_types.action_code. Both governed vocabularies. Mapped each row to existing codes (e.g.register_axis,register_topic_node,assign_axis_owner,amend_law).actionCHECK =add|modify|delete|review;target_collectionNOT NULL. - 6 triggers on approval_requests (via
pg_trigger; invisible to MCPinformation_schema):trg_apr_auto_approve(auto-approvesaction='add'),trg_birth_approval_requests(births per insert),trg_approval_auto_code,trg_apr_lifecycle,trg_apr_quorum_check,trg_apr_block_unimplemented. - governance_object_ownership.lifecycle_status CHECK =
active|superseded|revoked|expired. No draft/pending → inserting any row asserts ACTIVE ownership = forbidden. Therefore ownership bootstrap is apendingapproval_request + a read-only gap view, never a live ownership row. - axis_assignment.status CHECK =
candidate|provisional|approved|rejected|retired; UNIQUE(axis_code,node_code,target_type,target_code,relation_type). Speculative routing rows would dangle on non-existent targets → automation expressed as a derived view + packet, not inserted rows.
Execution-mode classification
EXECUTION_MODE — RW confirmed (directus role via ssh root → docker exec). All actions additive/reversible. No forbidden capability exercised.