add-benchmark

Implements new benchmarks in the OpenRouter harness with dataset, solver, scorer, and calibration steps.

14|11|Updated Jul 30, 2026
One-click install
npx skills add https://github.com/OpenRouterTeam/benchmark-harness --skill add-benchmark-openrouterteam
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: add-benchmark
Source: https://github.com/OpenRouterTeam/benchmark-harness/tree/main/.agents/skills/add-benchmark
Command: npx skills add https://github.com/OpenRouterTeam/benchmark-harness --skill add-benchmark-openrouterteam

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding a new evaluation benchmark to the OpenRouter harness involves many subtle failure modes — silent caching collisions, broken answer extraction, lost inference parameters, and judge variance — that corrupt scores without any visible error. This Skill walks you through the full implementation so the resulting accuracy numbers are real and reproducible. ## Core Features & Use Cases - Feasibility Gate: Forces five upfront checks (mode, dataset, scoring, closest existing benchmark, published target score) before any code is written. - End-to-End Wiring: Covers dataset streaming via recordToSample, solver construction with config-driven inference parameters, pure scorers with MCQ answer extraction, Zod config schemas, registry and CLI integration. - Correctness Checklist: Enumerates harness-level traps — cache salting, prefix reuse, session ids, generation-id resolution, sandbox timeouts, provider variance — that silently distort results. - Use Case: You want to add a new multiple-choice eval like GPQA to the harness. The Skill guides you to reuse extractMcqAnswer, seed the option shuffle, register metadata, and validate against a published target score with a smoke run. ## Quick Start Ask the agent to add a new benchmark to the harness for your chosen dataset and model, following the add-benchmark workflow.

Frequently Asked Questions about add-benchmark

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new benchmark to the OpenRouter harness?▼

Define a Benchmark value with Dataset, Solver, and Scorer layers, add its Zod config schema and metadata, register it in registry.ts, and wire the CLI dispatch. Finish with colocated tests and a smoke run compared against a published target score.

How do I stream a HuggingFace dataset for a benchmark?▼

Use makeHfDatasetLayer, which pages the HuggingFace rows endpoint and exposes results as a Stream of Samples so memory stays flat. Write a pure, deterministic recordToSample that validates every field and throws typed errors on surprises.

Why do benchmark epochs return identical completions?▼

Identical completions across epochs indicate cache salting failure. Response caching is keyed by session id, epoch, retry attempt, and per-call salt, so solvers issuing multiple calls per sample must wrap each in withCallCacheSalt.

How should multiple-choice answers be extracted and scored?▼

Reuse extractMcqAnswer, which handles bold, LaTeX, boxed, and non-Latin letter forms, and shuffle options with seededPermutation keyed on sample index. Always record the extracted answer so failed extraction is distinguishable from a wrong answer.

When should a benchmark use an LLM judge instead of deterministic scoring?▼

Prefer deterministic string matching or sandbox state inspection first, using an LLM judge only when the task requires it. Pin the judge model, temperature, and reasoning effort, and measure judge run-to-run variance before attributing score deltas to the model under test.

Why does the same model score differently across providers?▼

The same model on two providers can score differently due to provider variance. Pin providerOnly or endpointId for any comparison you publish, and verify a pinned run actually reaches the pinned endpoint via the X-OR-Endpoint-Id header.