AI DevelopmentPlaybook11 min readPublished July 14, 2026

A same-day qualification runbook · 20–50 real tasks · code-graded first · diff against your baseline

Build an LLM Eval Harness: Qualify New Models in a Day

Three frontier models shipped in a single week of July 2026, and the next wave is already scheduled. This is the build runbook for the harness that answers “should we route production traffic to the new one?” by end of day — 20–50 tasks from your own logs, code-based grading first, and a baseline diff.

DA
Digital Applied Team
Senior strategists · Published Jul 14, 2026
PublishedJuly 14, 2026
Read time11 min
Sources11 primary
Starter eval set
20–50
tasks from real failures
Anthropic guidance
Grading methods
6
code-based first, LLM-judge second
CLI commands to first signal
4
init → setup → eval → view
Hosted Evals sunset
Nov30
OpenAI dashboard, read-only Oct 31

An LLM eval harness is the difference between qualifying a new model release in an afternoon and arguing about it in Slack for two weeks. The July 2026 release wave — three frontier models in one week — made the gap visible: teams with a harness had a pass/fail answer on routing production traffic within hours, while everyone else was still screenshotting leaderboards.

The good news is that the harness you need for same-day qualification is much smaller than most teams assume. Anthropic’s own agent-eval guidance pushes back hard on the instinct to hand-label hundreds of examples before running anything: 20–50 tasks pulled from your real usage and real failures is enough to detect the large effect sizes that early checks are looking for.

This is a build runbook, not a platform comparison — if you want the full 2026 eval-platform landscape and pricing matrix, our agent eval frameworks guide already covers it. Here we assemble the minimum harness: what goes in the task set, how to pick graders by task type, the one-hour declarative build, and the reliability math that turns results into a go/no-go decision.

Key takeaways
  1. 01
    Three ingredients, not three hundred labels.A same-day harness needs 20–50 tasks from your own logs and failures, automated grading (code-based wherever possible), and a baseline model to diff against. Anthropic’s guidance is explicit that hundreds of hand-labeled cases are unnecessary overhead for early-stage checks.
  2. 02
    Define done before you run anything.Anthropic’s SMART-style criteria framework converts a vague “does the new model seem better?” into a pass/fail gate: one headline metric, one held-out set, one explicit improvement threshold — decided before the first eval run.
  3. 03
    Match the grader to the task type.Anthropic documents six grading methods, from exact-match and cosine similarity to LLM-judged Likert and ordinal scales. Code-graded checks return a first signal in under an hour; LLM-rubric graders need calibration time. Always grade with a different model than the one being evaluated.
  4. 04
    Promptfoo is the fastest declarative path.One version-controlled YAML file — prompts, 60+ providers, tests, assertions — and four CLI commands run any new model side-by-side against your current one, fully local. It is MIT-licensed with 23.3k GitHub stars, and now part of OpenAI while remaining open source.
  5. 05
    Report pass^k, not pass@k, for customer-facing surfaces.pass@k (at least one success in k tries) rises toward 100% as k grows; pass^k (all k tries succeed) falls toward 0%. The two diverge sharply by k=10 — and the reliability metric that should gate a customer-facing rollout is pass^k.

01The TriggerRelease velocity turned evals into a gating function.

The week before this post published, Grok 4.5 shipped on July 8, GPT-5.6 went GA on July 9, and Muse Spark 1.1 launched the same day. Each of those is a candidate to replace a model somewhere in your stack — and each carries the same unanswerable-by-leaderboard question: does it beat what you run today, on your tasks, at your cost and latency envelope?

Qualification pressure doesn’t only come from new releases. Retirements force the issue on a schedule you don’t control — OpenAI is retiring thirteen model snapshots on July 23, and as our snapshot-retirement migration map details, the replacements aren’t one-to-one, so every pinned config needs testing before the deadline. Trust events count too: when a vendor has a very public bad week — as the Grok Build privacy scandal just demonstrated — teams re-qualify models they had already approved. A harness makes all three triggers routine instead of a fire drill.

OpenAI’s own open-source evals framework states the problem plainly in its README, and it is worth taking at face value precisely because it comes from the lab shipping the model versions in question.

“Without evals, it can be very difficult and time intensive to understand how different model versions might affect your use case.”— openai/evals README, GitHub

The trend line here is the original analysis worth internalizing: as release cadence compresses from quarters to weeks, the scarce asset stops being access to frontier models and becomes the ability to decide quickly which one to run. A same-day harness is how that decision gets made on evidence from your own workload rather than on a vendor’s launch-day benchmark table.

02Three IngredientsThe minimum viable harness is three ingredients.

Strip away the tooling debates and a qualification harness reduces to three things. Everything else — dashboards, trace retention, CI integration — is packaging around this core.

Ingredient 01
20–50 real tasks
from your logs and failures

Pull cases from production logs, support tickets, and known failure reports — not synthetic prompts. Anthropic’s agent-eval guidance recommends starting at 20–50 tasks because early-stage checks show large effect sizes that small samples can detect.

Source: Anthropic Engineering
Ingredient 02
Automated grading
code-based first, LLM-judge second

Exact-match, string, and threshold assertions run instantly and never drift. Reach for LLM-as-judge rubrics only where code cannot grade — tone, multi-turn coherence, open-ended quality — and calibrate the judge before trusting it.

6 grading methods · § 04
Ingredient 03
A baseline to diff
your current production model

A new model’s absolute score means little; the delta against the model you run today is the decision. Run both through the identical task set in the same sweep, and gate the swap on the diff — including cost and latency, not just quality.

Same tasks · same graders · same run
Anthropic’s sample-size guidance
“Teams often delay evals believing they need hundreds of tasks — this is unnecessary overhead.” Anthropic’s engineering guidance on agent evals argues that early-stage checks work with 20–50 cases drawn from real failures, because early-stage systems show large effect sizes that small samples detect reliably. Scale the set up later, after the harness has earned its keep.

The over-investment pattern is common enough that it deserves a name: eval perfectionism. Teams treat the eval set like a benchmark submission — hundreds of cases, inter-annotator agreement, weeks of labeling — when the job at hand is a same-day routing decision with a large expected effect size. The failure mode isn’t rigor; it’s that the qualification never happens at all, and the model swap ships on vibes instead.

03Success CriteriaDefine done before you run anything.

Anthropic’s platform documentation formalizes eval success criteria with a SMART-style framework — Specific, Measurable, Achievable, Relevant — and its worked example is the most useful sentence in the doc. The bad criterion: “The model should classify sentiments well.” The good criterion names a 10,000-post held-out test set, a target of F1 ≥ 0.85, and a 5% improvement over the current baseline. One is a hope; the other is a gate a harness can automate.

For a same-day sprint, that template compresses to three decisions made before the first run: one headline metric per task type, one held-out set (your 20–50 tasks), and one explicit threshold the challenger must clear against the incumbent. If you need a refresher on which metric fits which behavior, our 80-metric evaluation reference guide catalogs the options; the point here is to pick one and commit before results can bias the choice.

Write the criteria into the harness config itself, not a doc nobody reopens. Declarative tools make this natural — the threshold lives next to the test, version-controlled, and the pass/fail verdict is computed rather than debated.

04Grading MethodsPick graders by task type, not by habit.

Anthropic’s docs name six grading methods, each with an example scale drawn from its own guidance: exact-match for categorical tasks (around 1,000 cases at full scale), cosine similarity via sentence embeddings for paraphrase consistency (around 50 paraphrase groups), ROUGE-L for summarization (around 200 articles), LLM-judged 1–5 Likert scales for subjective tone (around 100 cases), LLM binary classification for safety and privacy checks (around 500 cases), and LLM ordinal scales for multi-turn context use (around 100 conversations).

Two things matter for the same-day version. First, those example sizes are full-scale targets — your day-one set stays at 20–50 and grows toward them only where the harness proves valuable. Second, Anthropic’s explicit best practice: use a different model to grade outputs than the model being evaluated, to reduce self-preference bias in LLM-as-judge setups.

Anthropic’s six grading methods · example set size at full scale

Source: Anthropic platform docs — example set sizes per grading method (full-scale targets, not day-one minimums)
Exact matchCategorical / classification tasks
~1,000 cases
LLM binary classificationSafety / privacy checks
~500 cases
ROUGE-LSummarization
~200 articles
LLM Likert scale (1–5)Subjective tone and style
~100 cases
LLM ordinal scaleMulti-turn context use
~100 conversations
Cosine similarityParaphrase / intent consistency
~50 groups

The matrix below is our own cross-tabulation — the planning table we use when a new model drops and the clock is running. It maps each task type you’re likely to re-validate to the grading method Anthropic recommends, the example scale from its docs, the open-tool assertion that implements it most directly, and a realistic time-to-first-signal budget for a same-day sprint. Tool mappings and time budgets are Digital Applied estimates; grading methods and example scales are Anthropic’s.

Same-day qualification matrix: task type mapped to grading method, example set size, tool fit, and time to first signal
Task typeGrading methodFull-scale exampleSame-day tool fitFirst signal
Code-graded — run these first
Classification / routingExact match~1,000 casesPromptfoo contains / javascriptUnder 1 hour
Cost + latency regressionThreshold assertionsEvery run, automaticPromptfoo cost / latencyUnder 1 hour
Paraphrase / intent consistencyCosine similarity (embeddings)~50 paraphrase groupsCustom javascript assert; Braintrust scorer1–2 hours
SummarizationROUGE-L~200 articlesDeepEval summarization metric; Braintrust scorer1–2 hours
LLM-graded — calibrate the judge before trusting it
Subjective tone / styleLLM Likert scale (1–5)~100 casesPromptfoo llm-rubric; DeepEval judge metric2–3 hours
Safety / PII handlingLLM binary classification~500 casesPromptfoo llm-rubric (pass/fail); DeepEval2–3 hours
Multi-turn context useLLM ordinal scale~100 conversationsBraintrust Eval() scorers; DeepEval2–3 hours

Read the last column as a scheduling tool. In a same-day sprint, the code-graded rows produce a defensible first signal before lunch; the LLM-graded rows land by late afternoon if — and only if — you spend the calibration time reading judge transcripts rather than trusting scores blind.

05The BuildThe one-hour build: one YAML file, four commands.

For the declarative path, Promptfoo is the fastest way from zero to a side-by-side run. The entire harness lives in one version-controlled promptfooconfig.yaml with four blocks: prompts (templated with {{variable}} syntax), providers (60+ supported — OpenAI, Anthropic, Google, Azure, Bedrock, Ollama, plus custom Python or JavaScript), tests (your input examples), and asserts (pass/fail checks such as contains, icontains, llm-rubric, javascript, cost, and latency).

Day-one qualification is four CLI commands: promptfoo init for interactive setup, promptfoo eval setup for a browser-based config UI, promptfoo eval to run the full matrix of prompts × providers × tests, and promptfoo view to open the results dashboard. Add the new model as a second provider and the baseline diff comes for free — every test row shows both models' outputs and verdicts side by side.

Two properties make it the right default for this job. The open-source CLI advertises 100% local execution — prompts never leave your machine — which keeps proprietary log data out of third-party hands during qualification. And the cost and latency assertions mean the same file that grades correctness also gates the two variables that most often break a model swap: unit economics and response time. A challenger that matches quality but doubles spend should fail loudly — which is also why we grade rollouts on cost per successful task, not accuracy alone.

On provenance: Promptfoo is MIT-licensed with 23.3k GitHub stars and a release tagged the day this post published (v0.121.19, July 14). It is now part of OpenAI while remaining open source, and its repo states it powers LLM apps serving 10M+ users in production and is used by OpenAI and Anthropic — vendor-stated claims, but consistent with its position as the most-adopted open harness tool.

Consolidation warning · July 2026
OpenAI now owns Promptfoo and is sunsetting its own hosted Evals dashboard: the deprecation was announced to developers on June 3, 2026, the platform goes read-only on October 31, and shuts down November 30, with OpenAI pointing new projects at its Datasets product. Note the distinction: the deprecation applies to the hosted platform, not the open-source openai/evals GitHub framework (18.9k stars, MIT, still active). If you are picking harness tooling this month, do not build on the hosted dashboard.

Promptfoo isn’t the only sane pick — it’s the default for a same-day sprint. The matrix below is scoped to “which tool do I reach for today”; for the full landscape and pricing comparison, use the frameworks guide linked in the introduction. One cost note that applies across hosted platforms: trace-based pricing means every eval run against a dataset generates billable traces, so check current vendor rates before pointing a large qualification sweep at a hosted backend such as LangSmith.

Default pick
Promptfoo — declarative YAML + CLI

Single config file, 60+ providers, code and rubric assertions, cost/latency gates, fully local execution. The shortest path from a new model announcement to a side-by-side verdict on your own tasks.

Pick for same-day sprints
CI/CD gating
DeepEval — Pytest integration

50+ ready LLM-as-judge metrics and a Pytest integration that turns evals into failing tests. Its creator Jeffrey Ip frames the category well: an eval harness is the validation layer for AI agents. Best once the harness graduates from sprint tool to regression gate.

Pick for regression gates
Experiment diffing
Braintrust — Eval() experiments

One entry point — dataset, task, scorers — producing comparable experiments that diff row-by-row, so a team sees exactly which inputs improved or regressed after a model swap. Strongest when several people review results together.

Pick for team review
Deep agentic evals
Inspect AI — UK AI Security Institute

200+ pre-built evaluations, composable datasets/agents/tools/scorers, a web-based run viewer, a VS Code extension, and built-in agentic tools (bash, python, web browsing, computer use). Over 50 contributors including frontier labs. Heavier setup than a one-day sprint needs — reach for it on agent audits.

Pick for agent audits

One more layer worth keeping in the kit: EleutherAI’s lm-evaluation-harness remains the standard open framework for running standardized academic benchmarks against a new checkpoint from a single CLI invocation. Treat it as a sanity-check layer before your task-specific evals — useful for spotting a broken deployment or a mislabeled endpoint — never as a substitute for testing on your own production tasks.

06Reliability Mathpass@k flatters; pass^k decides.

The subtlest decision in the whole runbook is which number you report when the sweep finishes. Anthropic’s agent-eval guidance draws the distinction that matters: pass@k is the chance that at least one of k attempts succeeds — it rises toward 100% as k grows, which makes any model look better the more retries you allow. pass^k is the chance that all k trials succeed — it falls toward 0% as k grows, and it is the number that describes what a customer actually experiences across repeated interactions. The two diverge sharply by k=10.

None of the source docs connect this to the rollout decision directly, so here is our synthesis: report pass@k when the new model backs an internal tool where a human reviews output and a retry is cheap — an analyst assistant, a draft generator. Report pass^k when the model faces customers without supervision — support automation, agentic checkout flows, anything where the tenth interaction failing costs you the account. A challenger model can beat your baseline on pass@k and lose on pass^k at the same time; if the surface is customer-facing, the pass^k verdict is the one that gates the swap.

Starter set
tasks from real failures
20–50

Anthropic’s recommended day-one eval-set size. Large effect sizes in early-stage checks mean small samples detect real differences — scale up only where the harness proves valuable.

Anthropic Engineering
Divergence point
pass@k vs pass^k split
k=10

By ten trials, the optimistic and pessimistic reliability curves have pulled sharply apart. Customer-facing rollouts should be gated on pass^k — the probability every attempt succeeds.

Report the right one
Graders are the asset
rubrics in PaperBench
8,316

Lilian Weng cites PaperBench’s 8,316 rubrics co-developed with paper authors, and RE-Bench’s 71 human-expert attempts, as evidence that well-specified graders — not task lists — are the hard-won core of a serious harness.

RE-Bench: 71 expert attempts
“A harness should encapsulate complicated logic while keeping the interface simple. Meanwhile, configs, tool interfaces and other protocols may gradually become standardized across the industry.”— Lilian Weng, OpenAI · Lil’Log, July 4, 2026

Weng’s standardization point is the forward projection to plan around. Config formats, tool interfaces, and grader protocols are converging the way CI config did a decade ago — which means the durable investment isn’t the tool choice, it’s the task set and the graders. A YAML file can be migrated in an afternoon; 50 well-specified tasks with calibrated graders, distilled from your own production failures, are the asset that compounds across every future model release. Expect the July consolidation — OpenAI absorbing Promptfoo while retiring its hosted dashboard — to be the first of several such moves, and keep your harness portable accordingly.

07Failure ModesFive pitfalls, eight steps, one owner.

Anthropic’s guidance lists five eval-design pitfalls that recur across teams, and every one of them shows up in same-day sprints under time pressure:

  • Ambiguous task specs that graders can’t score fairly — if two reasonable people would disagree on the correct answer, the grader will too.
  • One-sided evals that only test when a behavior should fire, never when it should stay silent — a refusal policy tested only on things to refuse looks perfect until it refuses everything.
  • Rigid grading that penalizes valid alternative solutions an agent legitimately finds.
  • Class imbalance between positive and negative cases, which lets a degenerate always-yes model score well.
  • Environment contamination from shared state between trial runs — the classic source of flaky, unreproducible verdicts.

The full recommended process is eight steps: start with manual test cases; convert real failures and user reports into cases; write unambiguous tasks with reference solutions; build a balanced problem set; build an isolated harness environment; design graders — code-based first, LLM-based where flexibility is required; read transcripts to verify the graders actually work; and monitor for saturation while assigning long-term ownership. The transcript-reading step is the one teams skip and regret — a grader that agrees with you 95% of the time on a spot-check is a grader; one you never checked is a random number generator with good branding.

Ownership is the step that turns a one-day sprint into infrastructure. When the harness passes a challenger, the output feeds straight into your routing layer — our cost/quality model-routing guide covers the engineering, and the multi-model marketing-stack playbook shows the same qualification step gating every routing-table update. If you’d rather stand this up with senior help — harness, graders, routing, and the operating cadence around them — this is exactly the kind of system our AI transformation engagements build with clients.

08ConclusionThe harness is the moat, not the model.

Same-day qualification, July 2026

Models change weekly. Your task set and graders compound.

The July release wave settled the argument about whether teams need an eval harness — three frontier models in one week is not a cadence you can meet with ad-hoc spot checks. The buildable answer is small: 20–50 tasks from your own logs, code-based grading first, one declarative config, and a baseline diff that reports pass^k for anything customer-facing.

The tooling picture favors starting today. Promptfoo gets you a side-by-side verdict in four CLI commands, fully local; DeepEval, Braintrust, and Inspect AI cover the CI, review, and agent-audit escalations; and the hosted platform you should avoid building on — OpenAI’s Evals dashboard — has a published shutdown date. Pick the portable path and version-control everything.

Most of all, treat the harness as the durable asset it is. Every model release for the rest of 2026 — and the announced schedules already promise several — will ask the same question of your stack. Teams that can answer it by end of day, with evidence from their own workload, ship the upgrade while everyone else is still reading launch posts.

Qualify new models before they qualify you

Turn every model release into a same-day decision.

Our team builds eval harnesses, calibrated graders, and cost/quality routing layers around them — so every new model release becomes a same-day decision instead of a two-week debate.

Free consultationExpert guidanceTailored solutions
What we work on

Model evaluation engagements

  • Same-day qualification harnesses on your production tasks
  • Grader design — code-based asserts + calibrated LLM judges
  • Cost-per-successful-task and latency gates
  • Multi-model routing informed by pass^k reliability
  • Ownership handoff — CI gates, saturation monitoring
FAQ · LLM eval harness

The questions we get every week.

An LLM eval harness is the automated test rig that runs a set of tasks through one or more language models and grades the outputs against defined criteria — the validation layer that turns “does the new model seem better?” into a computed pass/fail verdict. In its minimum viable form it has three parts: a task set drawn from your real production usage and failures, automated graders (code-based assertions where possible, LLM-as-judge rubrics where not), and a baseline model to diff against. Frameworks such as Promptfoo, DeepEval, Braintrust, and Inspect AI package these parts with providers, dashboards, and CI integrations, but the core logic is the same across all of them.
Related dispatches

Continue exploring AI development.