# Write acceptance criteria your agent can check

Acceptance criteria say when a story is done. In Slicemap they are a checklist inside the story, not separate cards on the board. Your agent works against them: it checks each one off as it verifies it and can't move the story to a closed stage while one is unchecked.

## Where criteria live

Open a story: its **Acceptance criteria** section holds the checklist, and **Add criterion** adds a line. You can also add one from the menu of a story on any view. In the Outline view, criteria are the rows nested under each story.

On a card, the Criteria field shows a count like 2/4: checked out of all. Turn the field on or off in **Display** (see [Use views](/docs/how-to/views/)).

## Write criteria the agent can check

The agent checks a criterion by doing something and looking at the result. Write each one so that the result is clear to someone who wasn't in the conversation.

- **One outcome per line.** "Sign-up and login work" is two criteria. Split it so each can be checked on its own.
- **Say what happens, not how it feels.** Instead of "The form is user-friendly", write "After a wrong password, the form says the email or password is wrong and keeps the email filled in."
- **Name the case.** Cover the paths that matter: empty input, a wrong value, no network, a user without rights.
- **Use real values.** "Shows the 20 most recent orders, newest first" can be checked; "Shows recent orders" can't.
- **Say who checks what the agent can't.** If something can only be checked by a person, on a real phone or with a real payment, say so in the criterion, so the agent knows it is yours to check.

A story with criteria like these also gets a better estimate: the agent rates how clear the card is before it starts, and names what is missing when it isn't. See [Agent estimates in minutes](/docs/concepts/agent-estimates/).

## Let your agent write them

You can ask your agent to write criteria for a story, for example "Write acceptance criteria for SM-142". It sends the whole list with `slicemap_set_acceptance_criteria`, up to 30 criteria per story. When it rewrites the list, a criterion whose text stays the same keeps its check mark, new ones come in unchecked, and only the ones left out are removed. Read the list before work starts: it is what the agent will build.

## How the agent checks them off

Slicemap tells your agent to check criteria one by one with `slicemap_toggle_ac_done` as it verifies them, not all at once at the end. Each check shows up on the card's last change line, like "Alex's agent checked a criterion", so you can follow along on the board.

When the agent moves the story to a stage marked Closed, Slicemap checks the list first. If any criterion is unchecked, the move is refused with `criteria_unchecked`, the message lists the unchecked ones, and the story stays in its stage.

:::note
The check applies to your agent. People on the board can move a story to any stage. Stages that are not Closed, like a review stage, accept a story with unchecked criteria, so the agent can hand it over for you to check the rest. See [Set up stages](/docs/how-to/stages/).
:::
