init · uipath — Claude Code skill: what it does, how to install
Scans a repository for testable tools like MCP servers or CLIs and scaffolds a starter test task for coder-eval. It sets up an actionable benchmark suite.
npx skills add UiPath/coder_eval --skill init -a claude-codeWhat init does
This skill bootstraps a testing suite using the coder-eval runner. It inspects the codebase to discover what can be verified, checking for Claude Code skills, MCP server definitions in files like .mcp.json, or CLI commands declared in pyproject.toml or package.json. If the repository already contains evaluation tasks, it reports the current inventory and stops. Existing tasks are never overwritten.
When generating the test setup, the skill creates a single functional task rather than an empty folder. It creates validation criteria, appends needed environment keys such as ANTHROPIC_API_KEY to .env.example, and confirms .env is listed in .gitignore. It then runs coder-eval plan <task-directory>/*.yaml until the schema validation returns code 0.
Installing the skill does not install the coder-eval CLI binary. Without that binary present in your environment, execution halts on the first step.
What it helps with
- scan a codebase for testable CLI tools or MCP servers
- scaffold a runnable YAML task for coder-eval
- populate .env.example with required agent keys
- validate task schema definitions using coder-eval plan
Example prompts for the agent
- Set up coder-eval in this repository and create a test for our CLI
- Scan this project for MCP servers and prepare a test task for coder-eval
- Initialize a coder-eval suite to test our custom skills
How to install init
1Skills CLI (Vercel)
npx skills add UiPath/coder_eval --skill init -a claude-code2Manually: put the files in place
~/.claude/skills/init/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/init/
1Skills CLI (Vercel)
npx skills add UiPath/coder_eval --skill init -a codex2Manually: put the files in place
.agents/skills/init/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add UiPath/coder_eval --skill init -a cursor2Manually: put the files in place
.cursor/skills/init/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install UiPath/coder_eval init2Manually: put the files in place
.github/skills/init/SKILL.md1Skills CLI (Vercel)
npx skills add UiPath/coder_eval --skill init -a gemini-cli2Platform CLI
gemini skills install https://github.com/UiPath/coder_eval --path plugins/coder-eval/skills/initManually: put the files in place
.devin/skills/init/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add UiPath/coder_eval --skill init -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about init
How do I install init in Claude Code?
Run npx skills add UiPath/coder_eval --skill init -a claude-code in your terminal. You can also place the file directly at ~/.claude/skills/init/SKILL.md.
What does the init skill do?
It scans your repository for skills, MCP servers, or CLI scripts and generates an initial evaluation task for coder-eval. It also creates .env.example and runs schema checks.
Will init overwrite existing evaluation tasks?
No, it checks for existing test directories before touching any files. If it finds prior tasks, it lists them and halts so your existing work stays intact.
Source text
SKILL.md · Apache-2.0
---
description: Set up coder-eval in this repository — scan for what is worth evaluating (Claude Code skills, an MCP server, a CLI), then scaffold a task directory with one real task and the command to run it.
disable-model-invocation: true
allowed-tools: ["Read", "Glob", "Grep", "Write", "Bash"]
---
# Set up coder-eval in this repository
Goal: leave the user with a task directory containing **one real task** they can run
immediately, not an empty scaffold. The task must exercise something this repository
actually ships.
The user's request is: `$ARGUMENTS`
## Step 1 — Check prerequisites
Run `coder-eval --version`. Installing this plugin did not install the CLI, and
every later step needs it.
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 continue 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.
## Step 2 — Check whether this repository is already configured
This skill scaffolds a first suite. Run against a repository that already has one, it
would write a "first task" beside an existing tree and report success — so find out
before writing anything.
Locate the eval tree per `${CLAUDE_PLUGIN_ROOT}/reference/repo-layout.md`. **If the
repository already has tasks, report the inventory and stop**: how many task files and
where, how many run directories, and whether there are experiments. Then point the user
at the skills that act on what exists —
- `/coder-eval:lint-tasks` to review the tasks already there;
- `/coder-eval:analyze` to read a finished run.
Only scaffold if the repository has none, or if the user explicitly asks for more after
seeing the inventory. **Never overwrite an existing task file**, whatever they ask for;
add alongside it.
A repository with tasks but no experiments is **partially** configured, not empty.
Report that as it is and offer the missing piece — do not scaffold a first task as
though there were nothing there.
## Step 3 — Scan for what is testable
Look for these, in priority order, and **report what you found before writing
anything**:
1. **Claude Code skills** — glob `.claude/skills/*/SKILL.md` and `**/skills/*/SKILL.md`.
Skills are the highest-value thing to evaluate, because whether they trigger is
invisible until it fails. If you find any, recommend `/coder-eval:check-skill` for
each of them — that is a purpose-built activation suite, not something to hand-roll
here.
2. **An MCP server** — an `.mcp.json`, an `mcpServers` key in `package.json` or
`pyproject.toml`, or a server entry point (a `server.py` / `index.ts` that registers
tools). Note which tools it exposes.
3. **A CLI entry point** — `[project.scripts]` in `pyproject.toml`, `bin` or `scripts` in
`package.json`, or a `Makefile` with usable targets.
If the repository is a monorepo with many skill or package directories, cap the scan
and ask which subtree to focus on rather than reporting fifty candidates.
If you find **nothing** in these three categories, say so plainly. Then offer the
smallest useful thing instead — a task that runs a script or test command the repo
already has and checks its output — rather than scaffolding an empty suite that proves
nothing.
## Step 4 — Scaffold one real task
Write into the tree step 2 resolved. If the repository has none, propose a location and
ask. Step 2's never-overwrite rule still applies here — it is the one place that rule
lives.
Write one task derived from what step 3 found:
- **A CLI** — a task whose prompt asks for something the CLI does, with criteria that
check the resulting file's *content*, not just that a file appeared.
- **An MCP server** — a task that exercises one specific tool and verifies its effect.
- **Skills** — point at `/coder-eval:check-skill` instead; an activation suite is a
different shape from a capability task and that skill builds it properly.
Prompts instruct, criteria validate. Do not restate in the prompt what the criteria
check — a prompt that says "make sure the file contains X" tests reading
comprehension, not capability.
Before writing the criteria, read `${CLAUDE_PLUGIN_ROOT}/reference/task-rubric.md`. It is
the shared checklist for whether a task can pass for the wrong reason, and the one task you
scaffold here is the example every later task in this repository gets modelled on — so it
is worth getting right rather than fixing later. For criterion types and their fields, read
`${CLAUDE_PLUGIN_ROOT}/reference/criteria.md`.
Use `/coder-eval:task` if the user wants more tasks after this one; it is the same
authoring loop with a natural-language brief.
## Step 5 — Environment variables
Write the variables the chosen agent needs (e.g. `ANTHROPIC_API_KEY` for the default
`claude-code` agent) to **`.env.example`** — create it or append to it.
Never write `.env`: it may already hold real secrets. If `.env` does not exist, check
whether it is gitignored before suggesting the user create one, and say so if it is
not.
## Step 6 — Validate
Run `coder-eval plan <task-directory>/*.yaml` and iterate until it exits 0. This
validates the task schema through the real models, so a field name you guessed wrong
surfaces here. `plan` takes task *files*: a bare directory argument is rejected
outright (`Expected a YAML task file but got a directory`), so always pass explicit
paths or a glob. Do not suggest `coder-eval plan` with no argument — zero-argument
discovery only works from a coder-eval source checkout and exits 1 anywhere else.
An empty or task-less directory does not produce a meaningful success — if `plan`
reports no tasks, treat that as a failure to scaffold, not a pass. Note that the
bare-directory error is a different outcome: that one means you passed the wrong
argument shape, not that the scaffold is empty.
## Step 7 — Report
Tell the user:
- what you found in the scan, and what you chose to evaluate first;
- the exact command to run it: `coder-eval run <path>`, plus a note that it costs real
tokens and needs the credentials from step 5;
- that `/coder-eval:check-skill` is the next step if the repo ships skills;
- that `/coder-eval:analyze` reads the run directory afterwards, and `/coder-eval:ci`
turns the suite into a GitHub Actions gate.
© UiPath · Apache-2.0 · UiPath/coder_eval
Similar skills
All skills for Testing and QA →init by other authors comes first.