Skip to content

guardian: does impact_score earn its cost? (collinear with verdict, +69% tokens) #271

Description

@zaebee

Decision point deferred from #246, to be taken once there is more evidence than the 3-PR run in #269.

What was measured

The two-axis contract (verdict = is it true, impact_score 0-10 = does it matter) was designed so the axes are orthogonal. Measured across pr-143/144/140 with a gemini-2.5-flash skeptic over frozen finder sets:

  • Pooled separation median(score|GT) − median(score|non-GT) = 3.0 against a 3.0 gate. It passes, with zero margin.
  • Per-PR it swings 1.5 / 7.0 / 2.0 — the axis is not stable across PRs.
  • On pr-143 the separation among survivors is 0.0: the low scores sit exactly on findings gemini had already refuted, and every surviving noise finding scores the same as the ground-truth ones (medians 7.0 vs 7.0).

In other words, for both models tested the score is largely a restatement of the verdict rather than an independent signal.

Cost side: per-finding judgement ran 221k skeptic prompt tokens across the three PRs versus ~131k for the batch arm — +69%. (Note that cost belongs to per-finding isolation, which is justified independently by recall protection; the question here is only whether the score adds anything on top.)

Options

  1. Keep as observe-only — record the score, never threshold on it, revisit when a third skeptic family is benchmarked. GUARDIAN_IMPACT_THRESHOLD already defaults to 0, so this is the status quo.
  2. Try to make it orthogonal — the rubric currently invites the model to score low for the same reasons it refutes. A prompt that asks for importance assuming the finding is true might decouple them. Cheap to test with replay (no finder cost).
  3. Remove it — drop the field, the threshold knob and the separation gate; keep per-finding isolation for its recall protection alone.

Option 2 is the cheapest informative next step and should be tried before 3.

Do not decide from one more run

Per-PR variance (1.5 / 7.0 / 2.0 on n=4-6 ground-truth findings each) means a single additional PR cannot settle this. Needs the pooled figure over more PRs, or a deliberate prompt A/B via --replay-finder.

Refs #246, #269.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions