nexus-eval-harness
Skill158 starsChanged 10 days agoMITView on GitHub
Work on the Nexus LLM eval harness in tests/eval/ — author or fix a scenario fixture, write an eval config, change the executors, assertions or reports, or explain a run that produced nothing, everything-fails, or numbers that disagree. Use when an eval scenario is wrong, a run behaves oddly, or the harness itself needs to change. To grade a model rather than change the harness, use nexus-model-eval.
- Reads credentials
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- nexus-agentsSkill
- nexus-llm-adaptersSkill
- nexus-mobile-compatSkill
- nexus-model-evalSkill
- nexus-model-updatesSkill
- nexus-releaseSkill
- nexus-storageSkill
- nexus-testingSkill
- nexus-tool-schemasSkill
- nexus-ui-mockupsSkill
- nexusSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
MUST NOT add one — the harness gains knobs faster than a document survives.
- Distinctive: line 38
Before calling any scenario change done, run the checker from the repo root and fix everything it prints:
- Distinctive: line 45
NEVER trust jest's exit code as the verdict on a run, and never report a pass rate you read from stdout.
- Distinctive: line 63
Not a subagent prompt; nothing in this skill reads it.
- Distinctive: line 74
When a fixture and production disagree, production wins, and that skill says what production does.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Nexus Eval Harness
Context: the harness under tests/eval/ drives the real production path —
StreamingOrchestrator plus tool continuation — with a mock or live tool
executor swapped in, and grades the tool calls a model emits. It is a fixture
system, and almost every surprising result is the fixture talking, not the
model. This skill owns the fixtures, the configs, the executors and the
reports.
Workflow
Pick the job and open its protocol. Work from the protocol; this router names procedures, it does not contain them.
Job Protocol Add a scenario, or fix one that grades wrongly protocols/add-a-scenario.mdWrite or change a config, choose targets, mode, retries protocols/configure-a-run.mdA run produced nothing, all-fails, a hang, or odd numbers protocols/debug-a-run.mdChange the executors, assertions, loader or reports protocols/extend-the-harness.mdDerive every list from the tree, never from this skill. It names no scenarios, no configs, no models and no env-var table on purpose, and you MUST NOT add one — the harness gains knobs faster than a document survives.
ls tests/eval/scenarios/ tests/eval/configs/ grep -rhoE "get(Number|List)?Env\('[A-Z_]+'\)|process\.env\.[A-Z_]+" tests/eval/ \ | grep -oE "[A-Z][A-Z_]{3,}" | sort -u # every knob, including the # ones ConfigLoader mediatesBefore calling any scenario change done, run the checker from the repo root and fix everything it prints:
python3 .claude/skills/nexus-eval-harness/scripts/check_scenarios.py- NEVER trust jest's exit code as the verdict on a run, and never report a
pass rate you read from stdout. The saved reports under the configured
artifacts dir are the only source of truth, and they are written even when
the run times out — see
references/run-behavior.md. - At the end of a session that used this skill, run
protocols/self-refine.md.
Map
protocols/the procedures named in step 1, plusself-refine.md.references/read on demand:harness-map.md(what each file owns and how a run is assembled),scenario-contract.md(what a scenario fixture means and the traps in it),run-behavior.md(config resolution, concurrency, retries, artifacts, what the numbers count).scripts/check_scenarios.pythe mechanical check from step 3. Run it; do not reimplement it.refinement-log.mdwhat past sessions changed here and why.agents/openai.yamlan interface manifest severalnexus-*skills carry. Not a subagent prompt; nothing in this skill reads it.
Siblings — name them, do not duplicate them
nexus-model-eval— grading models. Which models to run, whether a slug resolves, how to read a leaderboard, and whether a failure indicts the model. That skill consumes the harness; this one changes it. If the question is "how good is model X", stop here and use it.nexus-testing— the gate that keeps this suite from running (and billing) in CI, and how to watch a run in flight.nexus-agents— the realgetTools/useToolscontract the fixtures imitate. When a fixture and production disagree, production wins, and that skill says what production does.nexus-llm-adapters— provider adapters. A run that fails inside streaming for one provider only is an adapter problem, not a harness problem.nexus-tool-schemas— the live tool catalog, for checking a fixture's tool slugs against the registry instead of guessing.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

