Skip to content

[Extension]: Update Reqnroll BDD extension #2764

@stenyin

Description

@stenyin

Extension ID

reqnroll-bdd

Extension Name

Reqnroll BDD

Version

1.1.0

Description

Added

  • @infrastructure tag convention: placed on the line immediately before Feature: in all generated .feature files so CI/CD pipelines can identify tests requiring test infrastructure.
  • Skeleton → implementation transition guide: Given/When/Then patterns showing how to replace PendingStepException() with Application-layer calls via test data builders, service facades, and scenario context assertions.
  • Expected test state transition table (skippedpassed) in implementation handoff and verification templates.
  • Concrete BDD-004 implementation guidance: explicit replacement patterns for Given (builder + context), When (facade call), Then (context assertion) steps.
  • Verification now distinguishes yellow/inconclusive (PendingStepException, pending implementation) from red/failures (assertion errors).

Changed

  • Generalized all Godot-specific terminology to domain-neutral "Presentation layer" language across all commands, templates, docs, and README.
  • Replaced gaming-themed Gherkin and C# examples with generic business domain examples (Account Balance / Deposit).
  • GameScenarioContextScenarioContext in all skeleton and implementation pattern templates.
  • business/game rulebusiness rule, user/playeruser throughout.
  • Architecture Boundary rules now reference "Presentation-layer components (e.g., UI controls, pages, views)" instead of framework-specific terms.

Fixed

  • @infrastructure tag now correctly placed on its own line before Feature:, not inline on the Feature line.
  • Step definitions skeleton template no longer leaves implementers without a clear path from placeholder to working tests.

Author

LoogaCY Studio

Repository URL

https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd

Download URL

https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd/archive/refs/tags/v1.1.0.zip

License

MIT

Homepage (optional)

No response

Documentation URL (optional)

No response

Changelog URL (optional)

No response

Required Spec Kit Version

=0.8.0

Required Tools (optional)

- donet -optional

Number of Commands

4

Number of Hooks (optional)

1

Tags

bdd, reqnroll, dotnet, gherkin, acceptance-testing

Key Features

Generate Reqnroll BDD plans, Gherkin files, task injections, handoffs, and verification reports.

Testing Checklist

  • Extension installs successfully via download URL
  • All commands execute without errors
  • Documentation is complete and accurate
  • No security vulnerabilities identified
  • Tested on at least one real project

Submission Requirements

  • Valid extension.yml manifest included
  • README.md with installation and usage instructions
  • LICENSE file included
  • GitHub release created with version tag
  • All command files exist and are properly formatted
  • Extension ID follows naming conventions (lowercase-with-hyphens)

Testing Details

Tested on:

  • Spec Kit project using the reqnroll-bdd extension
  • Extension version: v1.1.0

Tested install path:

specify extension add reqnroll-bdd --from https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd/archive/refs/tags/v1.1.0.zip

Real project dogfood:

  • RpgSnake.Game — an existing .NET 8 solution (Console + Web + Domain) used to validate the full Speckit + Reqnroll BDD workflow for adding a WPF desktop application version

Dogfood flow tested:

/speckit.specify → /speckit.plan → /speckit.tasks → /speckit.reqnroll-bdd.plan → /speckit.reqnroll-bdd.generate → /speckit.implement → /speckit.reqnroll-bdd.verify (end-to-end 7-stage full pipeline)

Test result:

  • ✅ Pass — all 7 stages completed successfully
    • speckit.specify: generated spec.md — 3 User Stories, 12 FRs, 6 SCs, 0 NEEDS CLARIFICATION markers
    • speckit.plan: generated plan.md + research.md + data-model.md + contracts/wpf-desktop-contract.md + quickstart.md; agent context updated
    • speckit.tasks: generated tasks.md — 40 tasks across 6 phases
    • speckit.reqnroll-bdd.plan: all 13 acceptance criteria classified
    • speckit.reqnroll-bdd.generate: WpfGameplay.feature (9 scenarios) + bdd-traceability.md + bdd-implementation-handoff.md
    • speckit.implement: full WPF project implementation (6 .cs + 2 .xaml files), build succeeded, 39/39 tests passing
    • speckit.reqnroll-bdd.verify: all 5 verification checks Pass — no architecture leakage, no orphan scenarios
    • Auto-fixes applied during flow: with expression errors (class vs record), Reqnroll step ambiguity conflicts (overlap with existing MovementStepDefinitions), scenario data setup corrections (score/direction edge cases)

Example Usage

specify extension add reqnroll-bdd --from https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd/archive/refs/tags/v1.1.0.zip
``
Run the normal Spec Kit flow:

/speckit.specify
/speckit.plan
/speckit.tasks

Run the Reqnroll BDD flow:

/speckit.reqnroll-bdd.plan
/speckit.reqnroll-bdd.generate
/speckit.implement
/speckit.reqnroll-bdd.verify

Before `/speckit.implement`, the optional `before_implement` hook may trigger:

/speckit.reqnroll-bdd.inject-tasks

Generated artifacts may include:

specs/{feature}/bdd-test-plan.md
specs/{feature}/bdd-traceability.md
specs/{feature}/bdd-implementation-handoff.md
specs/{feature}/bdd-verification.md
tests/{Project}.AcceptanceTests/Features/*.feature

Task injection adds a bounded block to `tasks.md` only when the required BDD artifacts exist:

<!-- reqnroll-bdd:tasks:start -->

## BDD Acceptance Test Tasks

- [ ] BDD-003 Create step definition skeletons
  - Boundary: Application
  - Skeleton only: `[Binding]`, constructor dependencies, Given/When/Then method signatures, and `PendingStepException`.

- [ ] BDD-004 Complete step definitions through the Application boundary

<!-- reqnroll-bdd:tasks:end -->

Proposed Catalog Entry

{
    "reqnroll-bdd": {
      "name": "Reqnroll BDD",
      "id": "reqnroll-bdd",
      "description": "Adds Reqnroll BDD planning, Gherkin generation, traceability, safe task injection, handoff, and verification to Spec Kit.",
      "author": "LoogaCY Studio",
      "version": "1.1.0",
      "download_url": "https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd/archive/refs/tags/v1.1.0.zip",
      "repository": "https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd",
      "homepage": "https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd",
      "documentation": "https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd#readme",
      "changelog": "https://github.com/LoogacyStudio/spec-kit-reqnroll-bdd/blob/main/CHANGELOG.md",
      "license": "MIT",
      "requires": {
        "speckit_version": ">=0.8.0",
        "tools": [
          {
            "name": "dotnet",
            "required": false
          }
        ]
      },
      "provides": {
        "commands": 4,
        "hooks": 1
      },
      "tags": [
        "bdd",
        "reqnroll",
        "dotnet",
        "gherkin",
        "acceptance-testing"
      ],
      "verified": false,
      "downloads": 0,
      "stars": 0,
      "created_at": "2026-05-13T00:00:00Z",
      "updated_at": "2026-05-29T00:00:00Z"
    }
}

Additional Context

No response

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions