Skip to content

feat(framework): pnpm local compare against the published baseline - #195

Open
barryroodt wants to merge 1 commit into
local-runner-runfrom
local-runner-compare
Open

feat(framework): pnpm local compare against the published baseline#195
barryroodt wants to merge 1 commit into
local-runner-runfrom
local-runner-compare

Conversation

@barryroodt

Copy link
Copy Markdown
Contributor

Stack 3/5 for #128. Base: #194.

pnpm local compare <eval...> [--experiment <id>] [--runs N] [--mcp <path>]
pnpm local compare --suite <regression|benchmark> [same flags]

Runs the treatment arm exactly as run does, then diffs it against the newest published result for that eval and experiment on origin/main. Exits 1 when the treatment went PASS -> FAIL.

It says out loud what it is

A flip is a screen, not causal proof. The published arm ran in the scheduled CI world: published mcp package, production docs index, whatever model state existed at refresh time. So the output prints that caveat, and the receipt records the published result's commit, its first parent, and its age in days. The confound lives in the artifact rather than in the reader's memory.

That is the one design decision here I would push back on changing. A tool that printed PASS -> FAIL without it invites exactly the wrong inference.

Refusals stay pre-spend

An eval with no published row for the requested experiment is refused before any model call, listing the experiments that are published for it and pointing at run when there is no baseline at all. --suite expands to every eval the published export carries for the experiment, and is rejected in run mode or alongside explicit ids.

--runs defaults to the published row's attempt count, so the arms match unless you say otherwise.

Verified

  • smoke 19/19, 8 new
  • tsc --noEmit and biome check clean

    pnpm local compare <eval...> [--experiment <id>] [--runs N] [--mcp <path>]
    pnpm local compare --suite <regression|benchmark> [same flags]

Runs the treatment arm exactly as `run` does, then diffs it against the newest
published result for that eval and experiment on origin/main, and exits 1 when
the treatment regressed from PASS to FAIL.

It says out loud what it is. A flip is a SCREEN, not causal proof: the published
arm ran in the scheduled CI world, with the published mcp package, the
production docs index, and whatever model state existed at refresh time. So the
output prints that caveat, and the receipt records the published result's
commit, its first parent, and its age in days. The confound is explicit in the
artifact rather than left for the reader to remember.

Refusals stay pre-spend. An eval with no published row for the requested
experiment is refused before any model call, listing the experiments that ARE
published for it and pointing at `run` when there is no baseline at all.
`--suite` expands to every eval the published export carries for the
experiment, and is rejected in run mode or alongside explicit ids.

`--runs` defaults to the published row's attempt count, so the arms match
unless you say otherwise.

Verified: smoke 19/19 (8 new), tsc and biome clean.
@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
evals Ignored Ignored Aug 13, 2026 3:29pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant