Skip to main content

SkillRoll

SkillRoll is a small behavioral eval framework for Agent Skills. Write a Markdown case beside a skill, run it in a controlled simulated world, and review the verdict and evidence.

Use it to turn an important prompt behavior into a readable regression case before changing the prompt.

If you can explain what a skill should do, you can eval it.

Status

SkillRoll is an early project. Local evaluation and advisory GitHub checks work today; expect the interface to evolve between minor releases.

A passing run means one observed attempt met one case. It is useful evidence, not proof that a skill is correct or ready for blocking CI.

Quickstart

SkillRoll requires Python 3.12 or later and uv.

uv tool install skillroll

Initialize a repository that already contains SKILL.md files:

skillroll init \
  --repo /path/to/my-skills \
  --skills-path skills \
  --starter-evals my-skill \
  --yes

skillroll validate --repo /path/to/my-skills --all

skills_path is relative to the target repository. --starter-evals and --case are relative to skills_path. Validation is offline: it does not need an API key or call a model.

Open the generated case under my-skill/evals/, replace the placeholders, and delete any starter case you do not need. A case has three parts:

  • Input: the realistic request and context given to the skill;
  • World: simulated external state and action results; and
  • Success criteria: observable outcomes that allow equivalent good answers.

Configure an OpenAI-compatible Chat Completions endpoint in skillroll.toml:

schema_version = 1
skills_path = "skills"

[inference]
base_url = "https://provider.example/v1"
model = "provider/model-name"
api_key_env = "SKILLROLL_API_KEY"

The endpoint must support tool calling and strict JSON Schema structured outputs. Export the configured key, check compatibility, and run a case:

export SKILLROLL_API_KEY="your-key"
skillroll doctor --repo /path/to/my-skills
skillroll eval \
  --repo /path/to/my-skills \
  --case my-skill/evals/first-use.eval.md

doctor checks the endpoint. eval spends inference and writes a private run under .skillroll/runs/. Start with report.md; use result.json for automation and transcript.jsonl to inspect the skill's actions.

Outcome Meaning
PASS The observed evidence met the case.
FAIL One or more expectations were not met.
INCOMPLETE A required repository check was not run.
ERROR The run could not produce a trustworthy verdict.

Know the boundaries

  • Simulated World actions cannot access your real filesystem, shell, network, services, or other skills.
  • Optional repository checks are ordinary host commands, not a sandbox. They run only after explicit opt-in.
  • Evidence can contain case text, simulated state, action results, and model output. Review it before sharing.
  • Free or changing model routes are useful for setup checks, not comparable skill-quality evidence. Pin a named model when results need to be compared.
  • Start behavioral cases as manual or advisory checks. Promote them only after their failures are stable, specific, and useful.

Learn more

The documentation index lists the same guides by task.

See PHILOSOPHY.md for the project principles and CONTRIBUTING.md to work on SkillRoll. Project support, security reporting, and governance are in SUPPORT.md, SECURITY.md, and GOVERNANCE.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skillroll-0.1.0.tar.gz (86.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skillroll-0.1.0-py3-none-any.whl (114.6 kB view details)

Uploaded Python 3

File details

Details for the file skillroll-0.1.0.tar.gz.

File metadata

  • Download URL: skillroll-0.1.0.tar.gz
  • Upload date:
  • Size: 86.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillroll-0.1.0.tar.gz
Algorithm Hash digest
SHA256 476c22ee37547747daeed06d10537bf16a7831a0ff027f10f8763e800a878103
MD5 b76f21143a3f8d707d36df0306b2ccd9
BLAKE2b-256 9aa139f21c5411cbc46230b86ba37100ed41f6d92b3a65e493bb023af4d66412

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillroll-0.1.0.tar.gz:

Publisher: release.yml on hagaiw/skillroll

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skillroll-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: skillroll-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 114.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for skillroll-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 172e828fa08f77a6c2ee3117f81a281c4a1b0221875d5e455f262a75f816a5f4
MD5 c43a5a35b2597029f05d24c266ab5581
BLAKE2b-256 a499d43959e79b5ceec79b396fc48236a26fe0d2d952f208eba2969c70baae6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for skillroll-0.1.0-py3-none-any.whl:

Publisher: release.yml on hagaiw/skillroll

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page