Agent Skill — SKILL.md
agentic-eval
Use when designing or implementing an evaluation loop for AI agent outputs — reflection loops, evaluator-optimizer pipelines, LLM-as-judge scoring, or rubric-based iteration. Not when running an existing test suite or reviewing a completed artifact without iterating.
Compatibility
Agent Skills-compatible coding agents.SKILL.md
Agentic Evaluation
Use this skill when you are designing or implementing an evaluation loop that lets an agent assess and improve its own outputs through iteration — not when you are running a pre-existing test suite or doing a one-off review with no refinement cycle.
The core pattern is: Generate → Evaluate → Critique → Refine → Output, looping until a convergence condition is met or a max-iteration budget is exhausted.
Use this skill when
- Implementing a self-critique or reflection loop that feeds output quality back into generation.
- Building an evaluator-optimizer pipeline that separates generation from evaluation responsibilities.
- Designing LLM-as-judge scoring to compare or rank multiple candidate outputs.
- Adding rubric-based scoring with weighted dimensions to iterative generation.
- Setting iteration limits, convergence checks, or structured evaluation output contracts.
- The task requires measurable improvement across runs, not just a single-shot best effort.
Do not use this skill when
- You are running an existing test suite to verify code — use
verification-before-completion. - You are diagnosing a specific failure or bug, not evaluating output quality — use
systematic-debugging. - The goal is writing test coverage (unit tests, integration tests) — use
test-driven-development. - You are reviewing a completed artifact once without a refinement loop (a single code review, an editorial pass, a PR check).
Routing boundary
| Situation | Use this skill? | Route instead |
|---|---|---|
| Designing a reflection loop with a score threshold and max iterations | Yes | — |
| Implementing LLM-as-judge comparison of two candidate outputs | Yes | — |
Running npm test to confirm a fix works |
No | verification-before-completion |
| Tracing why a specific assertion fails | No | systematic-debugging |
| Writing Jest or pytest test coverage for a module | No | test-driven-development |
| Reviewing a PR diff once, no iteration | No | implementation-review |
Inputs to gather
Required before starting
- The skill or agent behavior to evaluate.
- The evaluation objective and target metric for the application's outputs.
Helpful if present
- Existing evaluation fixtures or application quality criteria to extend.
First move
- Identify the application behavior to evaluate and the desired outcome.
- Define the evaluation criteria and target metric.
- Open the relevant reference file based on the evaluation type.
Navigation
The three evaluation strategy patterns (outcome-based, LLM-as-judge, rubric-based) and full Python examples are in references/patterns.md.
The implementation checklist — criteria, threshold, loop wiring, convergence, logging — is in assets/eval-checklist.md.
For a new implementation, start with the checklist to confirm your setup is complete, then use the patterns reference to choose and adapt an evaluation strategy.
Outputs
- Evaluation loop design with defined criteria, convergence check, and max iteration budget.
- Structured evaluation scores per iteration with input, output, and critique logged.
- Convergence or budget-exhaustion result confirming the loop terminated cleanly.
Workflow
- Name the application behavior under evaluation and the success criteria.
- Choose a strategy from
references/patterns.md: outcome-based, LLM-as-judge, or rubric-based. - Complete the setup checklist in
assets/eval-checklist.md(criteria, threshold, max iterations, logging). - Isolate generate → evaluate → optimize steps; keep the evaluator replaceable.
- Run the loop with a hard
max_iterationsbound and a convergence check. - Log full trajectories (input, output, score, critique) for every iteration.
- Stop on threshold met, no improvement, or budget exhaustion; report structured scores.
- Feed failures back into evaluator criteria, prompts, or optimization steps, then re-run.
Guardrails
- Always set a
max_iterationsbound (3–5 is a safe default) before wiring up a refinement loop. Unbounded loops stall agents. - Require structured output (JSON) from the evaluation step so the optimize step has a reliable signal to act on. Free-text critique is fragile.
- Add a convergence check: if the score does not improve between iterations, stop early. Oscillating loops that never converge waste budget.
- Log the full iteration trajectory. Evaluation loops are hard to debug post-hoc without a history of inputs, outputs, scores, and critiques.
- Define evaluation criteria before generating any output. Criteria added mid-loop drift and make scores incomparable across iterations.
- Keep the evaluate step isolated from the generate step. Blending them makes it hard to replace the evaluator or diagnose score instability.
- Handle evaluation parse failures gracefully — if the LLM judge returns malformed JSON, fall back to a safe default (treat as failing) rather than crashing the loop.
Validation
After implementing an evaluation loop, confirm:
-
max_iterationsis set and respected by the loop - Evaluate step returns structured output (JSON or equivalent)
- Convergence check exits early when score does not improve
- All iterations are logged with input, output, score, and critique
- Parse-failure fallback is present on the evaluate step
- Criteria are defined before any generation begins
Examples
- "Add a self-critique loop to my report-generation agent that retries up to three times if the rubric score is below 0.8."
- "Implement an evaluator-optimizer where a separate LLM judge scores code clarity and the generator rewrites until it passes."
- "Build a rubric-based evaluator with accuracy, completeness, and style dimensions that returns a weighted score as JSON."
Reference files
references/patterns.md— The three evaluation strategy patterns (outcome-based, LLM-as-judge, rubric-based) with annotated Python examples and a best-practices table.assets/eval-checklist.md— Implementation checklist: setup, loop wiring, convergence, logging, and safety items to confirm before shipping.