> Use when the user has run multiple evaluation skills and wants a comprehensive analysis — maturity assessment, cross-skill signals, trends, prioritized actions, and an executive summary. Also use when the user mentions eval health check, evaluation audit, ship readiness, evaluation maturity, or "how good is my evaluation system itself." This is a read-only analysis skill.
npx skills add https://github.com/agentscope-ai/OpenJudge --skill eval-report
<HARD-GATE>
NO recommendation WITHOUT statistical evidence backing it.
NO "system ready" declaration WITHOUT all calibrated judges passing AND all production gates green.
NO trend analysis WITHOUT at least 2 data points in history.
</HARD-GATE>
Synthesize everything from your evaluation journey into a comprehensive report.
This skill is read-only — it analyzes what exists, doesn't create new graders or datasets.
You MUST create a task for each item and complete them in order:
Read eval-design.md and all runs/ directories. Build a timeline:
Timeline:
2026-04-15 01-eval-design → 5 failure modes → 3 dimensions from 200 traces
2026-04-18 02-metric-design → 4 graders configured (2 LLM + 1 rule + 1 executable)
2026-04-25 (evaluation run) → 90-sample stratified dataset scored
2026-05-01 03-align-human → 2 judges Phase 3, 1 Phase 2, 1 Phase 1 (TPR/TNR + kappa)
2026-05-10 07-redteam → safety audit not yet run
Report key metrics:
Rate the evaluation system across 5 dimensions:
| Dimension | L1 (Initial) | L2 (Developing) | L3 (Established) | L4 (Optimizing) |
|-----------|-------------|-----------------|-------------------|-----------------|
| Failure Discovery | No systematic analysis | Failure modes identified | Coverage validated with stratification | Continuous triage from production |
| Judge Quality | v0 uncalibrated only | Some calibrated (TPR/TNR measured) | All calibrated with CI | Calibrated + aligned with humans |
| Label Coverage | < 50 labels | 50-200 labels | 200+ stratified labels | Coverage audit passed, drift monitored |
| Safety Coverage | No redteaming | Ad-hoc redteam run | Systematic redteam with policy doc | Continuous redteam with sign-off |
| Human Alignment | No alignment data | Kappa measured for some judges | Kappa ≥ 0.8 for all judges | Human spot-check only, quarterly audit |
Scoring rule: The overall maturity level is the minimum across dimensions
(weakest link principle). If 4 dimensions are L3 but Safety is L1, the system is L1.
Find themes confirmed by multiple skills. Example:
Find where skills disagree. These are the most valuable findings:
the hallucination judge has TPR=0.74"
→ Possible explanations: the judge prompt captures surface patterns, not real
hallucination. Or the judge prompt needs refinement, or the labels are noisy.
What hasn't been touched by any skill?
non-English queries"
Which principle/grader has the lowest pass rate? Where are failures clustering?
Compute Jaccard similarity between principle pairs — when sample A fails on principle X,
does it also fail on principle Y? Highly correlated pairs (Jaccard > 0.5) likely share
a root cause.
Which difficulty stratum performs worst across all principles? If boundary stratum
TPR < 0.7 for 3 of 4 principles, boundary discrimination is a systemic weakness.
For each weakness area, classify the root cause:
| Type | Definition | Key indicator |
|------|-----------|---------------|
| system_problem | The application itself performs poorly | Low pass rate + high judge-human agreement |
| metric_problem | The judge/eval is flawed | Low pass rate + low judge-human agreement |
| data_problem | The eval dataset isn't representative | 01-eval-design coverage shows thin strata OR label drift detected |
| unclear | Not enough evidence | Conflicting signals, need more data |
This classification is critical — fixing a metric problem by changing the system
(or vice versa) wastes effort.
Generate P0/P1/P2 actions. Each must include: priority, concrete action, current
state, target state, expected impact, and the skill to use.
🔴 P0 | Calibrate hallucination judge
Current: TPR=0.74 (below 0.8 threshold)
Target: TPR >= 0.8
Impact: Judge becomes usable as production gate
Use: 03-align-human
🔴 P0 | Add boundary samples for hallucination
Current: n=6 boundary samples (CI half-width ±18%)
Target: n >= 20 (CI narrows to ±10%)
Impact: Reliable per-stratum TPR measurement
Use: 01-eval-design
🟡 P1 | Align tone_consistency judge
Current: kappa=0.72, bias=-0.15 (lenient)
Target: kappa >= 0.8, |bias| < 0.1
Impact: Reduce false positive rate ~15%
Use: 03-align-human
🟢 P2 | Enable auto-gate for factuality judge
Current: kappa=0.87, TPR=0.92, TNR=0.88
Impact: Eliminate 90% of human review for this dimension
Use: 03-align-human (mark Phase 3)
One page for non-technical stakeholders:
Executive Summary
=================
System: Customer support chatbot for e-commerce
Stakes: Production
Report Date: 2026-05-12
SHIP READINESS: Conditional
2 items must be resolved before production gate:
1. Hallucination judge TPR below threshold (0.74 < 0.8)
2. No safety/redteam evaluation has been run
TOP 3 RISKS:
1. Hallucination detection unreliable — severity: HIGH
The judge measuring whether the bot fabricates information itself has poor
recall (TPR=0.74), meaning ~26% of hallucinations go undetected.
Mitigation: Calibrate with more boundary labels (2-3 weeks).
2. Safety coverage missing — severity: MEDIUM
No jailbreak, injection, or PII leakage testing has been performed.
Mitigation: Run redteam skill this sprint (1-2 days).
3. Tone evaluation is biased lenient — severity: LOW
The tone judge systematically rates responses as better than humans do.
Mitigation: Refine judge prompt with borderline examples.
EVAL MATURITY: L2 (Developing) → Target L3 in 3-4 weeks
Strongest: Failure Discovery (L3)
Weakest: Safety Coverage (L1), Human Alignment (L2)
NEXT ACTIONS (this sprint):
[P0] Add boundary labels + recalibrate hallucination judge
[P0] Run initial redteam evaluation
[P1] Refine tone judge alignment
| File | Content |
|------|---------|
| eval-design.md | eval_report: namespace (maturity, signals, trends, actions) |
| runs/eval-report/<ts>/report.md | Full analysis report |
| runs/eval-report/<ts>/executive-summary.md | One-page stakeholder summary |
Each per-metric run you synthesize should be a runs/<skill>/<ts>/results.json row of the form:
{"metric": "order_accuracy", "mean": 0.82, "ci_95": [0.78, 0.86], "n": 90,
"by_stratum": {"easy": 0.95, "boundary": 0.71, "adversarial": 0.60},
"verdict": "pass | fail | insufficient_evidence"}
doesn't tell you what to fix. Classify as system/metric/data problem first.
from eval-design.md fields.
risks, three actions, one page. Details go in the full report.
dimension, that's the most important signal in the report — it reveals a structural
issue in assumptions or methodology.
P0 = blocks ship. P1 = important this sprint. P2 = backlog.
After 04-eval-report:
based on identified weaknesses. This skill is the "end of loop" analysis —
after addressing recommendations, run this skill again to track progress.
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Take agentscope-ai/eval-report from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.