Bdd
Skill Yassimba/loom/skills/bdd
Behavior-Driven Development as a collaboration and specification practice, with pytest-bdd and behave as the bundled automation references. Use when defining behavior through concrete examples or acceptance criteria, writing or reviewing Gherkin .feature files, wiring pytest-bdd or behave step definitions, or checking that tests still express business behavior rather than implementation.From its SKILL.md
npx -y skills add Yassimba/loom --skill bddAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.5 KB, as published. Nobody here has run it
Behavior-Driven Development
BDD builds shared understanding of a problem through concrete examples, written in business language, agreed before implementation. The examples become executable specifications; running them drives the code. The order is fixed: conversation first, capture second, automation last. A team running Gherkin without the conversation has test automation, not BDD.
Two automation layers are bundled: pytest-bdd and behave. The practice and the Gherkin carry to any stack — see Other automation layers.
Preflight: does this deserve Gherkin?
Gate every "add a BDD test" impulse:
- The behavior is stable and business-meaningful — not scaffolding, framework glue, or an implementation still finding its shape.
- The scenario states a user intent or observable outcome, not internal mechanics.
- The sentence helps someone imagine a real use of this project. A scenario that reads as a natural-language translation of a technical test gets rewritten, or dropped in favor of a plain pytest test.
Workflow
- Discover. Write down Who / What / Why, the business rules, examples, and open questions — before touching a test framework. Done when every rule carries at least one positive and one negative example and every unknown is a recorded question rather than a guess. Working solo, simulate the Three Amigos using subagents (business, development, quality) and mark which points are inference needing user confirmation. Detail and templates: practice.md.
- Formulate. Invoke the
write-simplyskill (via the Skill tool) — the Gherkin and the prose presenting it follow its register. Draft the scenarios —Givencontext,Whenevent,Thenobservable outcome — in domain language. Ask the user for approval, then run every scenario through the quality gate below before writing any glue code. Syntax and style: gherkin.md. - Automate — only when the user asks for implementation. The framework is a project fact — check the declared dependencies for
behaveorpytest-bdd(afeatures/steps/tree withenvironment.pymeans behave) and join what is there. Only greenfield picks, and Gherkin authorship decides: developers write it and domain experts review → pytest-bdd inside the existing pytest suite; the business writes the feature files themselves → behave, where they run standalone. Mechanics: pytest-bdd.md / behave.md. Bind scenarios, watch the run fail first, write the smallest code that passes. - Refactor. Keep scenario language stable while extracting helpers and fixtures; add boundary examples and counterexamples; report the red→green evidence and unresolved questions.
A review-only request ("review this Gherkin", "is this good BDD?") stops after step 2 plus the checklist in gherkin.md: report findings and the smallest corrections, change no files.
Gherkin quality gate
Every scenario passes all six before glue code:
- One observable behavior — the scenario explains a rule, boundary, or outcome.
- Domain language — readable with business vocabulary alone; free of URLs, selectors, table columns, class names, HTTP details.
- Concrete, not technical — real roles, amounts, dates, states; never
user1,foo, or "the result is correct". - Clean semantics —
Givenis context,Whenis one event,Thenasserts an externally observable result. - Short and independent — 3–5 steps; runnable in any order;
Background,Examples, and tables carry only necessary meaning. - Failing wording goes back — a scenario that needs explanation, or is expressible only through implementation detail, returns to Discovery. Rewording beats patching it in glue.
Other automation layers
pytest-bdd and behave are reference implementations, not the definition of BDD. On another stack or language, everything except the two framework files applies unchanged: keep the workflow and the Gherkin, swap the glue layer, and pull binding mechanics from that framework's docs.