ears-requirements-authoringlisted
Install: claude install-skill BenMacDeezy/Orns-Forge
# EARS requirements authoring
EARS (Easy Approach to Requirements Syntax) constrains each requirement to one
of five sentence templates so criteria are unambiguous, atomic, and
test-mappable. Every Forge acceptance criterion is one EARS clause.
## The five templates — pick by trigger shape
Choose the template from what conditions the behavior, not by habit:
1. **Ubiquitous** — always true, no trigger.
`THE SYSTEM SHALL <behavior>.`
Use for invariants that hold at all times (e.g. "THE SYSTEM SHALL store
passwords only as salted hashes.").
2. **Event-driven** — a discrete trigger occurs.
`WHEN <trigger>, THE SYSTEM SHALL <behavior>.`
Use for a response to an event/action (this is the Forge default form).
3. **State-driven** — true throughout a state.
`WHILE <state>, THE SYSTEM SHALL <behavior>.`
Use for behavior that persists as long as a condition holds (e.g. "WHILE
offline, THE SYSTEM SHALL queue writes locally.").
4. **Unwanted-behavior** — an error/undesired condition.
`IF <condition>, THEN THE SYSTEM SHALL <behavior>.`
Use for handling failures, invalid input, abuse (e.g. "IF the token is
expired, THEN THE SYSTEM SHALL reject the request with 401.").
5. **Optional-feature** — behavior gated on a feature's presence.
`WHERE <feature>, THE SYSTEM SHALL <behavior>.`
Use for behavior that exists only when a feature/config is included.
Templates compose: a clause may combine keywords (e.g. `WHILE <state>, WHEN
<trigger>, THE SYSTEM