Install
1
Install the plugin
$
npx claudepluginhub melodic-software/claude-code-plugins --plugin requirements-elicitation

Want 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

ArgumentRequiredDescription
--domainNoDomain to export (default: current/all)
--toNoExport format: canonical, ears, gherkin, markdown, yaml, json (default: canonical)
--filterNoFilter 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

Similar Skills