webhook-handler-patterns — скилл для Claude Code: что делает
Скилл учит агента безопасно принимать вебхуки: проверять подпись сырого тела, защищать обработку от дублей и настраивать коды ответов в Express, Next.js или FastAPI.
npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a claude-codeЧто делает webhook-handler-patterns
Скилл задаёт чёткую последовательность работы с вебхуками: сначала проверка криптографической подписи по исходному сырому телу запроса (raw body), затем парсинг полезной нагрузки и только в конце — идемпотентная обработка. Для исключения дубликатов агент проверяет уникальный идентификатор события в базе данных и оборачивает выполнение задачи в транзакцию.
Внутри собраны руководства по кодам ответов (2xx для успеха, 4xx при ошибках валидации и 5xx для перезапуска провайдером) и готовые паттерны под Express, Next.js App Router и FastAPI. Валидация подписи сразу сломается, если серверный фреймворк успеет распарсить JSON до проверки заголовков. Порядок middleware здесь критичен. Скилл учит сохранять прямой доступ к неизменённому буферу запроса.
Какие задачи решает
- выстроить строгий порядок обработки входящих вебхуков
- исключить повторное выполнение операций через проверку ID события
- настроить проверку HMAC-подписи по сырому телу запроса в Express, Next.js или FastAPI
- выбрать корректные HTTP-коды для управления повторными попытками провайдера
Примеры запросов агенту
- Напиши обработчик вебхуков в Express с проверкой HMAC-подписи по сырому телу
- Сделай роут для вебхуков в Next.js App Router с защитой от дублей через ID события
- Настрой эндпоинт в FastAPI с правильными кодами ответов для ретраев провайдера
Как установить webhook-handler-patterns
1Через Skills CLI (Vercel)
npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a claude-code2Вручную: положить файлы
~/.claude/skills/webhook-handler-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/webhook-handler-patterns/
1Через Skills CLI (Vercel)
npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a codex2Вручную: положить файлы
.agents/skills/webhook-handler-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a cursor2Вручную: положить файлы
.cursor/skills/webhook-handler-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install hookdeck/webhook-skills webhook-handler-patterns2Вручную: положить файлы
.github/skills/webhook-handler-patterns/SKILL.md1Через Skills CLI (Vercel)
npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a gemini-cli2Командой платформы
gemini skills install https://github.com/hookdeck/webhook-skills --path skills/webhook-handler-patternsВручную: положить файлы
.devin/skills/webhook-handler-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о webhook-handler-patterns
Как установить webhook-handler-patterns в Claude Code?
Выполните в терминале команду npx skills add hookdeck/webhook-skills --skill webhook-handler-patterns -a claude-code. Файлы скилла сохранятся в директорию ~/.claude/skills/webhook-handler-patterns/SKILL.md.
Зачем нужен скилл webhook-handler-patterns?
Он обучает кодинг-агента проектировать надёжные эндпоинты: проверять подпись до парсинга тела, возвращать 2xx при получении дубликатов и настраивать middleware веб-фреймворков.
Как скилл обрабатывает повторные события от провайдера?
Скилл требует проверять уникальный ID события в транзакции и возвращать статус 2xx при обнаружении дубля, чтобы провайдер прекратил повторные отправки.
Исходный текст
SKILL.md · MIT
--- name: webhook-handler-patterns description: > Best practices for webhook handlers. Use when implementing the handler sequence (verify first, parse second, handle idempotently), idempotency, error handling, retry logic, or framework-specific issues with Express, Next.js, or FastAPI. license: MIT metadata: author: hookdeck version: "0.1.0" repository: https://github.com/hookdeck/webhook-skills --- # Webhook Handler Patterns ## When to Use This Skill - Following the correct webhook handler order (verify → parse → handle idempotently) - Implementing idempotent webhook handlers - Handling errors and configuring retry behavior - Understanding framework-specific gotchas (raw body, middleware order) - Building production-ready webhook infrastructure ## Resources ### Handler Sequence - [references/handler-sequence.md](references/handler-sequence.md) - Verify first, parse second, handle idempotently third ### Best Practices - [references/idempotency.md](references/idempotency.md) - Prevent duplicate processing - [references/error-handling.md](references/error-handling.md) - Return codes, logging, dead letter queues - [references/retry-logic.md](references/retry-logic.md) - Provider retry schedules, backoff patterns ### Framework Guides - [references/frameworks/express.md](references/frameworks/express.md) - Express.js patterns and gotchas - [references/frameworks/nextjs.md](references/frameworks/nextjs.md) - Next.js App Router patterns - [references/frameworks/fastapi.md](references/frameworks/fastapi.md) - FastAPI/Python patterns ## Quick Reference ### Handler Sequence 1. **Verify signature first** — Use raw body; reject invalid requests with 4xx. 2. **Parse payload second** — After verification, parse or construct the event. 3. **Handle idempotently third** — Check event ID, then process; return 2xx for duplicates. See [references/handler-sequence.md](references/handler-sequence.md) for details and links to provider verification and idempotency patterns. ### Response Codes | Code | Meaning | Provider Behavior | |------|---------|-------------------| | `2xx` | Success | No retry | | `4xx` | Client error | Usually no retry (except 429) | | `5xx` | Server error | Retry with backoff | | `429` | Rate limited | Retry after delay | ### Idempotency Checklist 1. Extract unique event ID from payload 2. Check if event was already processed 3. Process event within transaction 4. Store event ID after successful processing 5. Return success for duplicate events ## Related Skills - [stripe-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/stripe-webhooks) - Stripe payment webhook handling - [shopify-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/shopify-webhooks) - Shopify e-commerce webhook handling - [github-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/github-webhooks) - GitHub repository webhook handling - [resend-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/resend-webhooks) - Resend email webhook handling - [chargebee-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/chargebee-webhooks) - Chargebee billing webhook handling - [clerk-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/clerk-webhooks) - Clerk auth webhook handling - [elevenlabs-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/elevenlabs-webhooks) - ElevenLabs webhook handling - [openai-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/openai-webhooks) - OpenAI webhook handling - [paddle-webhooks](https://github.com/hookdeck/webhook-skills/tree/main/skills/paddle-webhooks) - Paddle billing webhook handling - [hookdeck-event-gateway](https://github.com/hookdeck/webhook-skills/tree/main/skills/hookdeck-event-gateway) - Webhook infrastructure that replaces your queue — guaranteed delivery, automatic retries, replay, rate limiting, and observability for your webhook handlers
© hookdeck · MIT · hookdeck/webhook-skills