feat(ui): solo-find bonus — reward a model for catching what others missed
Build & push image / build-and-push (push) Successful in 20s
CI / test (push) Successful in 10m20s

Adds an editable 'solo-find bonus ×' (default 1.5). A confirmed finding reported by exactly one model (derived from the global reporter count per content-addressed finding — no grader flagging needed) scores severity × bonus. New 'solo' column counts uniquely-caught confirmed findings. Solo-ness is computed over ALL data so the model filter can't fake it. Client-side only; store stays point-free.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-27 12:24:29 -04:00
parent 0cb6b25f11
commit c15f860853
2 changed files with 27 additions and 8 deletions
+6
View File
@@ -137,6 +137,12 @@ Blocking→high, Minor→small): `penalty × points[claimed]`. So a Blocking-cla
`high(8) × -0.5 = -4`, and a model with the odd good find but many false positives nets *down*
even negative — instead of coasting on its hits.
And an editable **solo-find bonus ×** (default `1.5`). Because findings are content-addressed, the
number of models that reported one is known, so a confirmed finding that **only that model** caught
(no other model reported it) scores `severity × bonus` — rewarding catching what the swarm missed.
The `solo` column counts those. This is derived from the data (reporter count); the grader never has
to flag it. Set the bonus to `1` to disable.
Auth: the `/ui` shell is public (it holds no data); paste the store token into its **connect** box,
or open `/ui?token=<token>` once (remembered in `localStorage`). Prefer your own dashboard? Point
Grafana/Metabase/etc. at the SQLite file or the same `/export` + `/scoreboard` + `/runs` JSON.