plugin-eval — Codex skill: evaluation and setup
This skill reviews local skills and plugins, explains their scores, and plans the next run. Use it for token measurements or starter benchmarks.
npx skills add openai/plugins --skill plugin-eval -a codexWhat plugin-eval does
plugin-eval is a local entry point for reviewing a skill, plugin, or other folder. It can produce an analysis, explain the reasons behind a score, identify the first fixes, and map a request to the next workflow. Its commands include plugin-eval start, plugin-eval analyze, plugin-eval explain-budget, and plugin-eval measurement-plan.
The skill can initialize .plugin-eval/benchmark.json, prepare a dry run, and guide a starter benchmark. It distinguishes static budget estimates from results produced by a measurement harness. When a skill is named without a path, resolve it under ~/.codex/skills/<skill-name> or a repository-local skills/<skill-name> directory; an ambiguous match needs clarification.
Rewrite requests are routed to ../improve-skill/SKILL.md, while custom scoring rubrics go to ../metric-pack-designer/SKILL.md. Separate handoffs cover evaluation of an individual skill and a plugin bundle.
What it helps with
- review a local skill or plugin
- explain why a score was assigned
- identify the first fix to make
- measure actual token usage
- set up a starter benchmark
Example prompts for the agent
- Evaluate the local skill at
./skills/game-devand explain the result. - Why did this skill receive that score, and what should I fix first?
- Measure this plugin's actual token usage and prepare the next run.
How to install plugin-eval
1Skills CLI (Vercel)
npx skills add openai/plugins --skill plugin-eval -a codex2Manually: put the files in place
.agents/skills/plugin-eval/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill plugin-eval -a claude-code2Manually: put the files in place
~/.claude/skills/plugin-eval/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/plugin-eval/
Manually: put the files in place
.cursor/skills/plugin-eval/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins plugin-eval2Manually: put the files in place
.github/skills/plugin-eval/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/plugin-eval/skills/plugin-evalManually: put the files in place
.devin/skills/plugin-eval/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: Codex skills: how to install, where they live, how to call them
Questions about plugin-eval
How do I install plugin-eval in Codex?
Run these steps in order: npx skills add openai/plugins --skill plugin-eval, then npx skills add openai/plugins --skill plugin-eval -a codex. The installed file is available at .agents/skills/plugin-eval/SKILL.md.
What does plugin-eval do?
It reviews local skills and plugins, explains evaluation results, points to the first fixes, and helps prepare token measurements and benchmark runs.
Where does plugin-eval look when I provide only a skill name?
It checks ~/.codex/skills/<skill-name> first, then a repository-local skills/<skill-name> directory. An ambiguous result requires clarification.
Source text
SKILL.md · MIT
--- name: plugin-eval description: Help engineers evaluate a local skill or plugin, explain why it scored that way, show what to fix first, measure real token usage, benchmark starter scenarios, or decide what to run next. Use when the user says things like "evaluate this skill", "give me an analysis of the game dev skill", "why did this score that way", "what should I fix first", "measure the real token usage of this skill", or "what should I run next?". --- # Plugin Eval Use this as the beginner-friendly umbrella entrypoint for local Codex skill and plugin evaluation. ## Start Here 1. Resolve whether the target path is a skill, a plugin, or another local folder. 2. Prefer the chat-first router when the user speaks naturally or is not sure which command they need: ```bash plugin-eval start <path> --request "<user request>" --format markdown ``` 3. Route natural chat requests to the matching workflow: - "Give me an analysis of the game dev skill." -> resolve the named skill path, run `plugin-eval analyze <path> --format markdown`, then initialize a benchmark and show the setup questions needed to tailor `benchmark.json` - "Evaluate this skill." -> `plugin-eval analyze <path> --format markdown` - "Why did this score that way?" -> `plugin-eval analyze <path> --format markdown` - "What should I fix first?" -> `plugin-eval analyze <path> --format markdown` - "Explain the token budget for this skill." -> `plugin-eval explain-budget <path> --format markdown` - "Measure the real token usage of this skill." -> benchmark flow, then `plugin-eval measurement-plan` - "Help me benchmark this plugin." -> starter benchmark flow - "What should I run next?" -> `plugin-eval start <path> --request "What should I run next?" --format markdown` 4. If the user wants rewrite help after evaluation, route to `../improve-skill/SKILL.md`. 5. If the user wants a custom rubric, route to `../metric-pack-designer/SKILL.md`. 6. If the user names a skill instead of giving a path, resolve it locally before running commands: - check `~/.codex/skills/<skill-name>` first - then check any repo-local `skills/<skill-name>` directory - if the name is still ambiguous, ask one short clarifying question before continuing 7. When the request sounds like "analysis" rather than just "evaluate", do the fuller path: - run the report - initialize `.plugin-eval/benchmark.json` - surface the setup questions that will refine the starter scenarios - preview the dry-run command the user can execute next ## Chat Requests To Recognize - `Give me an analysis of the game dev skill.` - `Evaluate this skill.` - `Evaluate this plugin.` - `Why did this score that way?` - `What should I fix first?` - `Explain the token budget for this skill.` - `Measure the real token usage of this skill.` - `Help me benchmark this plugin.` - `What should I run next?` ## Matching Commands ```bash plugin-eval start <path> --request "Evaluate this skill." --format markdown plugin-eval start <path> --request "Give me a full analysis of this skill, including benchmark setup." --format markdown plugin-eval analyze <path> --format markdown plugin-eval explain-budget <path> --format markdown plugin-eval measurement-plan <path> --format markdown plugin-eval init-benchmark <path> plugin-eval benchmark <path> --dry-run plugin-eval benchmark <path> ``` ## Output Expectations - Prefer the JSON result as the source of truth. - Lead with `At a Glance`, `Why It Matters`, `Fix First`, and `Recommended Next Step`. - Keep the `why` content terse and easy to skim. - Call out whether budget numbers are static estimates or measured harness results. - Show the user the exact chat phrase they can reuse next, the `plugin-eval start` command that routes it, and the first local workflow command behind it. - When the user asks for an analysis of a named skill, do not stop at the report if benchmark setup is still missing. - When the user is asking about a skill specifically, hand off to `../evaluate-skill/SKILL.md`. - When the user is asking about a plugin bundle, hand off to `../evaluate-plugin/SKILL.md`. ## References - `../../references/chat-first-workflows.md` - `../../references/technical-design.md` - `../../references/evaluation-result-schema.md`
© OpenAI Codex · MIT · openai/plugins