Skip to content

feat: add slack-webhooks skill#51

Merged
leggetter merged 3 commits into
mainfrom
feat/slack-webhooks
May 11, 2026
Merged

feat: add slack-webhooks skill#51
leggetter merged 3 commits into
mainfrom
feat/slack-webhooks

Conversation

@leggetter
Copy link
Copy Markdown
Collaborator

Summary

Adds a complete slack-webhooks provider skill for the Slack Events API — manual HMAC-SHA256 verification over the v0:{timestamp}:{body} basestring with url_verification challenge handling.

What's included

  • skills/slack-webhooks/SKILL.md — entry point
  • skills/slack-webhooks/references/ — overview, setup, verification
  • skills/slack-webhooks/examples/ — Express, Next.js App Router, FastAPI handlers (42 passing tests)
  • Event handlers for app_mention, message, reaction_added, team_join, member_joined_channel, app_home_opened

Notes

  • Header: X-Slack-Signature formatted as v0=<hex_sha256>
  • Timestamp header: X-Slack-Request-Timestamp
  • Signed basestring: literal UTF-8 v0:{timestamp}:{raw_body} (version + timestamp + body joined by colons)
  • Signing key: Signing Secret from Slack App Basic Information page
  • Replay protection: reject if timestamp differs from local time by more than 5 minutes
  • URL verification: the url_verification challenge event must be echoed back during initial endpoint setup
  • Body handling: must use raw body for signature verification (don't json-parse before verifying)

Test plan

  • cd skills/slack-webhooks/examples/express && npm test
  • cd skills/slack-webhooks/examples/nextjs && npm test
  • cd skills/slack-webhooks/examples/fastapi && pytest test_webhook.py -v
  • Verify against a real Slack-signed Events API webhook
  • Walk through the url_verification challenge with a fresh endpoint
  • Confirm event names against https://docs.slack.dev/reference/events

Generation details

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB


Generated by Claude Code

claude and others added 3 commits May 11, 2026 23:27
Adds a provider skill for receiving Slack Events API webhooks with manual
HMAC-SHA256 signature verification over the v0:{timestamp}:{body} basestring,
url_verification challenge handling, and event handlers for app_mention,
message, reaction_added, team_join, member_joined_channel, and app_home_opened.
Includes Express, Next.js, and FastAPI examples with 42 passing tests.
Adds the Slack row to the Provider Skills table in README.md and a
providers.yaml entry (docs URLs, notes, testScenario) so the
"Validate New Provider" CI workflow finds the integration files. The
integrations were previously only on the prep branch (PR #40); moving them
onto each feat PR makes the 12 generated PRs independently mergeable in
any order.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
…e arg

Applies the new project convention from PR #40: use
`npx hookdeck-cli listen <port> <source> --path /webhooks/<source>`
everywhere instead of `hookdeck listen <port> --path /webhooks/<source>`.
Skips the global-install prereq (webhook-skills is provider-neutral) and
passes the required `[source]` positional so the command is copy-paste-
runnable without falling into an interactive prompt.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
@leggetter leggetter marked this pull request as ready for review May 11, 2026 22:27
@leggetter leggetter force-pushed the feat/slack-webhooks branch from 02fa638 to 05e0960 Compare May 11, 2026 22:27
@leggetter leggetter merged commit 7001877 into main May 11, 2026
6 checks passed
@leggetter leggetter deleted the feat/slack-webhooks branch May 11, 2026 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants