Skip to content

docs(storyboard-schema): enumerate a2a_submitted_artifact in validation check list #3105

Description

@bokelley

Context

`static/compliance/source/universal/storyboard-schema.yaml` lists the supported `check:` values in a comment block at lines 555-558:

```yaml

check: string (what to validate: "response_schema", "field_present", "field_value",

"status_code", "http_status", "http_status_in", "error_code",

"on_401_require_header", "resource_equals_agent_url", "any_of",

"refs_resolve")

```

`adcontextprotocol/adcp-client#952` shipped a new validation check, `a2a_submitted_artifact`, that asserts the A2A wire-shape invariants for AdCP `submitted` arms (per A2A 0.3.0 + adcp-client#899). The check is supported by the runner today; this issue is about updating the spec docs so storyboard authors know it exists.

Proposed change

Add `a2a_submitted_artifact` to the comment-enumeration above. The `refs_resolve` paragraph at line 586 is the existing template for documenting cross-cutting checks; suggest adding a sibling section like:

```yaml

A2A wire-shape — use `check: a2a_submitted_artifact`:

Verifies the cross-transport invariants established by adcp-client#899 for

AdCP `submitted` arms over A2A: `Task.state === 'completed'`, `Task.id` /

`Task.contextId` non-empty, `artifact.metadata.adcp_task_id` carries the

handle, `artifact.parts[0].data.status === 'submitted'` preserves the AdCP

discriminator. The check self-skips with `not_applicable` on non-A2A

transports so storyboards can include it alongside MCP-shape assertions

without forking by transport.

```

Why this matters

The runner doesn't enforce the comment enum at parse time — unknown check names just fail at validation runtime with "Unknown validation check". So this is documentation-only. But storyboard authors copying patterns from existing scenarios won't discover the new check unless it's listed in the spec's canonical reference.

Related

  • adcp-client#952 — the implementation PR
  • adcp-client#904 — umbrella tracking issue
  • adcp-client#899 — the protocol contract being verified

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.documentationImprovements or additions to documentation

    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