llm-eval-harness
Skill0 starsChanged 46 days agoMITView on GitHub
Measures how far a cheaper model falls from the Fable-5 bar: deterministic checks plus similarity to goldens, logged to a ratchet. No API key or LLM judge. Use when: "eval the model", "measure the Fable gap", or deciding whether to switch models.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- Ionate-Technologies/indium-agentkittheir own version, first seen Oct 20, 2026
- daymade/claude-code-skillstheir own version, first seen Oct 19, 2026
- Indium-AI-Labs/indium-agentkittheir own version, first seen Oct 11, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- daymade/claude-code-skills★ 1.5ksame name
- Indium-AI-Labs/indium-agentkit★ 18same name
- Ionate-Technologies/indium-agentkit★ 17same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository34 other files it gives its agents.
- audit-codeSkill
- audit-docsSkill
- auditSkill
- bisect-driverSkill
- coding-conventionsSkill
- commit-gateSkill
- compact-ioSkill
- cron-task-manageSkill
- cve-auditSkill
- data-integrity-auditSkill
- decision-logSkill
- deck-builderSkill
- determinism-guardSkill
- etl-validateSkill
- experiment-logSkill
- fetch-firstSkill
- flaky-test-detectorSkill
- github-repo-polishSkill
- golden-lockSkill
- history-leak-scanSkill
- landing-checkSkill
- local-secrets-manageSkill
- long-taskSkill
- milestone-trackSkill
- opus-workersSkill
- path-quirk-auditSkill
- reorg-proposalSkill
- research-briefSkill
- seed-controlSkill
- shell-portabilitySkill
- skill-vetSkill
- small-taskSkill
- token-squeezeSkill
- venue-fitSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
MUST be produced by the flagship model itself — don't let a weaker model stand in (that fabricates the bar).
- Distinctive: line 40
Commit the goldens. They are the frozen quality bar.
- Very specific: line 48
Read the trend: ratchet.jsonl accumulates every run — the flagship→cheaper gap (and whether prompt/skill changes close it) is the series …
- Very specific: line 71
Every .md file this skill creates or writes to gets ASCII characters only (bytes 0x00-0x7F) in the text you add.
- Very specific: line 79
Check before saving. In a git repo, git diff -U0 -- <file> | grep -v '^+++' | grep '^+' | grep -nP '[^\x00-\x7F]' must print nothing.
- Distinctive: line 83
Leave non-ASCII in text you did not write.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
llm-eval-harness — is the cheaper model good enough yet?
Deterministic only. No model is called by the harness (it assumes no in-session
API key); the model produces outputs by being run on the task prompts, and
score.js grades them against fixed criteria. A non-reproducible LLM-judge is
deliberately excluded — it would be invented data.
Files
tasks.json— the eval task set (examples included; replace with your own). Two scoring methods:- checks — deterministic assertions on the output; needs NO golden, scores any model immediately (format conformance, no-fabrication, surgical scope…).
- golden — line-similarity to a captured flagship reference; needs a capture.
score.js—node score.js <taskId> <candidateFile> --model <name>; prints the score and appends a line toratchet.jsonl.--dryscores without appending (for testing checks/fixtures).node score.js --summaryreads the ratchet and prints per-(model, task) n / median / min / max — judge from medians of ≥3 samples, not single runs.goldens/— reference outputs, named<taskId>.<model>.md.candidates/— a model's answers to score.ratchet.jsonl— the tracked series{date, model, task, method, score}.
Capture the flagship goldens (do while the flagship model is available)
The golden tasks need the flagship model's own output as the reference. This
MUST be produced by the flagship model itself — don't let a weaker model stand
in (that fabricates the bar).
- Switch to your flagship model.
- For each
goldentask intasks.json, answer itspromptand save the answer verbatim togoldens/<taskId>.<flagship>.md(matching the task'srefModel). - Commit the goldens. They are the frozen quality bar; if you later lose access to the flagship model, they are unrecoverable.
Score a candidate model
- Under the model being evaluated, answer each task's
prompt; save each tocandidates/<taskId>.<model>.md. node score.js <taskId> candidates/<taskId>.<model>.md --model <model>for each.checkstasks score with no golden;goldentasks need the capture.- Read the trend:
ratchet.jsonlaccumulates every run — the flagship→cheaper gap (and whether prompt/skill changes close it) is the series over time.
Honest limits
checksmeasure conformance/discipline, not full quality — they catch common cheap-model failure modes (fabrication, scope creep, format drift, injection obedience, precedence errors), not everything. A perfect checks score means baseline discipline, NOT model parity (score.js says so on every 1.000).goldensimilarity is word-level; it rewards matching the reference's structure, so keep golden tasks structural (summaries, formatted entries), not open-ended prose.- Scores are only as representative as the task set — grow
tasks.jsonfrom real failures you observe, not hypotheticals. - Contamination rules: goldens and candidates must come from sessions that
never saw each other's outputs; and never log a baseline for a model on checks
that were AUTHORED in the same session (teaching-to-the-test) — capture in a
fresh session. Use
--dryfor mechanics testing so fixtures never pollute the ratchet. - Single samples are anecdotes: capture ≥3 samples per (model, task) where
feasible and read
--summarymedians.
ASCII-only markdown (rule added 2026-09-23)
Every .md file this skill creates or writes to gets ASCII characters only
(bytes 0x00-0x7F) in the text you add. No exceptions for headings, tables,
quotes, names or pasted tool output.
- Dashes:
-(never an en or em dash). Arrows:->and<-. Quotes: straight"and'. Ellipsis:.... Math:x,+/-,<=,>=,~. Separators:-,;or|. No emoji, no check-mark glyphs (use[x]and[ ]), no accented letters: transliterate names and quoted text. - Check before saving. In a git repo,
git diff -U0 -- <file> | grep -v '^+++' | grep '^+' | grep -nP '[^\x00-\x7F]'must print nothing. For a new or untracked file,grep -nP '[^\x00-\x7F]' <file>must print nothing. - Leave non-ASCII in text you did not write. Earlier entries of an append-only record stay byte for byte; converting an existing file is a separate, explicit job.
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.

