Skip to content

Phase 3: move storyboard scenarios into spec repo as canonical contract #5016

Description

@bokelley

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

  1. Add a canonical scenario location in this repo, for example static/conformance/storyboards/ or static/storyboards/.
  2. Add CI validation for scenario files and runner output contracts.
  3. Copy the current @adcp/sdk storyboard scenarios into this repo without semantic changes.
  4. Add an @adcp/sdk check proving its bundled/default scenarios match the canonical spec copy.
  5. Teach the runner to load scenarios from an explicit path, package, or spec ref.
  6. Switch reference SDK CI and cross-repo interop CI to use the spec-owned bundle.
  7. 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

  • Canonical storyboard scenarios live in this spec repo.
  • Scenario schema/contract validation runs in spec CI.
  • @adcp/sdk can run against the spec-owned scenario bundle.
  • Existing scenario semantics are preserved during the initial migration.
  • The versioning and rollout policy for scenario changes is documented.
  • Phase 2 reference-seller matrix can point at one canonical scenario source.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.compliance-suiteenhancementNew feature or request

    Type

    No type

    Fields

    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