KB-49F9

11 — Gap Matrix

7 min read Revision 1
gap-matrixgovernanceregistries-pivotbranch-kaudit

11 — Gap Matrix (Branch K)

Columns: Area · Current artifact · Law SSOT · Authority SSOT (agency) · Approval SSOT · DOT/exec SSOT · Issue/Event SSOT · UI boundary · Current owner · Recommended owner · Approval path · Audit path · Rollback path · Status · Gap · Severity · Recommendation.

Severity: 🔴 high (island risk / blocks correctness) · 🟠 medium · 🟢 low.


1. grouping policy

Law: Đ24 primary/Đ29 sec · Authority: none · Approval: reclassify/rule_change · DOT: classify(B) · Issue: label_grouping_required(new) · UI: Đ28 · Current owner: none · Rec owner: GOV-COUNCIL · Approval: Đ32 · Audit: DOT-GOV-VERIFY · RB: superseded_by · Status: designed · Gap: GOVERNANCE_OWNER_GAP · 🟠 · REUSE Đ24/29 + assign agency

2. display policy (50 ceiling)

Law: none · Authority: none · Approval: schema_add+rule_change · DOT: B seed · Issue: classification_required(new) · UI: Đ28 · Current owner: none · Rec: GOV-COUNCIL · Approval: Đ32 + council clause · Audit: — · RB: rehearsed B..RB · Status: rehearsed, deferred · Gap: LAW_GAP + OWNER_GAP + LGIR · 🔴 · EXTEND Đ24/29 (P2); DEFER commit

3. threshold policy

= #2 · Gap: LAW_GAP · 🔴 · EXTEND Đ24/29 per-species ceiling

4. label rules

Law: Đ24 ✅ · Authority: none · Approval: rule_change · DOT: label DOT(live) · Issue: label-farming→system_issues(live) · UI: Đ28 · Rec owner: GOV-COUNCIL · Approval: Đ32 · Audit: Đ24 4 DOTs · RB: status · Status: live · Gap: APPROVAL_PATH_GAP (rule changes ungated) · 🟠 · REUSE + add approval gate

5. taxonomy facets (dimensions)

Law: Đ24 ✅ · Authority: none · Approval: schema_add(new facet) · DOT: label · Issue: — · UI: Đ28 · Rec: GOV-COUNCIL · Status: live(10) · Gap: OWNER_GAP + new-dimension ungated · 🟠 · REUSE + gate new dimensions

6. entity labels

Law: Đ24 ✅ · Authority: none · Approval: n/a(volume) · DOT: auto-assign(capped) · Issue: farming→system_issues · Status: live(~755k) · Gap: stale/wrong-label scanner missing · 🟢 · REUSE + add Đ31 stale-label audit

7. registry pin

Law: none · domain none · Authority: none · Approval: global=Đ32; scoped=self-service · DOT: B(global) · Issue: pin.* (new event) · UI: Đ28 · Current owner: none(future TODO) · Rec: GOV-COUNCIL(global) · Audit: — · RB: soft-retire · Status: rehearsed, deferred · Gap: LAW_GAP + DOMAIN_GAP + OWNER_GAP + LGIR · 🔴 · DEFER (needs pin law clause)

8. phantom definition

Law: LAW_DEFINITION_GAP · Authority: none · Approval: council_review(amend) · DOT: A detect · Issue: phantom_candidate/confirmed(new) · Current owner: none · Rec: GOV-COUNCIL(define)+GOV-SIV(detect) · RB: n/a · Status: draft law-patch · Gap: LAW_GAP + ISSUE_EVENT_GAP · 🔴 · DEFER → council enacts (P1)

9. orphan scanner

Law: Đ19/Đ23/Đ29§V/Đ31 ✅ · Authority: GOV-SIV (via Đ31) · Approval: act=birth_orphan/retire · DOT: fn_refresh_orphan_*(live) · Issue: data_fault halves(live) · Status: live · Gap: none (agency = SIV ok) · 🟢 · REUSE

10. pivot coverage

Law: Đ26 ✅ · Authority: none · Approval: new_dot/schema_add · DOT: dot-pivot-declare↔health · Issue: pivot_missing(new) · UI: Đ28 · Current owner: none · Rec: GOV-SIV + GOV-DOT · Audit: Đ26 8 DOTs · RB: is_active=false · Status: views committed; pivot rows deferred · Gap: OWNER_GAP + APPROVAL_PATH_GAP · 🟠 · REUSE engine + gate new pivots

11. count integrity

Law: Đ31 ✅ · Authority: GOV-SIV · Approval: n/a(auto-detect) · DOT: Đ31 watchdog(22) · Issue: system_issues+event_outbox · Status: contract designed/views committed · Gap: count_integrity_failed issue type missing · 🟠 · REUSE + register issue type

12. DOT grouping scan/propose/apply/audit

Law: Đ35 ✅ · Authority: GOV-DOT · Approval: apply=Đ32, scan/audit=auto · DOT: Đ35 paired · Issue: dot_bug · Status: not authored · Gap: DOT_AUTHORITY_GAP (unbuilt, must be Đ35) · 🟠 · NEW under Đ35 (never local)

13. Registries-Pivot UI route

Law: Đ28 ✅ · Authority: GOV-MOUT · Approval: route string(RG8) · DOT: template-coverage · Issue: render_fault · UI: design_templates · Status: LIVE (dedicated UTable HTTP200) · Gap: route-approval not recorded · 🟢 · REUSE Đ28

14. Registries-Pivot API (Nitro)

Law: Đ28+Đ41 · Authority: GOV-MOUT · Approval: API-exception (Đ41) · DOT: — · Issue: render_fault · UI: — · Status: LIVE via direct pg Pool (rpGatewayDb.ts) · Gap: convention bypass (PG→Directus→Nuxt) unapproved · 🟠 · WRAP + get Đ41 API-exception approval

15. Directus/API exposure

Law: Đ28/Đ36 · Authority: GOV-MOUT · Approval: Directus-write(RG7) · Status: not done (PK-less view 403) · Gap: blocked by view PK · 🟢 · DEFER (add view PK or ratify pg-exception)

16. legacy retirement

Law: Đ28/Đ30 · Authority: GOV-MOUT · Approval: retire+parity(RG9) · DOT: redirect · Issue: render_fault · RB: 301 snapshot · Status: old routes intact · Gap: not retired (intended) · 🟢 · DEFER retire-after-replace

17. notification/cleanup trigger

Law: Đ45/Đ31/Đ23 · Authority: GOV-SIV(raise)+GOV-COUNCIL(act) · Approval: new types + cleanup=Đ32 · DOT: scanner never self-acts · Issue/Event: new types unregistered · Status: designed, zero emitted · Gap: ISSUE_EVENT_GAP (additive) · 🟠 · EXTEND (register types, approval-gated)

18. production acceptance

Law: Đ28 Test-4 + Đ30 + Đ31 ✅ · Authority: GOV-SIV · Approval: n/a · DOT: Đ30 Playwright E2E · Issue: verify_failed · Status: 8 tests rehearsed PASS · Gap: CI gate not installed · 🟢 · REUSE


Gap roll-up

Gap type Areas Severity
LAW_GAP display/threshold (2,3), pin (7), phantom (8) 🔴
GOVERNANCE_OWNER_GAP (agency-orphan) grouping (1), classification facets (5), pivot coverage (10) 🟠
APPROVAL_PATH_GAP label-rule changes (4), new dimensions (5), new pivots (10) 🟠
DOT_AUTHORITY_GAP grouping DOTs unbuilt (12) 🟠
ISSUE_EVENT_GAP (additive) pivot_missing (10), count_integrity_failed (11), phantom types (8), pin/notification (17) 🟠
AUDIT_GAP governance_audit_log unused (1 row) 🟠
LGIR display_policy (2), registry_pin (7) 🔴
Convention island direct-pg API (14) 🟠
Schema/law drift Đ37 v3.3 ↔ live tables (P-DRIFT) 🟠
Law-registry coverage Đ20/23/45 unregistered 🟢

Net: 4 🔴 (all = no-law-home items + their two island tables), the rest 🟠/🟢. No correctness gap is unaddressable; every one maps to a REUSE/EXTEND/DEFER under an existing law, never a NEW-local.

Back to Knowledge Hub knowledge/dev/reports/architecture/full-stack-governance-alignment-audit-registries-pivot-grouping-2026-05-31/11-gap-matrix.md