Guide developers through Behavior-Driven Development workflow. Use when: writing BDD scenarios, using Gherkin syntax, Given-When-Then format, feature files, Three Amigos collaboration. Keywords: BDD, behavior-driven, Given When Then, Gherkin, Cucumber, scenario, feature file, step definition, 行為驅動開發.
Scanned 6/1/2026
Install via CLI
openskills install majiayu000/claude-skill-registry-data---
name: bdd
scope: partial
description: |
Guide developers through Behavior-Driven Development workflow.
Use when: writing BDD scenarios, using Gherkin syntax, Given-When-Then format, feature files, Three Amigos collaboration.
Keywords: BDD, behavior-driven, Given When Then, Gherkin, Cucumber, scenario, feature file, step definition, 行為驅動開發.
---
# BDD Assistant
> **Language**: English | [繁體中文](../../locales/zh-TW/skills/bdd-assistant/SKILL.md)
**Version**: 1.0.0
**Last Updated**: 2026-01-19
**Applicability**: Claude Code Skills
---
## Purpose
This skill guides developers through the Behavior-Driven Development workflow, helping them:
- Conduct Discovery sessions to explore requirements
- Write effective Gherkin scenarios in Given-When-Then format
- Create reusable step definitions
- Integrate BDD with TDD for implementation
- Maintain living documentation
---
## Quick Reference
### BDD Workflow Checklist
```
┌─────────────────────────────────────────────────────────────────┐
│ 🔍 DISCOVERY Phase │
│ □ Stakeholders identified (Business, Dev, QA) │
│ □ User story discussed and understood │
│ □ Concrete examples collected (Example Mapping) │
│ □ Edge cases identified │
│ □ Questions answered or noted for follow-up │
├─────────────────────────────────────────────────────────────────┤
│ 📝 FORMULATION Phase │
│ □ Scenarios use correct Gherkin syntax │
│ □ Scenarios are declarative (WHAT, not HOW) │
│ □ Business language used (no technical jargon) │
│ □ Each scenario is independent and self-contained │
│ □ Scenarios have 5-10 steps maximum │
│ □ Scenarios reviewed by stakeholders │
├─────────────────────────────────────────────────────────────────┤
│ ⚙️ AUTOMATION Phase │
│ □ Step definitions created for all steps │
│ □ Step definitions are reusable │
│ □ Scenarios fail initially (RED) │
│ □ TDD used for unit-level implementations │
│ □ All scenarios pass (GREEN) │
│ □ Code refactored and clean │
└─────────────────────────────────────────────────────────────────┘
```
### Gherkin Quick Reference
| Keyword | Purpose | Example |
|---------|---------|---------|
| `Feature` | Container for scenarios | `Feature: User Login` |
| `Scenario` | Single test case | `Scenario: Successful login` |
| `Given` | Set up initial context | `Given I am on the login page` |
| `When` | Trigger action | `When I enter valid credentials` |
| `Then` | Assert outcome | `Then I should see my dashboard` |
| `And`/`But` | Continue previous | `And I should see a welcome message` |
| `Background` | Common setup | Runs before each scenario |
| `Scenario Outline` | Data-driven | Template with Examples table |
### Declarative vs Imperative
```gherkin
# ❌ BAD - Imperative (too detailed, UI-focused)
Scenario: Login
Given I navigate to "http://example.com/login"
And I click on the username field
And I type "john@example.com"
And I click on the password field
And I type "secret123"
And I click the submit button
Then I should see "Dashboard" in the page title
# ✅ GOOD - Declarative (behavior-focused)
Scenario: Successful login with valid credentials
Given I am a registered user
When I login with valid credentials
Then I should see my dashboard
```
---
## Three Amigos Quick Reference
| Role | Focus | Questions to Ask |
|------|-------|------------------|
| **Business** (PO/BA) | What & Why | "What's the value?", "Who are the users?" |
| **Development** | How | "What's the technical impact?", "Dependencies?" |
| **Testing** (QA) | What if | "What could go wrong?", "Edge cases?" |
---
## Workflow Assistance
### Discovery Phase Guidance
When exploring requirements:
1. **Example Mapping**
```
🟡 User Story: "User can login"
│
├─ 🔵 Rule: "Users must be authenticated"
│ ├─ 🟢 Example: Valid credentials → login success
│ └─ 🟢 Example: Invalid credentials → error message
│
├─ 🔵 Rule: "Account lockout after failures"
│ ├─ 🟢 Example: 3 failures → account locked
│ └─ 🟢 Example: Locked account → cannot login
│
└─ 🔴 Question: Password expiration policy?
```
2. **Questions to Ask**
- What's the happy path?
- What could go wrong?
- What are the boundary conditions?
- What's explicitly out of scope?
### Formulation Phase Guidance
When writing scenarios:
1. **Feature File Structure**
```gherkin
Feature: Feature name
As a [role]
I want [feature]
So that [benefit]
Background:
Given common preconditions
Scenario: Descriptive scenario name
Given [initial context]
When [action]
Then [expected outcome]
```
2. **Scenario Style Guidelines**
- One behavior per scenario
- Use business language
- Keep steps declarative
- Aim for 5-10 steps maximum
- Make scenarios independent
### Automation Phase Guidance
When implementing:
1. **Step Definition Best Practices**
```typescript
// ✅ Good: Reusable, parameterized
Given('I have {int} items in my cart', (count) => { ... });
// ❌ Bad: Specific to one scenario
Given('I have 3 widgets in my cart', () => { ... });
```
2. **BDD + TDD Integration**
```
BDD Scenario (feature level)
│
└──▶ Step Definitions
│
└──▶ TDD Cycle (unit level)
🔴 Write failing unit test
🟢 Implement minimal code
🔵 Refactor
```
---
## Integration with Other Workflows
### BDD + SDD
When working with Spec-Driven Development:
```gherkin
# Reference spec in feature file
# @spec SPEC-001
@SPEC-001
Feature: User Authentication
Implements SPEC-001 user authentication requirements.
@AC-1
Scenario: Successful login
# Acceptance Criterion 1 from SPEC-001
...
```
### BDD + TDD
```
Scenario Level (BDD) Unit Level (TDD)
───────────────────── ─────────────────
Scenario: Checkout ──────▶ test_calculate_total()
Given cart items test_apply_discount()
When checkout test_create_order()
Then order created test_send_email()
```
### BDD + ATDD
```
ATDD: Acceptance Criteria (business sign-off)
│
└──▶ BDD: Feature Files (Gherkin scenarios)
│
└──▶ TDD: Unit Tests (implementation)
```
---
## Configuration Detection
This skill supports project-specific configuration.
### Detection Order
1. Check `CONTRIBUTING.md` for "Disabled Skills" section
- If this skill is listed, it is disabled for this project
2. Check `CONTRIBUTING.md` for "BDD Standards" section
3. Check for existing `.feature` files in the codebase
4. If not found, **default to standard BDD practices**
### First-Time Setup
If no configuration found and context is unclear:
1. Ask: "This project hasn't configured BDD preferences. Which BDD tool do you use?"
- Cucumber (JavaScript/TypeScript)
- Behave (Python)
- SpecFlow (C#)
- Other
2. After selection, suggest documenting in `CONTRIBUTING.md`:
```markdown
## BDD Standards
### BDD Tool
- Cucumber.js
### Feature File Location
- `features/` directory
### Scenario Style
- Declarative (behavior-focused)
- Business language required
- Max 10 steps per scenario
```
---
## Detailed Guidelines
For complete standards, see:
- [BDD Core Standard](../../core/behavior-driven-development.md)
- [BDD Workflow Guide](./bdd-workflow.md)
- [Gherkin Quick Reference](./gherkin-guide.md)
For related standards:
- [TDD Standards](../../core/test-driven-development.md)
- [ATDD Standards](../../core/acceptance-test-driven-development.md)
- [Testing Standards](../../core/testing-standards.md)
---
## Anti-Patterns Quick Detection
| Symptom | Likely Problem | Quick Fix |
|---------|----------------|-----------|
| Scenarios break on UI changes | Imperative style | Use declarative language |
| Business can't read scenarios | Technical jargon | Use business language |
| Scenarios pass but features don't work | Missing scenarios | Better Discovery sessions |
| Too many scenarios | Scenario explosion | Use Scenario Outlines |
| Step definitions duplicated | Not reusable | Extract to helpers |
---
## Related Standards
- [Behavior-Driven Development](../../core/behavior-driven-development.md) - Core BDD standard
- [Acceptance Test-Driven Development](../../core/acceptance-test-driven-development.md) - ATDD standard
- [Test-Driven Development](../../core/test-driven-development.md) - TDD standard
- [Spec-Driven Development](../../core/spec-driven-development.md) - SDD workflow
- [Testing Standards](../../core/testing-standards.md) - Testing framework
- [TDD Assistant](../tdd-assistant/SKILL.md) - TDD skill
---
## Version History
| Version | Date | Changes |
|---------|------|---------|
| 1.0.0 | 2026-01-19 | Initial release |
---
## License
This skill is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
**Source**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
No comments yet. Be the first to comment!