Given / When / Then.
the human-readable phrase an author writes, e.g. "When I checkout".
the normalized matching skeleton (slot values stripped).
stable identity: op.name@path-uri, or @access:<role> for a Given.
provenance of this phrase (which contract fact produced it).
@suluk/journeys— intuitive, runnable BDD over a v4 "Suluk" contract.A non-technical author (PM / BA / QA) writes Gherkin user-stories/journeys against a step VOCABULARY projected deterministically from the contract; the BINDER resolves each step EXACT-or-UNBOUND (outcomes relative to the scenario's When-subject) and emits a bidirectional TRI-STATE gap report; the EMITTER lowers bound scenarios to a runnable bun:test suite driven through @suluk/sdk's generated client. A pure function of the document. CANDIDATE tooling.
The vocabulary names only contract facts (operations, params, statuses, store keys, access roles) — never request VALUES — so it stays on the safe side of the D1 wall; the @suluk/core matcher never imports this package.