Getting started  /  How the panel works

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:

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.

Cost

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.