Zły prompt
Wylacz retry u Stripe, uzyj execution id jako klucza, zrzuc JSON workflow.
Developer · FREE
Provider dostarcza at-least-once. Skill projektuje bramkę: klucz zdarzenia, atomiczny claim, 200 OK od razu, duplikat bez drugiego skutku. Żeby Stripe nie ściągnął dwa razy. Spec węzłów, nie JSON całego flow.
reviewed:
Provider: [PROVIDER]. Pole klucza (id zdarzenia): [KLUCZ]. Store (Redis / Postgres / n8n Remove Duplicates): [STORE]. NIE zrzucaj JSON-a workflow. NIE każ wyłączać retry u providera. NIE używaj `$execution.id` jako klucza (przy retry to nowe id). Jeśli [PROVIDER] albo [KLUCZ] albo [STORE] puste - zapytaj kto woła, które pole jest stabilnym id zdarzenia i gdzie claim (Redis/Postgres/Remove Duplicates), stop. Jeśli trigger jest ręczny albo cron bez skutku ubocznego - ten skill nie jest potrzebny, stop. Zwracasz spec węzłów, w tej kolejności: 1. Webhook odbiera. Weryfikacja podpisu [PROVIDER] (Stripe `t=`/`v1`, GitHub `X-Hub-Signature-256`) ZANIM 200 i ZANIM claim. Zły podpis = 4xx, bez claimu, bez skutku. 2. Po dobrym podpisie: 200 OK szybko, zanim wolny skutek (charge/mail). Provider nie pętli na timeout naszej roboty. 3. Extract key: tylko [KLUCZ] (np. `evt_...`, delivery guid). Stabilny między retry. Nie `$execution.id`. Nie hash całego body, jeśli provider daje id. 4. Claim atomowy w [STORE] PRZED skutkiem ubocznym: - Redis: `SET key NX EX ttl` - Postgres: `INSERT ... ON CONFLICT DO NOTHING` i sprawdzony `row count` - n8n Remove Duplicates: value = [KLUCZ], okno = TTL IF allow -> idź. IF block -> stop (200 już poszło), log "duplicate". 5. Skutek (charge, mail, CRM) tylko na allow. 6. Zapisz wynik przy kluczu (status, id skutku), żeby replay po TTL był świadomy. TTL: nazwij liczbę (np. 24h/72h) i decyzję po wygaśnięciu: replay (idempotentny skutek) albo twardy block. Nie milcz. Testy (3 curl, ten sam [KLUCZ]): - pierwszy: skutek 1 raz, claim zapisany - duplikat w oknie TTL: block, skutek 0 razy - po TTL: zachowanie zgodne z decyzją wyżej, nie zgadywane Dywiz "-".
Wylacz retry u Stripe, uzyj execution id jako klucza, zrzuc JSON workflow.
Provider: [PROVIDER]. Pole klucza (id zdarzenia): [KLUCZ]. Store (Redis / Postgres / n8n Remove Duplicates): [STORE]. NIE zrzucaj JSON-a workflow. NIE każ wyłączać retry u providera. NIE używaj `$execution.id` jako klucza (przy retry to nowe id). Jeśli [PROVIDER] albo [KLUCZ] albo [STORE] puste - zapytaj kto woła, które pole jest stabilnym id zdarzenia i gdzie claim (Redis/Postgres/Remove Duplicates), stop. Jeśli trigger jest ręczny albo cron bez skutku ubocznego - ten skill nie jest potrzebny, stop. Zwracasz spec węzłów, w tej kolejności:
Platforma automatyzacji workflow z darmowa opcja self-hosted.
Alternatywy
Agentowy asystent kodowania Anthropic uruchamiany w terminalu.
Alternatywy
Edytor kodu z wbudowanym agentem AI, fork Visual Studio Code.
Alternatywy
Lekcja: fundament-07-pierwszy-workflow
Uzupełnij pola w nawiasach (albo weź je z profilu Skill creator na /skille), kliknij Kopiuj i wklej treść do instrukcji projektu w Claude.ai. W Claude Code kliknij Pobierz SKILL.md i połóż plik w folderze skilli. Skill działa też w ChatGPT (Custom Instructions). Nie chowa się za paywallem: kopia jest darmowa.
Nie gdy trigger jest reczny albo cron bez skutku ubocznego. Nie do wylaczania retry po stronie providera bo tak. Nie JSON calego flow.