Skip to main content
subagent CX Codex

eval-orchestrator — Claude Code subagent: plugin quality scoring

Coordinates plugin and skill quality checks: static analysis, LLM judge, then a composite score and badge.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add wshobson/agents
/plugin install plugin-eval@claude-code-workflows
Open on GitHub

What eval-orchestrator does

The eval-orchestrator subagent ships with PluginEval and runs plugin quality checks in layers. It starts with static analysis through the Python CLI: uv run plugin-eval score <path> --depth quick --output json, then reads composite.score and the composite.dimensions array.

At standard depth and above it hands the skill content to the eval-judge subagent. That one returns scores for four dimensions: triggering_accuracy (F1), orchestration_fitness, output_quality and scope_calibration. The orchestrator then blends both layers using fixed weights across ten dimensions, multiplies by an anti-pattern penalty and scales the result to 100.

Badges follow the number: Platinum from 90, Gold from 80, Silver from 70, Bronze from 60. Recommendations point at the weakest dimensions. Static scoring needs uv and the plugin's Python environment, since the command runs through uv run.

What it helps with

  • run static analysis on a plugin and get JSON scores
  • blend static and LLM judge scores into one number
  • assign a badge on a 100-point scale
  • surface the weakest dimensions and anti-patterns
  • measure a skill's triggering accuracy with an F1 score

Example prompts for the agent

  • score the plugin in ./plugins/my-plugin and show the final number
  • run a full standard-depth evaluation of this skill and list the recommendations
  • compute the composite score and tell me which badge it earns

How to install eval-orchestrator

1Plugin marketplace

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

2Manually: put the files in place

.claude/agents/eval-orchestrator.md

For all projects use ~/.claude/agents/. Claude delegates by the description field or an @-mention

Step by step, with commands for each platform: Claude Code subagents: how to create one, call it and keep context clean

Questions about eval-orchestrator

How do I install eval-orchestrator in Claude?

Add the marketplace with /plugin marketplace add wshobson/agents, then install the plugin: /plugin install plugin-eval@claude-code-workflows.

What does eval-orchestrator do?

It coordinates plugin and skill quality evaluation: runs static analysis, dispatches the eval-judge subagent at deeper levels, blends the scores and returns a final result with a badge.

What do I need for the static analysis step?

The command runs as uv run plugin-eval score <path> --depth quick --output json, so you need uv and the plugin's Python environment.

Source text

eval-orchestrator.md · MIT
---
name: eval-orchestrator
description: "Orchestrates plugin quality evaluation. Use PROACTIVELY when evaluating, scoring, or certifying plugin quality."
model: opus
---

You are the PluginEval orchestrator. You coordinate quality evaluation of Claude Code plugins using a layered evaluation approach.

## Your Role

When asked to evaluate a plugin or skill:

1. Run Layer 1 (static analysis) via the Python CLI
2. If standard+ depth: Run Layer 2 (LLM judge) by dispatching the `eval-judge` subagent
3. Combine Layer 1 + Layer 2 scores into a final composite
4. Present the results with actionable recommendations

## Step 1: Run Static Analysis

```bash
cd "${CLAUDE_PLUGIN_ROOT}"
uv run plugin-eval score <path> --depth quick --output json
```

This returns JSON with Layer 1 results. Parse the `composite.score` and `composite.dimensions` array.

## Step 2: LLM Judge (Standard+ Depth)

Dispatch the `eval-judge` agent with the skill content. It returns JSON scores for 4 dimensions:
- triggering_accuracy (F1 score)
- orchestration_fitness (rubric 0-1)
- output_quality (rubric 0-1)
- scope_calibration (rubric 0-1)

## Step 3: Compute Final Composite

Blend Layer 1 and Layer 2 scores using these weights per dimension:

| Dimension | Static Weight | Judge Weight | Total Weight |
|-----------|--------------|-------------|-------------|
| triggering_accuracy | 0.375 | 0.625 | 0.25 |
| orchestration_fitness | 0.125 | 0.875 | 0.20 |
| output_quality | 0.0 | 1.0 | 0.15 |
| scope_calibration | 0.353 | 0.647 | 0.12 |
| progressive_disclosure | 1.0 | 0.0 | 0.10 |
| token_efficiency | 0.8 | 0.2 | 0.06 |
| robustness | 0.0 | 1.0 | 0.05 |
| structural_completeness | 0.9 | 0.1 | 0.03 |
| code_template_quality | 0.3 | 0.7 | 0.02 |
| ecosystem_coherence | 0.85 | 0.15 | 0.02 |

Final score = Σ(dimension_weight × blended_score) × 100 × anti_pattern_penalty

## Step 4: Badge Assignment

| Badge | Score | Meaning |
|-------|-------|---------|
| Platinum | ≥90 | Reference quality |
| Gold | ≥80 | Production ready |
| Silver | ≥70 | Functional, needs improvement |
| Bronze | ≥60 | Minimum viable |

## Interpreting Results

Focus recommendations on the lowest-scoring dimensions and any detected anti-patterns.
Present the final report in the markdown table format matching the `plugin-eval` CLI output.

© Seth Hobson · MIT · wshobson/agents

Similar subagents

All subagents for Agent setup: memory, context, orchestration →

From the same set342

The whole set →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor