agentleFS
NVIDIAKnown publisherNVIDIA/SkillEvaluator/skills/skillevaluator/SKILL.md

skillevaluator

Skill656 starsChanged 7 days agoApache-2.0View on GitHub

Run and interpret SkillEvaluator for agent skills. Use for any skill benchmark or eval - validating or scoring a SKILL.md, writing evals.json test cases or evals config, explaining benchmark reports, verdicts and exit codes, or gating skills in CI.

  • Reads credentials
  • Installs packages

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 4 are distinctive, and 11 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 11

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Very specific:

    Run the SkillEvaluator CLI on agent skills and report what the evidence shows: Tier 1 validation (static, security, quality), Tier 2 …

    line 15
  2. Distinctive:

    Use this skill when the user wants to:

    line 27
  3. Distinctive:

    check whether a skill is well-formed, safe, and good enough to publish

    line 29
  4. Very specific:

    write or fix <skill-dir>/evals/evals.json, <skill-dir>/evals/config.yml, custom graders, or Harbor tasks

    line 33
  5. Very specific:

    read a SkillEvaluator report, verdict, or exit code

    line 34
  6. Very specific:

    add SkillEvaluator checks to GitHub Actions or GitLab CI

    line 35
  7. Distinctive:

    Do not use it to write the target skill's domain content, to review ordinary application code, or to evaluate an LLM without a skill.

    line 37
  8. Very specific:

    No key for keyless commands (quality-check, security-scan, pii-scan, lint-scripts, tier1 PATH --no-llm, validate PATH --tiers 1).

    line 50
  9. Distinctive:

    Never print, echo, or commit API keys.

    line 61
  10. Very specific:

    Check readiness before paid runs: Run skillevaluator health-check --tier 1 for scanners, skillevaluator doctor --tier 2 for providers, and …

    line 89
  11. Very specific:

    Start keyless: Run skillevaluator tier1 <skill-dir> --no-llm.

    line 93
  12. Very specific:

    Add LLM checks: when a provider is set: skillevaluator tier1 <skill-dir> (rubric, LLM security, verification) and skillevaluator tier2 …

    line 95
  13. Very specific:

    Prepare Tier 3 cases: If <skill-dir>/evals/evals.json is missing, generate one with skillevaluator create-eval-dataset <skill-dir> --full, …

    line 97
  14. Very specific:

    Use --max-cases 1 for a cheap smoke run first.

    line 108
  15. Very specific:

    Missing scores are NO SCORE or None, never 0: Do not average them in.

    line 134

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SkillEvaluator

Run the SkillEvaluator CLI on agent skills and report what the evidence shows: Tier 1 validation (static, security, quality), Tier 2 deduplication, and Tier 3 live agent evaluation that compares runs with and without the skill.

Purpose

Give an agent one reliable procedure for evaluating skills with SkillEvaluator: pick the right tier, check readiness, run it, and report scores, findings and exit codes truthfully.

When To Use

Use this skill when the user wants to:

  • check whether a skill is well-formed, safe, and good enough to publish
  • get a quality score, rubric score, security or PII scan for a skill
  • find repeated guidance inside a skill or overlap across a skill collection
  • measure whether a skill actually helps an agent (Skill Lift, pass@k)
  • write or fix <skill-dir>/evals/evals.json, <skill-dir>/evals/config.yml, custom graders, or Harbor tasks
  • read a SkillEvaluator report, verdict, or exit code
  • add SkillEvaluator checks to GitHub Actions or GitLab CI

Do not use it to write the target skill's domain content, to review ordinary application code, or to evaluate an LLM without a skill. For converting an existing benchmark into a custom grader, read references/custom-graders.md.

Prerequisites

  • A target directory containing SKILL.md (or a folder of skills, .mdc rules, or a plugin manifest).
  • The CLI: pip install --upgrade "skillevaluator[all]", or from a checkout uv run --python 3.13 --extra all skillevaluator .... Check with skillevaluator --version. Extras: llm (rubric), security (scanners), tier2, tier3, all, dashboard.
  • No key for keyless commands (quality-check, security-scan, pii-scan, lint-scripts, tier1 PATH --no-llm, validate PATH --tiers 1).
  • A provider for LLM stages, Tier 2 and Tier 3. Simplest: export SKILL_EVAL_LLM_PROVIDER=nv_build and export NVIDIA_API_KEY=.... Other providers: references/providers.md.
  • For Tier 3: an agent (opencode, codex, or claude-code) and a sandbox. Harbor is installed with the tier3 extra; you do not run it yourself. The default --env-mode docker needs a Docker daemon. Without Docker, use --env-mode local (experimental): it runs the agent CLI already installed on the host under Bubblewrap (Linux) or Seatbelt (macOS); trusted skills only.

Never print, echo, or commit API keys; keep them in the host environment.

Choose The Command

User goalCommandNeeds
Fast keyless quality scoreskillevaluator quality-check <skill-dir>nothing
Full static gate for one skillskillevaluator tier1 <skill-dir> --no-llmscanners (auto-installed)
Static gate plus LLM rubric and security reviewskillevaluator tier1 <skill-dir>provider
LLM rubric onlyskillevaluator rubric-eval <skill-dir>provider, llm extra
Security / PII scan onlyskillevaluator security-scan <skill-dir>, skillevaluator pii-scan <skill-dir>nothing
Repeated content inside one skillskillevaluator tier2 <skill-dir>provider with embeddings
Overlap across a collectionskillevaluator similarity-check <skills-dir>embeddings
Does the skill help an agent?skillevaluator tier3 <skill-dir>provider, agent, Docker
Same, without Dockerskillevaluator tier3 evaluate <skill-dir> -a opencode --env-mode localprovider, agent CLI on host
Everything, with one exit codeskillevaluator validate <skill-dir>all of the above
CI-safe keyless gateskillevaluator validate <skills-dir> --profile default --tiers 1 -r json,markdown,sarif -o reportsscanners
Set up repo CIskillevaluator ci initGitHub checkout

Full flag tables: Tier 1, validate, Tier 2, Tier 3 and setup.

Workflow

  1. Locate the target. Confirm the path has SKILL.md and that its frontmatter name matches the directory name. For a folder of skills, the commands evaluate each skill inside it.
  2. Check readiness before paid runs. Run skillevaluator health-check --tier 1 for scanners, skillevaluator doctor --tier 2 for providers, and skillevaluator doctor --env-mode docker (add --verify-models) for Tier 3. Fix every failing row first.
  3. Start keyless. Run skillevaluator tier1 <skill-dir> --no-llm. Fix CRITICAL and HIGH findings before anything else; lint findings are advisory.
  4. Add LLM checks when a provider is set: skillevaluator tier1 <skill-dir> (rubric, LLM security, verification) and skillevaluator tier2 <skill-dir>.
  5. Prepare Tier 3 cases. If <skill-dir>/evals/evals.json is missing, generate one with skillevaluator create-eval-dataset <skill-dir> --full, then review it: positive cases (explicit, implicit, contextual) and at least one negative case with "expected_skill": null. Required shape: top-level skill_name and an evals array; each case has id, prompt, expected_output, and expected_skill (optional assertions, files). Validate with skillevaluator tier3 validate <skill-dir> --strict. Format: references/tier3-datasets.md; run policy and scoring: references/tier3-running.md.
  6. Run live evaluation. skillevaluator tier3 <skill-dir> (or skillevaluator tier3 evaluate <skill-dir> -a opencode --env-mode docker --n-attempts 3). Use --max-cases 1 for a cheap smoke run first; such runs are never publication evidence.
  7. Read the results (see below), open skillevaluator view <skill-dir>, and for follow-up questions run skillevaluator tier3 feedback <run-dir>.
  8. Iterate. Change the skill, rerun the same command with the same cases, agent and model, and compare. Treat a single run's lift as directional.

Read The Results

Exit codes: 0 success, 1 a gate failed, evidence is INCOMPLETE, or the run could not complete, 2 usage error (bad flag or missing path; fix the command, not the skill).

  • Quality (0-100): Correctness 35%, Discoverability 25%, Reliability 25%, Efficiency 15%. Grades A>=90, B>=80, C>=70. Passing needs --min-score (default 70) and no HIGH/CRITICAL quality finding.
  • Rubric (0-100): nine criteria scored 0-10; passing needs the weighted score >= --min-score and every criterion >= 7.
  • Tier 2: HIGH or CRITICAL duplicate findings exit 1 in tier2 PATH.
  • Tier 3: five dimensions (Security, Correctness, Discoverability, Effectiveness, Efficiency), each PASS >= 0.50, NEUTRAL 0.40-0.50, FAIL < 0.40. Verdict PASS needs every dimension >= 0.50 for at least one agent. Skill Lift = with-skill overall - baseline overall; PASS >= +0.05. INCONCLUSIVE: skill never activated means no positive trial loaded the skill; fix the description or prompts, not the scores. tier3 PATH exits 0 on a FAIL verdict; only an incomplete run exits 1.
  • Missing scores are NO SCORE or None, never 0. Do not average them in.
  • Publication: require publication_status == "pass" in the JSON report, not just overall_passed.

Report anatomy and JSON fields: references/reports-and-ci.md.

Examples

# Keyless first look
skillevaluator quality-check <skill-dir> -r cli -r json -o <report-dir>

# Static gate for a whole collection, complete report even on failures
skillevaluator validate <skills-dir> --profile default --tiers 1 -c -r json,markdown -o reports

# LLM-backed Tier 1 and Tier 2, dedup advisory
skillevaluator validate <skill-dir> --tiers 1,2 --llm --no-block-on-dedup

# Live A/B evaluation with two agents, retaining trajectories for debugging
skillevaluator tier3 evaluate <skill-dir> -a opencode,codex --n-attempts 3 --harbor-keep-jobs

# Baseline only, to calibrate cases before the skill exists
skillevaluator tier3 evaluate <skill-dir> --skip-with-skill

Limitations

  • Tier 1 and the quality score are static: they check structure and wording, not whether the skill works. Only Tier 3 observes agent behavior.
  • LLM judges (rubric, Tier 3 correctness/effectiveness) vary between runs and models; compare runs only with the same model, cases, and attempts.
  • Tier 3 costs model tokens and sandbox time per case x attempt x agent x 2 arms; a generated starter case gives limited coverage.
  • validate --tiers always includes Tier 1; --tiers 2 or --tiers 3 alone is rejected. Use tier2 PATH or tier3 PATH to run a tier on its own.
  • Agent credentials come only from the host environment; <skill-dir>/evals/config.yml runtime_env rejects provider keys.

Troubleshooting

SymptomCauseFix
Exit 2Unknown flag, bad value, or missing pathCheck skillevaluator <command> --help; prefix paths named like commands with ./
Check shows INCOMPLETEA scanner is missing or failedRun skillevaluator health-check --tier 1; install the security extra or the missing scanner
"provider is required" / exit 1 before reportsNo SKILL_EVAL_LLM_PROVIDER or key, or several keys exportedSet exactly one provider and its key; see providers reference
Quality below 70Missing ## Prerequisites, ## Limitations, ## Troubleshooting, vague description, no examplesRead each finding's suggestion; do not stuff keywords
INCONCLUSIVE: skill never activatedDescription does not match the promptsMake the description name the tasks; add explicit-bucket cases
Docker trials fail to startDaemon down or outdated enginedocker info; rerun skillevaluator doctor --env-mode docker
Agent model rejectedDefault model not valid for that agent--agent-model AGENT=MODEL, verify with doctor --verify-models
Run incomplete (Scored attempt coverage is n/m)A trial errored or timed outRerun; raise --timeout-multiplier; inspect with --harbor-keep-jobs

More cases: references/troubleshooting.md.

Final Response

Report to the user:

  • the exact commands run and their exit codes
  • scores and verdicts per tier, quoting the report values (not estimates)
  • the top findings to fix, each with its file and suggested change
  • report paths (<report-dir>/..., <skill-dir>/evals/results/<run-id>/report.html)
  • what was not run (skipped tiers, missing keys, --max-cases smoke runs) and therefore not proven

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.