← ClaudeAtlas

idempotency-keyslisted

Designs the idempotency strategy for a state-changing operation - key derivation, storage choice, TTL, collision handling, and threading through downstream side effects. Use when adding a new endpoint with side effects, hardening an existing one, or designing a workflow that survives retries
hotak92/vibecoded-orchestrator · ★ 3 · AI & Automation · score 72
Install: claude install-skill hotak92/vibecoded-orchestrator
# Idempotency Keys (Opus) **Purpose**: Design the idempotency strategy for any state-changing operation — webhook handlers, payment endpoints, workflow steps, message-queue consumers. Decides: where the key comes from, where it's stored, for how long, what happens on collision, how it threads through downstream side effects. **Model**: Opus 4.7 ## When to invoke autonomously Invoke when: 1. **Designing a new endpoint with side effects** (charge, send, create, update). 2. **Hardening an existing endpoint** that's been hit by duplicate-processing bugs. 3. **Workflow step design** where the step calls a non-idempotent external API. 4. **Message queue consumer** that needs to survive replays. 5. **User asks "what's our idempotency strategy for X?"** — produce a concrete spec. **Don't invoke for**: - Read-only operations (no idempotency needed). - Workflows where the engine already guarantees exactly-once (Temporal workflows ARE idempotent by replay; activities still need it). ## Usage ``` /idempotency-keys design for [endpoint or operation] /idempotency-keys audit [path to handler] /idempotency-keys derive key from [payload shape] ``` ## Decision sequence The skill walks through six questions in order: ### Q1: Who supplies the key? ``` Who initiates this operation? ├─ External client (our SDK / direct caller) → client supplies UUID per logical action ├─ Webhook receiver → use provider's event ID (Stripe event.id, GitHub X-GitHub-Delivery, etc.) ├─ Message queue consume