Product & AI
Acceptance criteria for AI features need real examples
How product owners can define acceptable AI behavior through examples, review paths, boundaries, and shared evaluation.
By Josh Child6 min read
In this perspective
“The assistant gives a helpful answer” sounds like an acceptance criterion until two people try to use it. One reviewer values brevity. Another wants every detail. A third notices that the answer sounds convincing but contains a claim the source never made. They can all be responding reasonably to a requirement that leaves too much open.
AI features make this ambiguity especially visible. Their outputs can vary, and usefulness depends on the task, the information available, and the consequences of a mistake. Product owners need to help turn those expectations into something a team can discuss and evaluate together.
I would start with examples. Describe the task, show representative inputs, and agree on what an acceptable result preserves, avoids, or asks the user to clarify. Good examples make quality concrete before the team argues over a score.
Define the job before the wording
Imagine an internal assistant that summarizes a request for a staff member. Its job is to help that person understand what needs attention. The job is smaller than answering every question, making a decision, or changing a record.
That boundary should appear in the acceptance criteria. The summary needs to preserve the requested action and relevant context. It should separate information supplied by the requester from information that remains unknown. The original request should stay accessible. The staff member should be able to correct or discard the summary.
These expectations describe product behavior rather than a particular prompt. Engineers can explore implementation approaches within them, and designers can make the review experience understandable. The product owner can judge whether the proposed scope still serves the intended task.
If the team cannot explain the job clearly, a more detailed prompt will not resolve the underlying disagreement. I would settle the product boundary first.
Build a small set of contrasting examples
A good initial example set should expose differences that matter. For the hypothetical request assistant, I would include a straightforward request, a long message with several issues, an ambiguous request, a message missing essential information, and a request outside the feature's scope.
Each case needs a short explanation of what matters. In a multi-issue message, omitting one issue might be unacceptable. In an ambiguous message, asking for clarification might be better than selecting a likely interpretation. For an out-of-scope request, the right behavior might be a clear route to a person.
OpenAI's evaluation guidance recommends task-specific testing and human judgment alongside metrics. I would use that principle to build examples around the product's real responsibilities. A benchmark from an unrelated task would not settle whether this particular workflow is dependable.
The examples should be approved for their intended use. A team can begin with carefully constructed fictional material while deciding how to handle real information appropriately.
Separate output quality from interaction quality
A result can be accurate and still be difficult to use. A user may not know whether it is a suggestion, where the source came from, or what happens after they accept it. Those are acceptance questions too.
I would review the complete interaction: loading, completion, failure, editing, rejection, and retry. Does the interface keep the original information available? Does it make a suggested action look like a confirmed action? Can the user finish the task if the AI service is unavailable?
At Pesci Sports, my work included requirements, UX, prototypes, engineering coordination, testing, and user acceptance testing across a fan-facing application and administration platform. That combination is a useful reminder that behavior spans screens and systems. A single successful response does not establish that the workflow works.
The same thinking applies to AI. I want criteria for what the result means in context, including what the user can do when it is unhelpful.
Make boundaries testable
Broad instructions such as “do not make things up” are directionally useful but difficult to review on their own. I would translate them into observable expectations for the task.
For example, a summary should not add a promised date when no date appears in the source. It should not turn a question into a confirmed instruction. If the source names two separate issues, the summary should retain both or clearly indicate that more detail is available. If required information is absent, the interface should show that absence rather than imply completeness.
These examples do not guarantee perfection. They create shared reference points. Reviewers can identify a specific failure, engineers can investigate it, and the product owner can decide whether it blocks release or requires a narrower scope.
I would also keep system rules separate from generated language. Permissions, access restrictions, and approval requirements need dependable enforcement in the application. A model's reassuring answer is not evidence that those controls exist.
Agree on the human review path
“A person checks it” can hide as much ambiguity as “helpful answer.” Which person? What are they expected to check? What information do they need? How do they record a correction or stop an action?
For a first release, I would make that review path deliberately simple. The user sees the proposed summary beside the source, can edit the result, and makes a clear choice before it affects another workflow. The team should test whether that person understands what the choice does.
Review effort also belongs in the assessment of value. If verification takes longer than completing the original task, the feature needs reconsideration. It might still offer a benefit in consistency or accessibility, but the team should describe that benefit accurately.
The reviewer needs a practical route for reporting repeated problems. Those reports can become new evaluation cases, with enough context to explain the failure without collecting unnecessary information.
Treat release readiness as a shared judgment
Acceptance criteria help a team make a release decision; they do not make the decision automatic. A score may hide a serious exception. A handful of successful examples may leave an important user group untested. The product owner needs to understand those limits alongside engineering and subject specialists.
I would bring the result of evaluation into the release discussion with a clear account of what was tested, what failed, what changed, and what remains uncertain. If the scope has narrowed, the interface and communication should reflect that narrower promise.
After release, the criteria should continue to inform change. A new model, a revised prompt, or different source information can affect behavior. Keeping representative examples gives the team a way to check whether an improvement in one area creates a problem elsewhere.
The practical goal is shared understanding. When product, design, engineering, and the people using the feature can explain what acceptable behavior looks like, the team has a stronger basis for building it. That is what I want acceptance criteria to accomplish: make the product's promise specific enough to examine.