Scenario id uniqueness gate
This walkthrough documents the CI gate added for RFD-BDD-001 D-6 in
pramaan-app.
What changed
pnpm run check:scenario-ids scans canonical feature files
under tests/features/** and rejects duplicate
Scenario or Scenario Outline names.
A desk draft scenario can move into the repo, but a second canonical copy with the same scenario name fails the gate.
The new check runs in the existing quality job beside
the BDD feature-binding and Gherkin readability gates.
Bad-input proof
pnpm run check:scenario-ids -- scripts/bdd/fixtures/duplicate-scenario-id.feature
The fixture lives outside tests/features/, so it proves the
gate fails without becoming part of the required Playwright BDD suite.
Expected operator flow
- Run
pnpm run check:scenario-idsafter adding or moving BDD scenarios. - Rename duplicate scenarios at the product-language level, not with hidden technical suffixes.
- Move desk drafts into
tests/features/; do not leave a second canonical copy.
Files changed
4 file(s), +154 / -0 lines
| Path | Role | + | - |
|---|---|---|---|
| .github/workflows/ci.yml | Workflow | +5 | -0 |
| package.json | Config | +1 | -0 |
| scripts/bdd/check-scenario-ids.ts | Script | +139 | -0 |
| scripts/bdd/fixtures/duplicate-scenario-id.feature | Script | +9 | -0 |