How the panel works
Dicast splits the two jobs a single reviewer does badly at once: finding things, and deciding which of them deserve your attention.
Two jobs, two mechanisms
Recall and precision pull in opposite directions. A reviewer told to catch everything will flag things that do not matter; a reviewer told to stay quiet will miss things that do. Most tools resolve this with one model doing both jobs and a severity dial you guess at.
Dicast resolves it structurally. A wide, inexpensive scan optimises purely for recall — it is never the thing you read. A panel then decides, per finding, whether it survives.
The scanning pass
One model reads the diff with the surrounding code as context: call sites, type definitions, and the tests that cover the changed functions. It proposes every issue it suspects, including ones it is unsure about. Being wrong here is cheap, because nothing it produces reaches you directly.
The hearing
Each candidate finding is sent to three jurors, drawn from three different model vendors. Three properties make the vote meaningful:
- The juror did not write the finding. A model that authored a claim is a poor judge of it — it has already committed. A juror arrives with no such commitment.
- The juror is asked to refute, not confirm. The prompt’s default is rejection. Affirming requires the juror to explain why the finding holds given the surrounding code.
- Jurors are blind to one another. They run in isolated contexts and never see another juror’s reasoning, so nobody anchors on the first opinion.
Why three vendors and not three calls
A vote is only informative if the voters can disagree. Models trained on overlapping data make correlated mistakes: three instances of the same model shown the same finding tend to reach the same wrong answer together, which produces a confident panel and no new information.
Drawing jurors from different vendors buys genuine independence. You can seat a single-vendor panel with panel.jurors, and it will run — but the threshold means less, because agreement is cheaper.
Votes and thresholds
Two affirming votes post a comment. Three fail the merge gate. Both are configurable per repository and per path; see verdicts and thresholds for how to choose them.
The panel reviews findings, not your code. Each hearing is short, the three run in parallel, and only candidates from the scanning pass are heard — which is why three jurors do not mean three times the latency. See plans and quotas.