Token导航 LogoToken导航TokenDH.com
开发只读github未标认证来源可访问许可证需确认审计通过

evaluation-methodology评估方法

Agent Skill

evaluation-methodology 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

47,040

周安装

2,011

GitHub Stars

34,461

下载量

16,480
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:evaluation-methodology(评估方法)
来源仓库:https://github.com/wshobson/agents
仓库路径:skills/evaluation-methodology
安装命令:
npx skills add https://github.com/wshobson/agents --skill evaluation-methodology
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/wshobson/agents --skill evaluation-methodology

简介

evaluation-methodology 是 PluginEval 插件质量的权威评估方法,涵盖三层评分体系和十项维度指标。

  • 适用于技能与插件的质量评估、Elo 排名和改进建议生成,提供静态分析与动态测试结合的方案。
  • 使用时需按三层结构(静态分析、运行时行为、人工复核)逐项评分,综合得出质量等级与改进方向。
  • 安装前请确认仓库权限和维护状态,避免误触发网络或命令执行,建议参考官方 rubric 调整评估参数。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Evaluation Methodology

This document is the authoritative reference for how PluginEval measures plugin and skill quality. It covers the three evaluation layers, all ten scoring dimensions, the composite formula, badge thresholds, anti-pattern flags, Elo ranking, and actionable improvement tips.

Related: Full rubric anchors


The Three Evaluation Layers

PluginEval stacks three complementary layers. Each layer produces a score between 0.0 and 1.0 for each applicable dimension, and later layers override or blend with earlier ones according to per-dimension blend weights.

Layer 1 — Static Analysis

Speed: < 2 seconds. No LLM calls. Deterministic.

The static analyzer (layers/static.py) runs six sub-checks directly against the parsed SKILL.md:

Sub-checkWhat it measures
frontmatter_qualityName presence, description length, trigger-phrase quality
orchestration_wiringOutput/input documentation, code block count, orchestrator anti-pattern
progressive_disclosureLine count vs. sweet-spot (200–600 lines), references/ and assets/ bonuses
structural_completenessHeading density, code blocks, examples section, troubleshooting section
token_efficiencyMUST/NEVER/ALWAYS density, duplicate-line repetition ratio
ecosystem_coherenceCross-references to other skills/agents, "related"/"see also" mentions

These six sub-checks feed directly into six of the ten final dimensions (via STATIC_TO_DIMENSION mapping). The remaining four dimensions — output_quality, scope_calibration, robustness, and part of triggering_accuracy — receive no static contribution and rely entirely on Layer 2 and/or Layer 3.

Anti-pattern penalty is applied multiplicatively to the Layer 1 score:

penalty = max(0.5, 1.0 − 0.05 × anti_pattern_count)

Each additional detected anti-pattern reduces the score by 5%, flooring at 50%.

Layer 2 — LLM Judge

Speed: 30–90 seconds. One or more LLM calls (Sonnet by default). Non-deterministic.

The eval-judge agent reads the SKILL.md and any references/ files, then scores four dimensions using anchored rubrics (see references/rubrics.md):

  1. Triggering accuracy — F1 score derived from 10 mental test prompts
  2. Orchestration fitness — Worker purity assessment (0–1 rubric)
  3. Output quality — Simulates 3 realistic tasks; assesses instruction quality
  4. Scope calibration — Judges depth and breadth relative to the skill's category

The judge returns a structured JSON object (no markdown fences) that the eval engine merges into the composite. When judges > 1, scores are averaged and Cohen's kappa is reported as an inter-judge agreement metric.

Layer 3 — Monte Carlo Simulation

Speed: 5–20 minutes. N=50 simulated Agent SDK invocations (default). Statistical.

Monte Carlo runs N real prompts through the skill and records:

  • Activation rate — Fraction of prompts that triggered the skill
  • Output consistency — Coefficient of variation (CV) across quality scores
  • Failure rate — Error/crash fraction with Clopper-Pearson exact CIs
  • Token efficiency — Median token count, IQR, outlier count

The Layer 3 composite formula:

mc_score = 0.40 × activation_rate
         + 0.30 × (1 − min(1.0, CV))
         + 0.20 × (1 − failure_rate)
         + 0.10 × efficiency_norm

where efficiency_norm = max(0, 1 − median_tokens / 8000).


Composite Scoring Formula

The final score is a weighted blend across all three layers for each dimension, then summed:

composite = Σ(dimension_weight × blended_dimension_score) × 100 × anti_pattern_penalty

Dimension Weights

DimensionWeightWhy it matters
triggering_accuracy0.25A skill that never fires — or fires incorrectly — has no value
orchestration_fitness0.20Skills must be pure workers; supervisor logic belongs in agents
output_quality0.15Correct, complete output is the primary deliverable
scope_calibration0.12Neither a stub nor a bloated monster
progressive_disclosure0.10SKILL.md is lean; detail lives in references/
token_efficiency0.06Minimal context waste per invocation
robustness0.05Handles edge cases without crashing
structural_completeness0.03Correct sections in the right order
code_template_quality0.02Working, copy-paste-ready examples
ecosystem_coherence0.02Cross-references; no duplication with siblings

Layer Blend Weights

Each dimension draws from different layers at different ratios. With all three layers active (--depth deep or certify):

DimensionStaticJudgeMonte Carlo
triggering_accuracy0.150.250.60
orchestration_fitness0.100.700.20
output_quality0.000.400.60
scope_calibration0.300.550.15
progressive_disclosure0.800.200.00
token_efficiency0.400.100.50
robustness0.000.200.80
structural_completeness0.900.100.00
code_template_quality0.300.700.00
ecosystem_coherence0.850.150.00

At --depth standard (static + judge only), blends are renormalized to drop the Monte Carlo column. At --depth quick (static only), all weight falls on Layer 1.

Blended Score Calculation

For a given depth, the blended score for dimension d is:

blended[d] = Σ( layer_weight[d][layer] × layer_score[d][layer] )
             ─────────────────────────────────────────────────────
             Σ( layer_weight[d][layer] for available layers )

This normalization ensures that skipping Monte Carlo at standard depth doesn't artificially deflate scores.


Interpreting Dimension Scores

Each dimension score is a float in [0.0, 1.0]. The CLI converts it to a letter grade:

GradeScore rangeMeaning
A0.90 – 1.00Excellent — no meaningful improvement needed
B0.80 – 0.89Good — minor gaps only
C0.70 – 0.79Adequate — one or two clear improvement areas
D0.60 – 0.69Marginal — needs targeted work
F< 0.60Failing — significant remediation required

When reading a report, focus first on the lowest-graded dimension that has the highest weight. A D in triggering_accuracy (weight 0.25) costs far more than a D in ecosystem_coherence (weight 0.02).

Confidence intervals appear in the report when Layer 2 or Layer 3 ran. Narrow CIs (± < 5 points) indicate stable scores. Wide CIs suggest inconsistency — often caused by an ambiguous description or instructions that work for some prompt styles but not others.


Quality Badges

Badges require both a composite score threshold AND an Elo threshold (when Elo is available). The Badge.from_scores() logic checks composite first, then Elo if provided:

BadgeCompositeEloMeaning
Platinum ★★★★★≥ 90≥ 1600Reference quality — suitable for gold corpus
Gold ★★★★≥ 80≥ 1500Production ready
Silver ★★★≥ 70≥ 1400Functional, has improvement opportunities
Bronze ★★≥ 60≥ 1300Minimum viable — not yet recommended for users
< 60anyDoes not meet minimum bar

The Elo threshold is skipped when Elo has not been computed (i.e., at quick or standard depth without certify). A skill can earn a badge on composite score alone in those cases.


Anti-Pattern Flags

The static analyzer detects five anti-patterns. Each carries a severity multiplier that feeds into the penalty formula.

OVER_CONSTRAINED

Trigger: More than 15 occurrences of MUST, ALWAYS, or NEVER in the SKILL.md.

Problem: Overly prescriptive instructions reduce model flexibility, increase token overhead, and signal that the author is trying to micromanage every output rather than providing principled guidance.

Fix: Audit every MUST/ALWAYS/NEVER. Replace directive language with explanatory framing where possible. Reserve hard constraints for genuine safety or correctness requirements. Target fewer than 10 such directives per 100 lines.

EMPTY_DESCRIPTION

Trigger: The frontmatter description field is fewer than 20 characters after stripping.

Problem: Without a meaningful description, the Claude Code plugin system cannot determine when to invoke the skill. The skill becomes invisible to autonomous invocation.

Fix: Write a description of at least 60–120 characters that includes:

  • A "Use this skill when..." or "Use when..." trigger clause
  • Two or more concrete contexts separated by commas or "or"

MISSING_TRIGGER

Trigger: The description does not contain "use when", "use this skill when", "use proactively", or "trigger when" (case-insensitive).

Problem: Even a long description is useless for autonomous invocation if it doesn't include a clear trigger signal. The system's routing model needs an explicit cue.

Fix: Prepend "Use this skill when..." to the description, followed by specific scenarios. Example: "Use this skill when measuring plugin quality, interpreting score reports, or explaining badge thresholds to a team."

BLOATED_SKILL

Trigger: SKILL.md exceeds 800 lines AND the skill has no references/ directory.

Problem: A monolithic SKILL.md forces the entire document into context on every invocation, wasting tokens on content only needed in edge cases.

Fix: Create a references/ directory and move supporting material there:

  • Detailed rubrics → references/rubrics.md
  • Extended examples → references/examples.md
  • Configuration reference → references/config.md

The SKILL.md should link to these files with [text](references/filename.md) so the model can fetch them on demand.

ORPHAN_REFERENCE

Trigger: SKILL.md contains a markdown link [text](references/filename) where filename does not exist in the references/ directory.

Problem: Dead links waste tokens on context that will never resolve and confuse the model.

Fix: Either create the missing reference file or remove the dead link.

DEAD_CROSS_REF

Trigger: SKILL.md references another skill or agent by relative path and that path cannot be resolved from the skills/ directory.

Problem: Broken ecosystem links undermine the plugin's coherence score and may cause the model to attempt navigation to non-existent files.

Fix: Verify the referenced skill exists. Update the path or remove the reference.


Elo Ranking

PluginEval uses an Elo/Bradley-Terry rating system to rank a skill against the gold corpus.

Starting rating: 1500 (the corpus median by convention).

K-factor: 32 (standard for moderate-stakes ratings).

Expected score formula (standard Elo):

E(A vs B) = 1 / (1 + 10^((B_rating − A_rating) / 400))

Rating update after each matchup:

new_rating = old_rating + 32 × (actual_score − expected_score)

where actual_score is 1.0 for a win, 0.5 for a draw, 0.0 for a loss.

Confidence intervals are computed via 500-sample bootstrap, reported as 95% CI. Corpus percentile reflects pairwise win rate against the gold corpus. Position bias check: Pairs are evaluated in both orders; disagreements are flagged.

The plugin-eval init command builds the corpus index from a plugins directory:

plugin-eval init ./plugins --corpus-dir ~/.plugineval/corpus

CLI Reference

Score a skill (quick static analysis only)

plugin-eval score ./path/to/skill --depth quick

Returns Layer 1 results in < 2 seconds. Useful for fast feedback during authoring.

Score with LLM judge (default)

plugin-eval score ./path/to/skill

Runs static + LLM judge (standard depth). Takes 30–90 seconds.

Score with full output as JSON

plugin-eval score ./path/to/skill --output json

Emits structured JSON including composite.score, composite.dimensions, and layers[0].anti_patterns. Suitable for CI integration:

plugin-eval score ./path/to/skill --depth quick --output json --threshold 70
# exits with code 1 if score < 70

Full certification (all three layers + Elo)

plugin-eval certify ./path/to/skill

Runs static + LLM judge + Monte Carlo (50 simulations) + Elo ranking. Takes 15–20 minutes. Assigns a quality badge. Use before publishing a skill to the marketplace.

Head-to-head comparison

plugin-eval compare ./skill-a ./skill-b

Evaluates both skills at quick depth and prints a dimension-by-dimension comparison table. Useful for deciding between two implementations or measuring improvement before/after a rewrite.

Initialize corpus for Elo

plugin-eval init ./plugins

Builds the local corpus index at ~/.plugineval/corpus. Required before Elo ranking works.

Scripting the Composite Formula

Reproduce the composite score offline (pre-commit hook, CI gate):

def composite_score(dimension_scores: dict, anti_pattern_count: int = 0) -> float:
    """Replicate the PluginEval composite formula."""
    WEIGHTS = {
        "triggering_accuracy":    0.25,
        "orchestration_fitness":  0.20,
        "output_quality":         0.15,
        "scope_calibration":      0.12,
        "progressive_disclosure": 0.10,
        "token_efficiency":       0.06,
        "robustness":             0.05,
        "structural_completeness":0.03,
        "code_template_quality":  0.02,
        "ecosystem_coherence":    0.02,
    }
    raw = sum(WEIGHTS[d] * s for d, s in dimension_scores.items())
    penalty = max(0.5, 1.0 - 0.05 * anti_pattern_count)
    return round(raw * 100 * penalty, 2)

# Example: a skill with a weak triggering score
scores = {
    "triggering_accuracy":    0.65,  # D — needs description work
    "orchestration_fitness":  0.85,
    "output_quality":         0.80,
    # … fill in remaining 7 dimensions …
}
# composite_score(scores, anti_pattern_count=1) → ~76.5

JSON Output Format

Top-level shape of --output json:

{
  "composite": { "score": 76.5, "badge": "Silver", "elo": null },
  "dimensions": {
    "triggering_accuracy": { "score": 0.65, "grade": "D", "ci_low": 0.60, "ci_high": 0.70 },
    "orchestration_fitness": { "score": 0.85, "grade": "B", "ci_low": 0.80, "ci_high": 0.90 }
  },
  "layers": [
    { "name": "static", "duration_ms": 1243, "anti_patterns": ["OVER_CONSTRAINED"] },
    { "name": "judge", "duration_ms": 48200, "judges": 1, "kappa": null }
  ]
}

Parse composite.score in CI to gate deployments:

score=$(plugin-eval score ./my-skill --output json | python3 -c "import sys,json; print(json.load(sys.stdin)['composite']['score'])")
if (( $(echo "$score < 70" | bc -l) )); then
  echo "Quality gate failed: score $score < 70"
  exit 1
fi

Tips for Improving a Skill's Score

Work through dimensions in weight order. The largest gains come from fixing the top-weighted dimensions first.

Which Dimension to Improve First

Use this table when a score report shows multiple D/F grades and you need to prioritize effort.

DimensionWeightTypical fix effortScore impact / hourFix first if…
triggering_accuracy0.25Low — description rewriteHighScore < 70 overall
orchestration_fitness0.20Medium — restructure sectionsHighSkill mixes worker + supervisor logic
output_quality0.15Medium — add examplesMediumJudge score < 0.70
scope_calibration0.12Low — move content to references/MediumFile is < 100 or > 800 lines
progressive_disclosure0.10Low — create references/ dirMediumNo references/ directory exists
token_efficiency0.06Low — reduce MUST/ALWAYS/NEVERLowAnti-pattern count ≥ 3
robustness0.05Low — add Troubleshooting sectionLowNo edge-case handling documented
structural_completeness0.03Very low — add headings/code blocksLowFewer than 4 H2 headings
code_template_quality0.02Very low — add language tagsVery lowCode blocks missing language tags
ecosystem_coherence0.02Very low — add Related sectionVery lowNo cross-references at all

Rule of thumb: Fix triggering_accuracy before anything else — at weight 0.25 it delivers more composite-score gain per hour than all low-weight dimensions combined.

Triggering Accuracy (weight 0.25)

  • Include "Use this skill when..." followed by 3–4 comma-separated specific contexts.
  • Add "proactively" if the skill should auto-activate without an explicit user request.
  • Mental test: write 5 prompts that should trigger it and 5 that should not — does your description discriminate? If not, add or tighten the context phrases.

Orchestration Fitness (weight 0.20)

  • Document what the skill *receives* and what it *returns* — not what it orchestrates.
  • Avoid "orchestrate", "coordinate", "dispatch", "manage workflow" in SKILL.md.
  • Include an "Output format" section and 2+ code blocks showing concrete worker behavior.

Output Quality (weight 0.15)

  • Give specific, actionable instructions — not just goals.
  • Cover at least one edge case explicitly (empty input, malformed data, etc.).
  • Include an examples section showing representative inputs and expected outputs.
  • The more concrete the instructions, the higher the judge will score this dimension.

Scope Calibration (weight 0.12)

  • Target 200–600 lines. Below 100 is a stub; above 800 without references/ is bloat.
  • Move background reading, extended examples, and reference tables to references/.
  • Very narrow skills should be merged with a sibling; very broad ones should be split.

Progressive Disclosure (weight 0.10)

  • Add a references/ directory (earns 0.15–0.25 bonus) and keep SKILL.md focused on the execution path. An assets/ directory adds a further bonus.

Token Efficiency (weight 0.06)

  • Audit MUST/ALWAYS/NEVER count. Target < 1 per 10 lines.
  • Consolidate near-duplicate bullet points and repeated-structure tables.

Robustness (weight 0.05)

  • Add a "Troubleshooting" or "Edge Cases" section covering at least 3 failure modes.
  • State what the skill returns when it cannot complete its task.

Structural Completeness (weight 0.03)

  • Ensure at least 4 H2/H3 headings, 3 code blocks, an Examples section, and a Troubleshooting section.

Code Template Quality (weight 0.02)

  • All code blocks must be syntactically valid and copy-paste ready with language tags.

Ecosystem Coherence (weight 0.02)

  • Add a "## Related" section listing sibling skills or agents with relative paths.
  • Avoid duplicating content that already exists in another skill — link to it instead.

Troubleshooting

"Score is much lower than expected after adding content"

The anti-pattern penalty compounds. Run with --output json and inspect layers[0].anti_patterns. If you have 5+ anti-patterns, the multiplier can reduce your score to 75% of its raw value regardless of how good the content is. Fix the flags first.

"triggering_accuracy is low despite a detailed description"

The _description_pushiness scorer looks for specific syntactic patterns, not just length. Verify your description contains the phrase "Use this skill when" or "Use when" (exact phrasing matters — it's a regex match). Also check that you have multiple use cases separated by commas or "or" to earn the specificity bonus.

"LLM judge scores vary significantly between runs"

This is expected for ambiguous skills. The judge generates 10 mental test prompts non-deterministically. Improve score stability by tightening the description and adding concrete examples. When judges > 1, averaged scores will be more stable. Use --depth deep with certify which runs Monte Carlo to get statistically-bounded scores.

"progressive_disclosure score is low even though the file is the right length"

Check whether the file is in the 200–600 line sweet spot. Files shorter than 100 lines score only 0.20 on this sub-check. Also confirm that references/ files are not empty — the scorer checks for non-empty reference files, not just the directory.

"compare shows my rewrite scores lower than the original"

Quick depth (--depth quick) only runs static analysis. If the rewrite moved content to references/ and shortened SKILL.md significantly, static scores for structural completeness may drop even though overall quality improved. Run --depth standard for a fairer comparison that includes the LLM judge's assessment of content quality.


References

Related Agents

  • eval-judge (../../agents/eval-judge.md) — the LLM judge that scores Layer 2 dimensions (triggering_accuracy, orchestration_fitness, output_quality, scope_calibration). Invoke directly when you need to re-run only the judge layer or inspect its reasoning.
  • eval-orchestrator (../../agents/eval-orchestrator.md) — the top-level orchestrator that sequences all three layers, merges results, assigns badges, and writes the final report. Invoke when running a full certification pass or comparing two skills head-to-head.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.53%
按下载量换算5,361

Claude

28.01%
按下载量换算4,616

Cursor

20.17%
按下载量换算3,324

Gemini CLI

9.41%
按下载量换算1,551

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills