Atlas / Skills / nvidia / SkillEvaluator

SkillEvaluatorBLOCK

skills/nvidia/skillevaluator

Multi-tier framework for evaluating AI agent skills with quality gates, semantic overlap detection, synthetic evaluation dataset generation, and live agent evaluation that measures how skills affect agent behavior.

Verdict
BLOCK
Grade
F
Trust score
54 /100
Version
—
Hosts
3 documented
License
Apache-2.0
Stars
564
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](LICENSE) [](https://www.python.org/) [](https://docs.nvidia.com/skills/skillevaluator/) [](https://arxiv.org/abs/2608.20614) [](https://developer.nvidia.com/blog/evaluating-ai-agent-skill-performance-with-nvidia-skillevaluator/)

📺 Livestream: Ask the Experts: Evaluating Agent Skills

SkillEvaluator is an open-source, multi-tier framework for evaluating AI agent artifacts, starting with agent skills: deterministic quality gates, semantic overlap detection, synthetic eval dataset generation, and live agent evaluation.

Agent skills extend AI agents with instructions and supporting files, as defined by the Agent Skills specification. SkillEvaluator is part of the NVIDIA Verified Skills pipeline. Skills that pass are published to the NVIDIA skills catalog.

Research foundation. Tier 3 implements methods from *Evaluating Skills, Not Just Agents: Agentic Continuous Evaluation of Skills*: paired with/without-skill trials and Skill Lift; SkillEvaluator provides validation, deduplication, dataset authoring, and reporting.

Three-tier overview

Run each tier independently.

Read from source at commit b59a4f805369OBSERVED · 2026-10-14
Advertisement
02

Install

Commands as the repository documents them. They are shown, not run.

uv tool install --python 3.13 "skillevaluator[all] @ git+https://github.com/NVIDIA/SkillEvaluator.git"
git clone https://github.com/NVIDIA/SkillEvaluator.git
uv sync --python 3.13 --extra all
uv run --extra all skillevaluator tier1 ./my-skill
uv run --extra all
npm install -g fern-api
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
cursormentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: simple
description: Summarize short user notes into clear action items.
metadata:
  author: Simple Skill Author <[email protected]>
---

# Simple

## Instructions

Read the user's note and return a concise list of action items. If the note has no clear action, say that no action item was found.

## Examples

User: "Follow up with Maya tomorrow about the launch checklist."

Assistant: "Action item: Follow up with Maya tomorrow about the launch checklist."
05

Trust audit

BLOCKgrade F · trust 54/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (15 observation(s))
Network
declared (17 observation(s))
Shell
declared (10 observation(s))
Dependencies
pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/skillevaluator/tier3/harbor/secure_docker_environment.py:2092
model = yaml.load(  # nosec B506
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
scripts/script_invocation_differential.py:367
add(f"""{PY} -c "exec(open('{SCRIPT}').read())" """.strip())
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/skillevaluator/cli.py:1506
help="Skip the without-skill baseline in live eval (no lift analysis, faster).",
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/skillevaluator/config/semgrep_rules.yaml:29
- pattern: eval(...)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/skillevaluator/config/semgrep_rules.yaml:30
- pattern: exec(...)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/skillevaluator/config/semgrep_rules.yaml:61
exec(...)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/skillevaluator/tier3/eval_core/checks.py:84
"~/.ssh",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/skillevaluator/tier3/harbor/adapter.py:116
".netrc",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/skillevaluator/tier3/harbor/adapter.py:130
".git-credentials",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/skillevaluator/tier3/harbor/adapter.py:143
"id_ecdsa",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/skillevaluator/tier3/harbor/adapter.py:144
"id_ed25519",
Why it matters. touches a credential store
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/skillevaluator/tier3/eval_core/checks.py:132
re.compile(r"exfiltrat|leak .*secret|print .*token", re.IGNORECASE),
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/skillevaluator/tier3/eval_core/checks.py:1849
message="Agent issued a network command that could exfiltrate data",
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/skillevaluator/tier3/harbor/templates/eval.py:311
re.compile(r"exfiltrat|leak .*secret|print .*token", re.IGNORECASE),
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/skillevaluator/tier3/harbor/templates/eval.py:4425
message="Agent issued a network command that could exfiltrate data",
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/skillevaluator/tier3/harbor/nvidia_build_bridge.py:704
expected_origin = f"http://127.0.0.1:{port}" if port is not None else ""
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/skillevaluator/tier3/harbor/nvidia_build_bridge.py:787
origin = f"http://127.0.0.1:{server.server_port}"
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/skillevaluator/tier3/harbor/runtime_preflight.py:686
if relative_uri is not None and exc.args == (f"Invalid endpoint: http://169.254.170.2{relative_uri}",):
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_harbor_local_environment.py:125
secret = "real-sandbox-stream-secret"
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_harbor_local_mode.py:850
api_key="test-readiness-worker-key",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_harbor_local_mode.py:881
api_key="test-repeated-cancel-key",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_harbor_local_mode.py:1870
secret = "nonzero-stream-secret"
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/test_harbor_local_mode.py:2309
secret = "local-callback-base-error-secret"
MEDIUMHard-coded secrets · secret.github · CWE-798, CWE-321
tests/test_harbor_collector_runtime_failures.py:2373
"case-ghp_abcdefghijklmnopqrstuvwxyz0123456789",
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitleaks.toml
.gitleaks.toml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose

Gates applied: no_behavioural_pass.

Audited 2026-10-14 · audit v0.4.1 · source sha b59a4f805369full audit observations/trust-audit/skill/nvidia__skillevaluator.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-14b59a4f805369BLOCKF54first audit
07

Questions

What does the SkillEvaluator skill do?

Multi-tier framework for evaluating AI agent skills with quality gates, semantic overlap detection, synthetic evaluation dataset generation, and live agent evaluation that measures how skills affect agent behavior.

Is SkillEvaluator safe to install?

No — not without reading the findings first. The audit graded it F (54/100) and found 11 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What can SkillEvaluator access on my machine?

The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: found — see the findings.

Which assistants does SkillEvaluator work with?

Its documentation mentions claude-code, codex and cursor. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (b59a4f805369), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement