Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reliability of the roles

codev’s reviewing roles are measured, not assumed. This page shows how they scored the last time the evaluation suite ran, on the run committed in the repository as its baseline. It is generated from that baseline and changes with it.

What the suite measures

The suite is a set of small projects, each with a planned change. A seeded case hides defects a role should find, each with its severity, its location and its category of issue; a clean control hides none. Claude Code runs one skill step on each case with a single role, and the suite scores the review record the role writes: the defects found and missed, the findings that match no defect (false positives), whether each quoted evidence is really at the lines it cites, and whether the severity agrees with the expected one. Measuring the roles gives the rules.

What it does not measure

It is not a benchmark of models, and not a promise that a role finds every defect of your project. It does not measure how useful a correct finding is to you. The plan is measured only as a whole, on the planning cases below, by what it modifies, not role by role. A score describes these cases, on this model, on the day of the run.

The run

  • Date: 2026-10-15
  • Model: Claude Code’s default
  • Claude Code: 2.1.289
  • codev: 0.6.1
  • Cases: 65 (25 seeded, 15 clean controls, 25 planning)
  • Repetitions of each case: 5
  • Cost: 276.46 USD for the 5 runs of each case (55.07 USD for one run of the suite)

At a glance

Recall
1.0039 of 39 seeded defects found
Evidence validity
1.0069 of 69 quotes found at the cited lines
False positives
90.2 per case; a role fails above 2
Roles within the thresholds
8 of 9 1 fail at least one

The run fails its own thresholds. 1 of 9 roles report more than 2 false positives: skeptic. Precision is the roles’ weak point: they report plausible issues that the case does not hold. Reducing these false positives without losing what the roles find is the next work planned on the roles. Every seeded defect was found: on this model, recall does not tell the roles apart, and the differences show in false positives and severity agreement.

False positives per role

False positives per roleHorizontal bars, one per role, sorted by count. The threshold is 2. skeptic: 4 false positives, over the threshold of 2. security: 2 false positives, within the threshold of 2. migration: 1 false positives, within the threshold of 2. ops: 1 false positives, within the threshold of 2. privacy: 1 false positives, within the threshold of 2. accessibility: 0 false positives, within the threshold of 2. newcomer: 0 false positives, within the threshold of 2. performance: 0 false positives, within the threshold of 2. tracer: 0 false positives, within the threshold of 2.01234skeptic: 4 false positives, over the threshold of 2skeptic4oversecurity: 2 false positives, within the threshold of 2security2migration: 1 false positives, within the threshold of 2migration1ops: 1 false positives, within the threshold of 2ops1privacy: 1 false positives, within the threshold of 2privacy1accessibility: 0 false positives, within the threshold of 2accessibility0newcomer: 0 false positives, within the threshold of 2newcomer0performance: 0 false positives, within the threshold of 2performance0tracer: 0 false positives, within the threshold of 2tracer0Threshold: 2
High-confidence findings that match no seeded defect, per role, over every case of the role. The dashed line is the threshold; ▲ over marks a role over it.

Recall and severity agreement per role

Recall and severity agreement per roleTwo meters per role, from 0 to 1. Recall is the share of seeded defects found, with a threshold of 0.50; severity agreement is the share of found defects whose severity is the expected one. accessibility: recall 1.00 (5/5 found), severity agreement 1.00 (5/5). migration: recall 1.00 (5/5 found), severity agreement 0.80 (4/5). newcomer: recall 1.00 (2/2 found), severity agreement 1.00 (2/2). ops: recall 1.00 (6/6 found), severity agreement 0.50 (3/6). performance: recall 1.00 (4/4 found), severity agreement 0.50 (2/4). privacy: recall 1.00 (7/7 found), severity agreement 0.57 (4/7). security: recall 1.00 (6/6 found), severity agreement 1.00 (6/6). skeptic: recall 1.00 (3/3 found), severity agreement 0.67 (2/3). tracer: recall 1.00 (1/1 found), severity agreement 1.00 (1/1).Recall (threshold 0.50)Severity agreementaccessibility: recall 1.00 (5/5 found), severity agreement 1.00 (5/5)accessibility5/55/5migration: recall 1.00 (5/5 found), severity agreement 0.80 (4/5)migration5/54/5newcomer: recall 1.00 (2/2 found), severity agreement 1.00 (2/2)newcomer2/22/2ops: recall 1.00 (6/6 found), severity agreement 0.50 (3/6)ops6/63/6performance: recall 1.00 (4/4 found), severity agreement 0.50 (2/4)performance4/42/4privacy: recall 1.00 (7/7 found), severity agreement 0.57 (4/7)privacy7/74/7security: recall 1.00 (6/6 found), severity agreement 1.00 (6/6)security6/66/6skeptic: recall 1.00 (3/3 found), severity agreement 0.67 (2/3)skeptic3/32/3tracer: recall 1.00 (1/1 found), severity agreement 1.00 (1/1)tracer1/11/1
Each meter runs from 0 to 1 and ends with its fraction. The dashed line on recall is the threshold; ▲ under marks a role under it. A role without a seeded case has no recall (—).

Every role

The table holds every value the charts draw. Cases: seeded and clean controls; found: seeded defects found over those expected; evidence: the share of checked quotes found at the lines they cite; severity: found defects whose severity is the expected one.

RoleCasesFoundMissesFalse positivesEvidenceSeverityThresholds
accessibility5 (3/2)5/5001.005/5 Met
migration5 (3/2)5/5011.004/5 Met
newcomer3 (2/1)2/2001.002/2 Met
ops5 (3/2)6/6011.003/6 Met
performance5 (3/2)4/4001.002/4 Met
privacy6 (4/2)7/7011.004/7 Met
security6 (4/2)6/6021.006/6 Met
skeptic3 (2/1)3/3041.002/3 Failed: false positives
tracer2 (1/1)1/100—1/1 Met

Planning

25 planning cases replay a request against the repository as it was before an archived change, and score the plan /codev-propose writes against what that change really did: the primary recall is the share of the requirements the request is about that the plan modifies, the collateral recall the share of those the real change modified in passing; a probable duplicate is a requirement added where one should have been modified. Each figure is the median over the repetitions, with its range.

MeasureMedian (range)
Primary recall0.69 (0.58–0.78)
Collateral recall0.39 (0.28–0.44)
Probable duplicates14 (6–15)
Decisions ignored0 (0–1)
Plans that do not validate1 (0–2)

What a run consumes

  • One run of the suite: 55.07 USD
  • Input per call, in tokens: 63465
  • Output per call, in tokens: 696

Every call to the model is recorded. The tokens a call writes to the cache — what entered its context since the previous call, the bulk of a run’s cost — are shared among what brought them in: the skill read, each codev subcommand, the files, the searches, the model’s own output; prompt is Claude Code’s own prompt and the request. Per case the median over its runs, summed over the cases.

Where the tokens goHorizontal bars, one per source, ranked by their share of the cost. skill: 843692 tokens, 23 % of the cost. file: 791139 tokens, 21 % of the cost. prompt: 490778 tokens, 13 % of the cost. edit: 372821 tokens, 10 % of the cost. search: 338245 tokens, 9 % of the cost. shell: 205076 tokens, 6 % of the cost. output: 163212 tokens, 4 % of the cost. codev instructions: 158702 tokens, 4 % of the cost. codev roles: 100208 tokens, 3 % of the cost. codev review: 95800 tokens, 3 % of the cost. codev validate: 64896 tokens, 2 % of the cost. codev new: 54593 tokens, 2 % of the cost. agent: 22404 tokens, 1 % of the cost. codev --help: 2347 tokens, 0 % of the cost. codev list: 507 tokens, 0 % of the cost. codev status: 295 tokens, 0 % of the cost.0 %25 %50 %75 %100 %skill: 843692 tokens, 23 % of the costskill23 %file: 791139 tokens, 21 % of the costfile21 %prompt: 490778 tokens, 13 % of the costprompt13 %edit: 372821 tokens, 10 % of the costedit10 %search: 338245 tokens, 9 % of the costsearch9 %shell: 205076 tokens, 6 % of the costshell6 %output: 163212 tokens, 4 % of the costoutput4 %codev instructions: 158702 tokens, 4 % of the costcodev instructions4 %codev roles: 100208 tokens, 3 % of the costcodev roles3 %codev review: 95800 tokens, 3 % of the costcodev review3 %codev validate: 64896 tokens, 2 % of the costcodev validate2 %codev new: 54593 tokens, 2 % of the costcodev new2 %agent: 22404 tokens, 1 % of the costagent1 %codev --help: 2347 tokens, 0 % of the costcodev --help0 %codev list: 507 tokens, 0 % of the costcodev list0 %codev status: 295 tokens, 0 % of the costcodev status0 %
The share of the cost of the tokens written to the cache, per source, over every case of the suite.
SourceTokensShare of the cost
skill84369223 %
file79113921 %
prompt49077813 %
edit37282110 %
search3382459 %
shell2050766 %
output1632124 %
codev instructions1587024 %
codev roles1002083 %
codev review958003 %
codev validate648962 %
codev new545932 %
agent224041 %
codev –help23470 %
codev list5070 %
codev status2950 %

The thresholds

A role fails when its recall is under 0.50, when it reports more than 2 false positives, or when less than 0.80 of its checked evidence is valid — the suite’s defaults, --min-recall, --max-false-positives and --min-evidence. A role with no seeded case has no recall, and one with no checked finding no evidence validity: neither fails on it.

  • skeptic fails: false positives 4 > 2
  • Within every threshold: accessibility, migration, newcomer, ops, performance, privacy, security, tracer

The limits

  • 5 runs per case. A model does not answer the same way twice: each score is the median of 5 runs of every case, and a change is compared with the range they span, on the same model, not across days or models.
  • Only what the cases cover. 65 cases, 25 of them seeded with 39 defects. A kind of defect that no case seeds is not measured: a recall of 1.00 means these defects were found, not every defect.
  • A controlled context. Each case is a small project reviewed by one role alone, within a fixed budget and time. Your project is larger, and the roles review it together.
  • Not a guarantee. The scores describe the roles on this model and this version of Claude Code. Another model may score differently. Read what the roles report before acting on it.
  • Planning replays a public history. The planning cases replay requests against codev’s own past states, which the model may have read: their figures compare two versions of the skills on the same cases, they do not tell how well codev plans a project it has never seen.

Run it yourself

From a clone of the repository, with Claude Code installed and signed in. A run calls a model: this one cost 276.46 USD for the 5 runs of each case (55.07 USD for one run of the suite).

cargo build --bin codev
cargo run -p codev-evals -- run --out target/evals/mine
cargo run -p codev-evals -- score target/evals/mine

The observations, the reports and the run’s metadata are in evals/baseline. The contributing guide explains how a change to a role is measured.