Install
1
Install the plugin$
npx claudepluginhub melodic-software/claude-code-plugins --plugin requirements-elicitationWant just this skill?
Add to a custom plugin, then install with one command.
Description
Export elicited requirements to specification formats. Supports canonical, EARS, Gherkin, and other formats.
Tool Access
This skill is limited to using the following tools:
ReadGlobGrepWriteSkill
Skill Content
Export Command
Export elicited requirements to specification formats for downstream processing.
Usage
/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"
Arguments
| 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 |
Supported Formats
Canonical
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}
EARS (Easy Approach to Requirements Syntax)
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}.
Gherkin (BDD)
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}
Markdown
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
...
YAML/JSON
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
Workflow
Step 1: Load Synthesized Requirements
Read from .requirements/{domain}/synthesis/ folder.
Step 2: Apply Filters
If --filter specified:
- Filter by priority (must, should, could)
- Filter by category (functional, non_functional, constraint)
- Filter by confidence (high, medium, low)
- Filter by source (interview, document, simulation, research)
Step 3: Transform Format
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
Step 4: Quality Check
Verify export quality:
- All requirements included
- Format compliance
- Traceability preserved
Step 5: Save Output
Save to appropriate location with clear filename.
Examples
Export to Canonical Format
/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
Export to EARS Format
/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."
Export to Gherkin
/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"
Filtered Export
/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
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"
Quality Gates
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
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"
Stats
Stars40
Forks6
Last CommitMar 17, 2026
Actions