Skip to content

feat(compliance): add signals-specific universal storyboards for error_handling and core tracks#3358

Draft
bokelley wants to merge 2 commits intomainfrom
claude/issue-3350-signals-error-schema-storyboards
Draft

feat(compliance): add signals-specific universal storyboards for error_handling and core tracks#3358
bokelley wants to merge 2 commits intomainfrom
claude/issue-3350-signals-error-schema-storyboards

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Refs #3350

Summary

Signals-only agents (supported_protocols: ["signals"], no get_products tool) get 0 steps from the error_handling and core compliance tracks in the 5.13 runner. Root cause: error-compliance.yaml and schema-validation.yaml both carry required_tools: [get_products] at the storyboard root — the runner interprets this as an applicability gate and emits missing_tool / skips the storyboard entirely for agents that lack get_products.

This PR adds two new universal storyboards targeting signals agents:

  • error-compliance-signals.yaml (track: error_handling, required_tools: [get_signals, activate_signal]) — 5 phases: capability discovery, error responses (nonexistent segment ID, missing required field), error structure validation, VERSION_UNSUPPORTED / version negotiation, MCP transport binding
  • schema-validation-signals.yaml (track: core, required_tools: [get_signals]) — 2 phases: capability discovery, schema compliance (required fields on signals, pricing options structure)

Updates docs/building/conformance.mdx and docs/building/compliance-catalog.mdx per the doc-parity lint requirement.

Non-breaking justification: adds new storyboards; no existing storyboard is modified; media-buy agents are unaffected. Signals agents gain new required compliance coverage — this was always the spec intent (universal tracks must run for all agents), so this restores correct behavior rather than expanding requirements.

Note: The existing error-compliance.yaml and schema-validation.yaml still have required_tools: [get_products] at the root, which means they remain scoped to media-buy agents. A complementary fix in the adcp-client runner (using supported_protocols for track applicability rather than required_tools as a proxy) would be the complete solution. That fix is in adcp-client, not this repo.

Pre-PR review

  • code-reviewer: approved — all 6 structural checks pass (idempotency keys on all activate_signal steps, sample_request_skip_schema on intentionally-malformed step, REFERENCE_NOT_FOUND correct error code for unresolvable signal_agent_segment_id, model field correct for signals pricing)
  • ad-tech-protocol-expert: approved — error codes correct per spec's "not-found precedence" rule (REFERENCE_NOT_FOUND for opaque signal_agent_segment_id, not SIGNAL_NOT_FOUND which is for signal_id catalog references); VERSION_UNSUPPORTED pattern via get_signals is sound; coverage sufficient to restore zero-step agents to participation

Triage-managed PR. This bot does not currently iterate on
review comments or PR conversation threads (only on the source
issue). To unblock:

  • Push fixup commits directly: gh pr checkout <num>
    fix → push.
  • Or re-trigger: comment /triage execute on the source
    issue.

See #3121
for context.

Session: https://claude.ai/code/session_01J2r8RXmLEsooTH82Q3XyY9


Generated by Claude Code

…r_handling and core tracks

Adds error-compliance-signals.yaml and schema-validation-signals.yaml to
static/compliance/source/universal/, restoring error handling and schema
compliance coverage for signals-only agents (supported_protocols: ["signals"]).

The existing error-compliance.yaml and schema-validation.yaml storyboards have
required_tools: [get_products] at the storyboard root, causing the 5.13 runner
to skip them entirely for signals agents (missing_tool). New storyboards use
required_tools: [get_signals, activate_signal] and [get_signals] respectively.

Closes #3350

https://claude.ai/code/session_01J2r8RXmLEsooTH82Q3XyY9
… check

The error_code check validator expects allowed_values (list) not value
(scalar). Fixes the unsupported_major_version step in
error-compliance-signals.yaml.

https://claude.ai/code/session_01J2r8RXmLEsooTH82Q3XyY9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-triaged Issue has been triaged by the Claude Code triage routine. Remove to re-triage.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants