Exports elicited requirements to canonical, EARS, Gherkin, Markdown, YAML/JSON formats. Filter by domain, priority, category, or confidence for targeted specs.
npx claudepluginhub melodic-software/claude-code-plugins --plugin requirements-elicitationThis skill is limited to using the following tools:
Export elicited requirements to specification formats for downstream processing.
Converts specifications between EARS format and prose, Gherkin, or canonical. Parses prose to structured EARS requirements, EARS to Gherkin scenarios, and more.
Generates EARS-formatted requirements documents for Spec-Driven Development (SDD) workflows. Use for new feature specifications, requirements docs, or acceptance criteria via /sdd-requirements <feature-name>.
Transforms vague feature ideas into clear, testable requirements using EARS format. Captures user stories, acceptance criteria, edge cases before design phase.
Share bugs, ideas, or general feedback.
Export elicited requirements to specification formats for downstream processing.
/requirements-elicitation:export
/requirements-elicitation:export --domain "authentication" --to canonical
/requirements-elicitation:export --to ears --filter "priority:must"
/requirements-elicitation:export --to gherkin --domain "checkout"
| Argument | Required | Description |
|---|---|---|
| --domain | No | Domain to export (default: current/all) |
| --to | No | Export format: canonical, ears, gherkin, markdown, yaml, json (default: canonical) |
| --filter | No | Filter requirements: priority:must, category:functional, confidence:high |
Transforms to canonical specification format:
# Output: .specs/{feature}/spec.md
---
id: SPEC-{feature}
title: "{Feature Name}"
version: 1.0.0
status: draft
---
# {Feature Name}
## Overview
{Generated from synthesis summary}
## Requirements
### Functional Requirements
#### REQ-F-001: {Title}
**Priority:** MUST
**Source:** Interview with Product Manager
The system shall {requirement text}.
**Acceptance Criteria:**
- Given {context}, When {action}, Then {outcome}
Transforms to EARS patterns:
# Output: .requirements/{domain}/exports/EARS-{timestamp}.md
## Ubiquitous Requirements
- The system shall {capability}.
## Event-Driven Requirements
- When {trigger}, the system shall {response}.
## State-Driven Requirements
- While {state}, the system shall {behavior}.
## Unwanted Behavior Requirements
- If {condition}, then the system shall {response}.
## Optional Feature Requirements
- Where {feature enabled}, the system shall {behavior}.
Transforms to Gherkin feature files:
# Output: .requirements/{domain}/exports/{feature}.feature
Feature: {Feature Name}
As a {role}
I want {capability}
So that {benefit}
Scenario: {Scenario from acceptance criteria}
Given {precondition}
When {action}
Then {expected result}
Human-readable documentation format:
# {Domain} Requirements
## Executive Summary
{Generated overview}
## Functional Requirements
| ID | Requirement | Priority | Source |
|----|-------------|----------|--------|
| REQ-F-001 | {text} | Must | Interview |
## Non-Functional Requirements
...
Machine-readable formats for integration:
# Output: .requirements/{domain}/exports/requirements.yaml
domain: "{domain}"
exported: "{ISO-8601}"
format_version: "1.0"
requirements:
- id: REQ-F-001
text: "{requirement}"
category: functional
priority: must
source: interview
confidence: high
Read from .requirements/{domain}/synthesis/ folder.
If --filter specified:
Apply format-specific transformations:
transformations:
canonical:
- Map priorities to MoSCoW
- Generate acceptance criteria from requirements
- Create spec.md structure
ears:
- Classify requirements by EARS pattern
- Rewrite in EARS syntax
- Group by pattern type
gherkin:
- Extract scenarios from acceptance criteria
- Generate Given/When/Then structures
- Create feature files
Verify export quality:
Save to appropriate location with clear filename.
/requirements-elicitation:export --domain "authentication" --to canonical
Output:
Exporting: authentication
Format: canonical
Loading synthesis: SYN-20251225-160000.yaml
Requirements found: 32
Transforming to canonical format...
Functional requirements: 20
Non-functional requirements: 8
Constraints: 3
Assumptions: 1
Quality check:
✓ All requirements mapped
✓ Priorities converted to MoSCoW
✓ Acceptance criteria generated for 18/20 functional requirements
⚠ 2 requirements need manual acceptance criteria
Saved to: .specs/authentication/spec.md
Next step: Review and refine specifications as needed
/requirements-elicitation:export --domain "checkout" --to ears
Output:
Exporting: checkout
Format: EARS
Loading synthesis: SYN-20251225-163000.yaml
Requirements found: 28
Classifying by EARS pattern...
Ubiquitous: 8
Event-driven: 12
State-driven: 4
Unwanted behavior: 3
Optional feature: 1
Saved to: .requirements/checkout/exports/EARS-20251225-170000.md
Sample transformations:
Original: "Users must be able to add items to cart"
EARS: "The system shall allow users to add items to the shopping cart."
Original: "Show error when payment fails"
EARS: "If payment processing fails, then the system shall display an error message to the user."
/requirements-elicitation:export --domain "user-registration" --to gherkin
Output:
Exporting: user-registration
Format: Gherkin
Loading synthesis: SYN-20251225-164500.yaml
Requirements found: 15
Generating feature files...
user_registration.feature: 8 scenarios
email_verification.feature: 4 scenarios
profile_setup.feature: 3 scenarios
Saved to: .requirements/user-registration/exports/features/
Sample scenario:
Feature: User Registration
Scenario: Successful registration with valid email
Given I am on the registration page
When I enter a valid email "user@example.com"
And I enter a password meeting complexity requirements
And I click the Register button
Then I should see a verification email sent message
And a verification email should be sent to "user@example.com"
/requirements-elicitation:export --domain "inventory" --to yaml --filter "priority:must,confidence:high"
Output:
Exporting: inventory
Format: YAML
Filters: priority=must, confidence=high
Loading synthesis: SYN-20251225-165000.yaml
Total requirements: 42
After filtering: 18
Saved to: .requirements/inventory/exports/requirements-must-high.yaml
Filtered summary:
Functional: 12
Non-functional: 4
Constraints: 2
output_locations:
canonical: ".specs/{domain}/spec.md"
ears: ".requirements/{domain}/exports/EARS-{timestamp}.md"
gherkin: ".requirements/{domain}/exports/features/*.feature"
markdown: ".requirements/{domain}/exports/requirements-{timestamp}.md"
yaml: ".requirements/{domain}/exports/requirements-{timestamp}.yaml"
json: ".requirements/{domain}/exports/requirements-{timestamp}.json"
Before export completes, verify:
quality_gates:
traceability:
check: "All requirements have source attribution"
action_if_fail: "Warn user, proceed anyway"
completeness:
check: "No critical gaps in synthesis"
action_if_fail: "Warn user, suggest gap-filling first"
conflicts:
check: "No unresolved conflicts"
action_if_fail: "Warn user, export with conflict markers"
acceptance_criteria:
check: "Functional requirements have acceptance criteria"
action_if_fail: "Generate basic criteria, flag for review"
error_handling:
no_synthesis:
message: "No synthesized requirements found for domain"
action: "Run /discover first to elicit requirements"
empty_after_filter:
message: "No requirements match filter criteria"
action: "Suggest broader filter or show available options"
format_unsupported:
message: "Export format not recognized"
action: "List supported formats"