From claudient
Generates a secure, idempotent webhook receiver for a given provider and event types. Handles signature verification, deduplication, async processing, and includes tests.
How this command is triggered — by the user, by Claude, or both
Slash command
/claudient:webhook-handler [provider] [event-types]api/The summary Claude sees in its command listing — used to decide when to auto-load this command
Implement a webhook handler for: $ARGUMENTS Parse as: webhook provider name (e.g. Stripe, GitHub, Twilio) and a comma-separated list of event types to handle. If provider is unknown, build a generic signed-webhook pattern. Security — non-negotiable: - Verify the provider's signature before processing any payload. Read the provider's docs pattern for the exact header and HMAC algorithm (usually `HMAC-SHA256`) - Compare signatures with a constant-time comparison function — never string equality - Reject requests with missing or invalid signatures with `401` immediately — log the failure - V...
Implement a webhook handler for: $ARGUMENTS
Parse as: webhook provider name (e.g. Stripe, GitHub, Twilio) and a comma-separated list of event types to handle. If provider is unknown, build a generic signed-webhook pattern.
Security — non-negotiable:
HMAC-SHA256)401 immediately — log the failuretimestamp field if the provider includes one; reject events older than 5 minutes to prevent replay attacksIdempotency:
200 immediately — do not reprocessProcessing pattern:
200 — do not make the provider wait for business logicHandler structure:
Write tests for: valid signature, invalid signature, duplicate event, each event type dispatched correctly.
npx claudepluginhub claudient/claudient --plugin claudient-personas