From adcp-client
Use when building an AdCP generative seller — an AI ad network, generative DSP, or platform that sells inventory AND generates creatives from briefs.
npx claudepluginhub adcontextprotocol/adcp-client --plugin adcp-clientThis skill uses the workspace's default tool permissions.
A generative seller does everything a standard seller does (products, media buys, delivery) **plus** generates creatives from briefs. The buyer sends a creative brief instead of uploading pre-built assets. Your platform resolves the brand identity, generates the creative, and serves it.
Use when building an AdCP seller agent — a publisher, SSP, or retail media network that sells advertising inventory to buyer agents.
Generates platform-specific ad images from campaign-brief.md and brand-profile.json using banana-claude. Supports Meta, Google, TikTok, LinkedIn, YouTube, Microsoft specs.
Equips AI coding agents like Claude Code and Cursor with chained SKILL.md files for direct-response advertising, copywriting, funnel architecture, and paid media strategy.
Share bugs, ideas, or general feedback.
A generative seller does everything a standard seller does (products, media buys, delivery) plus generates creatives from briefs. The buyer sends a creative brief instead of uploading pre-built assets. Your platform resolves the brand identity, generates the creative, and serves it.
A generative seller that sells programmatic inventory MUST also accept standard IAB formats (display images, VAST tags, HTML banners). The generative capability is additive — buyers who already have creatives need to upload them directly.
There's no dedicated hello_generative_seller_adapter_*.ts yet — generative-seller is sales-non-guaranteed + creative-generative, so adopters fork the seller adapter and add the build_creative surface.
| Specialism | Status | Fork this | Add | Storyboard |
|---|---|---|---|---|
creative-generative | stable | hello_seller_adapter_non_guaranteed.ts | creatives.buildCreative, creatives.previewCreative, brand-resolution logic | creative_generative |
Declare all your claims (['sales-non-guaranteed', 'creative-generative'], plus 'sales-catalog-driven' if you ingest catalogs for dynamic creative) on createAdcpServerFromPlatform's capabilities.specialisms. Missing the claim fails the grader with "No applicable tracks found" even if every tool works.
For exact response shapes, error codes, and optional fields, docs/llms.txt is the canonical reference.
Not this skill:
skills/build-seller-agent/skills/build-creative-agent/skills/build-signals-agent/Often claimed alongside: creative-template — hybrid creative platforms (Celtra, Bannerflow) claim both; template-driven and AI-driven generation share the same creative library. See Common multi-specialism bundles.
Every generative seller hits the cross-cutting rules in ../cross-cutting.md. Plus the seller cross-cutting from ../build-seller-agent/SKILL.md — generative-seller is additive on top of the seller baseline. The high-traffic ones for generative-seller (deep-linked to the rule):
idempotency_key on build_creative and sync_creatives (in addition to the seller-side mutating tools)creative_review.${creative_id} as a stable operation_idcreative-generative —
build_creative accepts message + brand.domain + optional quality: draft|production; supports refinement (re-send manifest in){ creative_manifest: { format_id, assets } } — not { creative_id, status, quality, preview_url } (those are sync_creatives fields; don't leak them in)creative_manifest.assets requires an asset_type discriminator — use the typed factories (imageAsset({...}), videoAsset({...}), htmlAsset({...}), urlAsset({...}))preview_creative renders use urlRender({...}) / htmlRender({...}) / bothRender({...}) — they inject output_format and enforce the matching preview_url / preview_html at the type levelsync_accounts (a buyer syncs an account with brand.domain; treat that domain as resolvable). Don't hardcode a brand allowlist. Storyboards use fictional .example TLD brands; a hardcoded list will fail validation.sales-non-guaranteed baseline applies — see ../build-seller-agent/specialisms/sales-non-guaranteed.md.
sales-catalog-driven (optional) — if you ingest catalogs for dynamic creative generation, see ../build-retail-media-agent/SKILL.md.
# Run the fork-matrix gate against the seller-non-guaranteed baseline
npm run compliance:fork-matrix -- --test-name-pattern="hello-seller-adapter-non-guaranteed"
# Or validate your forked agent directly against the generative storyboard
adcp storyboard run http://127.0.0.1:3005/mcp creative_generative \
--bearer "$ADCP_AUTH_TOKEN" --include-bundles --json
The fork-matrix gate is the three-gate contract from docs/guides/EXAMPLE-TEST-CONTRACT.md: tsc strict / storyboard zero-failures / upstream façade.
For deeper validation: docs/guides/VALIDATE-YOUR-AGENT.md.
BuildCreativeReturn has 4 valid shapes (framework auto-wraps the bare manifest). Asset discriminators are required — use the typed factories. get_media_buy_delivery requires top-level currency; per-package rows require the billing quintet (package_id, spend, pricing_model, rate, currency). See ../SHAPE-GOTCHAS.md.
docs/migration-6.6-to-6.7.mddocs/migration-4.x-to-5.x.md