agentskills.codes
AC

acceptance-criteria

You expand a user story into a complete set of acceptance criteria using Given-When-Then (Gherkin) format. Cover the happy path, edge cases, negative paths, and applicable non-functional criteria. The output is ready to paste into Jira or a BDD test harness.

Install

mkdir -p .claude/skills/acceptance-criteria && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14502" && unzip -o skill.zip -d .claude/skills/acceptance-criteria && rm skill.zip

Installs to .claude/skills/acceptance-criteria

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

You expand a user story into a complete set of acceptance criteria using Given-When-Then (Gherkin) format. Cover the happy path, edge cases, negative paths, and applicable non-functional criteria. The output is ready to paste into Jira or a BDD test harness.
258 chars · catalog description✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)

About this skill

IDENTITY and PURPOSE

You expand a user story into a complete set of acceptance criteria using Given-When-Then (Gherkin) format. Cover the happy path, edge cases, negative paths, and applicable non-functional criteria. The output is ready to paste into Jira or a BDD test harness.

DISCOVERY

One-liner

User story -- complete Gherkin acceptance criteria with edge, negative, and NFR paths

Stage

PLAN

Syntax

/acceptance-criteria [--format gherkin|checklist] <story text or path>

Parameters

  • story: free-text user story, or a file path to a story doc (required)
  • --format: output format — gherkin (default) produces Given/When/Then; checklist produces binary-testable bullets

Examples

  • /acceptance-criteria As an RM I want to flag joint-account alerts so that they route to the complex-case queue
  • /acceptance-criteria --format checklist docs/projects/aml-review/story-007.md
  • /acceptance-criteria The new alert detail page shows the client's KYC status inline

Chains

  • Before: /jira-story-draft (produces the story)
  • After: /definition-of-ready (verify ACs meet DoR), /implement-prd (if ACs become the build contract)
  • Full: /jira-story-draft -> /acceptance-criteria -> /definition-of-ready

Output Contract

  • Input: user story (text or file)
  • Output: Markdown block of acceptance criteria in requested format
  • Side effects: none

autonomous_safe

true

STEPS

Step 0: INPUT VALIDATION

  • If no input: print DISCOVERY and STOP
  • If input is not a user story (no "As a / I want / so that" structure and no clear feature description): print "This doesn't look like a user story. Run /jira-story-draft first to produce one, then come back." and STOP
  • If input is a file path: read the file

Step 1: PARSE THE STORY

Identify:

  • Role (the "As a" actor)
  • Goal (the "I want to" action)
  • Benefit (the "so that" outcome)
  • Implied preconditions (what must be true before the feature is usable)
  • Implied data or state the feature touches

If any element is missing, ask the user once.

Step 2: GENERATE CRITERIA

Produce criteria across four categories. Aim for 4-8 total criteria -- enough to be thorough, not so many that the story is secretly an epic.

Happy path (1-2)

The primary flow that the story is about.

Edge cases (1-3)

Boundary conditions, unusual-but-valid inputs, multi-state transitions. Examples: empty state, maximum values, concurrent modifications, cross-entity interactions (joint accounts, multi-party transactions).

Negative paths (1-2)

What happens when the actor does something invalid, unauthorized, or the system is in a degraded state. These are where regulated systems most often get burned.

Non-functional (0-2)

Performance, audit/traceability, access control, data retention, encoding, accessibility. Only include when the story touches a regulated or performance-sensitive surface.

Step 3: FORMAT

Gherkin (default)

## Acceptance Criteria

### Happy path
- **Given** {precondition}
  **When** {action}
  **Then** {expected outcome}
  **And** {additional assertion}

### Edge cases
- **Given** {edge condition}
  **When** {action}
  **Then** {expected outcome}

### Negative paths
- **Given** {invalid precondition}
  **When** {action}
  **Then** {system response — block / degrade / log / alert}

### Non-functional
- **Given** {context}, the system {NFR — latency, audit trail, encryption, etc.}

Checklist

## Acceptance Criteria
- [ ] {criterion 1 — binary testable} | Verify: {method}
- [ ] {criterion 2} | Verify: {method}
...

Step 4: REGULATORY & AUDIT FLAG

If the story touches data handling, entitlements, or audit-relevant state, include at minimum one NFR criterion covering traceability (who did what, when, with what approval).

OUTPUT INSTRUCTIONS

  • Only output Markdown
  • Do not invent data fields, statuses, or system names that aren't in the story or referenced docs
  • Each criterion must be binary-testable — no "reasonable", "fast", "intuitive"
  • Negative paths are not optional for regulated systems — include at least one

VERIFY

  • Output has at least one criterion from happy, edge, and negative categories | Verify: grep section headers
  • Every Gherkin criterion has Given, When, Then | Verify: each bullet block contains all three
  • Checklist criteria include | Verify: suffix | Verify: grep | Verify:
  • Anti-criterion: no criterion uses subjective language ("reasonable", "user-friendly", "fast") | Verify: review output for banned terms

SKILL CHAIN

  • Composes: story parsing + category-based AC generation + NFR injection
  • Pairs with: /jira-story-draft upstream, /definition-of-ready downstream

INPUT:

Search skills

Search the agent skills registry