Agent Skills: Export Command

Export elicited requirements to specification formats. Supports canonical, EARS, Gherkin, and other formats.

UncategorizedID: melodic-software/claude-code-plugins/export

Install this agent skill to your local

pnpm dlx add-skill https://github.com/melodic-software/claude-code-plugins/tree/HEAD/plugins/requirements-elicitation/skills/export

Skill Files

Browse the full folder contents for export.

Download Skill

Loading file tree…

plugins/requirements-elicitation/skills/export/SKILL.md

Skill Metadata

Name
export
Description
Export elicited requirements to specification formats. Supports canonical, EARS, Gherkin, and other formats.

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"