WORKFLOW

How to evaluate an AI coding workflow tool

How to evaluate an AI coding workflow tool without trusting demos: matched pairs, independent checks, every failure kept, and limits stated plainly.

How to evaluate an AI coding workflow tool, in one line: run the same real tasks with and without it, check every result with a test the agent did not write, keep every attempt including failures, and report what you could not measure. Demos are a poor guide because they show the best run of a task chosen to look good. What you need to know is how the tool behaves on your kind of work, across repeats, when things go wrong. That takes an afternoon of setup and a few hours of runs, not a research project. The method below works for any tool that sits around a coding agent: a harness, an editor integration, a prompt library, a context system or a new way of writing tasks. It also works for comparing two configurations of the same tool. Measuring usage is its own topic, covered in measuring token usage fairly; this page covers the evaluation as a whole.

Step 1: choose tasks with independent checks

Pick four to eight tasks that resemble your real work: a bug fix, a small feature, a refactor, a test-writing task, perhaps one that touches several files. Synthetic tasks are fine if they are honest copies of real patterns.

For each task, write a correctness check before any run. It must be independent of the agent: a test file the agent cannot see or must not edit, a script that compares output, or a precise manual checklist. Then run the check against the untouched starting code and confirm it fails. A check that passes before the work is done measures nothing.

Freeze each task as a fixture: a repository snapshot or a script that recreates it, plus the exact task text. Every run starts from a fresh copy, so one run cannot leave state for the next.

Watch for checks the agent can satisfy without solving the task, such as editing the test or special-casing the input. Test tampering by agents lists the patterns. Keep the check outside the workspace, or confirm after each run that it is unchanged.

Write down, before running, what result would change your mind. Otherwise any outcome will look like confirmation.

Step 2: run matched pairs, repeated

Each comparison is a matched pair: the same task, same fixture, same model, same effort or reasoning setting, same machine, one run in each condition. Change only the thing you are evaluating.

Repeat each pair at least twice. Agent runs vary, and a single pair can easily point the wrong way. More repeats are better; two is the minimum that shows you whether results are stable at all.

Drive the real tool the way you would use it, not a mock or a shortcut script, because the integration is part of what you are evaluating. If the tool has a user interface, run through it.

Decide your retry rule in advance and stick to it. No automatic retries. If a run fails for an infrastructure reason, record it and why, and replace it only with an explicit decision you write down. Never quietly rerun until the numbers look right.

As an example of scale, one benchmark during BRAIN FLUID development used 24 counted runs: six synthetic coding tasks, two conditions, two repeats, one small model at low effort, all driven through the actual Desk. Every task had an independent check that failed on the untouched fixture, and all 24 counted runs passed it. It is a small study, and it should be reported as one.

Step 3: record everything, including failures

For each run record: task, condition, repeat number, model and settings, start and end time, the correctness check result, whether the agent claimed success, files changed, and usage.

Keep failed and excluded runs in the data set, marked with the reason. An evaluation that drops failures will make any tool look reliable. In the benchmark mentioned above, three earlier attempts were excluded from the counted set but kept, including one failed run whose usage could not be recovered. That usage stayed unknown rather than being entered as zero, and its replacement was explicitly authorized.

Compare the agent's claim with the check. A tool that produces more confident success reports without more passing checks is making things worse, not better. This is the gap that self-reported vs independent checks describes.

Record usage as complete session ledgers, not a single number from the end of a run, and keep the categories separate. The measurement details are in the token usage article linked above.

Store the raw records, not just a summary table. Six months from now you will want to rerun one task with a new model, and you will need to know exactly what the old run did.

Step 4: test behavior under failure, then report limits

Pass rates and usage are half the picture. Also test how the tool behaves when things go wrong, because that is where workflow tools differ most.

Kill a run halfway and see what state is left and what the tool says about it. Give a task whose check cannot pass and see whether the tool records a failure or a success. Ask for something outside the declared scope and see what stops it. Close the tool mid-task and reopen it. Then look at the record and ask whether a colleague could reconstruct what happened from it alone. Run history and reports describes what that record should contain.

Then write the report with its limits stated plainly: how many tasks, which model, which effort level, synthetic or real, how many repeats, what was excluded and why, and what was not measured. A result from one model on six synthetic tasks says something about that setup and little about a large production codebase.

Be wary of any evaluation, including your own, that reports a single headline number without these details. The details are what let someone else decide whether the result applies to them.

HOW BRAIN FLUID DOES IT

BRAIN FLUID records the material an evaluation needs: work runs through verification gates, with attempts, outcomes and reported usage kept with the work [C4]. Recorded usage is shown with its coverage instead of treating missing numbers as zero [N06]. Reports show recorded work history and dated items, with missing coverage disclosed [C7]. Evidence freshness shows whether recorded evidence still matches its supporting files [C6]. A diff is not treated as proof of correctness, and a hash match shows unchanged bytes, not an adequate check [C4, C6]. In development builds after v1.8.5, an owner-configured verification profile runs the required checks itself before a card can be completed [D3].

C4 Harness gates and usage
Run work through verification gates and keep recorded attempts, outcomes and reported usage with the work. Evidence: Implemented; source and retained usage evidence
N06 Usage coverage
Inspect recorded usage and its coverage instead of treating missing numbers as zero. Evidence: Retained usage evidence and implementation
C7 Reports and provenance
Review decisions waiting for attention, recorded work history and dated items, with missing coverage disclosed. Evidence: Final-candidate projection and browser tests retained
C6 Evidence freshness
See whether recorded evidence still matches its supporting files. Evidence: Implemented; source-documented and retained knowledge tests
D3 Independent completion checks (development build)
In development builds, an owner-configured verification profile runs the required checks itself before a card can be completed; an agent cannot satisfy the gate with its own receipt. Evidence: Development build (autonomy phase 1 RC3, October 30, 2026): deterministic tests with a scripted agent and real check execution. Not in the v1.8.5 candidate.

QUESTIONS

How many test runs do I need to compare two AI coding setups?
At least two repeats of each matched pair, on four or more tasks, before you read anything into the results. Agent runs vary, so one run per condition can point the wrong way. If results flip between repeats, add repeats or tasks before concluding. Report the count either way, since small samples deserve small claims.
Why should a correctness check fail before the agent runs?
Because a check that already passes on the untouched code cannot tell you whether the agent did anything useful. Confirming the failure first shows the check is sensitive to the task. It also catches broken fixtures and checks that test the wrong thing, before you spend runs and attention on them.
Should I drop failed runs from an AI tool evaluation?
No. Keep them in the data with the reason they failed. Failures are part of how the tool behaves, and dropping them makes any tool look reliable. If a run failed for an infrastructure reason unrelated to the tool, you may replace it, but record that decision explicitly and keep the original run.

RELATED GUIDES

RELATED HARNESS PAGES

BRAIN FLUID AI HARNESS

COMING SOON

Verified against the v1.8.5 development candidate (October 30, 2026 build) (reviewed October 30, 2026)

Free Windows software, not released yet. The download opens on the product page when the release is approved, with nothing to sign up for.

ABOUT BRAIN FLUID READ THE GUIDES GET INVOLVED

ALL HARNESS PAGES ALL GUIDES