In everyday life
It is like a builder and a client agreeing, before work starts, on six cupboards, a hot tap and a door wide enough for the fridge. At the end, each item is either there or it is not.
One case
A developer asks an agent to “add discount codes to the checkout”. An hour later the agent reports done: codes apply and the tests pass. Nobody said whether codes may be combined, so a customer enters three 20% codes and gets 60% off.
A short list of checks, written before the work starts, that the result must pass to count as done. Each check is something you can observe: a command, a screen, a number.
Every case
An agent stops when it believes the task is done, and a vague goal lets it believe that early. It fills each gap with a guess and reports success on the parts it chose to build. Criteria written up front close those gaps before the work starts: they name the edge caseAn unusual input at the limit of what the code expects, such as an empty cart or a group larger than any table. the agent would skip. Each criterion is also a check the agent can run on itself, and a list the reviewer can tick.
The word
Engineers call this
Before the agent starts, write down what done means as checks that pass or fail. If you cannot write the checks, the task is not ready to hand over.