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→includeactive(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.