generate-judges — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited generate-judges (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Create .kensa/judges/*.yaml files with structured evaluation criteria.
Setup → Design → ► Calibrate → Execute → Diagnose → IterateThis skill is conditional, only needed when inline criteria: in scenario YAML produce inconsistent or wrong judge verdicts. You should already have scenarios in .kensa/scenarios/. After writing judge prompts, wire them into scenario files and run kensa eval to test.
Use inline criteria: in scenario YAML for objective, simple evaluations:
Use structured judge prompts (this skill) when:
If you don't have scenarios yet, use generate-scenarios first.
Every structured judge prompt has four parts. When writing the YAML, load ${CLAUDE_SKILL_DIR}/references/judge-prompt-schema.md for the full schema.
One thing being evaluated. Not two, not three. One.
criterion: Email tone matches the client personaNot: "Email is good and well-formatted and uses correct tone"
Explicitly define what constitutes a pass. Be concrete, no wiggle room.
pass: |
Language appropriate for the client type:
- Luxury: formal, exclusive features, premium positioning
- First-time: warm, educational, avoids jargon
- Investor: data-driven, ROI-focused, conciseExplicitly define what constitutes a fail. Mirror the pass definition.
fail: |
Tone mismatched to persona:
- Casual slang for luxury clients
- Heavy financial jargon for first-time buyers
- Overly emotional language for investors2-4 examples with output, label, and critique. Include at least one clear pass, one clear fail, and one borderline case. Borderline examples teach the judge nuance.
examples:
- output: "Dear Mr. Harrington, I am pleased to present an exclusive listing..."
label: pass
critique: "Formal salutation, luxury positioning language throughout."
- output: "Hey! Check out this awesome place, it's got a pool and stuff!"
label: fail
critique: "Casual slang inappropriate for luxury buyer."
- output: "Hi Sarah, I found a property that might be a great fit..."
label: pass
critique: "Warm greeting, relatable terms. Matches first-time buyer tone."Critiques must be detailed, not terse. They set the bar for the judge's own reasoning.
Save to .kensa/judges/{name}.yaml:
mkdir -p .kensa/judgesUse a descriptive slug: tone-match, sql-accuracy, safety-check.
In the scenario YAML, replace criteria: with judge::
# Before
criteria: The email should match the client persona tone
# After
judge: tone-match # loads .kensa/judges/tone-match.yamlcriteria and judge are mutually exclusive. Setting both raises a validation error.
Run the scenario and inspect the judge's reasoning:
kensa eval -s <scenario_id>
kensa report --format jsonRead the judge_result.reasoning field. If the judge misses failures or flags passing outputs, adjust:
Repeat until the judge's verdicts match your expectations. Then run kensa eval for the full suite.
Exhaust deterministic checks before reaching for an LLM judge. Many criteria that seem subjective reduce to code:
output_matches with regexoutput_containstools_called, tools_not_called, tool_ordermax_cost, max_turns, max_durationReserve judge prompts for criteria that genuinely require interpretation: tone, faithfulness, relevance, completeness.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.