Acceptance Criteria Writer
Transforms vague requirements into precise, testable acceptance criteria using structured Given/When/Then format — covering happy paths, edge cases, error handling, and non-functional requirements.
Guiding Principle
"If you cannot write the test, you do not understand the requirement."
Procedure
Step 1 — Parse the Requirement
- Extract the core user intent: who, what, why.
- Identify the domain entities and their state transitions.
- Detect implicit requirements not stated but expected (validation, error handling, authorization).
- Clarify ambiguous terms with concrete examples or propose assumptions.
- Map the requirement to existing system capabilities and gaps.
Step 2 — Write Happy Path Criteria
- Define the primary success scenario in Given/When/Then format.
- Include specific data examples (not abstract placeholders).
- State the expected system behavior AND the user-visible outcome.
- Cover variations of the happy path (different valid inputs, roles).
- Ensure each criterion is independently testable.
Step 3 — Write Edge Cases and Error Scenarios
- Identify boundary conditions: min/max values, empty inputs, null states.
- Define error scenarios: invalid input, unauthorized access, resource not found, timeout.
- Specify the expected error response: status code, message, and user guidance.
- Cover concurrent access scenarios where applicable (race conditions, optimistic locking).
- Address idempotency: what happens if the action is repeated?
Step 4 — Add Non-Functional Criteria
- Performance: response time expectations under stated load.
- Accessibility: WCAG compliance requirements for UI changes.
- Security: authentication, authorization, and data protection requirements.
- Observability: what should be logged, metricked, or alerted.
- Tag each criterion with evidence:
[REQUISITO], [INFERENCIA], [SUPUESTO].
Quality Criteria
- Every criterion follows Given/When/Then with concrete data examples.
- Edge cases and error scenarios outnumber happy path criteria (2:1 ratio).
- Criteria are independently testable without relying on other criteria's state.
- Non-functional requirements are explicitly stated, not assumed.
Anti-Patterns
- Writing criteria so vague they pass any implementation ("system works correctly").
- Ignoring error scenarios and only covering the happy path.
- Embedding implementation details in acceptance criteria.
- Writing criteria that are coupled and must execute in sequence.