Back to Skills

ears-authoring

verified

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 GitHub

Marketplace

melodic-software

melodic-software/claude-code-plugins

Plugin

spec-driven-development

Repository
Verified Org

melodic-software/claude-code-plugins
13stars

plugins/spec-driven-development/skills/ears-authoring/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
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-authoring

Installation paths:

Claude
.claude/skills/ears-authoring/
Powered by add-skill CLI

Instructions

# 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

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
7667 chars