Is the task done?
Don't trust an agent's "done". Check the transcript for proof, open errors and skipped work.
One job: decide whether an agent really finished. It checks that every part of the task was addressed, that there's evidence it works (tests, output) rather than just a claim, and that no error or TODO was left behind, and quotes what it found.
Try it live
Real calls to Jev. Pick an example or paste your own.
Pick an example or paste your own input, then run it.
Under the hood
Every question and rule, in the open. Fork it to change any of them.
What it asks
Reads task and transcript, then asks 5 questions in one call.
- Q1Claims it's doneYes / no
Does the
transcriptclaim thetaskis finished? - Q2Shows proofYes / no quotes evidence
Does the
transcriptshow concrete evidence that thetaskworks (tests passing, command output, a verified result), not just a claim? - Q3Leaves errors openYes / no quotes evidence
Does the
transcriptend with an error, a failing test or a warning that was never resolved? - Q4Covers every partYes / no
Does the
transcriptaddress every part of thetask? (If the task lists several things, each one must be handled.) - Q5Skipped or stubbed workYes / no quotes evidence
Does the
transcriptmention skipping, stubbing, mocking or leaving a TODO for something thetaskasked for?
How it decides
Rules run in code, top to bottom. The first one that matches gives the verdict.
- 1If Leaves errors open ≥ 0.6Not done
- 2If Skipped or stubbed work ≥ 0.6Not done
- 3If Covers every part < 0.4Not done
- 4If Claims it's done < 0.4Not done
- 5If Shows proof < 0.5Done, but unprovenreview
- ·DefaultDone
Call it from your code
Every template runs as-is with an API key, no setup: POST /api/v1/judges/task-done-checker/run.
curl -X POST https://tryevally.com/api/v1/judges/task-done-checker/run \ -H "Authorization: Bearer $EVALLY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": { "task": "Add rate limiting to the /login endpoint and write tests for it.", "transcript": "I added a rate limiter to the /login route using a sliding window of 5 attempts per minute. The tests should pass. I left a TODO to add the tests later since the test setup was complicated. Everything is done!" }}'Seen in the wild
Community builds on Jev that use this pattern. Not affiliated with Evally.
More in Agents
- Agents
Tool-call firewall
Judge every agent tool call before it touches your machine: allow, ask a human, or deny.
AllowAsk a humanDeny10 questions - Agents
Agent loop & drift detector
Spot an agent that's stuck in a loop, drifting off-goal, or blocked, and stop wasting tokens.
ContinueNudge: change approachStop and escalate4 questions - Agents
Model router
Send each prompt to the cheapest model that can handle it.
Small modelMid-size modelFrontier model+14 questions - Agents
Tool router
Pick the right tool for a request without an LLM tool-calling round trip.
Ask to clarifyConfirm firstWeb search+62 questions - Agents
Context relevance filter
Decide what an agent keeps in context: keep, compress or drop each chunk.
KeepCompressDrop3 questions - Agents
Memory gate
Decide which messages in an agent's chat are worth remembering next session, and which change what it already knows.
Save itReplace a lineSkip4 questions