Skill
ears-author
Interactive EARS pattern authoring assistant. Guides through pattern selection and requirement construction.
From spec-driven-developmentInstall
1
Run in your terminal$
npx claudepluginhub melodic-software/claude-code-plugins --plugin spec-driven-developmentTool Access
This skill is limited to using the following tools:
ReadGlobGrepWriteEditSkillTask
Skill Content
EARS Pattern Authoring
Interactive assistant for creating requirements using EARS (Easy Approach to Requirements Syntax) patterns.
EARS Patterns Overview
| Pattern | Use When | Template |
|---|---|---|
| Ubiquitous | Always true | The system SHALL [action] |
| Event-Driven | Triggered by event | WHEN [event], the system SHALL [action] |
| State-Driven | Depends on state | WHILE [state], the system SHALL [action] |
| Unwanted | Handle failures | IF [condition], THEN the system SHALL [action] |
| Optional | Feature-dependent | WHERE [feature], the system SHALL [action] |
| Complex | Multiple conditions | Combination of above |
Workflow
-
Gather Context
- If argument provided, analyze the requirement description
- If
--interactive, prompt for requirement details
-
Pattern Selection
- Spawn
spec-author earsagent - Agent guides through pattern selection based on:
- Is this always true? → Ubiquitous
- Triggered by an event? → Event-Driven
- Depends on system state? → State-Driven
- Handling an error/failure? → Unwanted
- Optional feature? → Optional
- Multiple conditions? → Complex
- Spawn
-
Construct Requirement
- Fill in pattern template
- Validate EARS syntax
- Check for common anti-patterns
-
Generate Acceptance Criteria
- Create Given/When/Then scenarios
- Cover happy path and edge cases
-
Output
- Display formatted requirement
- Optionally append to specification file
Arguments
$ARGUMENTS- Requirement description to convert to EARS--interactive- Step-by-step guided authoring--append- Append to specification file--pattern- Force specific pattern (ubiquitous, event, state, unwanted, optional, complex)
Examples
# From description
/spec-driven-development:ears-author "User can log in with email and password"
# Interactive mode
/spec-driven-development:ears-author --interactive
# Force pattern
/spec-driven-development:ears-author "Handle timeout errors" --pattern unwanted
# Append to spec
/spec-driven-development:ears-author "Session expires after 30 minutes" --append .specs/auth/spec.md
Pattern Selection Guide
┌─────────────────────┐
│ What triggers this? │
└─────────┬───────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Nothing │ │ An event │ │ A state │
│(always) │ │ │ │ │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
Ubiquitous Event-Driven State-Driven
┌─────────────────────────────────────────────┐
│ Is this handling an error or failure case? │
└─────────────────────┬───────────────────────┘
│
┌─────┴─────┐
│ Yes │
└─────┬─────┘
│
▼
Unwanted
Output Format
## FR-X: [Generated Title]
WHEN the user submits valid login credentials,
the system SHALL authenticate the user
AND create a session token.
### Acceptance Criteria
- [ ] AC-X.1: Given valid email and password, when submitted, then user is authenticated
- [ ] AC-X.2: Given valid credentials, when authenticated, then session token is returned
- [ ] AC-X.3: Given invalid password, when submitted, then authentication fails with error
Related Commands
/spec-driven-development:ears-convert- Convert between EARS and other formats/spec-driven-development:gherkin-author- Create Gherkin scenarios/spec-driven-development:specify- Generate full specification
Similar Skills
Stats
Parent Repo Stars40
Parent Repo Forks6
Last CommitFeb 15, 2026