Skip to content

/task

Turn a natural-language description into coder-eval task YAML — minimal prompts, weighted criteria that check output content, validated with `coder-eval plan`. Use when the user wants to write, add, or generate an evaluation task.

From plugin
coder-eval
1566 skills6 commands

Claude Code

$ npx -y skills add UiPath/coder_eval --skill task --agent claude-code

SKILL.md

task.SKILL.md
description: Turn a natural-language description into coder-eval task YAML — minimal prompts, weighted criteria that check output content, validated with `coder-eval plan`. Use when the user wants to write, add, or generate an evaluation task.
allowed-tools: ["Read", "Glob", "Grep", "Write", "Bash"]

Author a coder-eval task

You are writing coder-eval task YAML. The user's request is: `$ARGUMENTS`

If `$ARGUMENTS` is empty, ask what the task should test. Do not invent a subject.

Good tasks use simple prompts: state the goal and the expected output, then let the agent work out the approach. A single request can produce **several** task files — "create tasks for all the registry subcommands" means one task per subcommand.

Step 1 — Understand the request, and check the CLI is there

Run `coder-eval --version` first. Steps 6 and 7 both shell out to it, and finding that out *after* writing several task files means the user gets a bare `command not found` with nothing to act on. Installing this plugin did not install the CLI.

If it is missing, follow `${CLAUDE_PLUGIN_ROOT}/reference/cli-setup.md`: offer the install, **ask before running it**, and confirm with `coder-eval --version` afterwards. Never install unprompted, and do not write any task files if the user declines.

That reference also covers the other half of the version check — whether this project pins a coder-eval version, and what to do when the installed one does not match it.

Then establish:

  • **What is being tested** — which tool, SDK, CLI, skill, or capability?
  • **How many tasks** — one operation, or several?
  • **Difficulty** — smoke, basic, or intermediate?
  • **Dependencies** — network, packages, starter files, external services?

State any assumptions you make rather than silently picking.

Step 2 — Look at what already exists

Find the repository's task tree by following `${CLAUDE_PLUGIN_ROOT}/reference/repo-layout.md`, and say what you resolved. If a task already covers this ground, say so and offer to modify it instead of adding a near-duplicate.

**Repo-local convention beats anything bundled with this plugin — where the two disagree, the repo wins.** Before writing, read what the repository declares about task authoring: its own contributor or convention documents, a task template if it ships one, and a few neighbouring tasks. Adopt what you find — naming, tags, thresholds, weights, where files go — and **say in your report which conventions you adopted**, so the choice is visible rather than implied.

Two limits on that:

  • **A repository that declares nothing** leaves the bundled rubric as the whole answer.

Precedence is about deferring to a local rule that exists, not about doing nothing until one does.

  • **Precedence covers style, not soundness.** If a local convention would produce a

criterion that cannot fail, the rubric's correctness checks still bite — follow the convention where you can, say plainly where you did not and why.

Step 3 — Design the task

**Task ID** — lowercase kebab-case, unique, `<domain>-<action>` (e.g. `registry-list-processes`).

**Initial prompt** — minimal. State the goal and the expected output; nothing else.

  • Good: "Use the `foo` CLI to list the available processes and save the result to

`processes.json`."

  • Bad: a step-by-step recipe with the exact flags, or a restatement of what the

criteria check.

**Key rule: prompts instruct, criteria validate.** Never leak criteria detail into the prompt. If a criterion checks that the output contains a `count` field, the prompt must not mention `count` — otherwise you are testing transcription, not capability.

The subtle version of this, and the easiest to write by accident: a criterion that matches a literal the prompt already dictates. "Use `pypdf` to read the fields" in the prompt plus a criterion grepping for `pypdf` is a criterion that cannot fail — the agent was told the answer. Either the constraint is a real requirement (keep it in the prompt, and score what the agent *did with it* instead) or it is the thing under test (drop it from the prompt). Never both.

(The rubric below carries this same trap as a review-time check, and is the declaration a reviewer applies. The paragraphs above are the authoring-time version: they exist to stop you writing it in the first place.)

**Success criteria** — read `${CLAUDE_PLUGIN_ROOT}/reference/task-rubric.md` *before* choosing them. It is what this work will be checked against in step 5, and a criterion set designed against it is far cheaper than one repaired after the fact.

Pick by what actually needs verifying:

| What to check | Criterion type | | --- | --- | | File exists, has content, matches a pattern | `file_check` (prefer over `file_exists` + `file_contains`) | | JSON structure or specific values | `json_check` (JSON Schema + JMESPath assertions) | | A script runs, tests pass, or a scorer emits a float | `run_command` | | Output resembles a reference solution | `reference_comparison` | | Subjective or open-ended quality | `llm_judge` | | A deep, tool-using verdict on the sandbox | `agent_judge` (expensive) | | The agent used a specific tool | `command_executed` | | Tool-call efficiency against a budget | `commands_efficiency` | | The agent engaged a target skill | `skill_triggered` (see `/coder-eval:check-skill`) | | A predicted label vs. ground truth | `classification_match` |

Read `${CLAUDE_PLUGIN_ROOT}/reference/criteria.md` for each type's exact fields — it is generated from coder-eval's own models, so it is the authoritative field list.

Rules that matter:

  • **Every task needs at least one criterion that checks output *content***, not just

existence. A suite of `file_exists` checks passes when the agent writes an empty file.

  • Use `command_executed` sparingly — only when it genuinely matters *how* the result was

produced. Set `require_success: true` whenever the command's success is what you are grading; the permissive default (`false`) cou

Read more
@uipath
Ships withcoder-eval

Playwright for coding agents — one declarative test file, any agent runtime, a real sandbox, and a pass/fail gate in CI.

Stars on GitHub

Momentum

stars in total
156
Star history of UiPath/coder_eval on GitHub, a chart by star-history.com

Other skills on coder-eval.

analyze
Auto-invoked

analyze

Analyze a finished coder-eval run and write analysis.md — cluster failures into systemic patterns and recommend fixes. Use when…

@uipath@uipathInstall Skill
check-skill
Auto-invoked

check-skill

Generate and run a coder-eval activation suite for a Claude Code skill. Use when the user asks whether a skill triggers, wants to…

@uipath@uipathInstall Skill
ci
Auto-invoked

ci

Generate a GitHub Actions workflow that runs a coder-eval suite as a CI gate or on a schedule, using the published composite…

@uipath@uipathInstall Skill
init
Auto-invoked

init

Set up coder-eval in this repository — scan for what is worth evaluating (Claude Code skills, an MCP server, a CLI), then…

@uipath@uipathInstall Skill
lint-tasks
Auto-invoked

lint-tasks

Review existing coder-eval task YAML — find criteria that cannot fail, prompts that leak the answer, and near-duplicate tasks,…

@uipath@uipathInstall Skill

More skills from other plugins.

api-review

api-review

Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…

@microsoft@microsoftInstall Skill
add-e2e-selectors

add-e2e-selectors

Add reliable @grafana/e2e-selectors to interactive elements and key containers in the Grafana frontend. Use when adding e2e…

grafana2d78k
@grafana@grafanaInstall Skill
promptfoo-evals

promptfoo-evals

Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…

promptfoo10d27k
@promptfoo@promptfooInstall Skill
deepeval

deepeval

DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…

@confident-ai@confident-aiInstall Skill

Questions about task.

Which coding agents can use task?
task installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.