The Problem

The model treats "the platform supports SSO" and "the platform shall support SSO" as semantically equivalent. One is a description, the other is a contractual obligation. In embedding space the similarity is near-identical, so the model collapses the distinction and your obligation extraction silently includes descriptions as duties.

How Ejentum Solves It

One API call forces your model to separate descriptive statements from normative obligations before any legal conclusion. The is-ought boundary becomes structural.

The Failures

  • 01

    The Pattern

    Descriptive clauses tagged as normative obligations during extraction

    Why It Happens

    Training data mixes descriptive and normative language without structural markers. "The platform supports SSO" and "The platform shall support SSO" are statistically similar but legally opposite.

    The Resolution

    CA-033Hume's Guillotine

    Separates every clause into descriptive (what the contract states as fact) and normative (what it requires as obligation), preventing the model from deriving duties from observations.

  • 02

    The Pattern

    The same term carries different legal definitions across jurisdictions, and the agent applies the wrong one without detecting the conflict

    Why It Happens

    Jurisdiction-specific definitions are context-dependent in ways that embedding models do not capture. "Reasonable" in UK tort law and US tort law have materially different standards.

    The Resolution

    SI-015Semantic Drift Detector

    Tracks the semantic fingerprint of legal terms across jurisdictional boundaries, catching the moment a term shifts definition between the source jurisdiction and the applied one.

  • 03

    The Pattern

    Two clauses are individually valid but produce contradictory obligations when combined, and the agent does not flag the interaction

    Why It Happens

    The model evaluates clauses sequentially. It has no mechanism to hold the full obligation graph in working memory and test pairwise consistency across all active commitments.

    The Resolution

    MC-031Contradiction Adjudicator

    Tests every new obligation against all existing obligations for logical consistency, flagging contradictions before they enter the obligation register.

The Evidence

+19.3pp on abstraction tasks

EjBench, 30 abstraction tasks

Legal analysis requires maintaining category boundaries across multiple constraint types: obligation vs description, jurisdiction vs jurisdiction, precedent vs statute. Multi-ability suppression prevents any of these from collapsing.

AB-V2-270.3811.000 Haki

Baseline identified structural similarity but stopped at surface-level pattern matching. Haki achieved a perfect 1.000 composite: self-monitoring, verification, and alternative consideration all jumped from 0/3 to 3/3.

Behavioral Signals

EjBench, 180 tasks, blind protocol

Epistemic Honesty

+26%

1.54/3.01.94/3.0

Audit Trail

+5%

2.64/3.02.76/3.0

Verification

+44%

1.50/3.02.16/3.0

Alternative Consideration

+35%

1.37/3.01.85/3.0

Run your next contract extraction through the API. See how the scaffold separates what the document states from what it requires.