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__* |
|
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.