Skip to content
Skillpedia
Agents41k · #4915

evaluation-methodology

Helps your agent understand how plugin quality is measured. It's useful for improving plugin performance or setting quality standards.

What it does

This tool evaluates the quality of 'skills' (AI tools) using different methods. It checks if the skill works well, responds correctly, and is well-organized, giving a final score.

When to use it

  • ✓To understand how a skill's quality is measured.
  • ✓When a skill has a low score and you want to know why.
  • ✓To improve how accurately a skill is triggered or its organization.

Example of what to ask your AI

“How can I know if my skill is working correctly?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/wshobson/agents/blob/main/plugins/plugin-eval/skills/evaluation-methodology/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/wshobson/agents/blob/main/plugins/plugin-eval/skills/evaluation-methodology/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool uses automatic checks (like a code 'lint') and also asks AI models to evaluate the skill. It combines the results to give an overall score.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add wshobson/agents --skill evaluation-methodology

Or download just the file:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/plugin-eval/skills/evaluation-methodology/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Evaluation methodology

PluginEval scores a skill or a plugin from 0 to 100 by combining up to three layers. The static layer is a lint. It's fast and deterministic, and it's useful for checking structure. The LLM judge and Monte Carlo layers are experimental, not validated against human labels, so treat their numbers as rough signals. For the trace-based eval program, see evals/README.md at the repository root.

The judge rubric anchors are in references/rubrics.md. Fixes for each anti-pattern and tips for each dimension are in references/improving-scores.md.

Evaluation depths

Depth Layers Confidence label
quick static Estimated
standard (default for score) static and judge Assessed
deep (used by certify) static, judge, and Monte Carlo with 50 runs Certified
thorough static, judge, and Monte Carlo with 100 runs Certified+

The label names the depth that ran, not a check against human judgment. A plugin directory gets the static layer only, whatever depth you ask for.

Static layer (lint)

The static layer reads SKILL.md and makes no model calls. It computes seven sub-scores, and the first six feed composite dimensions:

  • frontmatter_quality (feeds triggering_accuracy)
  • orchestration_wiring (feeds orchestration_fitness)
  • progressive_disclosure, structural_completeness, token_efficiency, ecosystem_coherence
  • harness_portability

harness_portability maps to no dimension, so it doesn't change a skill's composite score. It does carry 6% of the static layer's own score. A plugin's score is built from that layer score, so portability findings can lower a plugin's score a little. Its findings are not counted as anti-patterns.

The static layer flags six anti-patterns: OVER_CONSTRAINED, EMPTY_DESCRIPTION, MISSING_TRIGGER, BLOATED_SKILL, ORPHAN_REFERENCE, and DEAD_CROSS_REF. Each flag cuts the score by 5%, down to a floor of 50%:

penalty = max(0.5, 1.0 - 0.05 * anti_pattern_count)

The report prints a severity for each flag, but the penalty counts flags and ignores severity.

LLM judge layer (experimental)

The judge layer makes four model calls and returns four holistic scores from 0 to 1:

  • triggering_accuracy: Haiku reads the description and writes 10 test prompts, 5 that should trigger and 5 that should not. It predicts the outcome for each prompt and reports its own F1. Nothing checks those predictions against real triggering.
  • orchestration_fitness and scope_calibration: Sonnet rates the skill on a five-point rubric.
  • output_quality: Sonnet imagines three tasks and rates the output it expects.

The three Sonnet calls see only the first 3,000 characters of SKILL.md. Only one judge runs, because nothing reads the judges setting.

Monte Carlo layer (experimental)

Haiku writes 15 prompts that should trigger the skill, and the layer repeats them to reach 50 runs (100 at thorough). Each run sends the SKILL.md text and one prompt to the model, and the layer records four measures:

  • Activation rate is the share of runs with any non-empty reply, so it shows whether the model answered, not whether the skill should have fired.
  • Output quality is reply length divided by 500, capped at 1.0.
  • Failure rate is the share of runs that errored.
  • Token efficiency is 1 - median_tokens / 8000.

Every prompt is one that should trigger, so the layer never checks that the skill stays out of unrelated requests. The layer's JSON includes Wilson, bootstrap, and Clopper-Pearson intervals for its own measures. The composite ci_lower and ci_upper fields are always null.

Composite score

First, for each dimension, the engine blends the layer scores that exist, and it renormalizes the blend weights over those layers. Second, it sums the weighted dimension scores, and it renormalizes the dimension weights over the dimensions that have a score. Third, it multiplies the sum by 100 and by the anti-pattern penalty.

Dimension Weight Static Judge Monte Carlo
triggering_accuracy 0.25 0.15 0.25 0.60
orchestration_fitness 0.20 0.10 0.70 none
output_quality 0.15 none 0.40 0.60
scope_calibration 0.12 none 0.55 none
progressive_disclosure 0.10 0.80 none none
token_efficiency 0.06 0.40 none 0.50

…

FAQ

What are the 'layers'?

These are different evaluation methods: the 'static' layer checks structure, the 'judge' layer uses AI to rate quality, and the 'Monte Carlo' layer tests the skill with many simulations.

What are 'anti-patterns'?

These are common errors in the skill's structure or description that lower its score. Examples include empty descriptions or missing triggers.

What do the scores and 'badges' mean?

The final score ranges from 0 to 100. 'Badges' like Platinum, Gold, Silver, and Bronze are awarded based on score ranges to indicate the skill's overall quality.

Details

Original description by the author

PluginEval quality methodology, covering dimensions, rubrics, and scoring formulas. Use this skill when understanding how plugin quality is measured, when interpreting a low score on a specific dimension, when deciding how to improve a skill's triggering accuracy or orchestration fitness, when setting score thresholds for your marketplace, or when explaining quality badges to external partners lik

repo: wshobson/agents

Popularity

GitHub stars
41k
Ranking position
#4915
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills