review classifier: the review table shows a pass/fail symbol, certainty against threshold, and an emoji on the overall line
The review body's table is now: result | check | certainty / threshold | reason. The result cell is a symbol for what the row did to the review, after polarity (✅ counted and passed, ❌ counted and failed, ❔ not counted or no answer), then the model's verdict. The overall line carries ✅ / ❌. Polarity, threshold and counted are folded into those cells. The prompt asks for a reason under 350 characters; the enforced cap stays 500, so an overshoot is truncated less often.
This commit is contained in:
parent
46fd6e502a
commit
731cef4c2d
5 changed files with 172 additions and 43 deletions
|
|
@ -300,8 +300,8 @@ The model answers each classification in JSON. The answer holds:
|
|||
|
||||
- a **verdict**, one of _match_, _no match_ or _not applicable to this PR_
|
||||
- a **certainty** from 0 to 100, how sure the model is of that verdict
|
||||
- a **reason**; the classifier truncates one over 500 characters to 499 plus
|
||||
`…`, and keeps the verdict and certainty
|
||||
- a **reason**; the prompt asks for under 350 characters, and the classifier
|
||||
truncates one over 500 to 499 plus `…`, keeping the verdict and certainty
|
||||
|
||||
An answer:
|
||||
|
||||
|
|
@ -339,14 +339,20 @@ all.
|
|||
The service account posts the verdict as a forge review, approve or request
|
||||
changes, and the table is the review's body. An illustrative table:
|
||||
|
||||
| classification | polarity | verdict | certainty | threshold | counted | reason |
|
||||
| -------------- | -------- | -------------- | --------- | --------- | ------- | -------------------------------------------- |
|
||||
| datetime | positive | no match | 92 | 80 | yes ❌ | Two new timestamps use naive datetimes. |
|
||||
| no-ads | negative | no match | 99 | 90 | yes ✅ | No commit message carries an AI attribution. |
|
||||
| bao-first | positive | not applicable | 95 | 70 | no | The PR adds no secret. |
|
||||
| docs-updated | positive | match | 41 | 60 | no | Below threshold. |
|
||||
| result | check | certainty / threshold | reason |
|
||||
| ----------- | ------------ | --------------------- | -------------------------------------------- |
|
||||
| ❌ no match | datetime | 92 / 80 | Two new timestamps use naive datetimes. |
|
||||
| ✅ no match | no-ads | 99 / 90 | No commit message carries an AI attribution. |
|
||||
| ❔ unsure | bao-first | 95 / 70 | The PR adds no secret. |
|
||||
| ❔ match | docs-updated | 41 / 60 | Below threshold. |
|
||||
|
||||
**Overall: request changes.**
|
||||
**Overall: ❌ request changes**
|
||||
|
||||
The result cell is the symbol for what the row did to the review, then the
|
||||
model's verdict. ✅ is a counted row that passed its polarity and ❌ a counted
|
||||
row that failed it, so _match_ is ✅ on a positive rule and ❌ on a negative one.
|
||||
❔ is a row that doesn't count: below its threshold, not applicable (shown as
|
||||
_unsure_), or without an answer. The certainty cell reads _certainty / threshold_.
|
||||
|
||||
The approval is a real one: it counts toward a repo's required approvals
|
||||
like any other ([`pr-review-gate.md`](../process/pr-review-gate.md)). The
|
||||
|
|
|
|||
Loading…
Reference in a new issue