How an answer gets its score
Nobody — no person and no model — hands out a number. Code checks what the chatbot actually did, a judge lists the defects it can quote, the quotes are verified, and the score is computed from what is left.
Each finding type carries a fixed level. A dimension takes the lowest level among its findings; the case takes the lowest dimension.
Five steps, in this order
Run the case
The harness plays the user: the prompt, any follow-ups, and the answers a tester would give if the chatbot asks. It records every tool call and what was written.
→ transcript, tool calls, tenant stateHard checks
Code checks the outcome that can be checked exactly: a draft exists, a rename is complete, a sentence sits in the right section, in red.
→ any failure scores 0List findings
The judge reads the evidence and lists every defect it can quote, each typed from a fixed list of 27.
→ typed, quoted findingsVerify quotes
Every quote is looked up in the reply, the written record or the documents the model read. What cannot be found is dropped.
→ findings that surviveCompute
Code maps each finding type to its level and takes the minimum. The judge never picks the number.
→ 0–5
What each score means
The worst defect decides. One invented action in a record meant to be signed outweighs an otherwise perfect answer, and a single English word caps an answer at 4 no matter how good the rest is.
27 defects the judge can report
Grouped by the dimension they lower. The square is the level a single finding of that type sets.
Hard checks
What they check
The outcome of the task, straight from the tool calls and the tenant's state after the run — not from what the reply says happened.
- a new draft of the right document exists
- a rename reached every occurrence in the text
- the requested sentence is in section 5, and it is red
- a safety warning survived a rewrite, still highlighted
- a nonconformity or corrective action was actually created
How they count
- Any failed check scores the case 0. The judge's findings are still listed, so the board shows what else went wrong.
- Some checks are diagnostics: they flag something worth a look — a name shared with the template document, a follow-up that was never delivered — and never fail a case.
- A model that keeps calling tools until its context is full, or until the app's 60-round tool cap, has not finished the task: that is a 0 too.
What the judge is held to
One fixed judge
Every answer is judged by the same model, Gemini 3.8 Flash, with a larger thinking budget when a case's evidence runs over 100,000 characters — long SOP rewrites, where a copied paragraph is easy to miss.
Inventories first
For a written record the judge first lists every action, check, cause and number the record asserts, and where each one comes from — the user, a document it read, or nowhere. Where the rule is mechanical, code turns those lists into findings: a critical fact that is absent, a section that only says “see the manual”.
Quotes must exist
Every finding quotes the reply, the record or a source document, and the quote is looked up. A quote that is not there is sent back once; if it is still not there, that finding does not count — and a case whose penalty rests on an unquoted finding is left unscored rather than guessed.
Fact tables
Each Czech case has a table of the values a correct answer contains, checked word for word against the documents the models read, with the forms that count as the same value (unit conversions, number words), what the answer must include, and what it must not state. Values and omissions are judged against the table, not the judge's memory.
What the app can do
Questions answered without tools are judged against a maintained page of what slp.blue can and cannot do, plus an index of ISO 15189 and ISO 22367 clauses. An answer that offers a feature the app does not have is an invented feature, whatever the judge believes.
One fingerprint per board
Every result stores a fingerprint of the prompts, rules, fact tables and code that graded it. The board only shows results that share one fingerprint: .
Worked example
New work instruction from a manufacturer's manual
Gemini 3.8 Flash · low, one replicate. The task: write a work instruction for the Erytra Eflexis analyser from its manual, using an existing instruction for a different analyser (Wadiana) only as a layout template.slp.blue Model Bench · the scoring code and the full judge prompt live with the benchmark harness.