Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design binary pass/fail LLM-as-Judge evaluators. Structured prompt engineering for evaluation: criteria definition, rubric construction, few-shot calibration, and bias mitigation. Produces a ready-to-deploy judge prompt with scoring instructions. Triggers on: "judge prompt", "llm judge", "evaluator prompt", "scoring prompt", "grading rubric"
.claude/skills/miosa-osa-judge-prompt/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 100% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 124% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -28% | 0% |
> Design binary pass/fail LLM-as-Judge evaluation prompts.
Create a rigorous LLM-as-Judge prompt that evaluates model outputs with binary pass/fail decisions. Walks through criteria definition, rubric construction, few-shot example selection, bias mitigation, and prompt assembly. The output is a self-contained judge prompt ready for deployment in an eval pipeline, with built-in guardrails against common judge biases (position, verbosity, self-preference).
bash# Interactive judge design /judge-prompt --task "summarization quality" # From criteria spec /judge-prompt --criteria criteria.yaml --examples examples.jsonl # Design judge for specific eval /judge-prompt --eval evals/code-review/ --task "code correctness" # Add bias mitigation /judge-prompt --task "helpfulness" --mitigate position,verbosity # Generate judge with calibration examples /judge-prompt --task "factual accuracy" --calibrate labels/human-ratings.jsonl
| Flag | Type | Default | Description | |------|------|---------|-------------| | --task | string | required | What the judge evaluates (e.g., "summarization quality") | | --criteria | string | — | Path to YAML criteria specification | | --examples | string | — | Path to JSONL file with labeled examples for few-shot | | --eval | string | — | Path to eval directory for context | | --mitigate | string | all | Biases to mitigate: position, verbosity, self-preference, all, none | | --calibrate | string | — | Human labels file for calibration examples | | --output | string | judge-prompt.md | Output path for the judge prompt | | --format | enum | markdown | Output format: markdown, yaml, json | | --style | enum | binary | Judgment style: binary (pass/fail), likert (1-5), comparative (A vs B) |
--calibrate is provided, select examples aligned with human labels./judge-prompt --task "summarization quality" --mitigate all
## Judge Prompt — Summarization Quality
### Criteria
1. **Completeness**: Summary captures all key points from the source
2. **Accuracy**: No facts are distorted, added, or misrepresented
3. **Conciseness**: No unnecessary repetition or filler
4. **Coherence**: Summary reads naturally as standalone text
### Rubric
| Criterion | PASS | FAIL | Borderline |
|-----------|------|------|------------|
| Completeness | All main points present | Missing ≥1 key point | Minor supporting detail missing → PASS |
| Accuracy | All facts match source | Any factual error | Imprecise wording without meaning change → PASS |
| Conciseness | No redundancy | Repeats same point 2+ times | Slightly verbose but no repetition → PASS |
| Coherence | Flows naturally | Disjointed or contradictory | Awkward transition → PASS if meaning clear |
### Verdict Rule
- PASS: All 4 criteria pass
- FAIL: Any criterion fails
### Generated PromptYou are an evaluation judge. Assess the following summary against its source document.
Criteria and rubric inserted here...]
Evaluate each criterion independently. Output your judgment as: {"verdict": "pass" | "fail", "criteria": {"completeness": bool, "accuracy": bool, "conciseness": bool, "coherence": bool}, "reasoning": "one sentence explanation"}
IMPORTANT: Judge the content, not the style. A shorter summary that captures all key points is equally valid as a longer one. Do not penalize conciseness. Do not reward verbosity.
## Output
...
| Criterion | PASS | FAIL | Borderline → | |-----------|------|------|--------------| | ... | ... | ... | ... |
text[Complete prompt text]
## Dependencies
- Task definition (provided via `--task` or `--criteria`)
- `/validate-evaluator` — Downstream calibration against human labels
- `/synthetic-data` — Upstream if test cases are needed for calibration
- `/error-analysis` — Downstream if judge performance needs debugging| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 27,093 | 24,918 | -8% | 1 | 1 | 0% | 4,060 | 5,580 | +37% | 0 | 0 | — |
case-02 | fail→pass | 19,526 | 19,022 | -3% | 1 | 1 | 0% | 3,503 | 4,777 | +36% | 0 | 0 | — |
case-03 | fail→pass | 12,620 | 15,320 | +21% | 1 | 1 | 0% | 2,030 | 4,051 | +100% | 0 | 0 | — |
case-04 | fail→pass | 12,469 | 10,795 | -13% | 1 | 1 | 0% | 2,060 | 3,031 | +47% | 0 | 0 | — |
case-05 | fail→pass | 11,328 | 15,266 | +35% | 1 | 1 | 0% | 1,843 | 4,126 | +124% | 0 | 0 | — |
case-06 | fail→pass | 13,954 | 2,043 | -85% | 1 | 1 | 0% | 2,345 | 1,696 | -28% | 0 | 0 | — |
case-07 | fail→pass | 26,715 | 2,032 | -92% | 1 | 1 | 0% | 4,906 | 1,778 | -64% | 0 | 0 | — |
case-08 | pass→pass | 12,313 | 16,093 | +31% | 1 | 1 | 0% | 2,288 | 4,419 | +93% | 0 | 0 | — |
case-09 | fail→pass | 12,277 | 2,912 | -76% | 1 | 1 | 0% | 2,149 | 1,869 | -13% | 0 | 0 | — |
case-10 | pass→pass | 16,658 | 9,221 | -45% | 1 | 1 | 0% | 1,379 | 2,863 | +108% | 0 | 0 | — |
case-11 | pass→pass | 9,760 | 14,871 | +52% | 1 | 1 | 0% | 1,645 | 3,958 | +141% | 0 | 0 | — |
case-12 | pass→pass | 18,164 | 20,010 | +10% | 1 | 1 | 0% | 2,859 | 4,658 | +63% | 0 | 0 | — |
case-13 | fail→pass | 14,913 | 2,158 | -86% | 1 | 1 | 0% | 2,661 | 1,708 | -36% | 0 | 0 | — |
case-14 | fail→pass | 14,003 | 3,276 | -77% | 1 | 1 | 0% | 2,400 | 1,955 | -19% | 0 | 0 | — |
case-15 | pass→pass | 13,930 | 9,945 | -29% | 1 | 1 | 0% | 2,327 | 3,088 | +33% | 0 | 0 | — |
case-16 | pass→pass | 11,085 | 2,530 | -77% | 1 | 1 | 0% | 1,960 | 1,753 | -11% | 0 | 0 | — |
case-17 | fail→pass | 10,972 | 3,449 | -69% | 1 | 1 | 0% | 1,798 | 1,963 | +9% | 0 | 0 | — |
case-18 | pass→pass | 8,467 | 6,809 | -20% | 1 | 1 | 0% | 1,357 | 2,510 | +85% | 0 | 0 | — |
case-19 | fail→pass | 14,500 | 2,963 | -80% | 1 | 1 | 0% | 2,388 | 1,842 | -23% | 0 | 0 | — |
case-20 | pass→pass | 14,680 | 14,732 | +0% | 1 | 1 | 0% | 3,169 | 4,275 | +35% | 0 | 0 | — |
case-21 | pass→pass | 16,438 | 12,954 | -21% | 1 | 1 | 0% | 3,404 | 4,233 | +24% | 0 | 0 | — |
case-22 | pass→pass | 17,163 | 19,875 | +16% | 1 | 1 | 0% | 3,695 | 5,680 | +54% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.