skills/product/acceptance-criteria/SKILL.md
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 skillsauth add mikeparcewski/wicked-garden acceptance-criteriaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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}
development
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".