К основному содержанию
скилл Claude Code CX Codex Cursor

evaluation-methodology — скилл для Claude Code: что делает

Справочник по методологии PluginEval. Помогает понять расчёт баллов качества плагинов, формулы метрик и причины штрафов за антипаттерны.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add wshobson/agents
/plugin install plugin-eval@claude-code-workflows
Открыть на GitHub

Что делает evaluation-methodology

Скилл содержит методику PluginEval для оценки навыков и плагинов по шкале от 0 до 100. Итоговый балл собирается из трех слоев: детерминированного статического линтера, экспериментального LLM-судьи и прогонов Монте-Карло. Предусмотрено четыре глубины проверки — от быстрой quick до сертификационной thorough.

Статический слой проверяет файл SKILL.md без вызовов API. Он вычисляет семь субоценок и находит шесть антипаттернов вроде EMPTY_DESCRIPTION или BLOATED_SKILL. Каждый найденный антипаттерн отнимает 5% от оценки со штрафным порогом 50%. В слое судьи модель Haiku пишет тестовые промпты, а Sonnet оценивает текст по пятибалльной шкале, читая первые 3000 символов документа.

Это нужно тем, кто готовит навыки к публикации в каталогах или выставляет минимальный балл через флаг --threshold. Если вы пишете короткие локальные промпты под личные задачи, эти формулы расчетов избыточны.

Какие задачи решает

  • разобрать причины низкого балла скилла в PluginEval
  • настроить пороги прохождения проверки для каталога навыков
  • найти антипаттерны в структуре файла SKILL.md
  • понять расчёт метрик активации и токенов в прогонах Монте-Карло

Примеры запросов агенту

  • Объясни, почему плагин получил штраф за антипаттерны в PluginEval.
  • Как рассчитывается composite score для глубины standard?
  • Какие метрики проверяет статический слой в SKILL.md?

Как установить evaluation-methodology

1Через маркетплейс плагинов

/plugin marketplace add wshobson/agents
/plugin install plugin-eval@claude-code-workflows

Команда ставит плагин plugin-eval целиком, со всеми его скиллами

2Через Skills CLI (Vercel)

npx skills add wshobson/agents --skill evaluation-methodology -a claude-code

3Вручную: положить файлы

~/.claude/skills/evaluation-methodology/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/evaluation-methodology/

Из того же набора213

Весь набор →
typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. Claude Code CX Codex Cursor 92 169установок tailwind-design-system Seth Hobson Помогает строить дизайн-системы на Tailwind CSS v4. Пригодится для библиотеки компонентов или унификации интерфейса в проекте. Claude Code CX Codex Cursor 70 180установок brand-landingpage Travis D. Elliott Скилл проводит интервью о продукте и визуальном стиле, затем помогает создать лендинг через Stitch. Подойдёт, если у проекта пока нет готового дизайна. Claude Code CX Codex Cursor 39 476установок python-testing-patterns Seth Hobson Скилл помогает писать тесты Python с pytest, фикстурами и моками. Подходит для настройки тестового набора и отладки падающих проверок. Claude Code CX Codex Cursor 36 943установок python-performance-optimization Seth Hobson Скилл помогает профилировать Python-код, находить узкие места CPU и памяти. Подходит, когда приложение медленно отвечает или тратит слишком много ресурсов. Claude Code CX Codex Cursor 35 675установок nextjs-app-router-patterns Seth Hobson Помогает строить приложения на Next.js App Router: выбирать режим рендеринга, организовывать маршруты и получать данные. Подойдёт при миграции с Pages Router или работе с Server Components. Claude Code CX Codex Cursor 32 529установок api-design-principles Seth Hobson Скилл помогает проектировать и проверять REST- и GraphQL API. Пригодится при подготовке спецификации, пересмотре существующего API или согласовании стандартов команды. Claude Code CX Codex Cursor 30 348установок code-review-excellence Seth Hobson Скилл помогает разбирать pull request по этапам, находить ошибки и давать конкретную обратную связь. Подойдёт для ревью кода и настройки командных стандартов. Claude Code CX Codex Cursor 30 193установок

Похожие

eval-driven-dev официальный github Настраивает сквозную оценку Python-приложений с LLM: критерии, тестовые данные и проверку результатов. Нужен при QA, бенчмарках и поиске неверных ответов. GitHub Copilot 3 900установок autoresearch официальный luiscantero Скилл запускает цикл экспериментов над кодом: меняет его, проверяет метрику и оставляет только улучшения. Подходит для задач с измеримым результатом. GitHub Copilot 3 400установок secops-detection-engineering официальный Google LLC Скилл помогает писать, проверять, тестировать и развёртывать правила YARA-L 2.0 в Google SecOps. Подходит для поиска пробелов в покрытии. Claude Code Gemini CLI CX Codex 1 900установок spring-boot-testing официальный github Подбирает способ тестирования для Spring Boot 4: от проверки отдельного слоя до интеграционного теста. Пригодится, когда нужно выбрать подходящие аннотации и инструменты. GitHub Copilot 2 000установок github-actions-efficiency официальный github Скилл проверяет GitHub Actions, ищет источники лишних CI-минут и предлагает правки для снижения затрат. Пригодится для аудита workflow и настройки CI. GitHub Copilot 2 000установок improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. Claude Code 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. Claude Code 1 141 062установок

Вопросы о evaluation-methodology

Как установить evaluation-methodology в Claude Code?

Выполните команду npx skills add wshobson/agents --skill evaluation-methodology -a claude-code в терминале или добавьте плагин через /plugin install plugin-eval@claude-code-workflows.

Что делает evaluation-methodology?

Скилл документирует формулы скоринга, веса метрик и уровни проверки PluginEval от статического линтинга до прогонов Монте-Карло.

Какие антипаттерны находит статический слой?

Линтер отслеживает шесть ошибок: OVER_CONSTRAINED, EMPTY_DESCRIPTION, MISSING_TRIGGER, BLOATED_SKILL, ORPHAN_REFERENCE и DEAD_CROSS_REF. Каждая ошибка снижает оценку на 5%.

Исходный текст

SKILL.md · MIT
---
name: evaluation-methodology
description: "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 like Neon."
---

# 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](references/rubrics.md). Fixes for each
anti-pattern and tips for each dimension are in
[references/improving-scores.md](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%:

```text
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 |
| `robustness` | 0.05 | none | none | 0.80 |
| `structural_completeness` | 0.03 | 0.90 | none | none |
| `code_template_quality` | 0.02 | none | none | none |
| `ecosystem_coherence` | 0.02 | 0.85 | none | none |

A cell reads "none" when its layer produces no score for the dimension, even where
`LAYER_BLENDS` lists a weight. No layer produces `code_template_quality`, so it's always
unmeasured. For a plugin directory, the composite is the static layer's mean score across the
plugin's skills and agents, times 100, times the penalty for the plugin's anti-pattern count.

## Badges and grades

Badges come from the composite score alone. Platinum needs at least 90, Gold at least 80, Silver
at least 70, and Bronze at least 60. `Badge.from_scores` accepts an Elo rating, but no command
computes one. Plugin-level badges, including the ones in the weekly CI report, come from the
static layer alone. Skill-level badges at `standard` depth or deeper also include the
experimental layers.

Each measured dimension gets a letter grade on the 0 to 100 scale, from A+ at 97 down to D- at
60, and F below 60.

## Usage

```bash
plugin-eval score ./path/to/skill --depth quick     # static lint only
plugin-eval score ./path/to/skill                   # static and judge
plugin-eval certify ./path/to/skill                 # deep depth
plugin-eval compare ./skill-a ./skill-b             # quick depth by default
plugin-eval score ./path/to/skill --depth quick --output json --threshold 70
```

At `standard` depth or deeper, `score`, `certify`, and `compare` print a note on stderr that the
judge and Monte Carlo layers are experimental. For a plugin directory, the CLI prints a warning
that only the static layer runs instead. With `--threshold`, the command exits with code 1 when the
composite is below the value. `plugin-eval init` writes a corpus index, but no other command
reads it.

## Examples

An abridged example of the JSON output follows. Scripts can read `composite.score` from it:

```json
{
  "layers": [{"layer": "static", "score": 0.75, "sub_scores": {}, "anti_patterns": []}],
  "composite": {"score": 76.9, "ci_lower": null, "ci_upper": null, "badge": "silver",
                "confidence_label": "Estimated", "dimensions": []},
  "elo": null
}
```

## Troubleshooting

- When a score drops after you add content, check `layers[0].anti_patterns` in the JSON.
- If `triggering_accuracy` is low at quick depth, add a trigger phrase such as "Use this skill
  when" to the description, followed by several comma-separated contexts.
- Judge scores change between runs, because the model writes new test prompts and tasks each
  time. Use the static layer for comparisons you want to repeat.
- If stderr says the judge could not measure some dimensions, install the LLM extra with
  `uv sync --extra llm`.

## Related

The `eval-judge` agent scores the four judge dimensions inside Claude Code, and the
`eval-orchestrator` agent runs the CLI and merges the results.

© Seth Hobson · MIT · wshobson/agents

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой