Given / When / Then acceptance criteria, generated from your requirements
Good acceptance criteria are concrete and testable. baticket writes them as Gherkin scenarios that cover every path in your material — not just the happy one — and keeps field names and status codes consistent with the specification.
The scenario format
Each scenario has a short name and Given / When / Then steps, with And for continuations. Then-steps are observable outcomes — for example “the API responds 409 with EMAIL_TAKEN” — never vague statements like “it works”.
Coverage you'd otherwise write by hand
- The happy path.
- Every validation and error path found in the material or mockups.
- Empty states and permission checks.
- Edge cases — and, for backend work, unit-test and component-test scenarios.
One source of truth
The same scenarios appear in SPECIFICATION.md and, word for word, in each ticket — each scenario in its own code block so it pastes cleanly and can be copied into test cases.