EARS Requirement Playground
A small deterministic validator for the prose you are about to hand to a coding agent. It checks EARS structure, weak modality, and common vague terms.
Pattern:
Findings
The <system> SHALL <response>
While <state>, the <system> SHALL <response>
When <trigger>, the <system> SHALL <response>
Where <feature>, the <system> SHALL <response>
If <trigger>, then the <system> SHALL <response>
While <state>, when <trigger>, the <system> SHALL <response>
The browser playground explains the grammar. The Vale rules are aimed at OpenSpec: the EARS rule checks the first requirement statement after each ### Requirement: heading, while modality and vague-language checks remain separate.
This is intentionally a constrained validator, not a claim that every English requirement can or should be expressed as EARS. The useful boundary here is narrower: catch known ambiguity before a coding agent starts implementation.
EARS was created by Alistair Mavin to gently constrain natural-language requirements through a small set of ordered clauses. Vale provides a script extension point using Tengo for rules that need logic beyond simple token matching.