LearnNewsExamplesServices
Frontmatter
id14507
titleClaim-scoped belief revision on the supersede primitive (consumer 3)
stateOpen
labels
enhancementaiarchitecture
assignees[]
createdAtJul 2, 2026, 9:43 PM
updatedAt3:04 PM
githubUrlhttps://github.com/neomjs/neo/issues/14507
authorneo-opus-vega
commentsCount0
parentIssue14472
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Claim-scoped belief revision on the supersede primitive (consumer 3)

Open Backlog/active-chunk-2 enhancementaiarchitecture
neo-opus-vega
neo-opus-vega commented on Jul 2, 2026, 9:43 PM

Context

Consumer-3 leaf of epic #14472 — institution-native belief revision, claim-scoped. Filed in the operator-directed full-fledging pass; live latest-open sweep 2026-07-02T19:37:34Z: no equivalent ticket.

The scoping is settled authority (#14422 OQ3, RESOLVED_TO_SCOPING_RULE): belief revision defaults claim-scoped — the claim class decides the verification surface; concept-scoped conflict detection remains available as a query pattern over claim-anchored data (burden on its advocates); NOT absorbed into #12679 (bird's-eye navigation may consume outcomes; it is not the granularity SSOT). Implementation vehicle: extend the shipped supersede primitive, never reinvent (ai/services/memory-core/CoalescingEngineService.mjs, the #14418 lineage — supersede-not-duplicate + weak-digest tier collision + sourceTier/degraded fidelity fields).

The Problem

Two memories disagreeing is invisible until an agent trips over the older one. The swarm's empirical failure classes (the graduation's seven specimen events across five classes — frame-import, parallel-wake self-contradiction, token-collision re-filing, recency-surface undersell, single-snapshot temporal overclaim) are all governance-caught today — by peers reading carefully, not by substrate. A stale claim ("v13.1 owner benched", "mailbox healthy", "the flat root must stay empty") keeps surfacing at full confidence after reality moved. Supersession exists mechanically (#14418) but nothing SURFACES candidate conflicts to drive it.

The Architectural Reality

  • Vehicle: ai/services/memory-core/CoalescingEngineService.mjs — the supersede primitive with fidelity axes (sourceTier, degraded, usedTier alignment per #14418 AC-3).
  • Anchor substrate: claims live in memories; memories attach to concepts (TAGGED_CONCEPT, unified post-#14502) — a claim-conflict candidate = two memories in the SAME concept neighborhood making incompatible assertions of the same claim class.
  • Claim classes (initial vocabulary, extensible): state-assertion (X is open/closed/owner/green), env-assertion (local/cloud, path, config), quantity (counts, versions), disposition (decided/parked/superseded). The class decides the verification surface (state → live tracker; env → primary config; quantity → regeneration command; disposition → the deciding artifact).
  • Sequencing authority: OQ3's own note — a claim-conflict probe runs only after the route/read buckets are observable (#14454 done; #14474 the read half).

The Fix

One PR:

  1. Claim-class annotation on the supersede path: superseding writes gain an optional claimClass + verificationSurface pair (extending CoalescingEngine's existing metadata, no new node classes).
  2. Conflict-candidate surfacer (read-only query pattern): within a concept neighborhood, pairs of non-superseded memories with same claim-class + incompatible assertions (heuristic slice 1: negation/numeric-divergence patterns; NO NLP ambition — candidates, not verdicts) → emitted to a queue artifact with per-pair confidence.
  3. Dream-cycle wiring: the surfacer runs in the consolidation window (ai/daemons/orchestrator/services/DreamService.mjs cadence), feeding candidates to the existing REM/coalescing flow — a surfaced pair either coalesces (supersede, existing primitive) or gets marked reviewed-compatible.
  4. Measurements artifact: first full-store run — candidate count, class distribution, precision sample (N=20 hand-checked in-PR, honest precision number stated).

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
CoalescingEngineService supersede metadata #14418 lineage Additive optional claimClass/verificationSurface; absent = today's behavior Unknown class values pass through unvalidated-but-logged (vocabulary extensible) Service JSDoc Unit spec
Conflict queue artifact OQ3 ruling Candidates with confidence, never auto-supersede Low-confidence flood → per-class caps, stated in config Artifact header Precision sample in-PR

Decision Record impact

aligned-with ADR 0024 + the #14418 decision lineage. Concept-scoped detection stays a query pattern (no schema commitment) per the OQ3 ruling.

Acceptance Criteria

  • claimClass/verificationSurface additive metadata on the supersede path; absent-means-unchanged spec-pinned
  • Surfacer: read-only, concept-neighborhood-scoped, hermetic spec on a fixture with a known conflict pair
  • Dream-cycle wiring: candidates flow to coalescing; zero auto-supersede (human/agent review stays the actuator) — spec-asserted
  • First-run artifact with class distribution + a 20-pair hand-checked precision number
  • The five specimen classes mapped: which are claim-scoped-catchable (expected ~2-3), stated honestly in the artifact
  • PR Resolves this leaf, Refs #14472

Out of Scope

  • Auto-supersession (surfacing ≠ deciding; the actuator stays the reviewed coalescing flow).
  • #12679 temporal navigation (adjacent consumer, never the owner).
  • NLP-grade contradiction detection (slice 1 is patterns + neighborhoods; escalate ambition only with precision data).

Avoided Traps

  • Reinventing supersession — the primitive exists (#14418); this leaf extends metadata + adds surfacing only.
  • Concept-scoped-by-default drift — claim-scoped is the ruling; concept-scoped remains a query pattern with the burden on its advocates.
  • Auto-acting on candidates — a false-positive auto-supersede destroys a true memory; candidates are review inputs, permanently.

Sequencing

Gated on #14474's read-side observability (per the OQ3 ruling's own sequencing note); consumes the unified spine (#14502) for neighborhood quality — soft dependency, degrades to per-alias neighborhoods before it.

Related: #14472 (parent epic), #14418 lineage (vehicle), #14474 / #14502 (gates), #12679 (adjacent, non-owner), Discussion #14422 (OQ3)

Origin Session ID: 8cf234b7-e698-47ca-99e2-bf865196b6aa

Retrieval Hint: claim scoped belief revision supersede extension conflict candidate surfacer dream cycle