/coder-eval-task-create
Create evaluation task YAML files from a natural language description
$ npx -y skills add UiPath/coder_eval --agent claude-codeShips with coder-eval. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/coder-eval-task-create
Context preview
What this command does when you run it.
Create evaluation task YAML files from a natural language description
Command definition
coder-eval-task-create.mdallowed-tools: Read(*), Glob(*), Grep(*), Bash(ls:*), Bash(uv run coder-eval plan:*), Write(tasks/*), Agent
description: Create evaluation task YAML files from a natural language description
Context
You are creating coder_eval task YAML files. The user's request is: `$ARGUMENTS`
This skill generates well-structured, minimal task definitions that follow project conventions. Tasks use simple prompts — state the goal and expected output, let the agent figure out the approach.
A single user request can produce **multiple task files** — e.g., "create tasks for all uip maestro flow registry subcommands" should produce one task per subcommand (pull, list, search, get, etc.).
Step 1: Understand the Request
Parse the user's description to determine:
- **What the task tests** — which tool, SDK, CLI, or capability?
- **How many tasks** — does the description cover one operation or multiple? If the user says "create tasks for X, Y, and Z" or "create tasks for all <subcommands>", produce one task file per distinct operation.
- **Difficulty** — smoke test, basic, intermediate, or complex?
- **Dependencies** — does it need network, packages, template files, or external services?
If the description is vague, make reasonable assumptions and note them in the output.
Step 2: Research Existing Tasks
Before creating, check for overlap:
- Use `Glob` to find existing task files: `tasks/**/*.yaml`
- Use `Grep` to search for related task IDs or keywords
- If similar tasks exist, read them to follow the same conventions (naming, tags, criteria patterns)
- If the task already exists, tell the user and suggest modifications instead
Also read `docs/TASK_DEFINITION_GUIDE.md` for the authoritative reference on task structure.
Step 3: Design the Task
Task ID
- Lowercase kebab-case, unique, descriptive
- Pattern: `<domain>-<action>` (e.g., `uipath-process-list`)
Initial Prompt
- **Keep it minimal**: State the goal and expected output. Let the agent figure out the approach.
- Example: "Use the `uip` CLI to list Flow processes and save the results to processes.json."
- **Key rule**: The prompt should read like a natural human request, NOT leak implementation details that criteria check. Criteria validate; prompts instruct.
- Don't include step-by-step instructions, specific flags, or format specifications — that's what makes a task a good test of agent capability.
Success Criteria
Choose criteria types based on what needs to be verified:
| What to check | Criterion type | When to use | |---------------|---------------|-------------| | File was created | `file_exists` | Basic existence check | | File has expected content | `file_contains` | String presence/absence | | File + content + regex | `file_check` | Unified check (preferred over file_exists + file_contains) | | JSON structure/values | `json_check` | JSON validation + JMESPath assertions | | Script runs / tests pass | `run_command` | Exit code + optional stdout matching or float scoring (e.g. run `pytest` and check exit code / parse output) | | Regex match on file | `file_matches_regex` | Binary regex match on file content | | Code similarity vs reference | `reference_comparison` | AST/token/complexity/quality similarity vs a reference solution | | Subjective / open-ended quality | `llm_judge` | An LLM grades the artifacts (+ optional trajectory / reference) against a rubric prompt | | Deep, tool-using verdict | `agent_judge` | Spawns a Claude Code SDK sub-agent to investigate the sandbox and return a JSON verdict (expensive) | | Agent used a specific tool | `command_executed` | Verify the agent ran expected commands | | Agent tool-call efficiency | `commands_efficiency` | Score tool-call count against an expected budget | | Agent engaged a skill | `skill_triggered` | Did the agent invoke the target skill (Skill tool / file read)? | | Observed vs expected label | `classification_match` | File-based label match for classification suites (emits P/R/F1) | | UiPath agent eval | `uipath_eval` | UiPath agent evaluation results |
**Criteria design rules:**
- Every task needs at least one criterion that validates the **output content**, not just existence
- Use `run_command` with `expected_stdout` + `stdout_match: regex` to validate script output
- Use `command_executed` sparingly — only when verifying the agent used a specific tool matters. Set `require_success: false` unless the command must succeed.
- Use `file_check` instead of separate `file_exists` + `file_contains` when checking the same file
- Set `weight` to reflect importance: 0.5 for nice-to-have, 1.0 for standard, 1.5-2.0 for critical
- Default `pass_threshold: 0.9` is fine for most criteria. Use `1.0` only for binary checks.
Sandbox Configuration
sandbox:
driver: "tempdir"
python: {} # Creates venv with no extra packages
# python:
# env_packages: [pytest, requests] # If packages are neededAdd `template_sources` if the task needs starter files (e.g., a pre-existing codebase to modify).
Agent Configuration
Only include if the task needs non-default settings:
agent:
type: "claude-code"
permission_mode: "acceptEdits"
allowed_tools: ["Bash", "Read", "Write"] # Minimal set needed
run_limits:
max_turns: 15 # Estimate: ~2x expected commands
Tags
Apply relevant tags from the project conventions:
- **Difficulty**: `smoke`, `basic`, `intermediate`
- **Quality**: `golden` (high-confidence reference tasks)
- **Content**: `pure-python`, `network`, `integration`
- **Domain**: `flow`, `is`, `uipcli`, `uipath-python`, `uipath-langchain`
Step 4: Write the Task File(s)
Write YAML file(s) to `tasks/` using the appropriate subdirectory. If creating multiple tasks, write them all:
- `tasks/` for general tasks
- `tasks/uipath_flow/` for UiPath Flow tasks
- `tasks/uipath_is/` for Integration Service tasks
- Create new subdirectories if needed for a new domain
**File naming**: `<t
Read more
allowed-tools: Read(*), Glob(*), Grep(*), Bash(ls:*), Bash(uv run coder-eval plan:*), Write(tasks/*), Agent description: Create evaluation task YAML files from a natural language description
Context
You are creating coder_eval task YAML files. The user's request is: `$ARGUMENTS`
This skill generates well-structured, minimal task definitions that follow project conventions. Tasks use simple prompts — state the goal and expected output, let the agent figure out the approach.
A single user request can produce **multiple task files** — e.g., "create tasks for all uip maestro flow registry subcommands" should produce one task per subcommand (pull, list, search, get, etc.).
Step 1: Understand the Request
Parse the user's description to determine:
- **What the task tests** — which tool, SDK, CLI, or capability?
- **How many tasks** — does the description cover one operation or multiple? If the user says "create tasks for X, Y, and Z" or "create tasks for all <subcommands>", produce one task file per distinct operation.
- **Difficulty** — smoke test, basic, intermediate, or complex?
- **Dependencies** — does it need network, packages, template files, or external services?
If the description is vague, make reasonable assumptions and note them in the output.
Step 2: Research Existing Tasks
Before creating, check for overlap:
- Use `Glob` to find existing task files: `tasks/**/*.yaml`
- Use `Grep` to search for related task IDs or keywords
- If similar tasks exist, read them to follow the same conventions (naming, tags, criteria patterns)
- If the task already exists, tell the user and suggest modifications instead
Also read `docs/TASK_DEFINITION_GUIDE.md` for the authoritative reference on task structure.
Step 3: Design the Task
Task ID
- Lowercase kebab-case, unique, descriptive
- Pattern: `<domain>-<action>` (e.g., `uipath-process-list`)
Initial Prompt
- **Keep it minimal**: State the goal and expected output. Let the agent figure out the approach.
- Example: "Use the `uip` CLI to list Flow processes and save the results to processes.json."
- **Key rule**: The prompt should read like a natural human request, NOT leak implementation details that criteria check. Criteria validate; prompts instruct.
- Don't include step-by-step instructions, specific flags, or format specifications — that's what makes a task a good test of agent capability.
Success Criteria
Choose criteria types based on what needs to be verified:
| What to check | Criterion type | When to use | |---------------|---------------|-------------| | File was created | `file_exists` | Basic existence check | | File has expected content | `file_contains` | String presence/absence | | File + content + regex | `file_check` | Unified check (preferred over file_exists + file_contains) | | JSON structure/values | `json_check` | JSON validation + JMESPath assertions | | Script runs / tests pass | `run_command` | Exit code + optional stdout matching or float scoring (e.g. run `pytest` and check exit code / parse output) | | Regex match on file | `file_matches_regex` | Binary regex match on file content | | Code similarity vs reference | `reference_comparison` | AST/token/complexity/quality similarity vs a reference solution | | Subjective / open-ended quality | `llm_judge` | An LLM grades the artifacts (+ optional trajectory / reference) against a rubric prompt | | Deep, tool-using verdict | `agent_judge` | Spawns a Claude Code SDK sub-agent to investigate the sandbox and return a JSON verdict (expensive) | | Agent used a specific tool | `command_executed` | Verify the agent ran expected commands | | Agent tool-call efficiency | `commands_efficiency` | Score tool-call count against an expected budget | | Agent engaged a skill | `skill_triggered` | Did the agent invoke the target skill (Skill tool / file read)? | | Observed vs expected label | `classification_match` | File-based label match for classification suites (emits P/R/F1) | | UiPath agent eval | `uipath_eval` | UiPath agent evaluation results |
**Criteria design rules:**
- Every task needs at least one criterion that validates the **output content**, not just existence
- Use `run_command` with `expected_stdout` + `stdout_match: regex` to validate script output
- Use `command_executed` sparingly — only when verifying the agent used a specific tool matters. Set `require_success: false` unless the command must succeed.
- Use `file_check` instead of separate `file_exists` + `file_contains` when checking the same file
- Set `weight` to reflect importance: 0.5 for nice-to-have, 1.0 for standard, 1.5-2.0 for critical
- Default `pass_threshold: 0.9` is fine for most criteria. Use `1.0` only for binary checks.
Sandbox Configuration
sandbox:
driver: "tempdir"
python: {} # Creates venv with no extra packages
# python:
# env_packages: [pytest, requests] # If packages are neededAdd `template_sources` if the task needs starter files (e.g., a pre-existing codebase to modify).
Agent Configuration
Only include if the task needs non-default settings:
agent: type: "claude-code" permission_mode: "acceptEdits" allowed_tools: ["Bash", "Read", "Write"] # Minimal set needed run_limits: max_turns: 15 # Estimate: ~2x expected commands
Tags
Apply relevant tags from the project conventions:
- **Difficulty**: `smoke`, `basic`, `intermediate`
- **Quality**: `golden` (high-confidence reference tasks)
- **Content**: `pure-python`, `network`, `integration`
- **Domain**: `flow`, `is`, `uipcli`, `uipath-python`, `uipath-langchain`
Step 4: Write the Task File(s)
Write YAML file(s) to `tasks/` using the appropriate subdirectory. If creating multiple tasks, write them all:
- `tasks/` for general tasks
- `tasks/uipath_flow/` for UiPath Flow tasks
- `tasks/uipath_is/` for Integration Service tasks
- Create new subdirectories if needed for a new domain
**File naming**: `<t
Showing the first part of this file.
Coder Eval (pip install coder-eval / uv tool install coder-eval) is an open-source framework for evaluating and benchmarking AI coding agents and their skills — built for CLI and skill builders — with sandboxing, reproducibility, and data-driven analysis.
Other commands on coder-eval.
- /coder-eval-code-review-full
Review the codebase across critical quality axes
Open command - /coder-eval-code-review-wf
Workflow-based 8-axis codebase review — per-axis sub-workflows, adversarial verify, deterministic scoring + rendering
Open command - /coder-eval-code-review
Run a multi-model code review on uncommitted changes or a described set of files
Open command - /coder-eval-create-plan
Create a structured, phased implementation plan for a feature or change in the coder_eval codebase, executable from a fresh session by /coder-eval-implement-plan
Open command - /coder-eval-implement-plan
Implement an approved coder_eval plan phase by phase with risk-scaled per-phase review, then a final code review
Open command - /coder-eval-review
Generate per-task review.json (summary + tags) for a completed run
Open command

