jevrecipes

Recipe catalog / evidence-independence

Compare the origins of two pieces of evidence

Check whether supplied provenance shows shared or separate evidence origins for one claim, or leaves their relationship unresolved.

You need to check whether two reports rely on the same underlying source before treating them as corroboration.

Explore this recipe interactively ยท Source and implementation guide

Use evidence-independence in TypeScript

Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.

import { evidenceIndependence } from 'jev-recipes/evidence-independence';

const result = await evidenceIndependence({
  "claim": "The service outage began at 09:00.",
  "firstProvenance": "Report A copies the start time from status notice N17 published by the service operator.",
  "secondProvenance": "Report B cites Report A and repeats the start time from the same operator notice N17."
});
console.log(result);

Input contract

FieldTypeNeeded
claimstringRequired
firstProvenancestringRequired
secondProvenancestringRequired
minConfidencenumberOptional
Full input and result schemas
{
  "input": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "claim": {
        "type": "string",
        "description": "One claim that defines which supporting evidence origins matter."
      },
      "firstProvenance": {
        "type": "string",
        "description": "The first report's supplied source chain, observations, data collection, or other origin details for the claim."
      },
      "secondProvenance": {
        "type": "string",
        "description": "The second report's supplied source chain, observations, data collection, or other origin details for the claim."
      },
      "minConfidence": {
        "type": "number",
        "minimum": 0,
        "maximum": 1
      }
    },
    "required": [
      "claim",
      "firstProvenance",
      "secondProvenance"
    ]
  },
  "result": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "model": {
        "type": "string"
      },
      "usage": {
        "type": "object",
        "properties": {
          "input_tokens": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "output_tokens": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "input_tokens",
          "output_tokens"
        ],
        "additionalProperties": false
      },
      "status": {
        "type": "string",
        "enum": [
          "ready",
          "review"
        ]
      },
      "verdict": {
        "type": "string",
        "enum": [
          "shared_origin",
          "separate_origins",
          "unclear"
        ]
      },
      "confidence": {
        "type": "number",
        "minimum": 0,
        "maximum": 1
      },
      "probabilities": {
        "type": "object",
        "propertyNames": {
          "type": "string",
          "enum": [
            "shared_origin",
            "separate_origins",
            "unclear"
          ]
        },
        "additionalProperties": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "required": [
          "shared_origin",
          "separate_origins",
          "unclear"
        ]
      }
    },
    "required": [
      "model",
      "usage",
      "status",
      "verdict",
      "confidence",
      "probabilities"
    ],
    "additionalProperties": false
  }
}

Saved example result

This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo evidence-independence.

{
  "model": "demo-fixture",
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0
  },
  "status": "ready",
  "verdict": "shared_origin",
  "confidence": 0.98,
  "probabilities": {
    "shared_origin": 0.98,
    "separate_origins": 0.01,
    "unclear": 0.01
  }
}

Evaluation evidence

Fixture only

No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.

Use the evaluation guide to measure this decision on your own labeled cases.

Limitations

Related recipes