CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cucumber-testing

Configures Cucumber for BDD scenarios - Cucumber-JVM (Java/Kotlin via JUnit 5), Cucumber-JS (Node), Cucumber-Ruby. Authors `.feature` files in Gherkin, writes step definitions in the host language, runs via the framework's runner, integrates with JUnit XML reporting. Use when the user mentions Cucumber, Gherkin, `.feature` files, or behavior-driven (BDD) tests in Java, Kotlin, JavaScript, or Ruby, as the canonical wrapper for any of the three official implementations.

1.03x
Quality

91%

Does it follow best practices?

Impact

91%

1.03x

Average score across 10 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

The canonical home for this skill is testland/cucumber-testing

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, well-structured skill body: an actionable eight-step workflow with executable snippets, real one-level-deep references, and useful anti-patterns/limitations sections. The main refinements are tightening the quoted Overview material, adding the Ruby step-definition coverage and JS imports the three-implementation scope promises, and surfacing the first-run 'undefined steps are expected' validation cue in the main run step.

Suggestions

Collapse the two cucumber.io block quotes in the Overview into a single sentence ('Official implementations: JavaScript, Java, Ruby, Android, Kotlin, Scala, C++; semi-official: Behat, Behave, Reqnroll — per cucumber.io/docs/installation') to save tokens without losing the scoping rationale.

Add a Ruby step-definition example (or a pointer to one) in references/step-definitions-and-reporting.md — Ruby is one of the three covered implementations but currently has no step-binding example, and import the `assert` module in the JS example so it is truly copy-paste runnable.

In the Step 6 'Run' section, add one line stating the expected first-run result (undefined steps with printed snippets are the correct outcome, not a failure), since this validation cue is currently buried in references/runner-selection.md.

DimensionReasoningScore

Conciseness

The body is mostly lean: eight numbered steps each carry code or a table, with no tutorial prose explaining what BDD or Maven is. The Overview's two block quotes from cucumber.io ("Cucumber is available for most mainstream programming languages" and the tiers list) partially restate the sentence that follows them and could be collapsed into one line, which keeps this below anchor 5 but well above anchor 3.

4 / 5

Actionability

Install snippets, a complete `.feature` file, JS step definitions with `{cucumber-expression}` captures, run commands, and tag-filtering commands are copy-paste ready, and Java details are correctly deferred to the reference. Minor gaps hold it at 4: the inline JS example uses `assert` and `createLoggedInUser()` without imports, and Cucumber-Ruby — one of the three covered implementations — never gets a step-definition example (the reference file only contains JVM and JS).

4 / 5

Workflow Clarity

Steps 1–8 form a coherent, correctly ordered sequence (install → author feature → bind steps → run → report → filter), and the anti-patterns and limitations sections reinforce it. However, checkpoints are implicit rather than explicit: the crucial 'undefined steps on first run is the correct result, not a failure' validation signal lives in references/runner-selection.md instead of the run step, and the body has no 'verify what success looks like' note. Test-running is not destructive/batch, so the ≤3 cap does not apply.

4 / 5

Progressive Disclosure

Both referenced files (references/runner-selection.md, references/step-definitions-and-reporting.md) exist, are one level deep, and are well signaled in context ('Full Java... plus the JUnit XML reporting config, are in...') and again in the References section. Heavy detail (Java step defs, reporting config, runner decision table) is correctly split out while the overview stays self-sufficient for the happy path.

5 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A model description: third-person voice, specific capabilities spanning the whole BDD workflow, an explicit 'Use when' clause with concrete user-sayable trigger terms including a file extension, and sharp boundaries against the Python/.NET sibling skills. No penalizable vagueness, over-claiming, or padding.

DimensionReasoningScore

Specificity

The description lists five concrete, distinct actions — "Configures Cucumber for BDD scenarios", "Authors `.feature` files in Gherkin", "writes step definitions in the host language", "runs via the framework's runner", "integrates with JUnit XML reporting" — covering the full workflow from setup to CI reporting. Not 4: coverage is comprehensive (install, author, bind, run, report) rather than having minor gaps.

5 / 5

Completeness

Both what and when are explicit: the opening sentences state exactly what the skill does, and "Use when the user mentions Cucumber, Gherkin, `.feature` files, or behavior-driven (BDD) tests in Java, Kotlin, JavaScript, or Ruby" gives concrete trigger phrases. This mirrors the anchor-5 example structure (capabilities + 'Use when' with enumerated triggers).

5 / 5

Trigger Term Quality

Natural trigger terms include "Cucumber", "Gherkin", "`.feature` files", "behavior-driven (BDD) tests", plus implementation names users would say ("Cucumber-JVM", "Cucumber-JS", "Cucumber-Ruby") and the host languages (Java, Kotlin, JavaScript, Ruby). Includes a file extension (`.feature`), synonyms (BDD / behavior-driven), and the named implementations — matching the comprehensiveness of the anchor-5 example.

5 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche — "the canonical wrapper for any of the three official implementations" (Cucumber-JVM, Cucumber-JS, Cucumber-Ruby) — with the 'when' clause scoped to Java, Kotlin, JavaScript, and Ruby. Adjacent ecosystems (Python Behave, .NET Reqnroll) are explicitly excluded from the description, so overlap with sibling skills is minimal.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

testland/qa

Path

plugins/qa-bdd/skills/cucumber-testing/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.