From wicked-garden
Define testable acceptance criteria from requirements and design. Bridge product requirements with QE test scenarios. Use when: "define acceptance criteria", "how do we know it's done", "what should QE test", "definition of done"
npx claudepluginhub mikeparcewski/wicked-garden --plugin wicked-gardenThis skill uses the workspace's default tool permissions.
Transform requirements into testable acceptance criteria.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Transform requirements into testable acceptance criteria.
Acceptance criteria are the contract between product and delivery:
Given [precondition/context]
When [action/event]
Then [expected outcome]
Why this format?
Understand:
For each requirement, consider:
Format each scenario:
Given [specific context]
When [specific action]
Then [specific, measurable outcome]
Check each criterion:
### US1: User Authentication
**Happy Path (P0)**:
AC1: Given valid credentials, When user submits login, Then user redirected to dashboard
AC2: Given successful login, When checking session, Then session valid for 30 minutes
**Error Handling (P0)**:
AC3: Given invalid password, When user submits login, Then error message "Invalid credentials"
AC4: Given account locked, When user submits login, Then error message "Account locked"
AC5: Given 3 failed attempts, When user tries again, Then account locked for 15 minutes
**Edge Cases (P1)**:
AC6: Given empty email field, When user submits, Then error "Email required"
AC7: Given malformed email, When user submits, Then error "Invalid email format"
AC8: Given concurrent logins, When second login occurs, Then first session invalidated
**Non-Functional (P1)**:
AC9: Given 1000 concurrent logins, When system under load, Then response time < 2 seconds
AC10: Given login attempt, When credentials checked, Then password encrypted in transit
Data Creation:
Given user on create form
When user enters valid data and submits
Then new record saved and confirmation shown
Data Validation:
Given user on form with required fields
When user submits without filling required field
Then error message shown and form not submitted
Authorization:
Given user without admin role
When user attempts admin action
Then access denied message shown
API Response:
Given valid API request
When endpoint called
Then 200 status and expected JSON schema returned
Acceptance criteria feed directly into test scenarios:
# Product defines AC
/wicked-garden:product:acceptance phases/design/
# Generate test scenarios from AC
/wicked-testing:plan
Flow:
Good acceptance criteria:
## Acceptance Criteria
### User Story: {Story Title}
**Happy Path**:
- AC1: Given {context}, When {action}, Then {outcome} [P0]
**Error Conditions**:
- AC2: Given {error}, When {action}, Then {handling} [P0]
**Edge Cases**:
- AC3: Given {edge}, When {action}, Then {behavior} [P1]
**Non-Functional**:
- AC4: Given {load}, When {action}, Then {performance} [P1]
**Test Data Requirements**:
- {Data needed for testing}
**QE Handoff Notes**:
- {Special testing considerations}