05 — Audit Spine Status (Q5)
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 clause → governance_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 intogovernance_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 topology → governance_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.