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
Ready-to-paste message
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-methodologyOr download just the file:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/plugin-eval/skills/evaluation-methodology/SKILL.md -o SKILL.mdTechnical 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(feedstriggering_accuracy)orchestration_wiring(feedsorchestration_fitness)progressive_disclosure,structural_completeness,token_efficiency,ecosystem_coherenceharness_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_fitnessandscope_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
Comments
- …
More skills from this repository
screen-reader-testing
Has your agent test websites using screen readers to ensure they are accessible.
wshobson/agents
wcag-audit-patterns
Helps your agent audit websites for accessibility and fix issues according to WCAG guidelines.
wshobson/agents
multi-reviewer-patterns
Enables your agent to coordinate parallel code reviews, deduplicating findings and consolidating reports.
wshobson/agents
parallel-debugging
Allows the agent to debug complex issues with parallel investigations and root cause analysis.
wshobson/agents
Similar skills
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC