KB-78AE

05 — Audit Spine Status (Q5)

5 min read Revision 1
governance-audit-logregistry-changelogevent-outboxaudit-spinedieu45fact-finding

05 — Audit Spine Status (Q5)

Verdict: USE_EXISTING_AUDIT_SPINE_INSTEAD (for operational change-logging) + governance_audit_log = structurally READY but DORMANT (for governance-ownership minutes). The live, proven audit spines are registry_changelog (68k), event_outbox/event_read (≈180k), and system_issues (≈183k). governance_audit_log exists and is purpose-built for Council/relation minutes but holds 1 stale row — it must be activated (wire DOT-GOV-VERIFY/DISCOVERY), not replaced, for ownership decisions.

Live evidence

1–4. governance_audit_log: exists / rows / used / columns.

  • Exists (BASE TABLE). Rows = 1. Columns: id, relation_id, checked_at, checked_by, result, detail (jsonb).
  • The single row: relation_id = NULL, checked_at = 2026-04-24, checked_by = "codex-v6-alignment-review-2026-04-24", result = "knowledge_reports_created", detail = {scope: review-and-draft-only, enacted_laws_modified: false, paths:[…]}.
  • Stale / repurposed. It was used once as a note for a codex review, with relation_id = NULL — i.e. it is not logging governance-relation verification (its Đ37 §5.5 purpose). The governance audit loop is not closing.

5. Alternative audit logs already in use (live row counts).

Table Rows Role Active?
registry_changelog 68,074 entity-change log (entity_type/code, action, changed_by, alert_level, resolved) Active (primary)
event_outbox 179,672 Đ45 event SSOT (event_domain/type, safe_payload, actor_ref) Active
event_read 179,311 event read/delivery ledger Active
system_issues ~183,000 issue SSOT (findings, drift, orphan, phantom-applied) Active
lifecycle_log 851 lifecycle transitions Active
vps_deploy_log 18 Đ41 deploy ledger (data_touched/schema_touched/is_known_good/rollback) Active
admin_fallback_log 22 ADMIN-fallback action log Active
law_version_verification_log 3 law content-hash verification Active
iu_lifecycle_log, iu_tree_change_log, entity_audit_queue, kg_quality_log, measurement_log IU/KG/measurement sub-logs Active
workflow_audit_log DOES NOT EXIST (queried; absent). workflow_change_requests (3 rows) is a proposal table, not an audit log

6. Which spine for which change?

Change Recommended audit spine Why
grouping policy change registry_changelog (entity change) + event_outbox (Đ45 event) matches how all registry rows are audited live (68k rows)
threshold policy change registry_changelog + event_outbox same; reference-table edit
registry_pin change registry_changelog + event_outbox (pin.created/removed once registered) pin rows are registry entities
phantom definition change law clausegovernance_audit_log (Council minute) + normative_registry + law_version_verification_log it is a law-clause edit, not a row edit
pivot coverage change registry_changelog (pivot_definitions row) + event_outbox + system_issues (PIV-MISSING finding) pivot rows are registry entities; gaps are issues
DOT grouping apply vps_deploy_log (Đ41, if code/deploy) + registry_changelog (data) + system_issues (dot_bug) exactly how the 18 S178-Fix deploys are logged
ownership / agency-assignment decision governance_audit_log (Đ37 §4.12(d)/§5.5 minute) this is its designed purpose — must be activated

7. Is governance_audit_log usable now, or reuse another path?

  • For governance-ownership minutes (Council §4.12(d) decisions, relation verification): it is structurally usable today (table + columns exist) but operationally dormant. The correct move is to activate it — wire DOT-GOV-VERIFY (daily) / DOT-GOV-DISCOVERY (weekly) to write here, and record the Option-4 ownership-assignment minutes here. (Prior audit patch P6.)
  • For routine grouping/threshold/pin/pivot/DOT-apply change auditing: reuse the existing active spines (registry_changelog + event_outbox + system_issues + vps_deploy_log). Do not force routine row-level changes into governance_audit_log — that table is for governance topology events, and the system already audits entity changes at scale elsewhere.

Bottom line

Two distinct audit needs: (a) ownership topologygovernance_audit_log (ready, dormant, must activate); (b) operational changes → the live registry_changelog + event_outbox + system_issues spines (proven at 68k/180k/183k rows). No new audit table is needed; workflow_audit_log does not exist and need not be created.

Back to Knowledge Hub knowledge/dev/reports/architecture/governance-alignment-followup-fact-finding-registries-pivot-2026-06-01/05-audit-spine-status.md