Soura Vamseekar Marti

Work / Evgraph

Evgraph

Turns Model Cards, approvals, and deployments into one Evidence Graph. EU AI Assurance OS pins evgraph-cli 0.1.2 so the evidence pack and the scan share the same gap.

Published packages2026 – Present

The problem

The artifacts exist — a Model Card here, an approval ticket there, a registry entry somewhere else. Nothing connects them, so a reviewer rebuilds the same picture by hand every time and cannot show how they reached their conclusion.

Scan

What you already havemodel_card.jsonapproval.jsondeployment.jsonmlflow registryAdaptersbuild graphEvidence graphinconclusivemodel cardmodel cardapprovalapprovaldeploymentdeploymentmlflow runmlflow runFindingINCONCLUSIVEapproval timestamp missingcited · deployment.json · field not inventedCertaintystructural → consistency→ heuristic → interpretive
Loose artifacts become one graph. A missing approval stays inconclusive. Assurance OS pins this same 0.1.2 scan in the evidence pack.

Loose artifacts — a model card, an approval record, a deployment record, and an MLflow registry entry — become one evidence graph. Rules walk the edges that exist. Where the approval timestamp is missing, the finding stays inconclusive. The scan does not invent the field, and it does not paint that gap green or red. EU AI Assurance OS pins this same evgraph-cli 0.1.2 scan in the evidence pack.

How it works

  1. 01

    Point it at what you already have

    Adapters read Model Cards, approvals, deployment records, dataset manifests and MLflow registry entries as they are.

  2. 02

    The pieces become one graph

    Scattered files link into a single evidence graph, so a claim in a Model Card is connected to the approval and deployment that should support it.

  3. 03

    Rules read the graph, not the files

    Deterministic rules traverse it and return cited findings. A missing approval timestamp stays inconclusive. The scan does not invent the field, and it does not paint that gap green or red.

  4. 04

    Findings never overclaim

    Certainty runs STRUCTURAL → CONSISTENCY → HEURISTIC → INTERPRETIVE, and is only ever lowered as reasoning gets softer, never raised.

Engineering notes

  • Four packages versioned together at 0.1.2 — evgraph-core, evgraph-rules, evgraph, and evgraph-cli. The evgraph package does not install the evgraph command. EU AI Assurance OS pins evgraph-cli==0.1.2.
  • Rules are pure over the graph: they emit findings without mutating it, so a scan is reproducible and explainable.
  • Reporters emit JSON, Markdown, SARIF and OSCAL, so results land in code scanning or a compliance toolchain unchanged.
  • Third-party rule packs register through entry points; promotion scans are report-only by default so CI collects evidence without blocking a build.

Trade-offs

Findings over pass/fail stamps

instead of a green or red badge

A badge hides its reasoning. A cited finding can be argued with, which is what a reviewer actually needs.

A library, not a platform

instead of a hosted service

Governance artifacts are sensitive and CI is where the check belongs. Shipping packages means no data leaves and no vendor is in the path.

Report-only promotion scans by default

instead of blocking the build

A tool that breaks CI on day one gets removed on day two. Collecting evidence first lets a team tighten the gate when they trust it.

Evidence

4

packages on PyPI

4

report formats

4

certainty levels

0.1.2

current version