一键导入
eval-harness
Eval-driven development with pass@k metrics and three grader types
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Eval-driven development with pass@k metrics and three grader types
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Convert PDF/EPUB library to Markdown and generate Obsidian MOC notes
Hook-based compaction suggestions at logical task boundaries
Context window management — track spend, decide when to compact, preserve state
Session-start orientation — loads context, surfaces learnings, confirms registry
Quality and semantic review — catches what automated tools miss
Planner → Architect → Critic deliberation loop — produces a formally validated ADR
| name | eval-harness |
| description | Eval-driven development with pass@k metrics and three grader types |
| version | 1.0.0 |
| level | 3 |
| triggers | ["/eval","create eval","run eval","eval-driven"] |
| context_files | [".claude/evals/*.md"] |
| steps | [{"name":"Define Eval","description":"Create eval file with test cases and success criteria"},{"name":"Run Eval","description":"Execute test cases and record results"},{"name":"Calculate Metrics","description":"Compute pass@1, pass@3, pass^3"},{"name":"Generate Report","description":"Produce SHIP/NEEDS WORK/BLOCKED verdict"}] |
Eval-driven development: define success criteria before implementation, measure after.
Without evals, Claude:
Evals provide the missing feedback loop: concrete, reproducible, pass/fail measurement.
Run the feature or skill against real inputs first. Do not write test cases from imagination.
If you have not observed any failures, your eval suite will confirm assumptions instead of catching bugs. Spend 60-80% of eval effort here before touching /eval define.
Question: Can Claude do something new?
Example: "Generate valid SQL from natural language queries"
Success threshold: pass@3 >= 90%
At least 1 success in 3 attempts. Accounts for variability in LLM outputs while ensuring the capability exists.
Use case: New features, new skill additions, prompt engineering experiments.
Question: Did changes break existing behavior?
Example: "User authentication flow completes successfully"
Success threshold: pass^3 = 100%
All 3 attempts must pass. Zero tolerance for regressions in release-critical paths.
Use case: After refactors, dependency upgrades, bug fixes that touch core paths.
Programmatic assertions. Fast, reliable, no LLM overhead.
def grade_sql_generation(output):
parsed = sqlparse.parse(output)
return len(parsed) > 0 and parsed[0].get_type() == 'SELECT'
When to use: Structure validation, format checking, deterministic correctness.
Anti-pattern: Using code graders for semantic evaluation ("is this SQL optimal?").
LLM evaluates output quality against rubric.
Prompt: "Does the generated SQL correctly answer the question: {question}?
Expected columns: {columns}
Actual SQL: {output}
Answer YES or NO with reasoning."
When to use: Semantic correctness, intent matching, explanation quality.
Anti-pattern: Using model graders without a clear rubric. Leads to flaky, inconsistent grades.
Grade outcomes, not exact paths. An agent that reaches the correct result via a different route than expected should pass. Only fail a run when the outcome is wrong -- not when the sequence of steps differs. Brittle path-matching produces false failures that corrupt your eval data and make SHIP verdicts untrustworthy.
Cost awareness: Model graders consume tokens. For high-volume evals, prefer code-based graders.
Mark eval for human review when:
When to use: UX quality, edge cases, disputed model grades.
Process: Flag in eval file, reviewer adds grade + reasoning, update status.
pass@1: Percentage of test cases that pass on first attempt.
pass@3: Percentage of test cases where at least 1 of 3 attempts passes.
pass^3: Percentage of test cases where all 3 attempts pass.
Location: .claude/evals/<feature-name>.md
# Eval: sql-generation
Type: Capability
Created: 2026-03-28T12:00:00Z
Status: Active
## Success Criteria
Generate syntactically valid SELECT queries from natural language.
- Must parse with sqlparse
- Must select from correct table
- Must filter on correct columns
## Test Cases
### Case 1: Simple filter
- Prompt: "Show all users where age > 25"
- Expected: SELECT * FROM users WHERE age > 25
- Grader: code-based (sqlparse + column check)
- Result: [filled during check]
### Case 2: Join query
- Prompt: "Show user names with their order totals"
- Expected: SELECT users.name, SUM(orders.total) FROM users JOIN orders...
- Grader: model-based (semantic correctness)
- Result: [filled during check]
## Metrics
- pass@1: 85%
- pass@3: 95%
- pass^3: 80%
## History
2026-03-28T14:30:00Z | pass@3: 95% | PASS | Ready for release
2026-03-28T12:15:00Z | pass@3: 70% | FAIL | Need more examples
Create new eval file from template. Prompts for:
Dataset quality over quantity. Verify every test case manually before adding it -- read the input, trace the expected output yourself, confirm the grader logic is correct. 10 cases you have personally validated outperform 100 synthetic ones you have not checked. Unverified cases corrupt pass rates and make SHIP verdicts meaningless.
Run the evaluation:
Analyze results and produce verdict:
SHIP: Meets threshold (pass@3 >= 90% for capability, pass^3 = 100% for regression)
NEEDS WORK: Some cases passing but below threshold. List specific failing cases.
BLOCKED: Critical failures or <50% pass rate. Requires investigation.
Show all evals in .claude/evals/ with:
Archive old eval runs:
.claude/evals/archive/<feature-name>/Overfitting prompts to eval examples: Evals should represent real usage, not cherry-picked cases.
Measuring only happy paths: Include edge cases, error conditions, malformed inputs.
Ignoring cost/latency drift: Track token usage and response time. A 10x slower solution that passes evals is not shippable.
Flaky graders in release gates: If a model grader produces inconsistent results across runs, switch to code-based or human grader.
No baseline: Run evals before starting work. Prevents false regressions and establishes starting point.
/eval define/eval check to measure progress/eval report for SHIP verdict/eval cleanEvals are living documents. Update test cases when requirements change.