KB-4EF4

RP DOT Cleanup + Anti-Drift + UI/API Handoff — 00 Readme First

4 min read Revision 1
registries-pivotdot-cleanupanti-driftui-api-handoffdieu262026-06-03partial-held

00 — Readme First

Macro: REGISTRIES_PIVOT_DOT_CLEANUP_ANTIDRIFT_AND_UI_API_HANDOFF Date: 2026-06-03 Status: PARTIAL — PASS on all design/analysis objectives; DOT execution correctly HELD (zero production mutation).

One-paragraph result

We took the RP classification cleanup from intent-level plan toward operational readiness by actually reading the live DOT scripts (mission rule: do not guess — inspect the script). That inspection produced the decisive finding of this macro: no existing pivot-domain DOT can update composition_level, species, or registry_group on an existing pivot_definitions row. dot-pivot-declare is INSERT-only; dot-matrix-update touches matrix_spec only; dot-matrix-retire touches is_active/superseded_by only. The prior intent packet (dot-pivot-declare PIV-001 composition_level=atom) is therefore not bindable to any real operation. Action A (3 composition fixes) and Action B (12 domain assignments) have no execution tool today; Action D's two retire candidates are already inactive (DOT-314 would early-exit); Action C needs no data change (the live view's derived columns are the fix). Net: zero safe DOT mutations were executable, so none were executed. Production pivot_definitions is byte-identical entry→exit (md5=4eb00c8fe4d0937325278d7e5e12b7a3).

What this macro delivers (all read-only / paste-ready)

  1. Authoritative DOT binding + tool analysis (doc 02) — exact CLI args from the actual scripts, and the proof that A/B are unbindable.
  2. Read-only rehearsal (doc 03) — target-state preview; retire+recreate workaround proven non-viable.
  3. Execution decision (doc 04) — correctly HELD, with the exact blocker.
  4. Naming decision packet (doc 05) — Action-B FAC-02 recommendations for the council; not self-ratified (genuinely semantic).
  5. Anti-drift health suite (doc 06) — 9 read-only checks (AD-1..AD-9), validated live; optional one-row health view (held, not applied).
  6. UI/API handoff (doc 07) — field contract, badges, L2 banner, JSON.
  7. Next RP build plan (doc 08) — author dot-pivot-update, ratify Action B, then the schema split.

Hard facts (live, read-only, 2026-06-03)

  • DB = directus. View v_rp_classification_governance_map live, 37 rows.
  • Breakdown: species clean 31 / missing 4 / ambiguous_meta 2 / orphan 0; composition match 21 / mismatch 3 / drill_overload 9 / no_ref 4; lane gov_home 15 / rp_local 20 / inactive 2; rg domain 15 / shape 22; FAC-02 mapped 9.
  • L2 gate CLOSED: ospa 0, ownership 0, gap 210, axis/topic absent, gov_emit 0.
  • Anti-drift baseline: AD-1=0, AD-2=0, AD-3=0, AD-4=3, AD-5=0, AD-6=6, AD-7 false (no L2 false claim), AD-8 true, AD-9=0.

Guardrails honored

  • ❌ No manual UPDATE/INSERT/DELETE to pivot_definitions (Đ26 §II-QUINQUIES).
  • ❌ No DOT executed (no bindable safe op existed; execution requires verified tool + owner-go).
  • ❌ No L2 rollout, no os_proposal write, no event emit, no system_issues write, no UI/Nuxt/Directus/Qdrant mutation, no law/version change.
  • ✅ No island: the live view joins governed truth and copies nothing; the optional health view was not applied.
  • ✅ No claim that production governance gap=0 (gap=210, real).

ONE remaining blocker is now precisely two, both non-L2 for classification: (1) a governed update-capable pivot DOT must be authored/registered (dot-pivot-update, doc 08 / sql/05_proposed_dot_pivot_update.sh); and (2) the council must ratify Action-B FAC-02 targets (doc 05). Neither needs L2. The separate L2 governance rollout still waits on human L2/L4 ospa≥1.

Read order

00 (this) → 01 state+preflight → 02 DOT binding → 03 rehearsal → 04 execution/blocker → 05 naming packet → 06 anti-drift → 07 UI/API → 08 next build → 09 go/no-go → 10 self-review. SQL under sql/ (also mirrored at ~/one-roof-clone-finalization-2026-06-03/sql/rp_dot_cleanup/).

Back to Knowledge Hub knowledge/dev/reports/architecture/registries-pivot-dot-cleanup-antidrift-ui-api-handoff-2026-06-03/00-readme-first.md