agentleFS
tovrleaftovrleaf/openkata/skills/create-evals/SKILL.md

create-evals

Skill1 starsChanged 13 days agoMITView on GitHub

Generate diverse evaluation scenarios that test whether an agent using a skill produces correct output, including happy-path cases, edge cases, and failure scenarios across varying complexity levels. Produces structured scenario directories containing task prompts, weighted scoring checklists, and optional input fixtures for each scenario. Use when the user says "create evals", "generate eval scenarios", "write evals", "test this skill", or before publishing a skill.

5 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use improve.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AnasX7Skill

    improve

    Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute. Strictly read-only on source code — never implements, fixes, or refactors anything itself. Use when asked to audit a codebase, find improvement opportunities (bugs, security, performance, test coverage, tech debt, migrations, DX), suggest features or where to take the project next (roadmap, product direction), or generate handoff plans for another agent to implement.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Add "include": ["./inputs"] when input fixtures exist.

    line 71
  2. Very specific:

    Default is "sandbox": true (requires Docker).

    line 81
  3. Distinctive:

    Never reference the skill being tested

    line 128
  4. Distinctive:

    Keep focused on the skill's domain

    line 129
  5. Distinctive:

    Keep minimal — just enough to make the scenario concrete

    line 135
  6. Distinctive:

    Must be realistic (real-looking code, configs, docs)

    line 136
  7. Distinctive:

    Does NOT run evals or judge output

    line 159
  8. Distinctive:

    Does NOT modify the skill itself

    line 160
  9. Distinctive:

    Does NOT publish or deploy

    line 161

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “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

Create Evals

Generate diverse eval scenarios for a skill. Each scenario tests whether an agent following the skill produces the expected output given a realistic task.

Workflow

  1. Identify target — Determine which skill to create evals for from the user's request.
  2. Read the skill — Read the skill's SKILL.md and any references/ to understand what behaviors it enforces.
  3. Plan scenarios — Design 3–5 diverse scenarios:
    • At least one straightforward happy-path case
    • At least one edge case or tricky situation
    • Vary complexity (simple, moderate, challenging)
    • Cover different aspects of the skill's workflow
  4. Create scenario directories — One directory per scenario in the skill's evals/ directory. Use descriptive kebab-case names:
    skill-name/
    └── evals/
        ├── scenario-happy-path/
        ├── scenario-edge-case/
        └── scenario-complex/
  5. Write files — Each scenario directory contains:
    • scenario.json — Metadata (see structure below)
    • criteria.json — Weighted scoring checklist
    • task.md — Realistic task prompt
    • inputs/ — Optional fixture files
  6. Verify — Confirm all criteria weights sum to exactly 100 per scenario. Run the validation script:
    ./scripts/check-eval-weights.sh skills/<name>
  7. Report — List the scenarios created with descriptions.

File Formats

scenario.json

{
  "description": "Brief description of the scenario"
}

Add "include": ["./inputs"] when input fixtures exist.

For conversational skills (no tool use), add:

{
  "description": "Brief description",
  "sandbox": false
}

Default is "sandbox": true (requires Docker). Set to false for skills that only produce text output.

criteria.json

{
  "context": "What the scenario tests",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "criterion-name",
      "description": "Observable behavior to verify",
      "max_score": 15
    }
  ]
}

task.md

## Problem/Feature Description

Realistic scenario description.

## Output Specification

What files or artifacts the agent must produce.

Criteria Rules

  • Weights MUST sum to exactly 100 per scenario
  • Weight guide:
    • 12–15: Core skill behaviors
    • 10–12: Important explicitly-emphasized rules
    • 6–8: Supporting rules that matter but aren't the focus
    • 4–6: Minor style or formatting details
  • Each description must be specific enough for binary pass/fail scoring — no subjective criteria

Task Rules

  • Two sections: Problem/Feature Description and Output Specification
  • Self-contained and realistic — a believable scenario
  • Never reference the skill being tested
  • Keep focused on the skill's domain

Input Files

  • Optional — only include when the scenario needs existing project context
  • Keep minimal — just enough to make the scenario concrete
  • Must be realistic (real-looking code, configs, docs)

Example Scenario

For a commit-conventions skill:

evals/
└── scenario-breaking-change/
    ├── scenario.json
    ├── criteria.json
    ├── task.md
    └── inputs/
        └── diff.patch

Where criteria.json might weight "includes breaking change footer" at 15, "imperative mood header" at 12, "scope present" at 10, etc., summing to 100.

Boundaries

  • DOES generate eval scenario files
  • Does NOT run evals or judge output
  • Does NOT modify the skill itself
  • Does NOT publish or deploy

Common Failures

  • Weights not summing to 100 — always verify arithmetic before writing criteria.json.
  • Criteria too vague — "well-written commit message" is unjudgeable. "Header uses imperative mood" is binary.
  • Task leaks skill name — the task must not hint at which skill is active or what behaviors are expected.
  • Scenarios all test the same aspect — cover different parts of the workflow, not variations of one case.
  • Unrealistic inputs — fixture files must look like real project artifacts, not toy examples.

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.