v1.1.0: suite-defined judging rubrics
1.0.0 could only judge programming tasks: the rubric was a constant in the source. A suite now
carries its own criteria, so the harness works on any domain.
name: support_replies
rubric: |
1. Accuracy. Does the reply follow the policy as stated, and address everything
the customer actually asked?
2. Tone. Given equal accuracy, prefer the reply the customer would rather receive.
answer_language: null # prose, so render it as prose rather than as codeThe response format and the instruction to ignore length stay in the tool's frame. A rubric free to
rewrite those would break verdict parsing and delete the bias controls with it, so one mentioning the
verdict token is refused.
Every verdict now records the prompt that produced it. A rubric edited mid-suite is refused rather
than averaged into one rating meaning two standards, and the site publishes the prompt that actually
ran instead of recomposing it from the suite file. The labeller shows the same rubric to the human
that the judge was given.
Second calibrated run
25 customer support tickets, same three models and judge as the code run, 75 blind human labels.
| Support replies | Python codegen | |
|---|---|---|
| Agreement with a human | 46.7% | 61.3% |
| Order-flip rate | 42.7% | 20.0% |
| Agreement on self-consistent pairs | 81.4% | 76.7% |
The judge is not worse at prose. On pairs where it gave the same verdict in both orderings it agrees
slightly more; the whole gap is that it contradicts itself twice as often, and a contradicted pair is
recorded as no winner. A harness judging each pair once would publish a confident ranking built on
those coin flips.
Breaking changes
rubricis required in suite files. The old behaviour iskonkord.models.DEFAULT_RUBRIC.- The site reads one results file per suite, indexed by
runs.json, not a singleresults.json. reportrefuses to build when a suite's verdicts span more than one judge prompt.- The
comparisonstable gains ajudge_promptcolumn, applied automatically on open.