LearnNewsExamplesServices
Frontmatter
id14138
titleRe-route the 5 data-integrity producers to raw-evidence (drop actionClass:escalate)
stateClosed
labels
enhancementaiarchitecture
assigneesneo-opus-ada
createdAtJun 26, 2026, 9:08 PM
updatedAtJun 27, 2026, 6:12 PM
githubUrlhttps://github.com/neomjs/neo/issues/14138
authorneo-opus-ada
commentsCount0
parentIssue14132
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJun 27, 2026, 6:12 PM

Re-route the 5 data-integrity producers to raw-evidence (drop actionClass:escalate)

Closed v13.1.0/archive-v13-1-0-chunk-7 enhancementaiarchitecture
neo-opus-ada
neo-opus-ada commented on Jun 26, 2026, 9:08 PM

Context

The v13.1 self-heal re-shape (#14132, operator-mandated 100% autonomous, escalate DELETED) routes every data-integrity diagnosis to an autonomous heal action via the runner classifier (#14109) + the dedicated data-recovery actuator (#14134, applyHeal). The #14032 convergence is locked: evidence-contract (Vega) + actuator envelope/heal-actions/OQ1-new-ADR (Grace, ratified) + OQ9 accepted-loss shipped (#14137). The producers are the one remaining escalate-emitting layer.

The Problem

All 5 data-integrity producers hardcode details.actionClass: 'escalate' (uniform): dataIntegrityCoverageDiagnosis:63, vectorCountMonotonicityDiagnosis:69, dimensionConsistencyDiagnosis:66, sqliteIntegrityDiagnosis:65, storeBloatDiagnosis:86. The runner currently routes actionClass === 'escalate'escalateDiagnosis (paging a nonexistent cloud operator). This is the disabled-self-healing the operator escalated.

The Architectural Reality

Per the locked #14032 seam (Vega seam-confirm): producers stay dumb raw-evidence emitters; the runner classifier derives the corruption MODE from evidenceFacts + routes to a HEAL_ACTIONS action. The producers already emit recoveryClass: 'data-integrity' + raw per-collection evidenceFactsrecoveryClass: 'data-integrity' is the routing key the classifier consumes. V-B-A: createRecoveryDiagnosisEvent (recoveryRunStateStore.mjs:147) validates details is an object but does NOT require actionClass — dropping it is contract-safe.

The Fix

In each of the 5 producers: drop details.actionClass: 'escalate' (keep recoveryClass, evidenceFacts, and the non-escalate details metadata like reasonCode/driftedCollections). Update each producer's JSDoc (the actionClass: 'escalate' line → "raw evidence for the autonomous classifier"). Update each producer's unit test (drop the actionClass: 'escalate' assertion; assert the raw-evidence shape + no escalate). The classifier (#14109) is the consumer; this PR lands coordinated with Vega's runner-terminal (cutover-sequence under coordination — branch-build, supersedes the producer-side of #14129/#14130/#14131 onto the autonomous contract).

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
the 5 data-integrity producers' recovery-diagnosis event #14032 locked seam + #14132 (DELETE escalate) emit recoveryClass: 'data-integrity' + raw evidenceFacts; NO details.actionClass details defaults {} (createRecoveryDiagnosisEvent-safe) module + fn JSDoc unit: each producer emits raw-evidence, no escalate
consumer: runner classifier #14109 #14032 seam derive mode from evidenceFacts keyed on recoveryClass: 'data-integrity', route to HEAL_ACTIONS #14032 mode→terminal table Vega seam-confirm + Grace envelope-ratified (2026-06-26)

Decision Record impact

aligned-with #14132 / #14032 + the new data-recovery ADR (Grace, OQ1). This producer change is pure emit-shape; the ADR governs the actuator.

Acceptance Criteria

  • All 5 data-integrity producers drop details.actionClass: 'escalate'; none emits an escalate terminal.
  • Each keeps recoveryClass: 'data-integrity' + raw evidenceFacts (the classifier's input).
  • Each producer's JSDoc updated (no actionClass: 'escalate' framing).
  • Each producer's unit test updated (assert raw-evidence + no escalate).
  • Lands coordinated with the runner classifier #14109 (cutover-sequence per Vega).

Out of Scope

  • The runner classifier + mode-derivation + terminal routing — Vega's #14109.
  • The actuator applyHeal + heal-action execution + the new ADR — Grace's #14134.
  • The document-presence gatherer wiring (Orchestrator-level documentsPresentCount injection) — a follow-on, runner-seam-coupled; the primitive itself shipped (#14135/#14136).

Related

#14132 (parent: delete-escalate), #14032 (locked seam), #14039 (v13.1 epic), #14109 (consuming classifier), #14134 (actuator), #14129 / #14130 / #14131 (superseded producer-side).

Origin Session ID: fe9c04d6-1aae-4017-8d53-19b0e5aaf809

Live latest-open sweep: checked latest 15 open issues at 2026-06-26T19:06Z; no equivalent (the open re-shape subs are #14129-14134, none is the producer escalate→raw-evidence re-route).

Authored by Ada (Claude Opus 4.8, Claude Code).

tobiu referenced in commit efde5b6 - "feat(ai): autonomous re-embed-missing data heal — defer becomes act (#14134) (#14240) on Jun 27, 2026, 5:00 PM
tobiu referenced in commit 740bb1e - "feat(ai): wire dimension-consistency gatherer into the data-integrity runner evidence seam (#14225) (#14226) on Jun 27, 2026, 6:08 PM
tobiu referenced in commit 144ca82 - "refactor(ai): drop vestigial actionClass:escalate from the 5 data-integrity producers (#14138) (#14250) on Jun 27, 2026, 6:12 PM
tobiu closed this issue on Jun 27, 2026, 6:12 PM