GitHub sends a webhook. 60 seconds later, Claude has reviewed your PR diff, labeled your issue, and posted a deploy summary to Slack.
Built with @HookDeck + @triggerdotdev + @AnthropicAI↓
Three tasks, each in its own container:
𝚑𝚊𝚗𝚍𝚕𝚎-𝚙𝚛: fetches the diff, calls Claude, posts a single review comment (HTML anchor 𝚊𝚒-𝚛𝚎𝚟𝚒𝚎𝚠-𝚜𝚞𝚖𝚖𝚊𝚛𝚢 prevents duplicates on re-runs)
𝚑𝚊𝚗𝚍𝚕𝚎-𝚒𝚜𝚜𝚞𝚎: Claude classifies, parses JSON labels, applies via GitHub API
𝚑𝚊𝚗𝚍𝚕𝚎-𝚙𝚞𝚜𝚑: Claude summarizes commits, posts to Slack
The idempotency pattern is the interesting part.
A Hookdeck transform extracts GitHub's 𝚇-𝙶𝚒𝚝𝙷𝚞𝚋-𝙳𝚎𝚕𝚒𝚟𝚎𝚛𝚢 header into the payload. That becomes the idempotency key. Hookdeck retries the delivery? Same key. No duplicate task runs. No duplicate PR comments. Zero application code for dedup.