EARS requirement pattern authoring. Use when writing requirements using EARS patterns (Ubiquitous, State-Driven, Event-Driven, Unwanted, Optional, Complex). Provides pattern templates, validation, and examples.
View on GitHubmelodic-software/claude-code-plugins
spec-driven-development
plugins/spec-driven-development/skills/ears-authoring/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/melodic-software/claude-code-plugins/blob/main/plugins/spec-driven-development/skills/ears-authoring/SKILL.md -a claude-code --skill ears-authoringInstallation paths:
.claude/skills/ears-authoring/# EARS Authoring EARS (Easy Approach to Requirements Syntax) pattern authoring for precise, unambiguous requirements. ## When to Use This Skill **Keywords:** EARS patterns, ubiquitous requirements, state-driven requirements, event-driven requirements, unwanted behavior, optional features, complex requirements, SHALL keyword, requirement syntax **Use this skill when:** - Writing new requirements using EARS syntax - Converting informal requirements to EARS format - Validating EARS pattern correctness - Selecting the right EARS pattern for a requirement - Understanding EARS anti-patterns ## Quick Pattern Reference | Pattern | Keyword | Template | | --- | --- | --- | | Ubiquitous | (none) | The `<entity>` SHALL `<action>` | | State-Driven | WHILE | WHILE `<condition>`, the `<entity>` SHALL `<action>` | | Event-Driven | WHEN | WHEN `<trigger>`, the `<entity>` SHALL `<action>` | | Unwanted | IF...THEN | IF `<condition>`, THEN the `<entity>` SHALL `<action>` | | Optional | WHERE | WHERE `<feature>`, the `<entity>` SHALL `<action>` | | Complex | Multiple | Combination of patterns | ## Pattern Selection Decision Tree **Start here: When does this requirement apply?** 1. **Always applies** (no conditions) → Use **Ubiquitous**: "The system SHALL..." 2. **While in a specific state** → Use **State-Driven**: "WHILE in maintenance mode, the system SHALL..." 3. **When something happens** (event/trigger) → Use **Event-Driven**: "WHEN user clicks submit, the system SHALL..." 4. **To handle unwanted behavior** (error/exception) → Use **Unwanted**: "IF authentication fails, THEN the system SHALL..." 5. **Only when feature is enabled** (optional/configurable) → Use **Optional**: "WHERE dark mode is enabled, the system SHALL..." 6. **Multiple conditions apply** → Use **Complex**: "WHILE active, WHEN timeout occurs, the system SHALL..." ## Pattern Details ### Ubiquitous Pattern **Use when:** Requirement applies unconditionally, always active. **Template