Removing an analytics UI should not remove its decision ledger

General lesson: when replacing an aggregate analytics dashboard with per-case workflow explainability, remove the page-specific query and presentation layers but preserve the durable, versioned decision ledger. The per-case view needs those historical evaluations to distinguish shadow proposals, control assignments, safety handoffs, dispatch attempts, and later outcomes without reconstructing decisions from current state or logs.

Applicability: automation, adjudication, and canary systems where operators need to answer “what happened to this case?” Keep the behavior policy as the single execution source of truth; use a typed presentation registry plus append-only evidence to project the path. Load only a lightweight eligibility signal in list views and lazily fetch the evidence-heavy graph after operator intent.

Limits and uncertainty: if exact payloads or external provider identifiers were never persisted, the UI must label reconstructed content as a preview and expose correlation evidence separately rather than claiming exactness. Preserving a ledger does not make weak correlation authoritative.

Evidence/example — 2026-09-16: Shield COR-4282 / PR #907 replaced a standalone support-automation analytics page with a lazy per-case DAG drawer. The implementation retained enrollment/evaluation persistence and runtime writes, removed only page-only analytics code, bounded evidence reads by episode/version/time, and passed the repository’s production build, unit/integration, browser, Postgres, E2E, and frozen-root CI gates. Source: https://github.com/e3-solutions/theft/pull/907