Skillgrade Evaluation Setup
Procedures
Step 1: Install Skillgrade
- Verify Node.js 20+ and Docker are available.
- Run
npm i -g skillgradeto install the CLI globally.
Step 2: Initialize an Eval Configuration
- Navigate to the skill directory (must contain a
SKILL.md). - Set the appropriate API key environment variable (
GEMINI_API_KEY,ANTHROPIC_API_KEY, orOPENAI_API_KEY). - Run
skillgrade initto generate aneval.yamlwith AI-powered tasks and graders. - If an
eval.yamlalready exists, pass--forceto overwrite:skillgrade init --force. - Without an API key, a well-commented template is generated instead.
Step 3: Configure eval.yaml
- Read
references/eval-yaml-spec.mdfor the full configuration schema. - Define one or more tasks under the
tasks:key. Each task requires:name: unique task identifierinstruction: what the agent should accomplishworkspace: files to copy into the evaluation containergraders: one or more scoring mechanisms (see theskillgrade-gradersskill)
- Optionally configure
defaults:for agent, provider, trials, timeout, and threshold.
Step 4: Run Evaluations
- Select an appropriate preset based on the evaluation goal:
--smoke(5 trials): Quick capability check.--reliable(15 trials): Reliable pass rate estimate.--regression(30 trials): High-confidence regression detection.
- Run the evaluation:
skillgrade --smoke. - Run a specific eval by name:
skillgrade --eval=fix-linting. - Run multiple evals:
skillgrade --eval=fix-linting,write-tests. - Run only deterministic graders (skip LLM calls):
skillgrade --grader=deterministic. - Run only LLM rubric graders:
skillgrade --grader=llm_rubric. - The agent is auto-detected from the API key. Override with
--agent=gemini|claude|codex|acp|opencode|command. - For ACP, pass
--acp-command="gemini --acp"or setdefaults.acp.command. - For OpenCode, pass
--opencode-agent=build|plan|exploreor--opencode-model=provider/model. - For a custom agent, pass
--agent=command --command="node mycli.js"or setdefaults.command. The instruction is piped to the command's stdin. - Override the provider with
--provider=docker|local.
Step 5: Review Results
- Run
skillgrade previewfor a CLI report. - Run
skillgrade preview browserto open the web UI athttp://localhost:3847. - Reports are saved to
$TMPDIR/skillgrade/<skill-name>/results/. Override with--output=DIR.
Step 6: Integrate with CI
- Add a GitHub Actions step that installs skillgrade, navigates to the skill directory, and runs with
--regression --ci --provider=local. - Use
--provider=localin CI — the runner is already an ephemeral sandbox, so Docker adds overhead without benefit. - The
--ciflag causes a non-zero exit code if the pass rate falls below--threshold(default: 0.8). - Read
references/ci-example.mdfor a complete workflow template.
Error Handling
- If
skillgrade initfails with "No SKILL.md found," verify the current directory contains a validSKILL.mdfile. - If evaluation hangs, check Docker is running and the container has network access for API calls.
- If all trials fail with "No API key," ensure the environment variable is exported, not just set inline for a different command.