Step Definition Generator
Converts Gherkin steps into Cucumber/TypeScript step definitions. Wires parameters, expression types, and shared world state automatically.
.feature file in Cursor or Claude Code, and EVAN detects unbound stepsevan generate against a TARA-authored Gherkin spec{string}, {int}, custom parameter types) over raw regex. Why:World parameter (the Cucumber world). EVAN inspects the surrounding .feature file and other step defs in the project to discover which world fields are in use, then references them by name.{string} and {int} parameter, EVAN reads the Given/When/Then text and chooses the most narrow TypeScript type that still compiles:"jordan.lee@nexaq.io" → Email (a custom parameter type)200 → HttpStatus (a numeric union type, if defined)"Valid#2026" → string (no narrower type available)Given, When, Then, World from @cucumber/cucumberthis. referencesGiven("a registered user {string} with password {string}", async function (this: World, email: string, password: string) { this.user = await db.users.create({ email, password }); });async is automatic — EVAN detects DB or HTTP I/O in the step body and adds it without prompting.Inspects DOM (live or via spec) and emits typed Page Objects with stable selectors and high-level actions. Enforces single-responsibility per object.
Picks the most stable selector for a target element — role-based first, label-based next, test-id last. Avoids brittle CSS class chains.
Reads OpenAPI / GraphQL schemas and emits contract + integration tests. Handles auth, pagination, idempotency, and rate-limit assertions.
Synthesizes realistic test data — names, addresses, payment cards, medical records, account numbers — with deterministic seeds and PII safety.
Augments thin Gherkin Then-clauses with additional assertions: response codes, side-effects, audit log entries, downstream events.
Same Gherkin spec → Playwright, Cypress, WebdriverIO, or Selenium output. Lets teams adopt the squad without re-platforming existing automation.