docs(skills): schema refresh + brand-rights governance flow#716
Merged
Conversation
Fix 10+ compliance:skill-matrix failures whose root causes were stale skill examples: list_creative_formats.renders[]: upstream now requires `role` plus oneOf `dimensions` object | `parameters_from_format_id: true`. Updated examples in seller, creative, generative-seller, retail-media. get_media_buys.media_buys[]: `currency` + `total_budget` now required. Seller skill shows both with a persistence note. context response field: schema-typed as object. All 8 skills stopped recommending `context: args.context` echo (which fabricates strings when args.context is undefined or confused with domain fields like `campaign_context`). Guidance now: leave the field out — createAdcpServer auto-injects from the request. Brand-rights governance_denied: added accounts.syncAccounts + accounts.syncGovernance handlers plus a check_governance call in the acquireRights example so the scenario returns GOVERNANCE_DENIED with findings propagated. Seller idempotency: referenced #678 as a known grader-side MCP Accept-header issue so builders don't chase a skill fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d347894 to
1ede03a
Compare
bokelley
added a commit
that referenced
this pull request
Apr 21, 2026
Conflict: src/lib/types/schemas.generated.ts — header timestamp only; resolved by regenerating. Auto-merge combined overlapping fixes to src/lib/server/test-controller.ts (main added `| SeedScenario` to the exhaustiveness guard via #716; this branch narrowed `ControllerScenario` to exclude `SeedScenario`). Both survive; functionally equivalent with one redundant exclusion.
Merged
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.
Summary
Follow-up to PR #709. The
npm run compliance:skill-matrixdogfood run (14 skill × storyboard pairs) had 0/14 pass — but most failures stemmed from skill examples showing stale schemas that upstream redefined in the last several days (#691–#708). This PR refreshes the skill examples and closes one real coverage gap in brand-rights.Root-cause fixes
list_creative_formats.renders[](~6 pairs)Upstream redefined renders to require
roleplusoneOf { dimensions: object }or{ parameters_from_format_id: true }. Skills showedrenders: [{ width, height }]which fails validation. Updated seller, creative, generative-seller, retail-media examples and flagged the old shorthand explicitly.get_media_buys.media_buys[].currency+.total_budget(~4 pairs)Now required per row. Seller skill example shows both + a persistence note: save these on
create_media_buyso subsequent reads can echo them.contextresponse field shape (~4 pairs, signals/si/governance)Schema-typed as
object. All 8 skills previously recommendedcontext: args.contextecho, which fabricates strings whenargs.contextis undefined or when Claude conflates it with domain fields likecampaign_context. New guidance: don't setcontextat all —createAdcpServerauto-injects the request's context object post-handler; hand-setting a non-object string fails validation and the framework does not overwrite.Brand-rights
governance_deniedflow (1 pair)Scenario expects
check_governancecall beforeacquire_rights. Addedaccounts.syncAccounts+accounts.syncGovernancehandlers to the implementation example, plus acheckGovernance()call inacquireRightsthat returnsGOVERNANCE_DENIEDwith findings propagated from the buyer's governance agent.Seller idempotency footnote (1 pair)
Referenced Storyboard runner: raw-HTTP probe for idempotency missing-key vector (bypasses SDK auto-injection) #678 as a known grader-side MCP Accept-header issue so builders don't chase a skill fix for what's a grader bug.
Expected matrix delta
Baseline: 0/14 passed. Conservative estimate with these fixes: 10–12/14. Remaining failures likely need case-by-case diagnosis (e.g.,
pending_creatives → pending_starttransition, creative state-machine quirks).Test plan
npm run compliance:skill-matrixon this branch once merged🤖 Generated with Claude Code