skills/by-role/business-analyst/acceptance-criteria-writer/SKILL.md
Write measurable acceptance criteria for requirements or user stories. Use when the user says "write acceptance criteria", "definition of done", "how do we test this", "fit criteria", "given when then", "Gherkin scenarios", "what does done look like", "testable conditions", "how will we know this works" - even if they don't explicitly say "acceptance criteria".
npx skillsauth add qa-aman/claude-skills acceptance-criteria-writerInstall 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.
Based on Mastering the Requirements Process by Suzanne & James Robertson - the Fit Criteria concept, where every requirement gets a quantified, measurable condition that proves it has been satisfied. Also draws on User Stories Applied by Mike Cohn for the 3 C's (Card, Conversation, Confirmation) where Confirmation = acceptance criteria, and Writing Effective Use Cases by Alistair Cockburn where the Success Guarantee (postcondition) is the use case's acceptance criterion. The key insight from Robertson: if you cannot write a fit criterion for a requirement, the requirement is too vague to implement.
Start from a documented requirement (FR-XXX), user story, or use case. Extract:
Use Robertson's Fit Criterion format for precision:
FIT CRITERION: [Measurable condition that proves the requirement is met]
MEASUREMENT: [How to verify - manual test, automated check, metric threshold]
Or Gherkin format for scenario-based criteria:
GIVEN [precondition / context]
WHEN [action / trigger]
THEN [expected outcome / observable result]
Every requirement needs criteria covering:
Example for a search feature:
Happy: GIVEN products exist WHEN user searches "laptop" THEN matching results display within 500ms
Edge: GIVEN 10,000+ results WHEN user searches THEN first page loads with pagination controls
Error: GIVEN search service is unavailable WHEN user searches THEN error message displays with retry option
Empty: GIVEN no products match WHEN user searches "xyznonexistent" THEN "no results" message displays with suggestions
Convert subjective requirements into measurable conditions:
| Vague | Fit Criterion | |-------|---------------| | "Easy to use" | 80% of new users complete [task] within 5 minutes without assistance | | "Fast" | 95th percentile response time < 500ms under [load condition] | | "Secure" | Passes [standard] penetration test with zero critical findings | | "Reliable" | 99.9% uptime measured monthly; mean time to recovery < 4 hours | | "Scalable" | Supports [N] concurrent users with < 10% performance degradation |
For each criterion, specify how it will be verified:
AC-001: [criterion]
TEST TYPE: [unit / integration / E2E / manual / performance / security]
AUTOMATION: [yes / no - with justification if no]
Walk through criteria with: the BA (requirements perspective), a developer (feasibility), and a tester (completeness). Criteria that the tester cannot execute or the developer cannot implement need revision.
1. Vague criteria that cannot be tested Bad: "The system should be user-friendly." Good: "80% of users complete the checkout flow in under 3 minutes on first attempt."
2. Only happy-path criteria Bad: Acceptance criteria that only describe the successful flow. Good: Criteria covering happy, edge, error, and empty paths for every requirement.
3. Implementation-specific criteria Bad: "The React component renders a dropdown with CSS class .select-primary." Good: "The user can select a value from a constrained list of options."
4. Criteria without a measurement method Bad: "The system loads quickly." (How will you measure this?) Good: "Page load < 2 seconds measured at the 95th percentile using [monitoring tool]."
5. Copy-paste criteria across stories Bad: Same generic acceptance criteria on every story ("meets coding standards"). Good: Each story has criteria specific to its behavior and business logic.
development
Plan a webinar end-to-end using April Dunford's Obviously Awesome positioning framework to find the topic angle that makes the webinar obviously valuable to the right audience. Produces topic positioning, abstract, speaker brief, registration page, promotion sequence, day-of run-of-show, and post-webinar follow-up. Use when the user asks to plan a webinar, virtual event, online workshop, "we need a webinar on X", host a webinar, online masterclass, or any live virtual event with promotion and follow-up. Reads ICP, services, and brand voice from knowledge/.
development
Write long-form thought leadership articles, opinion pieces, industry POV essays, and CEO/founder bylines using the Made to Stick SUCCESs framework (Chip and Dan Heath). Use when the user asks for a long-form article, executive byline, opinion piece, industry POV, manifesto, "explain our point of view on X", or wants to publish an authority-building piece (1200-2500 words). Reads brand voice and positioning from knowledge/.
development
Plan a monthly content calendar across channels using the Content Marketing Matrix (Dave Chaffey, Smart Insights) - Entertain/Inspire/Educate/Convince. Every post gets a quadrant label. The monthly calendar must hit 40% Educate, 40% Inspire+Convince, 20% Entertain. Produces a week-by-week posting schedule with topics, formats, channels, and asset links. Use when the user says "content calendar", "social calendar", "plan next month's content", "what should we post", "content plan", "editorial calendar", "schedule posts for the month", or wants a structured posting plan for LinkedIn, Twitter, email, or blog. Reads brand voice, ICP, and past learnings from knowledge/.
development
Write SEO-optimized long-form articles targeting specific keywords using the They Ask You Answer Big 5 framework (Marcus Sheridan). Articles are categorized by Big 5 type (Cost, Problems, Versus, Best/Reviews, How-To) and structured accordingly. The "answer first" rule applies to every article. Use when the user asks for an SEO article, blog post for ranking, "rank for keyword X", organic content, search-optimized post, pillar page, or content for organic traffic. Includes keyword targeting, search intent matching, internal linking suggestions, and meta tags.