outcomeMarkdown and Gherkin twins derive equal graphs and contracts
spec:carrier.gherkin-authoring.contract-parityPacks: pack:self-hosting-v1
Design: no design entries · no pinned declarations · no decisions
Findings: no errors, no warnings
specs/carrier/gherkin-authoring.contract-parity.sdp.md
No open questions and no blocking questions; implementation binding none, verifier binding present, and expected-outcome oracle none.
Given
the Gherkin fixture corpus {probe: "parity"}When
the fixture corpus is extracted and validated
Then
extraction reports {findingCount: 0} findings
the graph for {parityLeft: "twin.sdp.md"} equals the graph for {parityRight: "twin.sdp.gherkin"}
the contracts for {parityLeft: "twin.sdp.md"} equal the contracts for {parityRight: "twin.sdp.gherkin"}Composing needs the script.
Intent
- Prove the Gherkin carrier derives the same graph and generated contract semantics as its Markdown twin.
Behavior
Examples
Given the Gherkin fixture corpus {probe: "parity"}
When the fixture corpus is extracted and validated
Then extraction reports {findingCount: 0} findings
Then the graph for {parityLeft: "twin.sdp.md"} equals the graph for {parityRight: "twin.sdp.gherkin"}
Then the contracts for {parityLeft: "twin.sdp.md"} equal the contracts for {parityRight: "twin.sdp.gherkin"}Verification
Verifier bindings
- test:protocol.gherkin-authoring.contract-parity · the contract-parity point verifies the Gherkin carrier contract · anchored · test anchor binding present ·
test/self-hosting-carrier-gherkin.test.ts:388External run evidence from
test/self-hosting-carrier-gherkin.test.tsTest anchors:
test:protocol.gherkin-authoring.authored-fact-refused,test:protocol.gherkin-authoring.contract-parity,test:protocol.gherkin-authoring.description-location-refused,test:protocol.gherkin-authoring.duplicate-surface-refused,test:protocol.gherkin-authoring.example-space-extraction,test:protocol.gherkin-authoring.malformed-relation-refused,test:protocol.gherkin-authoring.missing-id-refused,test:protocol.gherkin-authoring.multi-finding-bounded,test:protocol.gherkin-authoring.parent-child-extraction,test:protocol.gherkin-authoring.step-less-scenario-refused,test:protocol.gherkin-authoring.unbound-ready-refused,test:protocol.gherkin-authoring.unknown-tag-refused,test:protocol.gherkin-authoring.unsupported-construct-refused. Specs verified by those bindings: spec:carrier.gherkin-authoring, spec:carrier.gherkin-authoring.authored-fact-refused, spec:carrier.gherkin-authoring.contract-parity, spec:carrier.gherkin-authoring.description-location-refused, spec:carrier.gherkin-authoring.duplicate-surface-refused, spec:carrier.gherkin-authoring.example-space-extraction, spec:carrier.gherkin-authoring.malformed-relation-refused, spec:carrier.gherkin-authoring.missing-id-refused, spec:carrier.gherkin-authoring.multi-finding-bounded, spec:carrier.gherkin-authoring.parent-child-extraction, spec:carrier.gherkin-authoring.step-less-scenario-refused, spec:carrier.gherkin-authoring.unbound-ready-refused, spec:carrier.gherkin-authoring.unknown-tag-refused, spec:carrier.gherkin-authoring.unsupported-construct-refused, spec:validation.kind-evidence.Run 2: external run evidence from vitest 4.1.10
Build: CI 439 · Branch: docs/articles-refresh-1 · Commit: 61576184ea9f39b7f91c51fef5ff991b0bf2d0e6 · Start: 2026-11-04T07:59:39.962Z · Stop: 2026-11-04T08:03:39.928Z
Name Suite Result Duration executes the bound example against a fresh world An authored delivery fact lookalike is refused (spec:carrier.gherkin-authoring.authored-fact-refused) passed 19.82 ms executes the bound example against a fresh world Markdown and Gherkin twins derive equal graphs and contracts (spec:carrier.gherkin-authoring.contract-parity) passed 62.61 ms executes the bound example against a fresh world Duplicate Markdown and Gherkin surfaces are both excluded (spec:carrier.gherkin-authoring.duplicate-surface-refused) passed 10.52 ms executes the bound example against a fresh world The pseudo-scenario supplies example space without a node (spec:carrier.gherkin-authoring.example-space-extraction) passed 5.93 ms executes the bound example against a fresh world A malformed relation target is refused (spec:carrier.gherkin-authoring.malformed-relation-refused) passed 4.34 ms executes the bound example against a fresh world A Feature without identity is refused (spec:carrier.gherkin-authoring.missing-id-refused) passed 7.52 ms executes the bound example against a fresh world A Feature and Scenario enter the graph as parent and child (spec:carrier.gherkin-authoring.parent-child-extraction) passed 8.45 ms executes the bound example against a fresh world A Gherkin example with an unbound used slot fails its stated readiness floor (spec:carrier.gherkin-authoring.unbound-ready-refused) passed 4.3 ms executes the bound example against a fresh world A graph-aware tag near miss is refused (spec:carrier.gherkin-authoring.unknown-tag-refused) passed 3.62 ms executes the bound example against a fresh world A Scenario Outline is refused (spec:carrier.gherkin-authoring.unsupported-construct-refused) passed 3.77 ms executes the bound example against a fresh world A bad description key reports its physical source line (spec:carrier.gherkin-authoring.description-location-refused) passed 5.02 ms executes the bound example against a fresh world A step-less Scenario is refused at its Scenario line (spec:carrier.gherkin-authoring.step-less-scenario-refused) passed 2.32 ms executes the bound example against a fresh world Multiple findings exclude one carrier and keep a healthy sibling (spec:carrier.gherkin-authoring.multi-finding-bounded) passed 5.38 ms
Design view
Requirement drawing
- Satisfying or referencing units: no recorded binding.
Decisions
No decision record named.
Runtime
No implementation neighborhood recorded.
Runtime observation: not tracked.
Evidence
Runtime observation: not tracked.
Build attestations: not tracked.
Deployments: not tracked.
Bills of materials: not tracked.
Impact
- E2: verifies · declared
Rests on
- refines · spec:carrier.gherkin-authoring · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| refines · outgoing | Gherkin authoring enters the one graphspec:carrier.gherkin-authoring · resolves | declared | None | None |
| verifies · outgoing | Gherkin authoring enters the one graphspec:carrier.gherkin-authoring · resolves | declared | None | None |
Bindings
Implementation binding: none
Design reference: none
Verifier binding: present
- test:protocol.gherkin-authoring.contract-parity · the contract-parity point verifies the Gherkin carrier contract · anchored ·
test/self-hosting-carrier-gherkin.test.ts:388· test anchor
Expected-outcome oracle: none
Runtime observation: not tracked.
Run results: not recorded in the graph.
Findings
None.
Composing (0)
Composing needs the script.