The term comes from Scrum: the 2020 Scrum Guide describes the definition of done as a formal description of the state of the increment when it meets the product's quality measures, and work that does not meet it cannot be released (specstory's summary of the definition of done). On a human team, a developer checks their own work against that list, and several items rest on judgment. When an agent does the work, its report on its own work is generated text, not a record of what ran. So every item needs a check that runs apart from the agent and leaves a record.
That gap shows up in practice. One developer audited 516 "done" claims from his own coding agent sessions and found no passing test run behind 65 to 69 percent of them, depending on how strictly they were counted (the audit, as reported by specstory). This is why spec-driven development puts acceptance criteria up front: the spec is the connective tissue linking intent to architecture, implementation, tests and validation, and the lifecycle ends in a validate step rather than a "looks good" (Microsoft on spec-driven development).
The decision rule for this article is simple. If you cannot write a command whose exit code and output decide the question, the item is not an automated acceptance check. Either rewrite the item until it is, or move it to the manual step described further down.



