Skip to content

Evidence

Marivo records deterministic analysis evidence. It does not combine Findings, judge causality or business validity, or choose a next action.

artifact = session.compare(current, baseline)
artifact.show()
print(artifact.evidence_status, artifact.finding_count)

evidence_status is complete, partial, or unavailable. The embedded evidence_digest is a bounded immediate recap. Audit omitted or exact evidence through the same Artifact:

page = artifact.findings(limit=20)
finding = artifact.finding(page.items[0].finding_id)

FindingPage is immutable. Pass next_cursor back to the same method when has_more is true. Each Finding retains its complete derivation, source Artifact, source fields and refs, and retained digest-item refs, so there is no separate derivation-trace API.

runs = session.runs(limit=20)
run = session.get_run(runs.items[0].run_id)
artifact = session.artifact(run.output_artifact_ref)
graph = session.graph(artifact_ref=artifact.ref, direction="ancestors")

Run history and SessionGraph project persisted runtime facts only. They do not check current semantic authority or datasource freshness.

check = session.revalidate(artifact.ref)
check.show()

Revalidation checks persisted identity, current scoped semantic authority, and Evidence integrity. It still does not query datasource health or prove freshness. admissible does not mean business-valid, recommended, or current at the source.

  • An unreadable ledger raises EvidenceStoreUnavailableError; it is never an empty page.
  • An id not owned by the Artifact raises FindingNotFoundError.
  • Incompatible Store, Run, or Artifact schema fails before projection and leaves old bytes unchanged.
  • There is no Session Evidence namespace, digest page, Finding-selection compatibility, or alias.

Start from marivo.help("analysis.evidence") for the current canonical routes.