KB-6444

11 — Decision Gate Classification (REUSE/EXTEND/WRAP/RECONCILE/DEFER/NEW)

5 min read Revision 1
architecturesecond-passdecision-gatereuseextendwrapreconciledefernew

11 — Decision Gate Classification

Every next action from the first pass (doc 10/12), re-classified after live verification. Rule: NEW requires proof no existing artifact/law/capability covers it; WRAP > duplicate table; RECONCILE > blind single-source; REUSE the pivot/DOT/birth engines unless proven impossible; IU holds profile, not duplicate SoT.

REUSE (proven live — do not rebuild)

Capability Evidence (this pass)
Pivot+counting engine (pivot_definitions 37, pivot_count/query/matrix, refresh_meta_catalog_from_pivot, v_registry_counts) live; PIV filter_specs read
Birth gate (birth_registry 959,372, fn_pre_birth_check, fn_birth_gate soft) live
meta_catalog (169) "list of lists" SoT live
Approval spine (approval_requests 211 + apr_approvals 28+14 ≥2 + workflow_change_requests 3) live
Event substrate (event_outbox 166,422 + iu_outbound_route 15 + event_type_registry 40) live
IU/KG (information_unit 219 + iu_relation 60 + universal_edges 2199 + v_kg_edges_all 2259) live
DOT governance + scanners (dot_tools 309, Đ35 v5.2, fn_refresh_orphan_dot…) live
Reference-table / config-table anti-hardcode pattern (S165-KB) — NEW to ledger dot_config, dot_domain_rules 67, kg_constraint_config, collection_field_standards 11
dot-metadata-fill DOT (for operation/coverage/tier fill) reuse, don't rebuild
Directus RBAC + agents (6) for personnel/role/agent lists live
DOT-COLLECTION-CREATE 9-step for collection birth reuse

EXTEND (additive to existing object)

  • Pivot coverage: add PIV rows for normative_registry, IU/edges, users/roles, event_type_registry (proven absent — no PIV today).
  • Fix PIV-104 filter published→include active (defect verified).
  • workflows/workflow_steps + iu_ref/owner_gov_code/design cols (dress-rehearsed; Đ32-gated).
  • ui_pages + design_status (or birth ui_surface) — Đ28 thin-shell.
  • iu_outbound_route retry/idempotency policies (config, not new table).
  • Đ35 §11 paired-test retrofit for 178 unpaired DOTs (governed program).
  • universal_edges enrichment (DOT→law, surface→registry, workflow→IU) — enrich in place, no 2nd graph.

WRAP (view over existing, no new table)

  • dot_iu_command_catalog → test/paired view (IU-DOT test tracking without a new column/table).

RECONCILE (two sources drift — align, don't pick blindly)

  • CAT-006 (309) vs CAT-DOT (307) → one canonical CAT + one pivot for dot_tools. (Sharper: they disagree by 2.)
  • Count-integrity LỆCH (CAT-006/007/023/ALL/CMP/MOL/MAT) → INVESTIGATE record_count↔recompute (count_b) mismatch. ⚠️ NOT "re-enable trg_auto_sync_registry_counts" — that trigger is ENABLED ('O'). This is the one first-pass action that is FALSIFIED and must change.
  • ui_pages (37) ↔ manifest (61) ↔ CAT-007 recompute (52) → define surface→page mapping + fix CAT-007 LỆCH.
  • law_catalog (5) vs normative_registry (47) → deprecate/realign; fix dieu28 = wrong law.
  • Register Đ23 + Đ45 into normative_registry (enacted, absent).
  • field_registry vs directus_fields (1,482) → overlay, not copy (when Đ32-committed).

DEFER (out of scope / gated)

  • Workflow runtime tables (workflow_instance/task_instance) — Đ45, not born.
  • Surface-as-IU (unit_kind='ui_surface') — until Đ44 enacted.
  • Candidate-registry COMMITS (field/input_form/tier) — human Đ32 only.
  • dry_run=false flip on iu_outbound_route — sovereign macro, per-route approval first.
  • Đ44 registration into NRM — until enacted.

NEW (proven uncovered — minimal)

Item Proof of absence
workflow_trigger_design table trigger_registry (107) is physical DB triggers — collision; no design-trigger table exists
ui_surface count pivot PIV-008 counts shipped routes only; nothing counts design-surfaces
normative_registry count pivot no PIV row over the law registry
Candidate registries field/input_form/tier (Đ32-gated) absent in PG; dress-rehearsed only

Net decision-gate verdict

Reuse-first plan CONFIRMED. Of the first pass's actions, every one survives except "re-enable the sync trigger," which is reclassified RECONCILE-INVESTIGATE (trigger already on; the count-integrity bug is a recompute/stored mismatch). NEW items remain only the 4 proven-absent artifacts. No new engine is justified anywhere.

Back to Knowledge Hub knowledge/dev/reports/architecture/law-capability-discovery-second-pass-cross-check-2026-05-30/11-decision-gate-classification.md