Skip to content

Entity-Output Composition (correlation source)

Status & scope

  • Module: composition via lens/adapters/ correlation source (source-adapters), not lens/semantic/
  • Status: Superseded by the two-engine model — reframed to composition (2026-06-03)
  • Depends on: source-adapters, dev-env SPEC-FUSION (the entity engine)

Two-engine boundary (why this spec changed)

prism is the cost-lens engine; the entity (semantic) lens is owned end-to-end by parallax (the Fusion engine — dev-env SPEC-FUSION). prism does not run entity resolution. The earlier design here — lens/semantic/adapter.py execute_semantic_lens() calling athena.libs.fusion.pipeline.run_fusion() directly — is prism reaching into parallax's domain. It is also dead: athena.libs.fusion is the pre-merger package name and is not installed (prism's leaf contract forbids importing parallax). That adapter is to be removed.

The legitimate seam: compose on entity output, not execution

A cost lens may consume an entity lens's result as one of its input layers — the only sanctioned cross-engine touchpoint. This is composition, not delegation: parallax runs the entity lens and produces correlations/matches; prism's correlation source adapter (source-adapters) reads that output and feeds it into a cost layer ("Engine-1 → Engine-2"). prism never executes the matching.

# a cost lens layer sourced from an entity-lens result
layers:
  - name: identity_corroboration
    source: correlation://<entity_lens_run>    # parallax Fusion output, resolved by source-adapters
    weight: 0.30
    cost_model: linear_scale

What belongs where

Concern Engine Spec
Entity lens: match contract, blocking, scoring, clustering parallax dev-env SPEC-FUSION, parallax SPEC-01..
Consuming entity output as a cost-layer input prism SPEC-13 (correlation source adapter)

DO NOT

  • Run entity resolution inside prism — that is parallax's engine (SPEC-FUSION).
  • Import the fusion pipeline into prism (athena.libs.fusion / parallax.*) — leaf contract forbids it.
  • Reintroduce execute_semantic_lens() — compose on entity output via the correlation source instead.

Depends on: component.prism.evidence-model, component.prism.scoring-engine, component.prism.source-adapters, component.prism.universal-lens-parser

Required by: component.prism.lens-families