werkrevisor 0.12.0: Jev answers with low confidence no longer give YELLOW. Calibration on 69 hsadmin-ng PR documents: 58 of 74 YELLOW answers came only from low confidence, not from a problem value; the 16 threshold hits were justified in spot checks. Thresholds stay. Details: the PR document under `docs/prs/`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #10 Co-authored-by: claude-code <claude-code@javagil.de>
6.6 KiB
PR#10: Jev answers with low confidence do not count for the verdict
WARNING: This document describes only the change applied in this PR. It may already be outdated once the next PR is merged. Historic PR documentation is not maintained along with new PRs; treat it as a snapshot.
The Problem
In werkrevisor 0.11.0, a choice or score answer below [classifier] min_confidence gives YELLOW.
tools/jev-eval with config/hsadmin-ng.toml measured the 69 hsadmin-ng PR documents of 2026, one run per document:
281 units, 682 answers, cost 0.023 USD.
74 answers were YELLOW, and no answer reached red_above.
58 of the 74 YELLOW answers were YELLOW only because of a low confidence (min_confidence = 0.3).
Their problem values were typically 0.24 to 0.45, their confidence 0.00 to 0.29.
Most of them came from short sections like "Release Note" or "Folge-PRs".
Such an answer tells nothing about the unit, but it stops the PR for a human review.
16 answers were YELLOW because a problem value was above yellow_above, spread over 8 of 69 documents.
Spot checks showed that these findings were justified,
e.g. Scenario#270.03 with more than one aspect, a PR#247 scenario with implementation details,
and Scenario#306.00 with a vague Then.
The problem values per question:
| Question | Median | p90 | Maximum |
|---|---|---|---|
hard_to_understand |
0.07 | 0.22 | 0.51 |
slop |
0.05 | 0.18 | 0.62 |
hard_to_read |
0.20 | 0.48 | 0.63 |
more_than_one_aspect |
0.20 | 0.51 | 0.82 |
implementation_details |
0.17 | 0.61 | 0.72 |
given_when_then_misused |
0.10 | 0.35 | 0.50 |
vague_then |
0.06 | 0.14 | 0.77 |
Non-Goals
- No change of
yellow_aboveorred_above: the 16 findings aboveyellow_abovewere justified. - No change of
min_confidence = 0.3in the example configs. - No change for noul answers: they have no confidence.
The example configs ask
more_than_one_aspect,implementation_details,given_when_then_misusedandvague_thenas noul, so the change applies tohard_to_read,hard_to_understandandslop.
The Scenarios
Feature: answers with low confidence do not count for the verdict
Background
- The config is
config/werkprobe.tomlwith[classifier] min_confidence = 0.3. - The PR changes only a PR document.
Scenario#10.01: an answer with low confidence gives no reason and no YELLOW
So that an uncertain answer does not stop a PR for a human review.
- Given the PR document has 2 scenarios and 4 sections
- and Jev answers
hard_to_readfor each of the 2 scenarios with the problem value 0.9 and the confidence 0.1 - and all other answers are below
yellow_abovewith enough confidence
- and Jev answers
- When werkrevisor reviews the PR in mode
classifier - Then the verdict is GREEN
- and there is no reason with
hard_to_read - and the comment says
2 answers ignored because of a confidence below [classifier] min_confidence. - and the usage record has
classifier_ignored = 2
- and there is no reason with
Verified by
- test_classifier.ClassifierFlowTest.test_low_confidence_gives_no_reason_and_no_yellow
- test_classifier.JudgeUnitsTest.test_low_confidence_answers_are_ignored
Scenario#10.02: in mode combined the LLM gets an answer with low confidence as an uncertain hint
So that the LLM can still check the unit, while it knows that the classifier was not sure.
- Given Jev answers
hard_to_readfor Scenario#900.01 with the problem value 0.7 and the confidence 0.1 - When werkrevisor reviews the PR in mode
combined - Then the hint list for the LLM contains
`doc/PR/2026-10-01-PR#900-mandate-notice.md` line 20, Scenario#900.01: hard to read, 0.70 (uncertain, confidence 0.10)- and the hint list says that an uncertain answer does not count for the verdict
- and the verdict is GREEN
Verified by
Scenario#10.03: jev-eval shows an answer with low confidence as IGNORED
So that a calibration run shows the ignored answers and counts them apart from the verdicts.
- Given Jev answers
hard_to_readfor Scenario#901.02 with the problem value 0.9 and the confidence 0.1 - When
tools/jev-evaljudges the PR document - Then the row of this answer ends with
IGNORED (low confidence 0.10 < [classifier] min_confidence = 0.3)- and the totals count it as
IGNORED 1, not as GREEN or YELLOW
- and the totals count it as
Verified by
Scenario#10.04: the thresholds apply as before to answers with enough confidence
So that a clear finding still gives YELLOW or ORANGE.
- Given a score question with
yellow_above = 0.5andred_above = 0.8 - When Jev answers with the problem value
<problem>and the confidence<confidence> - Then the verdict of the answer is
<verdict>
| problem | confidence | verdict |
|---|---|---|
| 0.90 | 0.90 | ORANGE 0.90 > red_above = 0.8 |
| 0.60 | 0.90 | YELLOW 0.60 > yellow_above = 0.5 |
| 0.50 | 0.90 | GREEN |
| 0.90 | 0.20 | ignored low confidence 0.20 < [classifier] min_confidence = 0.3 |
| 0.81 | none (noul) | ORANGE 0.81 > red_above = 0.8 |
Verified by
The Solution
ratereturns no verdict for a choice or score answer below[classifier] min_confidence. The row stays GREEN for the verdict and gets the markignoredwith the note of the confidence.- The hint list in mode
combinedcontains the flagged and the ignored answers, as before 0.12.0; an ignored answer showsuncertain, confidence xinstead of a verdict, and the note of the list explains it. - The comment table counts the ignored answers; the usage record has the new field
classifier_ignored. tools/jev-evalshowsIGNORED (low confidence …)and the totals haveIGNORED nnext to GREEN, YELLOW and ORANGE.- The README, the comments in the example configs,
docs/konzept-jev-classifier.mdanddocs/betrieb-git.javagil.de.mddescribe the change; werkrevisor 0.12.0.
Open Questions
- Which answers with low confidence go into the hint list? All of them, as before 0.12.0, when they were YELLOW; the hint marks them as uncertain.
Additional Changes
tools/jev-evalno longer cuts the verdict column at 60 characters, so the note shows the full config key and value.FakeJevin the tests accepts a confidence per unit and question.