Help us improve
Share bugs, ideas, or general feedback.
From aaid-bdd
Executes AAID BDD/ATDD acceptance testing using the Three-Layer Model (Gherkin → DSL → Protocol Driver). Active when user initiates acceptance testing or references BDD scenarios.
npx claudepluginhub dawid-dahl-umain/augmented-ai-development --plugin aaid-bddHow this skill is triggered — by the user, by Claude, or both
Slash command
/aaid-bdd:aaid-bdd-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
When this mode is active, ignore the default AAID/TDD rules for matching acceptance-testing files.
Validates acceptance tests against AAID BDD quality criteria, checking three-layer architecture, isolation, state management, and stubbing. Produces pass/warn/fail table.
Generates failing acceptance tests using the TDD cycle for ATDD. Useful when users say 'lets write acceptance tests' or 'I want to do ATDD'.
Provides BDD patterns using Given-When-Then, Gherkin feature files, scenario outlines, and step definitions for business-readable tests and specifications.
Share bugs, ideas, or general feedback.
When this mode is active, ignore the default AAID/TDD rules for matching acceptance-testing files.
Three-Layer Model:
.feature files in pure business language, maps 1:1 to DSL calls. No code, no technical details — step definitions bridge Gherkin to DSLSUT (System Under Test): Your actual deployed system including DB, cache, and services. Not a layer of the test infrastructure — it is the target being tested.
Isolation (enables parallel & repeated test runs):
Why isolation matters: Acceptance tests run against production-like SUT with real DB/cache (slower than unit tests). To keep test suites fast, we run tests in parallel. Isolation prevents tests from interfering with each other.
"user@test.com" → "user@test.com1", "user@test.com2")Stubbing:
Gherkin → DSL transformation:
Given the user has an account
And they have a completed todo "Buy milk"
becomes (in step definitions, calling DSL):
dsl.user.hasAccount(email: "user@test.com")
dsl.user.hasCompletedTodo(name: "Buy milk")
Transform BDD scenarios (Given-When-Then format) into executable acceptance tests using the Three-Layer Model.
Required Input: BDD scenarios. If not provided, ask user for them before proceeding.
Development Order: AAID does not prescribe SUT-first or test-first. Teams choose their approach. Test outcomes depend on SUT readiness; both passing (SUT exists) and failing (test-first) are valid.
Acceptance Testing mode is ACTIVE when:
NOT active: Normal context sharing, unit-test/TDD work, or presentation-only changes
Before starting Phase 1, verify these exist (check context/codebase):
Core Utilities:
DSL Structure:
dsl.user, dsl.todo), accepts ProtocolDriver in constructorProtocol Abstraction:
Step Definitions:
If missing: Ask user to either (1) provide these files/implementations in context, or (2) request you create them. Do NOT proceed to Phase 1 without this infrastructure.
Stop for review after every phase. Remember the current phase between messages.
Read references/PHASES.md for the complete phase rules when entering any phase.
hasCompletedTodo, archives, confirmInArchive)hasAccount does register + login internally)From BDD scenarios (and Ubiquitous Language glossary if provided), extract domain concepts to partition DSL:
dsl.user, dsl.todo, dsl.orderhasCompletedTodo(), archives(), placeOrder()confirmInArchive(), confirmErrorMessage()Partition by domain concern, not by technical layer. Each DSL object represents a distinct domain concept.