Borrowing it
Nothing to install: this file belongs to geniro-io/geniro-claude-harness. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/geniro-io/geniro-claude-harness/main/.claude/skills/eval-loop/SKILL.mdgit clone --depth 1 https://github.com/geniro-io/geniro-claude-harnessWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/geniro-io/geniro-claude-harness/eval-loop)<a href="https://agentmods.dev/skills/geniro-io/geniro-claude-harness/eval-loop"><img src="https://agentmods.dev/badge/skills/geniro-io/geniro-claude-harness/eval-loop.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00098 | $0.02320 |
| Opus 5 | $0.00049 | $0.01160 |
| Sonnet 5 | $0.00020 | $0.00464 |
| Haiku 4.5 | $0.00010 | $0.00232 |
Grade A, and why
eval-loop scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.
eval-loop — drive the module improvement cycle
Contents
- Iron rules (executor pick · money asks first · holdout dark · one change per experiment · rubric version bump)
- Intake
- The cycle — 1. Error analysis → EXP file · 2. Screen · 3. Judge (free path) · 4. Verdict · 5. Confirm · 6. Promote
- Side jobs — calibrate · add-task · new module · A-vs-A
- Reporting
Working dir for everything here: evals/loop/. Read its DESIGN.md on first
use in a session. Mechanics live in the scripts; this skill supplies the
judgment the scripts deliberately do not encode.
Iron rules (hold at every step)
- The executor is the user's pick, every time it is a pick. Two adapters
can serve a run —
adapters/claude-subagent.md(in-session subagents, free) andadapters/cursor-cli.sh(cursor-agent, paid). Whenever a step could run on either, ask which withAskUserQuestionbefore launching, naming what each costs and listing the free one first. Ask per step, not per session: a pick made for an earlier step is not consent for the next one, and a run that does not need the paid executor should never take it by default. Only a step one adapter cannot serve skips the question — say which adapter and why. - Money asks first. Before ANY paid sweep: run
run.sh --probe, put the extrapolated cost in a chat message, and get an AskUserQuestion approval naming the dollar figure, the executor adapter, AND the model. The per-sweep hard ceiling isrun.sh --max-usd(default $50) — raise it only with the user's number. Never launch on a stale rate — after a change to task shape, workspace size, or model, the probe is mandatory (adapters/cursor-prices.json§rule). Judging via Claude subagents is free; the--phase judgeCLI fallback is paid and needs the same approval. - Holdout stays dark. Never open holdout task/rubric content while a
variant is being tuned.
loop.sh confirmruns it; you read only its scores. - One change per experiment, named in an EXP file BEFORE the screen run, with the prediction written down. A tie is a result — record it.
- Rubric edits bump
version(integer, any edit) — and invalidate every standing baseline run for that task; re-sweep the champion before comparing. Carve-out:acceptance_evidenceis non-scoring provenance — an edit touching only it does not bump. - Read transcripts before trusting numbers. No verdict is reported to the user until you have opened at least the failing trials' findings and one judge verdict and confirmed the failures look fair.
- Every choice goes through
AskUserQuestion. The spend approval above, the §1 run/edit/drop call, the §4 confirm/iterate/stop call, the §6 promote call, and thecalibrate/add-taskrow walks are this cycle's gates, not the complete set — a pick that arises anywhere else still routes through the tool (skills/_shared/gate-rendering.md§Lean-question conventions owns the rule). - Committed benchmark content is anonymized. A task mined from a private
repository never carries, in any committed file: the repo/company/product
name, tracker ticket IDs, PR/issue numbers (including in task ids —
real-N, neverpr-1234), usernames or people's names, email domains, review-comment IDs, or machine-local paths. Its repo location goes throughrepo_alias+ the gitignoredrepos.local.jsoninstead. A task staged directly against a known-public repository (e.g. the spec-check module's OSS fixtures) commitsrepo_url— the URL discloses nothing a clone can't already see. Commit SHAs and in-repo file paths are fine either way (needed for staging and matching). Before committing a private-repository task, grep it for the source repo's name, the ticket prefix, the author handles,PR #, and long digit runs (comment IDs) — this repo is public, the private benchmark sources are not.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 161 lines · 98 tokens per session scan A 62231afdbfbc
eval-loop is a skill published in the GitHub repository geniro-io/geniro-claude-harness (8 stars, last pushed 3d ago), licensed Apache-2.0. It adds 98 tokens to every session and 2,320 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
research-engineer
An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".
neuron-evaluation-engineer
Create and run AI evaluations with datasets, assertions, and output drivers in Neuron AI. Use this skill whenever the user mentions evaluation, testing AI systems, creating evaluators, dataset-driven testing, assertion-based validation, or wants to measure AI system performance. Also trigger for tasks involving…
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.
atmos-validation
Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.
skill-benchmark
Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.