Leadership

When to Let an Agent Mark Its Own Checklist

Antonio Evans10 min read

A three-column desk layout seen from slightly above.
Key points

Key points

  1. 1Sort every checklist item by who can detect its failure, not by how important it feels.
  2. 2Mechanical failures with unambiguous signals belong in tier one, where the agent marks its own box.
  3. 3Judgment failures belong in tier two, where a different model scores the work against a written rubric.
  4. 4Consequence failures (money, permissions, irreversible side effects, intent) stay in tier three, signed off by a person.

Start with the failure, not the check

The hardest part of agent design is not writing the checklist. It is deciding who is allowed to tick each box. Teams let an agent grade its own work because the alternative looks slow, and they pay for it later in confident, wrong output that nobody caught.

The decision rule holds across domains: for every check, ask who can detect its failure. Three answers exist, and each maps to a tier.

TierWho marks the boxFailure typeSignalExample checks
1The agent itselfMechanicalUnambiguous, binaryValid JSON, exit code 0, tests pass, hash match
2A different modelJudgmentAmbiguous, rubric-ableTone, groundedness, rubric compliance
3A personConsequence or intentIrreversible or intent-dependentRefunds, deploys, permission grants, legal claims

The failure is rarely in the tooling; it is in misclassifying a tier two or tier three check as tier one because the agent said it was done.

Project managers meet the same problem. You decide what to hand off by understanding where your time goes and what the recipient can actually own, not by handing over whatever you dislike most (Sarah M. Hoban). With agents the question is sharper, because a model cannot reliably know when it has failed at something it cannot measure.

Tier one: checks the agent can mark itself

A check belongs here when the failure is mechanical, the signal is unambiguous, and deciding pass or fail needs no interpretation. The canonical examples:

  • Schema validity. The output parses against the schema you defined. It parses or it does not.
  • Exit codes. A command returned 0. A build succeeded.
  • Unit tests. A named suite ran and every test passed.
  • Hash match. The artifact content matches the expected digest.
  • File existence and size. The output file is present and non-empty.
  • Deterministic lint. A linter reports zero violations against a fixed rule set.

None of these require judgment about quality. They require running a tool and reading a boolean. That is the whole test: if a five-line script returns an identical verdict, the check is tier one.

Format instructions make tier one possible. Delimiters, numbered steps, and an explicitly specified output format are the basics that make responses consistent enough to parse (LaunchDarkly). If you cannot parse the output, you cannot check it mechanically, and the check slides up to a higher tier.

An agent asked to produce a configuration file runs checks like this:

import json, hashlib, subprocess

raw = open("config.json").read()
cfg = json.loads(raw)                                 # invalid JSON raises
assert set(cfg) == {"region", "retries", "timeout"}    # exact keys
assert cfg["retries"] in range(0, 10)                  # bounded value
digest = hashlib.sha256(raw.encode()).hexdigest()
assert digest == open("expected.sha256").read().strip()
assert subprocess.run(["config-lint", "config.json"]).returncode == 0

Every assertion is binary. The interpreter either raises or it does not, so there is nothing for the agent to be generous about.

The failure mode that promotes a tier one check

Tier one breaks in one predictable way: the check is mechanical but the signal is not. An agent that writes its own test can write a test that trivially passes. An agent that picks which files to hash can pick the wrong ones.

The rule: a tier one check is only tier one if the agent cannot influence both sides of the comparison. The schema comes from outside the agent. The test suite is pre-existing or reviewed by someone else. The expected hash is computed independently. When the agent authors the check and the work, the check has moved to tier three even though it looks mechanical, because verifying the check needs a person.

Test practitioners have long known that a high pass rate proves little on its own: you also need coverage, remaining risks, and the quality of the tests themselves (TestRail). An agent is exactly the kind of test author that inflates pass rates with weak tests.

Tier two: checks that need a second model

Tier two is where most real quality lives, and where teams make the expensive mistake of self-grading. The failure needs judgment (is this grounded, does it match the rubric, is the tone right?) but a second model, given the input, the output, and the source material, can catch it.

The rule: route the check to a different model than the one that produced the work, and give the judge a written rubric plus any reference material it needs. An LLM judge returns labels, scores, or comparisons for criteria such as correctness, relevance, and groundedness, using the task input and reference material (Arize).

Why the judge must be a different model

A model reviewing its own draft tends to agree with it. It wrote the text under a set of internal assumptions, and when it re-reads the text it brings them back. A second model does not share them. A well-prompted judge can approximate human evaluation closely enough to be useful at scale, and multi-agent frameworks reduce the bias any single judge carries (the agent-as-a-judge review).

A worked example

A retrieval-augmented support agent answers refund questions. A different model judges it.

Judge inputContent
User query"What is our refund policy?"
Retrieved context"Customers can request a refund within 30 days of purchase."
Agent response"You can request a refund within 60 days."
Rubric"Does the response accurately reflect the retrieved context? Answer YES or NO and explain."
VerdictNO, the response contradicts the context: 30 days, not 60.

This mirrors a documented judge pattern (Arize). The point is not that the judge is clever. The point is that it is external: it reads the evidence and compares, which the producing model does not reliably do against its own output.

Start from the failure you need to catch. Use code for deterministic checks and an LLM judge only where evaluation requires interpreting meaning (Arize). That sentence is the boundary between tier one and tier two.

A tier two check costs a second inference call per item. That is the honest trade: tokens spent to avoid a human review, spent only where interpretation is needed. Quanta Inference (https://quantaintelligence.ai/inference) puts text, image, video, audio and embedding models behind one OpenAI-compatible key, which is one way to point the judge at a different model than the producer without running two integrations.

The failure mode that promotes a tier two check

  1. Vague rubric. "Is this good?" produces noise. The judge needs explicit pass/fail criteria and reference material, or it invents standards.
  2. Position bias. Judges favor answers by position in the prompt, and this bias is not random: it varies across judges and tasks and is strongly affected by the quality gap between candidates (the position bias study). Swap the order of compared outputs. If verdicts flip, the check is unreliable.
  3. A sympathetic judge. A judge from the same model family, given no reference material, rewards plausible-sounding text. Give it the source and require it to quote it.

If a tier two check keeps producing verdicts a person would overturn, it is a tier three check wearing a costume, and the costume costs you a false sense of coverage.

Validating the judge before you trust it

Validate the judge before relying on its scores: compare it with reviewed examples, inspect missed failures, and keep the evaluator version and evaluation data in view when comparing results (Arize).

StepWhat you doWhat you learn
1Label 40 to 100 real items by handGround truth
2Run the judge on the same itemsJudge verdicts
3Count false passes and false fails separatelyWhether the judge is strict or lenient
4Inspect every false passWhich rubric clause is missing
5Rewrite the clause and re-runWhether the fix generalizes

False passes are the dangerous error. A judge that misses bad work is worse than no judge, because it moves work into a pipeline without review. Track false passes as a first-class number.

Judges handle pairwise comparisons and direct scoring, offline and online, and their success depends on the prompt, the model, and the complexity of the task (Evidently AI). That dependence is not a caveat; it is a design instruction. Complex tasks need decomposed rubrics, not one holistic score.

Tier three: checks that stay with a person

A check belongs with a person when the failure is about consequence, intent, or an irreversible side effect.

  • Consequence. The action moves money, grants access, deletes data, publishes to the public, or commits the organization.
  • Intent. The question is not "did it follow instructions" but "did someone mean this." Agents cannot read intent behind an ambiguous request, and a person has to confirm what was meant.
  • Irreversibility. There is no undo. The check cannot be "mark done"; it has to be "someone who can live with the outcome says yes."

A judge can evaluate text; it cannot accept the consequence of acting on it. The agent-as-judge literature says as much: agent-based judging can complement but not replace human oversight (the agent-as-a-judge review).

Plain-language discipline transfers neatly here. A checklist item should answer the reader's question, use "must" for requirements, and avoid ambiguity like "shall" (U.S. Department of Labor). Write tier three items as yes/no decisions with a named approver. "May this refund of the stated amount go to account Y? Approver: finance owner" is an item. "Check the refund looks reasonable" is not.

Designing a gate people actually use

  1. Show evidence and consequence together. The approver needs the diff, the amount, the destination, and the trigger on one screen.
  2. State the safe default. The item says what happens if nobody approves, and the answer must be: nothing irreversible happens.
  3. Log who approved and when. An approval without a record cannot be audited. Operational checklists that record who ran each step turn incident reviews into a document instead of a scramble (Whale).

Shop-floor work instructions make the same point: a precise description of the normal sequence with no response plan is the common failure. People then know the target process but not what to do when something is missing or out of tolerance (Operations1). Give every tier three item a stop-and-escalate rule: stop, mark, quarantine, escalate to a named person.

The most common misclassification

The most common error is putting a reversible-looking action in tier one because the agent can do it and any single instance is small. A thousand small refunds is not small. Aggregate consequence is a consequence. Any check whose cost of being wrong compounds across runs belongs with a person.

Ask what happens if the check passes wrongly on every run for a week. If the answer is "we notice and fix a few files," tier one is fine. If the answer is "we have a compliance problem," it was never tier one.

A decision procedure you can run on one checklist

Run the questions in order.

Pass 1, the mechanical test. Can a five-line script produce an identical verdict with no interpretation? If yes, and the agent cannot author both the check and the work, the item is tier one. If the agent authors the check, send it to a person for review first.

Pass 2, the judgment test. Does the failure need interpretation but have a written rubric and reference material a second model can apply? If yes, the item is tier two. Name the judge model, the rubric, the reference material, and the validation set in the item itself.

Pass 3, everything else. Consequence, intent, irreversibility. Name the approver and the safe default.

Then set a cadence. Sample tier one items to confirm the checks still test what you think. Sample tier two verdicts against human labels on a regular interval. Review tier three approvals for patterns, such as one approver rubber-stamping everything, which usually means the gate fires too often or the evidence is hard to read.

The arc from manual work to a partially automated checklist to a fully automated one is well known in operations, and it holds for agents: automate what you are confident about, keep people on the rest, and move items up a tier only when the evidence says you can (Deep Roots).

If you are designing these gates across a whole line of business rather than one agent, Quanta Experts (https://quantaintelligence.ai/agents) hands the work back as finished deliverables, a natural place to put a tier two rubric and tier three approval pattern in front of a practitioner.

What good checklist items look like

A checklist item is a contract between the agent and whoever marks it. Weak items invite self-grading.

PropertyWeak itemStrong item
Owner"Verify output is correct""Run npm test, mark pass only on exit code 0"
Evidence"Looks fine"Attach the test log, the diff, or the judge verdict
Outcome"Reasonable quality"Judge returns PASS against rubric clause 3
Safe default(none stated)"If not approved, no refund is issued and the item stays open"

Prompt structure matters as much as checklist structure. Putting the task first, separating instructions from context with delimiters, and being precise about the output format make responses consistent enough to check (Accelirate). An item that cannot be checked against a structured response will be graded by vibes.

FAQ

FAQ

What counts as an unambiguous signal for a tier one check?

A signal is unambiguous when a script reading it produces the same verdict a careful person would, every time. Exit codes, parse success, exact test counts, and checksum equality qualify. Anything requiring a reader to decide whether output is "correct enough" does not.

Can an agent ever grade its own rubric-based work?

Not reliably, and not for any check that matters. A model tends to agree with its own draft, which is why judgment checks go to a different model. A single judge carries its own biases and one perspective, which is why multi-agent evaluation frameworks exist (the agent-as-a-judge review).

How many examples do I need before trusting a judge?

Enough hand-labeled examples to catch systematic leniency. A few dozen focused on the failure modes you care about will show you false passes, the errors that matter. Validate against reviewed examples and inspect missed failures before relying on scores (Arize).

What if a tier two judge disagrees with itself across runs?

Treat the instability as evidence of an under-specified rubric or position bias. Rewrite the rubric with explicit pass/fail criteria and test the judge by swapping output order. Position bias is measurable, and verdicts that flip on order mean the check is not trustworthy yet (the position bias study).

Who signs off when the consequence is shared across teams?

Name one accountable approver per item, not a committee. Shared accountability without a named owner is how tier three gates become rubber stamps. Record the approver and the time so the approval can be audited later, the way logged operational checklists do (Whale).

Sources

Sources

  1. How to Delegate Effectively - Sarah M. Hoban
  2. Prompt Engineering Best Practices: Tutorial & Examples | LaunchDarkly
  3. Test Case Execution in Software Testing
  4. LLM-as-a-Judge: Guide & Pre-built Evaluators
  5. The Rise of Agent-as-a-Judge Evaluation for LLMs
  6. A Systematic Study of Position Bias in LLM-as-a-Judge
  7. LLM-as-a-judge: a complete guide to using LLMs for ...
  8. PDF Plain Language Quick Reference Guide - U.S. Department of Labor
  9. Checklists: Turn SOPs Into Repeatable Steps
  10. How to Create Work Instructions in Manufacturing
  11. DevOps #1: Automate Yourself with Checklists - Deep Roots
  12. 10 Essential Prompt Engineering Best Practices for Any AI Model - Accelirate
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles