Skip to content
Back to skills

Eval

ASecurity

Run the context fitness-function probe suite (.agro/evals/probes/*.sh) against real state and write the .agro/evals/RESULTS.md benchmark. Each probe is a deterministic 3-state oracle (PASS/REGRESSION/SKIPPED); a green→red transition is surfaced as a REGRESSION naming the lesson it closes. Tier-B behavioral evals are out of scope. TRIGGER when: asked to run evals, check the probe suite, "run /eval", verify a lesson's probe is green, benchmark the harness, or before/after editing a rule/skill t...

  • 40 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 3, 2026
ai-agentsbashgit

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add mifunedev/openharness --skill eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mifunedev-eval/badge)](https://www.skillsdirectory.com/skills/mifunedev-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: eval
description: >-
  Run the context fitness-function probe suite (.agro/evals/probes/*.sh) against real
  state and write the .agro/evals/RESULTS.md benchmark. Each probe is a deterministic
  3-state oracle (PASS/REGRESSION/SKIPPED); a green→red transition is surfaced as
  a REGRESSION naming the lesson it closes. Tier-B behavioral evals are out of scope.
  TRIGGER when: asked to run evals, check the probe suite, "run /eval", verify a
  lesson's probe is green, benchmark the harness, or before/after editing a
  rule/skill that a probe guards.
---

# Eval

The runner for the harness **fitness function**. It discovers `.agro/evals/probes/*.sh`,
runs each against *real state*, and writes the `.agro/evals/RESULTS.md` scoreboard. A
rectification is provably "done" when its probe is green; a recurrence shows up as
a **REGRESSION** (was-PASS, now-fail) naming the `# source:` lesson. The full
author contract is in [evals/AGENTS.md](../../evals/AGENTS.md).
The [source eval reference](https://github.com/mifunedev/agro/blob/main/docs/evals.md)
explains the oracle, metadata, runner, and correction-surface triage.

## Usage

```bash
bash .claude/skills/eval/run.sh                 # run the whole suite, rewrite RESULTS.md
bash .claude/skills/eval/run.sh --probe <id>    # run one probe, update only its row
bash .claude/skills/eval/run.sh --tier A        # run only Tier-A probes
```

Exit-code oracle (per probe): `0`=PASS, `1`=REGRESSION, `2`=SKIPPED (not
applicable — excluded from pass-rate), `124`=TIMEOUT, other=ERROR. Each probe is
wrapped in `timeout 30s`. Runner aggregate exit (the process `$?` of `run.sh`
itself): `0` when no new green→red regression occurred this run, `1` when one or
more new regressions were detected (`${#regressions[@]} > 0`). When invoked via the
Bash tool as `bash .claude/skills/eval/run.sh`, the agent caller reads `$?` directly
to gate on success — the printed `REGRESSIONS (...)` stdout block and per-probe stderr
lines remain the human-readable signal. Note: the `eval-weekly` cron is an intentional
legacy caller that appends `|| true` then greps stdout; it does not consume the exit
code by design — this is not a bug.

## What the runner does

1. **Discover + run** every probe matching the filters; extract `# tier:` /
   `# source:` via the exact header grep.
2. **Compute the delta** vs the prior `RESULTS.md` row. **First run** (no prior
   row) emits `new-pass`/`new-fail` and raises NO regression without prior state.
3. **Surface regressions** — any `PASS → (REGRESSION|TIMEOUT|ERROR)` transition is
   printed first, naming the probe's `source`.
4. **Rewrite `RESULTS.md` atomically** — build the full scoreboard into a temp
   sibling file (`RESULTS.md.tmp.$$`) and replace the live file in one `mv -f`
   (never truncate-then-append in place), so a crash or concurrent run can't leave
   a partial scoreboard. Overwrite the row for each probe run; carry prior rows for
   probes not run this invocation from a **pre-write snapshot (`RESULTS_ORIG`)**
   captured before the rewrite — not the live file — so a filtered run never erases
   untouched rows and the scoreboard stays complete.

## When NOT to use

- **Tier-B behavioral evals** (sub-agent + LLM-judge of judgment-call behavior)
  are deferred — `/eval` is deterministic only. Never hard-gate on a noisy metric.
- For *scoring* context files for staleness/budget, that is `/audit context` and
  `/audit skills` — `/eval` checks behavior/state, not prose quality.

Files in this skill

  • SKILL.md3.4 KB
  • run.sh3.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.