Skip to content

VeristReplay + diff for AI decisions

See exactly what changes when you update a prompt or model — before it hits production.

terminal
$ verist test

classify-ticket · 10 baselines

  ✓ 8 unchanged  ~ 2 changed

  ticket-002
    category: "urgent" → "normal"
    confidence: 0.92 → 0.71
  ticket-009
    category: "urgent" → "normal"
    confidence: 0.88 → 0.65

  ⚠ 2 regressions — review before shipping

How it works

change prompt → recompute → see diff → approve → ship

1

Capture

Run a step, store output as a versioned artifact.

2

Recompute

Re-run with a new prompt or model against the same inputs.

3

Diff

See exactly which fields changed, were added, or removed.

4

Approve

Review the impact, then ship with confidence.

Without Verist

  • Logs tell you what happened — not what would change
  • A few test cases can't catch regressions at scale
  • Recomputation silently overwrites human corrections
  • Decisions can't be reproduced months later

With Verist

  • Field-level diffs show impact before you ship
  • Batch recompute across your full history
  • Human corrections preserved by design
  • Exact replay from stored artifacts, any time

Git for AI decisions

Code changePrompt / model updateTest runRecompute against historyPR diffDecision diffMergeApprove and persist

Minimal API

Define a step, capture a baseline, recompute with a new prompt, and see the diff.

typescript
import { defineStep, run, recompute, formatDiff } from "verist";

const classify = defineStep({
  name: "classify-ticket",
  input: z.object({ text: z.string() }),
  output: z.object({ priority: z.enum(["high", "medium", "low"]) }),
  run: async (input, ctx) => {
    const result = await ctx.adapters.llm.extract(input.text);
    return { output: result };
  },
});

// Capture baseline
const baseline = await run(classify, { text: "..." }, { adapters });

// Recompute with new prompt
const result = await recompute(baseline, classifyV2, { adapters });

// See what changed
console.log(formatDiff(result.outputDiff));

LLM context: llms.txt · llms-full.txt
Released under the Apache 2.0 License.