Background
adcp#4907 Phase 1 added bidirectional release gating: @adcp/sdk releases now validate a candidate runner against a tagged Python reference seller. Phase 2 will expand that to a reference-seller matrix.
Phase 3 should address the remaining ownership problem: storyboard scenarios currently live with @adcp/sdk, so the SDK is both the runner and the scenario source of truth. The spec repo should own the canonical storyboard scenario bundle, and SDKs should consume it.
Goal
Split responsibilities:
adcontextprotocol/adcp = canonical storyboard scenarios and scenario schema
adcontextprotocol/adcp-client / @adcp/sdk = runner that executes canonical scenarios
reference SDKs = implementations tested against canonical scenarios
Proposed rollout
- Add a canonical scenario location in this repo, for example
static/conformance/storyboards/ or static/storyboards/.
- Add CI validation for scenario files and runner output contracts.
- Copy the current
@adcp/sdk storyboard scenarios into this repo without semantic changes.
- Add an
@adcp/sdk check proving its bundled/default scenarios match the canonical spec copy.
- Teach the runner to load scenarios from an explicit path, package, or spec ref.
- Switch reference SDK CI and cross-repo interop CI to use the spec-owned bundle.
- Remove
@adcp/sdk as the scenario authority after a compatibility window.
Sequencing policy to document
Breaking or materially stricter scenario changes should follow an explicit order:
spec scenario change -> reference sellers update -> @adcp/sdk runner release -> downstream consumers update
This avoids the release-order deadlock that motivated adcp#4907.
Acceptance
References
Background
adcp#4907 Phase 1 added bidirectional release gating:
@adcp/sdkreleases now validate a candidate runner against a tagged Python reference seller. Phase 2 will expand that to a reference-seller matrix.Phase 3 should address the remaining ownership problem: storyboard scenarios currently live with
@adcp/sdk, so the SDK is both the runner and the scenario source of truth. The spec repo should own the canonical storyboard scenario bundle, and SDKs should consume it.Goal
Split responsibilities:
Proposed rollout
static/conformance/storyboards/orstatic/storyboards/.@adcp/sdkstoryboard scenarios into this repo without semantic changes.@adcp/sdkcheck proving its bundled/default scenarios match the canonical spec copy.@adcp/sdkas the scenario authority after a compatibility window.Sequencing policy to document
Breaking or materially stricter scenario changes should follow an explicit order:
This avoids the release-order deadlock that motivated adcp#4907.
Acceptance
@adcp/sdkcan run against the spec-owned scenario bundle.References