Acceptance criteria
An acceptance criterion is a testable statement of what “done” means for a task. In Masaro, it’s not a nice-to-have field; it’s the contract the whole agent workflow runs on.
Why a contract
When you hand work to an AI agent, you’re delegating decisions. Without a criterion, the agent fills the gaps with plausible guesses, and you’re left inspecting the output with no standard to inspect it against. You can’t verify work you never specified; you can only vibe-check it.
A criterion changes both ends of the hand-off:
- Before the work: the agent knows the target. Ambiguity gets resolved in the task, where it’s cheap, not in the code, where it’s expensive.
- After the work: you grade output against explicit checks. Met or not met. The review takes minutes and produces a real answer.
What a good criterion looks like
Verifiable, specific, scoped to the task. Compare:
| Weak | Verifiable |
|---|---|
| Add search | Searching for a task by a word in its title returns it in the results within 1s; an empty query shows recent tasks, not an error. |
| Improve error handling | A failed save shows an inline error, keeps the user’s input, and logs the failure with a request ID |
| Set up CI | pnpm run verify runs on every push and a red run blocks merging |
The pattern: an observable behavior, a boundary, and a failure mode. If you can’t imagine the check failing, it isn’t a criterion; it’s a wish.
Criteria in the agent loop
Tasks can carry multiple criteria. When an agent completes a task over MCP, it doesn’t just say “done”: it submits a summary and maps each criterion to whether it was met. That mapping is what you review. A task with unmet criteria isn’t done, no matter how much code got written.
When to skip them
Real answer: sometimes. A trivial chore (“bump the dependency”) doesn’t need ceremony. The rule of thumb: anything you’d hand to an agent or a teammate you won’t be pairing with, and anything you’d argue about at review time, gets a criterion. Masaro won’t block you either way; it just makes the gradeable path the easy path.