mgechev/skillgrade
"Unit tests" for your agent skills
Skillgrade – an evaluation harness for AI coding agents
What it does – Skillgrade lets you define coding‑related tasks (e.g., fix lint errors, implement an API, review code) and automatically run any AI‑powered coding agent against them. After each run it scores the result with deterministic scripts, LLM‑based rubrics, or human reviewers, producing a pass‑rate or weighted score.
How you use it
- Install globally (
npm i -g skillgrade). - Run
skillgrade initin a folder to create aneval.yamltemplate (or let it generate AI‑suggested tasks if aSKILL.mdfile and API key are present). - Edit
eval.yamlto describe tasks, workspace files, context files, and graders. - Execute the evaluation with a single command, e.g.
skillgrade --smoke. The tool auto‑detects the agent from environment variables (GEMINI_API_KEY,ANTHROPIC_API_KEY,OPENAI_API_KEY) or you can force one with--agent. - View results in the terminal (
skillgrade preview) or in a browser UI (skillgrade preview browser).
Key concepts
- Agent – any LLM‑backed coding assistant (Gemini, Claude, Codex, OpenCode, or any ACP‑compatible CLI). You can also point it at an arbitrary command.
- Workspace vs. Context –
workspacefiles are the mutable code the agent works on;contextfiles are read‑only reference material. - Grader types –
- Deterministic: runs a script that returns a JSON score.
- LLM rubric: sends the agent’s transcript to a LLM with a rubric and parses the returned score.
- Human: pauses for manual review. Graders can be weighted; the final score is the weighted average.
- Trials & presets – run a task multiple times (
trials) to estimate reliability. Presets like--smoke(5 trials) or--regression(30 trials) provide quick or thorough checks. - Multi‑turn tasks – tasks can have a sequence of instructions (
turns) where the workspace persists across turns. - Dataset expansion – a single task template can be expanded over a JSONL/CSV dataset, interpolating row fields into the instruction.
- Filtering – select subsets of tasks with
--filter/--not-filterbased on metadata fields. - Reporting – export results as JSON, JUnit XML, CSV, or Markdown; useful for CI pipelines.
Typical workflow example
# Install
npm i -g skillgrade
# Create an eval suite
mkdir my-evals && cd my-evals
skillgrade init # creates eval.yaml
# Edit eval.yaml – add a task that runs superlint on a broken file
# (see README for full syntax)
# Run a quick smoke test against the default Gemini agent
GEMINI_API_KEY=… skillgrade --smoke
# See a nice web UI
skillgrade preview browser
# In CI you might use:
skillgrade --regression --ci --provider=local --threshold=0.85
Why it matters – As AI coding assistants become common, developers need systematic ways to measure their reliability, correctness, and workflow compliance. Skillgrade provides a flexible, language‑agnostic harness that works with many LLM providers and can be integrated into automated test pipelines.
Scope – This project is a genuine software tool for evaluating AI coding agents, fitting squarely within the AI/ML tooling ecosystem.
Related
- Project
- Project
- Project
- Dispatch
- Project