Use this skill when the user asks to "design an eval suite", "build evals for my AI feature", "create an evaluation framework", "how do I evaluate my AI", "what evals should I run", "build an eval system", or wants to create a systematic evaluation framework for an AI-powered product feature. Typically run after error-analysis has identified the failure categories to prioritize.
Installs into .claude/skills of the current project.
Are you the author of Eval Suite Design?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/productfculty-aipm-eval-suite-design)
---
name: eval-suite-design
description: Use this skill when the user asks to "design an eval suite", "build evals for my AI feature", "create an evaluation framework", "how do I evaluate my AI", "what evals should I run", "build an eval system", or wants to create a systematic evaluation framework for an AI-powered product feature. Typically run after error-analysis has identified the failure categories to prioritize.
version: 2.0.0
---
# Eval Suite Design
You are designing an evaluation suite for an AI product feature — a systematic set of tests that catches real failure modes before they reach users. The goal is a suite that the team actually runs and acts on, not one that gets ignored.
Framework: Hamel Husain + Shreya Shankar (Building eval systems, 2025), Aman Khan (Beyond vibe checks, 2025).
Key principle: "Evals quietly decide whether your AI product thrives or dies. The ability to write great evals is rapidly becoming the defining skill for AI PMs in 2025 and beyond." — Aman Khan, Lenny's Newsletter (2025)
## Step 1 — Load Context
Read the error analysis output (from the error-analysis skill or user input) to understand which failure categories to target. Read `memory/user-profile.md` for the AI feature context.
## Step 2 — Three Types of Evals
For each failure category, select the appropriate eval type:
**Type 1 — Code-based evals (deterministic):**
Best for: Failures with objectively correct / incorrect answers. Format compliance. Structural checks.
Examples:
- Output contains required sections (assert "## Problem" in output)
- Output is within length bounds (assert len(output) < 2000)
- Output is valid JSON (try parse; fail if exception)
- Required fields are non-empty (assert output.get('metric') is not None)
Pros: Fast, cheap, perfectly reliable
Cons: Only works for objective correctness — can't evaluate quality
**Type 2 — Human evals:**
Best for: Subjective quality, domain-specific correctness, complex reasoning, new failure categories being discovered.
Format: Annotators see (input, output) pairs and rate: Thumbs up / Thumbs down, or score on a rubric (1–5).
Pros: Highest accuracy; catches nuanced failures
Cons: Slow, expensive, can't scale; requires clear annotation guidelines
Use for: Calibration, sampling for quality assurance, training LLM-as-judge
**Type 3 — LLM-as-judge:**
Best for: Subjective quality at scale; failures that require reasoning to detect; when human evals are too slow.
Structure: A separate LLM (usually a stronger model) reviews (input, output) pairs and provides a judgment.
Pros: Scalable; can evaluate complex quality; can explain its reasoning
Cons: Not perfectly reliable; needs calibration against human evals; can be biased
## Step 3 — Eval Design Per Failure Category
For each top failure category (from error analysis):
**Name:** [Failure category name]
**Eval type:** [Code-based / Human / LLM-as-judge]
**What to test:** [Specific aspect of the output being evaluated]
**Test cases needed:** [How many? Where do they come from?]
**Pass/fail criteria:** [What counts as pass? What counts as fail?]
**Automation plan:** [When does this eval run — on every PR? Daily? Weekly?]
## Step 4 — LLM-as-Judge Prompt Design
If using LLM-as-judge, write the judge prompt following best practices:
```
You are evaluating an AI assistant's response for [failure type].
**Input to the AI assistant:**
{input}
**AI assistant's response:**
{response}
**Evaluation criteria:**
[Criterion 1]: [Clear definition of what good looks like]
[Criterion 2]: [Clear definition of what good looks like]
**Scoring:**
- PASS: The response [specific pass condition]
- FAIL: The response [specific fail condition]
**Your output:**
First, briefly explain your reasoning (1–2 sentences).
Then output: PASS or FAIL
```
Key principles for judge prompts:
- Binary outputs (PASS/FAIL) are more reliable than numeric scores
- Include examples of PASS and FAIL in the prompt when possible
- The judge should explain its reasoning before giving the verdict (chain-of-thought)
- Calibrate the judge against 50+ human annotations before trusting it
## Step 5 — The Principal Domain Expert Model
From Hamel Husain: designate one "benevolent dictator" for quality — one person whose judgment defines what PASS/FAIL means for subjective evals. This prevents annotation conflicts and anchors the LLM-as-judge calibration.
This person:
- Reviews 50–100 human annotation cases to establish the quality bar
- Resolves disagreements between annotators
- Periodically reviews LLM-as-judge outputs to catch drift
## Step 6 — Eval Suite Structure
Design the full suite as three layers:
**Layer 1 — Pre-commit (fast):** Code-based evals only. Run on every code change. Must complete in < 60 seconds. Catches format and structural failures.
**Layer 2 — Pre-deploy (medium):** Code-based + LLM-as-judge on a representative sample. Run before any deployment. Should complete in < 10 minutes.
**Layer 3 — Production monitoring (ongoing):** LLM-as-judge on a sample of live outputs + human eval on flagged outputs. Run continuously or weekly.
## Step 7 — Output
Produce:
- Eval suite design (one eval design per failure category)
- LLM-as-judge prompt(s) for subjective failure categories
- Three-layer eval structure with run frequency and completion time targets
- Minimum viable suite: which 3 evals to implement first to get 80% of the value?
- Measurement plan: how will you know if the evals are improving product quality over time?