build-webhook-publisher

Emits RFC 9421-signed webhook notifications with idempotency-key deduplication.

2|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/adcontextprotocol/adcp-go --skill build-webhook-publisher
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: build-webhook-publisher
Source: https://github.com/adcontextprotocol/adcp-go/tree/main/skills/build-webhook-publisher
Command: npx skills add https://github.com/adcontextprotocol/adcp-go --skill build-webhook-publisher

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you send Ad Context Protocol (AdCP) asynchronous notifications from a Go agent so subscribers can reliably receive task updates, list changes, artifact batches, and revocations without retry duplicates.

Core Features & Use Cases

  • RFC 9421 webhook signing for AdCP 3.0: Emits signed POST requests using the correct webhook-signing profile and key material.
  • idempotency_key–based retry safety: Ensures receivers can dedupe retries by using the required idempotency_key.
  • push_notification_config decoding: Extracts subscriber URLs from req.PushNotificationConfig and clearly handles missing or malformed configs.
  • Publisher vs Deliver guidance: Provides correct selection and operational gotchas for production retry behavior.

Quick Start

Use a single webhook Publisher created at startup with your private PEM, then in each event handler decode the subscriber URL from req.PushNotificationConfig and emit the appropriate webhook payload with Publisher.Emit.

Frequently Asked Questions about build-webhook-publisher

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send RFC 9421 signed webhooks from a Go agent?

To send RFC 9421 signed webhooks from a Go agent, build a webhook.Publisher using webhook.NewSigner with your private PEM, then emit payloads with Publisher.Emit to send signed POST requests securely.

How do I prevent duplicate webhook deliveries when retrying failed push notifications?

To prevent duplicate webhook deliveries during retries, include an idempotency_key in your payload. This allows receivers to dedupe retries effectively when your publisher resends failed webhook notifications.

How do I extract subscriber webhook URLs from a push notification config?

To extract subscriber webhook URLs from a push notification config, use webhook.DecodeConfig on req.PushNotificationConfig. This decodes subscriber endpoints and clearly handles any missing or malformed configurations.

What asynchronous notifications can I emit using AdCP compliant webhooks?

Using AdCP compliant webhooks, you can emit asynchronous notifications for task status transitions, resolved list changes, creative artifact batches, and revocation notifications reliably to your subscribers.

Do I need to preserve webhook payload bytes across publisher retries?

Yes, you must preserve webhook payload bytes across publisher retries. Maintaining the exact payload bytes ensures the RFC 9421 signature remains valid and the idempotency_key deduplication functions correctly.

What is the difference between a webhook Publisher and Deliver in production retry scenarios?

The webhook Publisher handles emitting signed payloads with production retry behavior, while Deliver provides different operational gotchas. Selecting the correct approach ensures reliable asynchronous AdCP notification transmission.