Files
gh-launchcg-claude-marketpl…/skills/acceptance-criteria-generator/SKILL.md
2025-11-30 08:36:58 +08:00

9.5 KiB

name, description, allowed-tools, mcpServers
name description allowed-tools mcpServers
acceptance-criteria-generator Creates testable acceptance criteria in Given/When/Then format for user stories mcp__atlassian__*
atlassian

Acceptance Criteria Generator Skill

This skill generates comprehensive, testable acceptance criteria in Given/When/Then (Gherkin) format for user stories, ensuring clarity for both human reviewers and AI-assisted development.

When This Skill is Invoked

Claude will automatically use this skill when you mention:

  • "generate acceptance criteria"
  • "create AC for story"
  • "write acceptance criteria"
  • "add Given/When/Then"
  • "make criteria testable"

Capabilities

1. AC Structure Generation

Generate acceptance criteria in standard Gherkin format:

Scenario: [Descriptive scenario name]
  Given [precondition/initial state]
  When [action/trigger]
  Then [expected outcome]
  And [additional outcome]

2. Coverage Categories

Ensure comprehensive test coverage:

Category Description Example
Happy Path Normal successful flow User completes checkout successfully
Edge Cases Boundary conditions Empty cart, max items
Error Handling Failure scenarios Invalid input, timeout
Security Auth/authorization Unauthorized access attempt
Performance Non-functional Response under 2 seconds

How to Use This Skill

Step 1: Analyze Story Content

Extract testable requirements from story:

Story: As a user, I want to export my dashboard to PDF

Key Requirements:
1. User can trigger export
2. PDF contains dashboard data
3. Download happens within reasonable time
4. Error handling for failures

Step 2: Generate Happy Path Scenarios

Start with the primary success scenario:

Scenario: Successful dashboard export to PDF
  Given I am logged in as a dashboard user
  And I am viewing my dashboard with data
  When I click the "Export to PDF" button
  Then a PDF file should download to my device
  And the PDF should contain the dashboard title
  And the PDF should contain all visible widgets
  And the PDF should include the current date range

Step 3: Generate Edge Case Scenarios

Cover boundary conditions:

Scenario: Export empty dashboard
  Given I am logged in as a dashboard user
  And my dashboard has no data for the selected period
  When I click the "Export to PDF" button
  Then a PDF file should download
  And the PDF should display "No data available for selected period"

Scenario: Export dashboard at maximum data size
  Given I am logged in as a dashboard user
  And my dashboard contains the maximum allowed data points
  When I click the "Export to PDF" button
  Then a PDF file should download within 30 seconds
  And the PDF should contain all data points

Scenario: Export with special characters in title
  Given I am logged in as a dashboard user
  And my dashboard title contains special characters "&<>/"
  When I click the "Export to PDF" button
  Then the PDF filename should sanitize special characters
  And the PDF title should display correctly

Step 4: Generate Error Handling Scenarios

Cover failure cases:

Scenario: Export fails due to network error
  Given I am logged in as a dashboard user
  And the network connection is unstable
  When I click the "Export to PDF" button
  And the export request fails
  Then I should see an error message "Export failed. Please try again."
  And I should be able to retry the export

Scenario: Export times out
  Given I am logged in as a dashboard user
  And the server is responding slowly
  When I click the "Export to PDF" button
  And the export takes longer than 60 seconds
  Then I should see a message "Export is taking longer than expected"
  And I should have the option to cancel or continue waiting

Scenario: Export fails due to insufficient permissions
  Given I am logged in as a guest user
  And guest users do not have export permissions
  When I click the "Export to PDF" button
  Then I should see a message "You don't have permission to export"
  And the export should not proceed

Step 5: Generate Security Scenarios (if applicable)

Cover security requirements:

Scenario: Export requires authentication
  Given I am not logged in
  When I attempt to access the export endpoint directly
  Then I should be redirected to the login page
  And the export should not proceed

Scenario: User cannot export another user's dashboard
  Given I am logged in as user A
  And I attempt to export user B's dashboard
  When I trigger the export
  Then I should see a "Permission denied" error
  And no PDF should be generated

Step 6: Generate Performance Scenarios (if applicable)

Cover non-functional requirements:

Scenario: Export completes within acceptable time
  Given I am logged in as a dashboard user
  And my dashboard has typical data volume (500 data points)
  When I click the "Export to PDF" button
  Then the export should complete within 5 seconds
  And the progress indicator should be accurate

Scenario: Large export shows progress
  Given I am logged in as a dashboard user
  And my dashboard has large data volume (5000+ data points)
  When I click the "Export to PDF" button
  Then I should see a progress indicator
  And the progress should update at least every 5 seconds

Step 7: Validate AC Quality

Checklist for good acceptance criteria:

  • Specific: No ambiguous terms ("should work well")
  • Measurable: Can verify pass/fail objectively
  • Testable: Can be automated or manually verified
  • Complete: Covers happy path, edge cases, errors
  • Independent: Each scenario is self-contained
  • Atomic: One behavior per Then statement

Quality Score:

  • 6/6: Excellent - Ready for development
  • 4-5/6: Good - Minor improvements needed
  • 2-3/6: Fair - Needs refinement
  • 0-1/6: Poor - Requires rewrite

Output Format

Always structure skill output as:

# Acceptance Criteria for: [Story Title]

## Happy Path Scenarios

### Scenario 1: [Primary success case]
```gherkin
Given [precondition]
When [action]
Then [outcome]

Scenario 2: [Secondary success case]

...

Edge Case Scenarios

Scenario 3: [Edge case 1]

...

Error Handling Scenarios

Scenario 4: [Error case 1]

...

Security Scenarios (if applicable)

Scenario 5: [Security case 1]

...

Performance Scenarios (if applicable)

Scenario 6: [Performance case 1]

...


Quality Assessment

  • Total Scenarios: X
  • Coverage Score: X/6 categories covered
  • Testability Score: X/6 quality criteria met

Recommendations

  • [Any suggestions for additional scenarios]

## Common Patterns

### CRUD Operations
```gherkin
# Create
Scenario: Successfully create [entity]
  Given I am an authorized user
  When I submit valid [entity] data
  Then the [entity] should be created
  And I should see a success confirmation

# Read
Scenario: View [entity] details
  Given an [entity] exists with ID "123"
  When I navigate to the [entity] detail page
  Then I should see all [entity] information

# Update
Scenario: Update [entity] successfully
  Given an [entity] exists
  And I have edit permissions
  When I modify the [entity] data
  And I save changes
  Then the changes should be persisted
  And I should see an update confirmation

# Delete
Scenario: Delete [entity] with confirmation
  Given an [entity] exists
  And I have delete permissions
  When I click delete
  Then I should see a confirmation dialog
  When I confirm deletion
  Then the [entity] should be removed

Form Validation

Scenario: Submit form with missing required field
  Given I am on the [form] page
  And I have not filled in the required [field] field
  When I click submit
  Then I should see a validation error for [field]
  And the form should not be submitted

Scenario: Submit form with invalid format
  Given I am on the [form] page
  And I enter "[invalid value]" in the [field] field
  When I click submit
  Then I should see "[field] format is invalid"
  And the form should not be submitted

API Endpoints

Scenario: API returns success response
  Given I have a valid API token
  When I send a GET request to /api/[endpoint]
  Then the response status should be 200
  And the response body should contain [expected data]

Scenario: API returns 401 for invalid token
  Given I have an invalid API token
  When I send a GET request to /api/[endpoint]
  Then the response status should be 401
  And the response body should contain "Unauthorized"

Error Handling

Incomplete Story

**Warning:** Story lacks sufficient detail for comprehensive AC.

**Missing Information:**
- [What's missing]

**Generated AC:** Partial (happy path only)

**Recommendation:** Add more context to story for edge case and error scenarios.

Ambiguous Requirements

**Warning:** Requirements are ambiguous.

**Ambiguous Terms:**
- "[term]" - could mean [interpretation 1] or [interpretation 2]

**Assumptions Made:**
- Interpreted "[term]" as [chosen interpretation]

**Recommendation:** Clarify with stakeholders.

Integration with Other Skills

This skill works with:

  • story-creator: Receives story to generate AC for
  • dor-validator: Validates AC meets DoR requirements
  • ac-verifier: Verifies code meets AC during review
  • test-generator: Uses AC to generate test cases

When invoked, this skill will analyze the story content and generate comprehensive, testable acceptance criteria suitable for TDD development and automated testing.