trahoangdev
Back to Blog
2 min read
Tra Hoang Trong

EARS notation: writing requirements so AI doesn’t guess

RequirementsEARSAI AgentsSpec-Driven
EARS notation: writing requirements so AI doesn’t guess

Make requirements testable

EARS notation: writing requirements so AI doesn’t guess

AI coding is at its best when you give it clear constraints. When requirements are vague, an agent will fill in the blanks with assumptions—leading to bugs, UX mismatch, or scope creep.

Kiro emphasizes this by turning prompts into requirements using EARS notation. Reference: EARS requirements in Kiro specs.

1) What is EARS?

EARS (Easy Approach to Requirements Syntax) is a template-based way to write requirements so they are:

Think of it as an intermediate language between intent and an executable spec.

2) Five patterns you’ll actually use

You don’t need to memorize everything—these few patterns go a long way.

Ubiquitous (always true)

The system shall

Example:

Event‑driven

When <event>, the system shall

State‑driven

While <state>, the system shall

Optional features

Where <feature is enabled>, the system shall

Unwanted behavior (guard rails)

If <condition>, the system shall

3) From EARS to acceptance criteria

You can convert each EARS statement into a simple pass/fail checklist:

This is the key advantage: the agent doesn’t just implement—it also knows how to prove correctness.

4) Tips for writing agent-friendly requirements

Closing

EARS isn’t bureaucracy—it’s ambiguity reduction. The more you rely on agents, the more you’ll feel it: better requirements = less debugging.

Read Next