geniro-claude-harness: Skill for Claude Code

.claude/skills/eval-loop/SKILL.md

eval-loop is a skill for Claude Code from geniro-io/geniro-claude-harness. It costs 98 tokens per session (2,320 once invoked), scanned A, original, Apache-2.0.

A workflow for improving an add-on through repeated experiments and measured evaluations. It compares proposed changes with a current best version, reviews the results, and checks winners on separate test tasks.

In plain words
What is it for?
Use it to analyze failures, test one change at a time, review experiment verdicts, confirm a candidate on holdout tasks, promote a winner, calibrate the evaluator, or add benchmark tasks.
Why use it?
It helps replace guesswork with evidence when deciding whether a change actually improves an add-on. It also supports investigating errors and checking whether evaluations are judging results consistently.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: model in frontmatter; mentions subagents; names the AskUserQuestion tool.

This is geniro-io/geniro-claude-harness's own configuration. It tells Claude Code how to work on geniro-claude-harness itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything geniro-claude-harness configures →

Part of the geniro plugin — 37 skills, 8 agents, 1 hook shipped together

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/geniro-io/geniro-claude-harness/main/.claude/skills/eval-loop/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/geniro-io/geniro-claude-harness

Made for: Claude Code.

Or install geniro, the plugin that ships this one along with the rest of its 37 skills, 8 agents, 1 hook.

Wrote 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.

agentmods badge for eval-loop

README.md
[![agentmods](https://agentmods.dev/badge/skills/geniro-io/geniro-claude-harness/eval-loop.svg)](https://agentmods.dev/skills/geniro-io/geniro-claude-harness/eval-loop)
Your own site
<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>
Per session 98 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,320 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 7d ago against content hash 62231afdbfbc, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

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.

.claude/skills/eval-loop/SKILL.md · 161 lines

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) and adapters/cursor-cli.sh (cursor-agent, paid). Whenever a step could run on either, ask which with AskUserQuestion before 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 is run.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 judge CLI 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 confirm runs 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_evidence is 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 the calibrate / add-task row 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, never pr-1234), usernames or people's names, email domains, review-comment IDs, or machine-local paths. Its repo location goes through repo_alias + the gitignored repos.local.json instead. A task staged directly against a known-public repository (e.g. the spec-check module's OSS fixtures) commits repo_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.

Read the full file on GitHub · 161 lines

Changes

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.

  1. 7d ago First seen · 161 lines · 98 tokens per session scan A 62231afdbfbc

Subscribe to this mod's changes

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.

Related

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.

davila7/claude-code-templates · 43 tokens

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".

apache/tika · 50 tokens

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…

neuron-core/neuron-ai · 77 tokens

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.

NVIDIA/skills · 50 tokens

atmos-validation

Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.

cloudposse/atmos · 31 tokens

skill-benchmark

Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.

HoangNguyen0403/agent-skills-standard · 16 tokens