What acceptance criteria are
Each card or user story gets its own acceptance criteria. They describe what the result must do, from the user's point of view, not how to build it. They're written before the work starts, agreed with the person who asked for it, and checked before the card counts as done.
They are not the same as a definition of done. Acceptance criteria belong to one card. The definition of done applies to every card, with checks like "reviewed" and "tested". A card is finished when it meets both.
Format 1: a checklist of rules
A plain list of statements, each true or false. Quick to write and easy to check.
Example: password reset
Story: As a user who forgot my password, I want to reset it by email, so that I can get back into my account.
- The sign-in page has a "Forgot password?" link.
- Entering a registered email sends a reset link within a minute.
- Entering an unknown email shows the same message, so nobody can find out who has an account.
- The link works once and expires after 1 hour.
- The new password must be at least 8 characters.
- After a reset, other signed-in sessions are signed out.
Example: a CSV export
- The export includes every column visible on screen, in the same order.
- Dates use the format YYYY-MM-DD.
- An empty list exports a file with the header row only.
- Exports of up to 10,000 rows finish in under 10 seconds.
Format 2: Given, When, Then
A scenario format from behaviour-driven development. Each scenario says the starting state, the action, and the expected result. It's longer, but it reads as a test, and some teams turn it into automated tests directly.
Example: a discount code
- Given a basket worth 50 and a valid 10% code, when the customer applies the code, then the total shows 45.
- Given an expired code, when the customer applies it, then the total is unchanged and the message says the code has expired.
- Given a code has already been applied, when the customer applies a second code, then the message says only 1 code can be used.
Example: an approval flow
- Given an expense over 500, when it's submitted, then it goes to the submitter's manager for approval.
- Given an expense under 500, when it's submitted, then it's approved automatically.
Which format to use
- Use a checklist for most work: content, design, simple features, internal changes. It's faster to write and to check.
- Use Given, When, Then where behaviour depends on the situation: rules, permissions, money, edge cases. The structure makes you think through each case.
Mixing them on one team is fine. Mixing them on one card usually isn't.
How to write good acceptance criteria
- Write them before work starts. Criteria written afterwards describe what was built, not what was needed.
- Agree them with the person who asked. They're the contract between the 2 of you.
- Make each one testable. "Fast" can't be checked. "Loads in under 2 seconds" can.
- Describe the result, not the build. "The customer can pay by credit card", not "add a Stripe form".
- Cover the unhappy paths. Wrong input, empty lists, no permission, no connection.
- Keep the list short. 3 to 7 criteria. If you need 15, the card is too big. Split it.
On a board
In craaft, acceptance criteria fit naturally as a checklist on the card:
- Add each criterion as a checklist item, so the card shows how many are met, like 3/5.
- Tick them off as they pass review, and only move the card to done when they're all ticked.
- Agree changes in the card's comments, so there's a record of what changed and why.
- An agent connected over MCP can draft criteria from a story and add them to the checklist for you to edit.
Questions
What are acceptance criteria?
The conditions a piece of work must meet before the person who asked for it accepts it. They're specific to one card or user story, and written before the work starts.
Who writes acceptance criteria?
Usually the product owner or whoever asked for the work, with the team that will do it. Writing them together catches misunderstandings early.
What's the difference between acceptance criteria and a definition of done?
Acceptance criteria say what one card must do. The definition of done says what every card must go through, like review and testing. A card needs both to be finished.
How many acceptance criteria should a story have?
Usually 3 to 7. Many more than that is a sign the story is too big and should be split.