Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/uipath/coder_eval/claude-mdgit clone --depth 1 https://github.com/UiPath/coder_evalWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.11142 | $0.11142 |
| Opus 5 | $0.05571 | $0.05571 |
| Sonnet 5 | $0.02228 | $0.02228 |
| Haiku 4.5 | $0.01114 | $0.01114 |
Grade B, and why
coder_eval CLAUDE.md scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
- **Reference solutions are directory-only, and shielded (partially) from the agent**: `task.reference` is a single required `directory:` (relative to the task YAML) — the inline `code:` / single-file `file:` forms are g How it starts
The opening of the file, as written. The whole thing — 345 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md - AI Assistant Guide
Project reference for AI assistants working on the coder_eval codebase.
Project Overview
coder_eval is a framework for evaluating AI coding agents with sandboxing, reproducibility, and data-driven analysis.
- Python: >=3.13
- License: Apache 2.0
- Entry point:
coder_eval.cli:app(command:coder-eval)
Directory Structure
coder_eval/
├── agent.py # Agent ABC (start, communicate, stop, get_state)
├── config.py # Settings via pydantic-settings (.env loading)
├── sandbox.py # Sandbox manager (tempdir, venv, templates)
├── orchestrator.py # Main evaluation loop
├── reports.py # Markdown/JSON report generation (run-level + per-suite rollup via write_suite_rollups)
├── reports_experiment.py # Experiment/cross-variant report generation
├── reports_junit.py # JUnit XML report from a finalized run dir (run.json spine; for CI test-report ingestion)
├── analysis.py # Command statistics aggregation
├── logging_config.py # Structured logging setup
├── path_utils.py # Run ID generation, path utilities
├── fs_permissions.py # set_permissions: stacked chmod window (via Sandbox.set_permissions)
├── pricing.py # Model pricing / cost calculation (ModelPricing, calculate_cost, register_pricing)
├── litellm_cost.py # Join proxy-captured ACTUAL per-call cost/cache onto turns (LiteLLM backend; apply_actual_cost)
├── utils.py # Version info helpers
│
├── agents/
│ └── claude_code_agent.py # Claude Code SDK agent implementation
│
├── models/ # Pydantic data models (subpackage)
│ ├── __init__.py # Unified exports for all models
│ ├── enums.py # AgentKind, AgentState, FinalStatus, ApiBackend
│ ├── criteria.py # 15 success criterion types + base + union
│ ├── experiment.py # ExperimentDefinition, ExperimentVariant, ResolvedTask, result models
│ ├── judge_defaults.py # DEFAULT_JUDGE_MODEL constant (cycle-free leaf)
│ ├── mutations.py # PromptMutation variants (prefix/suffix/replace/template)
│ ├── results.py # CriterionResult (+ ClassificationCriterionResult), TurnRecord, EvaluationResult, EarlyStopInfo/EarlyStopReason, CriterionAggregate, ThresholdCheck, SuiteRollup
│ ├── routing.py # ApiRoute (DirectRoute/BedrockRoute)
│ ├── sandbox.py # SandboxConfig, ResourceLimits
│ ├── tasks.py # TaskDefinition, AgentConfig, Dataset (dataset fan-out + sample)
│ ├── telemetry.py # CommandTelemetry, CommandStatistics, TokenUsage, ProviderCallCost, ReconciliationMessage, TranscriptMessage
│ └── templates.py # RepoSource, TemplateDirSource, StarterFilesSource
│
├── criteria/ # Criterion checker plugins (one file per type)
│ ├── __init__.py # CriterionRegistry with auto-discovery
│ ├── base.py # BaseCriterion (async _check_impl_async is primary; sync _check_impl derives from it, or vice versa) + @handle_criterion_errors(_async)
│ ├── _classification_aggregate.py # Shared overlay: accuracy / P/R/F1 / confusion matrix
│ ├── classification_match.py # File-based label matcher
│ ├── command_executed.py
│ ├── commands_efficiency.py
│ ├── file_check.py
│ ├── file_contains.py
│ ├── file_exists.py
│ ├── file_matches_regex.py
│ ├── json_check.py
│ ├── llm_judge.py
│ ├── reference_comparison.py
│ ├── run_command.py
│ ├── skill_triggered.py # Binary: did the agent engage the target skill (Skill tool / file read)?
│ └── uipath_eval.py
│
├── evaluation/ # Evaluation orchestration
│ ├── checker.py # SuccessChecker (dispatches to criteria/)
│ ├── judge_context.py # JudgeContextBuilder + shared scrub/truncate/format_details for both judges
│ ├── judge_verdict.py # parse_judge_verdict + span walker (shared verdict parser)
│ ├── sub_agent.py # SubAgentRunner: sandbox-copy + ClaudeCodeAgent lifecycle for judge-style sub-agents
│ └── summaries.py # summarize_commands (shared by orchestrator + llm_judge)
│
├── errors/ # Error handling system
│ ├── agent.py # AgentCrashError + format_timeout_reason / truncate_crash_message helpers
│ ├── categories.py # Error categorization
│ ├── categorization.py # Error classification logic
│ ├── executor.py # Execution with error context (+ on_attempt_error hook)
│ ├── retry.py # Retry logic with exponential backoff
│ └── timeout.py # Timeout handling (TurnTimeoutError carries optional partial TurnRecord)
│
├── orchestration/ # Batch execution utilities
│ ├── batch.py # Parallel task execution (run_batch + run_batch_resolved)
│ ├── config.py # Batch run configuration
│ ├── early_stop.py # validate_early_stop guardrails + EarlyStopWatcher (armed live-verdict observer)
│ ├── evaluation.py # Reference dir resolution + per-run private staging
│ ├── experiment.py # ExperimentRunner, resolve_task_for_variant, load_experiment
│ └── task_loader.py # YAML task loading
│
├── cli/ # CLI commands (Typer + Rich)
│ ├── __init__.py # Typer app setup (core commands)
│ ├── run_command.py # `coder-eval run`
│ ├── plan_command.py # `coder-eval plan`
│ ├── report_command.py # `coder-eval report`
│ ├── run_helpers.py # CLI helper functions
│ ├── console.py # Rich console instance
│ └── utils.py # CLI utilities
│
├── scoring/ # Code similarity scoring
│ ├── ast_similarity.py # AST-based comparison
│ ├── token_similarity.py # Token-based comparison
│ ├── signature_similarity.py # Function signature comparison
│ ├── complexity.py # Cyclomatic complexity comparison
│ ├── quality.py # Quality metrics (annotations, docstrings)
│ └── similarity.py # Unified similarity interface
│
├── streaming/ # Real-time agent event streaming (agent is sole emitter)
│ ├── __init__.py # Unified exports
│ ├── callbacks.py # StreamCallback protocol, TaskScopedCallback, CompositeStreamCallback, safe_emit
│ ├── events.py # Event protocol: Agent/Turn/Tool Start+End + status enums (Pydantic)
│ ├── collector.py # EventCollector: reduces the event stream into a TurnRecord (task.json capture)
│ └── renderers.py # RichStreamRenderer + LoggingStreamRenderer (task.log; both event-driven)
│
├── simulation/ # Multi-turn user simulation (dialog-mode evaluation)
│ ├── __init__.py # Unified exports (UserSimulator, DialogStopReason, evaluate_stop)
│ ├── user_simulator.py # LLM-driven user simulator (Anthropic + Bedrock backends)
│ └── termination.py # Dialog-termination predicate + stop-token handling
│
└── resources/ # Package resources
experiments/ # Experiment definition YAML files
tasks/ # Task definition YAML files
tests/ # Test suite
docs/ # Documentation
templates/ # Sandbox template directories
.claude-plugin/marketplace.json # Makes this repo a Claude Code plugin marketplace (`/plugin marketplace add UiPath/coder_eval`); lists the one plugin below.
plugins/coder-eval/ # The published Claude Code plugin: `.claude-plugin/plugin.json` (its `version` is a derived pin of pyproject's, bumped by release.yml, guarded by tests/test_action_version_pin.py), `skills/<name>/SKILL.md` × 6 (`/coder-eval:init`, `/coder-eval:check-skill`, `/coder-eval:task`, `/coder-eval:lint-tasks`, `/coder-eval:analyze`, `/coder-eval:ci`), and `reference/` — everything a skill reads must live here, since an installed plugin is copied to ~/.claude/plugins/cache/ WITHOUT its parent dirs (address it via `${CLAUDE_PLUGIN_ROOT}`). `reference/criteria.md` is generated (`make plugin-reference`, CE033); `reference/run-layout.md` is a verbatim mirror of `.claude/shared/run-layout.md`; `reference/task-rubric.md` is the shared task-quality rubric that `task` and `lint-tasks` both read (plugin-only — no repo-side twin); `reference/repo-layout.md` is the eval-tree DISCOVERY policy every skill reads (`SKILL_NEEDS_EVAL_ROOT_DISCOVERY`, which a new skill must declare a stance in) — glob for `task_id:` files and `run.json`, never assume `tasks/`/`runs/latest` — as distinct from `run-layout.md`, which describes what is inside a run directory. Every skill must appear in all four surfaces in `SKILL_DOC_SURFACES` (derived test), and their combined frontmatter `description` length is capped (`SKILL_LISTING_BUDGET_CHARS`) because the skill listing's budget is shared with every skill the user has installed. **Skill naming is verb-first imperative** — a skill is a command you issue (`/coder-eval:<name>`) and every one of them takes an action, so name it for the action: a bare verb where that is unambiguous (`init`, `analyze` — the object comes from the argument), otherwise `<verb>-<object>` (`lint-tasks`, `check-skill`). Never `<object>-<verb>`: `skill-check` was renamed to `check-skill` precisely because it read backwards next to `lint-tasks`. `task` and `ci` predate the rule and stay — renaming a published skill breaks every user's muscle memory for no functional gain, since activation keys on the `description`, never the name. Distinct from `.claude/commands/`, which stays repo-local contributor tooling.
action.yml # Published composite GitHub Action (coder-eval as a CI gate). release.yml's `release` job maintains its `version:` default; its `promote` job (gated on publish-pypi) moves the `v<major>` tag + cuts the Release, so nothing consumer-visible moves before the wheel is on PyPI. verify-published-action.yml then verifies the published composite (tag/pin/PyPI/Marketplace parity, plus a real consumer run) after each Release and nightly. Runbook: CONTRIBUTING.md § Releasing.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 345 lines · 11,142 tokens per session scan B 3a91bf064b45
coder_eval CLAUDE.md is an instructions file published in the GitHub repository UiPath/coder_eval (119 stars, last pushed 4d ago), licensed Apache-2.0. It adds 11,142 tokens to every session, about $0.0557 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
matt-skills-with-to-goal CLAUDE.md
Instructions for tt-a1i/matt-skills-with-to-goal: Skills are organized into bucket folders under skills/.
coral CLAUDE.md
Instructions for cdknorow/coral, covering claude.md - coral go, mission, testing, go unit tests and legacy parity tools (historical reference).
pixir CLAUDE.md
Instructions for Ranvier-Technologies/pixir, covering pixir harness - legacy agent guide, current map and commands.
Agent-Memory-Bridge AGENTS.md
Instructions for zzhang82/Agent-Memory-Bridge, covering agent memory bridge contributor instructions, setup and checks, architecture boundaries, mutation and migration invariants and benchmark expectations.
codeTree CLAUDE.md
Instructions for ThinkyMiner/codeTree, covering claude.md, what this is, structural analysis tools (13), graph & onboarding tools (10) and supported languages.
symphony AGENTS.md
Instructions for broomva/symphony, covering agents.md - symphony, repository purpose, architecture, key design decisions and gathering context from the knowledge graph.