02 — Current Governance Architecture Map (live PG inventory)
02 — Current Governance Architecture Map (Branch B)
Live PG inventory (DB directus, 2026-06-01, read-only). For each artifact: exists / row count / purpose / governance relation / approval relation / audit / rollback / central-or-local / risk.
Legend — Gov-rel: how ownership is recorded · Appr: approval path · Aud: audit path · RB: rollback path · C/L: central or local.
Law & authority layer
| Artifact | Exists | Rows | Purpose | Gov-rel | Appr | Aud | RB | C/L | Risk |
|---|---|---|---|---|---|---|---|---|---|
normative_registry |
✅ | 47 | Law SSOT (constitution+laws, doc_level, status) | self (created_by_law targets) | Đ32 council (doc_level 1-2) | content_hash; Đ38 | superseded_by/retired_at | Central | Incomplete (Đ20/23/45 unregistered) |
law_jurisdiction |
✅ | (small) | law→domain coverage (primary/secondary/reference) | THE law-ownership table | n/a | Đ37 Trigger#3 one-primary | status | Central | classification.label/.species + grouping have no rows |
law_catalog |
✅ | 5 | legacy law list | — | — | — | — | Central(stale) | superseded → ignore |
governance_docs |
✅ | 12 | UI doc index (/knowledge) | url_path only | — | — | — | Local-ish UI | DRIFTED vs normative_registry |
governance_registry |
✅ | 9 | Agency/owner SSOT (GOV-*) | domain FK→dot_domains; capability JSON (mothers) | Đ37 onboard via DOT+Đ32 | DOT-GOV-VERIFY (→audit_log) | status draft/retired | Central | 4 mothers draft; no classification/pivot agency |
governance_relations |
✅ | 8 | ownership/relation edges | THIS is the edge table | manual/dot_scan | DOT-GOV-VERIFY | status | Central | only agency→law; CHECK target_type∈(law,agency) blocks object edges |
governance_audit_log |
✅ | 1 | governance-relation verification log | relation_id FK | — | self | — | Central | unused (1 stale row) — audit loop not closing |
normative_relations |
✅ | 18 | inter-law relations | — | — | — | — | Central | ok |
nrm_approval_rules |
✅ | 3 | doc_level→authority/method | drives Đ32 routing | — | — | — | Central | ok (council/leadership/department) |
dot_domains |
✅ | 46 | domain vocabulary (FK target) | — | — | — | — | Central | classification/.label/.species/pivot exist but agency-unclaimed |
Approval / execution layer
| Artifact | Exists | Rows | Purpose | Notes |
|---|---|---|---|---|
approval_requests |
✅ | 195 | Đ32 request spine | FK→apr_request_types/apr_action_types; CHECK status(pending/approved/applied/rejected/expired), action(add/modify/delete/review), target_collection NOT NULL |
apr_approvals |
✅ | 42 | the decision rows | approver_type∈{human,ai_council}; sole human=president; UNIQUE(apr_id,approver) |
apr_request_types |
✅ | 14 | request taxonomy | incl. reclassify, rule_change, schema_add/modify/delete, new_dot, retire (reusable for grouping) |
apr_action_types |
✅ | 6 | executable actions | create_item/update_item/add_field/patch_ops_code/amend_law(RESERVED)/enact_nrm(RESERVED); handler dot-apr-execute:* |
os_proposal_approvals |
✅ | 0 | sovereign proposal sign-off | EMPTY — never used |
workflow_change_requests |
✅ | 3 | workflow proposals | approved_by present |
Approval distribution (live): birth_orphan applied=143 (machine), reclassify applied=17 / rejected=1, fix_repair_dot applied=12/rejected=13/approved=1, schema_modify expired=14/applied=1, new_dot applied=2/approved=1/expired=1, schema_add applied=1, accuracy_drift expired=4. All RP-relevant collections entered via machine birth_orphan, not governed approval.
DOT layer
| Artifact | Exists | Rows | Purpose |
|---|---|---|---|
dot_tools |
✅ | 288 | DOT SSOT (has owner free field, not gov_code) |
law_dot_enforcement |
✅ | 252 | law→DOT (executor 225 / auditor 47). Đ24=4, Đ26=8, Đ31=22, Đ37=9 enforced |
dot_operations |
✅ | 20 | op vocab incl. classify/audit/health/verify/report/refresh |
dot_iu_command_catalog |
✅ | 47 | commands tagged mutating/reversible |
dot_domains/dot_domain_rules/dot_coverage_required/dot_operations |
✅ | 46/67/11/20 | coverage matrix |
Classification / grouping / pivot layer
| Artifact | Exists | Rows | Purpose | Gov owner | Appr | C/L | Risk |
|---|---|---|---|---|---|---|---|
taxonomy_facets |
✅ | 10 | grouping DIMENSIONS (FAC-01..09,PROV); max_labels_per_entity per facet | Đ24 (law); no agency | birth_orphan only | Central(law)/orphan(agency) | dimension changes ungoverned |
taxonomy |
✅ | 55 | label values (3-tier) | Đ24 | — | Central | ok |
taxonomy_matrix |
✅ | 36 | facet×level cells | Đ24 | — | Central | ok |
label_rules |
✅ | 37 | auto-label rules (skip_wide_warning) | Đ24 | — | Central | rule changes ungoverned (no approval) |
entity_labels |
✅ | ~755k | applied labels (junction) | Đ24 | — | Central | label-farming capped per-facet only |
pivot_definitions |
✅ | ~37 | pivot SSOT (source_object, group_spec, registry_group) | Đ26 (law); no agency; no owner_gov_code col | birth_orphan only | Central(law)/orphan(agency) | new-pivot creation ungoverned by approval |
pivot_results |
✅ | 126 | materialized pivot output | Đ26 | — | Central | refresh via trigger/cron |
meta_catalog |
✅ | 169 | registry roll-up (record/actual/orphan counts) | Đ26/Đ29 | — | Central | no parent_code/pivot_code/phantom_count cols |
collection_registry |
✅ | 166 | collection SSOT (has owner, governance_role per Đ29) |
Đ29/Đ36 | reclassify needs approval (Đ29 §VI) | Central | ok |
table_registry |
✅ | 21 | UI table SSOT | Đ28 | — | Central | ok |
Issue / event / policy-precedent layer
| Artifact | Exists | Rows | Notes |
|---|---|---|---|
system_issues |
✅ | 183k | issue SSOT; classes data_fault/sync_fault/render_fault/orphan_file/hardcode_violation; phantom only as apr_phantom_applied |
event_outbox |
✅ | 175k | event SSOT (Đ45) |
event_type_registry |
✅ | 40 | iu/mother/piece/staging/system domains; mother.proposal.* + governance.blocked/unblocked exist but active=false |
registry_changelog |
✅ | 67k | entity-change log (changed_by, alert_level, resolved) |
collection_registry_vector_policy |
✅ | 2 | policy-table precedent — has NO owner_gov_code/approval_ref |
iu_core_retention_policy |
✅ | 6 | policy-table precedent — has NO owner_gov_code/approval_ref |
kg_source_authority |
✅ | 5 | authority-weight table (KG) |
binding_registry |
✅ | 0 | empty |
Tables that do NOT exist (proposals only — confirms no local island built yet)
registry_grouping_policy, display_policy, registry_pin, any *phantom*, *pin*, *watch*, *favorite*, *grouping_policy* table — none exist in live PG. The Registries-Pivot work is, at the substrate level, clean-slate (six read-only views committed in the final ship; no policy/pin/threshold table committed).
The decisive structural fact
A scan of every public column for owner_gov_code|capability_code|approval_request_ref|governed_object_type|audit_ref|rollback_ref|lifecycle_status|effective_from:
owner_gov_code/capability_code/approval_request_ref/governed_object_type/audit_ref/rollback_ref/effective_from|to: present on ZERO tables.capability: onlygovernance_registry(mothers).owner: generic user/uuid field on agents/birth_registry/collection_registry/dot_tools/modules/ui_pages (NOT a gov_code FK).lifecycle_status: information_unit + TAC family + iu_* views.approved_by: admin_fallback_log/knowledge_documents/tac_publication/workflow_change_requests.
⇒ The "governed-object field set" the GPT direction asks for exists nowhere in the system. Ownership/approval is recorded relationally (governance_registry.domain + governance_relations + law_jurisdiction + approval_requests), not as per-table columns. This is the single most important architectural fact for the unified-model design (doc 05): do not invent per-table gov columns for Registries-Pivot — bind relationally like everything else.