Conversation
… storyboard (#4015) Adds an optional `audio_build` phase to the `creative_template` specialism storyboard. Audio-creative platforms (TTS services, voice generation agents, mix/master pipelines) could not pass the existing storyboard because the `build` phase sends image inputs and expects display-tag output; they validated via manual round-trip only. The new phase exercises `build_creative` with audio inputs (script and voice text assets, click_url) and validates that the output carries a creative manifest with assets. Both sync returns and task-envelope async returns are valid under `comply_scenario: creative_flow`. The phase is marked `optional: true` and gated by `skip_if: "!test_kit.supports_audio_formats"`. Display-only template agents (the majority today) leave the flag `false` in the test kit and the runner grades the phase `not_applicable`. Audio platform adopters flip it to `true`. Also adds `supports_audio_formats: false` and an `assets.audio` reference block to `acme-outdoor.yaml` for adopters authoring audio format specs. Non-breaking: additive scenario per conformance-harness patch-eligibility rules in the playbook. https://claude.ai/code/session_013KNxYsZtapmfcVndMGx1Tw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #4015
Summary
Audio-creative platforms (TTS services, voice generation agents, mix/master pipelines) could not pass the
creative_templatestoryboard because itsbuildphase sends image inputs and expects display-tag output. They validated via manual round-trip + SDK tests only — no formal compliance signal.This PR adds an optional
audio_buildphase with a singlebuild_audio_creativestep that exercisesbuild_creativewith audio inputs (script text, voice descriptor, click URL) and validates that the output carries a creative manifest with assets. Both sync returns and task-envelope async returns (submitted → working → completed) are valid under the existingcomply_scenario: creative_flowgate.Files changed:
static/compliance/source/specialisms/creative-template/index.yaml— newaudio_buildphase appendedstatic/compliance/source/test-kits/acme-outdoor.yaml—supports_audio_formatsflag +assets.audioreference blockNon-breaking justification
Additive scenario only: no existing phases or steps are modified. The new phase is marked
optional: trueand gated byskip_if: "!test_kit.supports_audio_formats", which defaults tofalseinacme-outdoor.yaml. Display-only template agents grade the phasenot_applicablewith zero behavior change. Per the conformance-harness patch-eligibility rules in the playbook, additive storyboard scenarios are non-breaking.Pre-PR review
assets.audiocomment clarified; 1 blocker fixed — addedoptional: trueto phase)asset_type: "text"without sub-discriminator is consistent with existingheadlinepattern in the same storyboard;audioasset type is registered instatic/schemas/source/creative/asset-types/index.json;click_urlkey name matches existing display build steps;skip_ifscope is correct (static test-kit flag, not runtime response data); changeset correctly uses--emptyNote (nit, not blocking): The
validationsblock cannot assert a specific output audio asset key because the key name is format-defined, not protocol-defined. Theexpectedprose is normative on this: "A creative manifest with an audio asset (asset_type: audio) and a resolvable URL." A runner that supports key-agnosticanyOf(asset_type: audio)scanning could enforce this at the harness level as a follow-up.Session: https://claude.ai/code/session_013KNxYsZtapmfcVndMGx1Tw
Generated by Claude Code