Use when writing effective BDD scenarios including acceptance criteria, edge cases, and scenario organization. Use when defining behavior specifications.
View on GitHubTheBushidoCollective/han
jutsu-bdd
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/TheBushidoCollective/han/blob/main/jutsu/jutsu-bdd/skills/bdd-scenarios/SKILL.md -a claude-code --skill bdd-scenariosInstallation paths:
.claude/skills/bdd-scenarios/# BDD Scenarios
Learn to write clear, maintainable BDD scenarios that effectively capture business requirements and drive implementation.
## Writing Good Scenarios
A good scenario should be:
- **Specific**: Test one behavior
- **Declarative**: Describe what, not how
- **Business-focused**: Use domain language
- **Independent**: No dependencies on other scenarios
```gherkin
# Good scenario - specific and declarative
Scenario: Customer receives loyalty discount
Given a customer with Gold membership status
And a cart total of $100
When the customer proceeds to checkout
Then a 10% loyalty discount should be applied
And the final total should be $90
# Bad scenario - too implementation-focused
Scenario: Apply discount
Given I click the membership dropdown
And I select "Gold" from the list
When I click the checkout button
Then the JavaScript calculates 10% off
```
## Acceptance Criteria Format
```gherkin
Feature: Order Refunds
# Rule-based acceptance criteria
Rule: Full refunds are available within 30 days
Scenario: Refund requested within return window
Given an order placed 15 days ago
When the customer requests a refund
Then a full refund should be processed
Scenario: Refund requested after return window
Given an order placed 45 days ago
When the customer requests a refund
Then the refund should be denied
And the customer should see "Return window expired"
```
## Edge Case Scenarios
```gherkin
Feature: User Registration
Scenario: Successful registration
Given I am on the registration page
When I submit valid registration details
Then my account should be created
# Edge cases
Scenario: Registration with existing email
Given a user exists with email "existing@example.com"
When I try to register with email "existing@example.com"
Then I should see "Email already registered"
Scenario: Registration with invalid email format
When I try to register with ema