The webhooks this product sends and receives — delivery guarantees, retries, signing, and whether a consumer can actually build on them reliably.
Free & open · no signup · read-only — it ends by asking · nothing leaves your machine
You are working inside this repo. Mission: judge the webhooks this product emits (and any it consumes) as a contract other systems depend on — whether they deliver reliably, prove their origin, and give a developer what they need to build without guessing.
This brief owns the developer-facing webhook surface. For internal event and message contracts between your own services, run 138.
Read-only pass. Read the event-emitting code, delivery mechanism, and any receiving handlers; change nothing but the report file.
Phase 2 sweeps the codebase through every one of these, citing file and line for each finding.
at-least-once versus best-effort; what happens when the consumer is down
a retry policy with backoff and a dead-letter path, or silent give-up
a stable event id so consumers can dedupe; any ordering promise
signed payloads, a documented scheme, replay protection
a stable, versioned schema with enough context, not a thin id-only ping
a way to test, replay, and inspect deliveries; visible failures
if the product consumes webhooks: signature checks, timeouts, safe processing
One structured report at the repo root — or in reports/, if you keep one — the same shape every time, ready for a teammate — or the optional Studio — to act on.
Every Goal Prompt follows the same four steps, so results are consistent and repeatable — no matter which one you run.
List the events the product emits, their payloads, and how delivery happens.
Delivery guarantees — at-least-once versus best-effort.
Rank by how badly each gap breaks a consumer.
Create WEBHOOKS.md at repo root.
Copy it and paste it into your agent inside the repo you want checked.
Install the goal plugin once — two commands — then just type /goal:webhook-design.
/plugin marketplace add GhostlyGawd/goal-prompts/plugin install goal@goal-promptsOr install only this Goal Prompt as /goal-webhook-design:
curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=111 shLet an agent fetch it mid-conversation, or pull the raw Goal Prompt by URL.
https://goal-prompts.vercel.app/raw/111.mdNothing hidden — this is the whole Goal Prompt, verbatim. Read it in a minute, edit it, or copy it as-is.
# Goal: Webhook Design Audit You are working inside this repo. Mission: judge the webhooks this product emits (and any it consumes) as a contract other systems depend on — whether they deliver reliably, prove their origin, and give a developer what they need to build without guessing. This brief owns the developer-facing webhook surface. For internal event and message contracts between your own services, run 138. Read-only pass. Read the event-emitting code, delivery mechanism, and any receiving handlers; change nothing but the report file. ## Phase 1 — Map the webhook surface - List the events the product emits, their payloads, and how delivery happens. - Find any webhooks the product receives and how it verifies and processes them. - Note what a consumer is promised about delivery, ordering, and retries. ## Phase 2 — Audit through 7 lenses 1. **Delivery guarantees** — at-least-once versus best-effort; what happens when the consumer is down 2. **Retries & backoff** — a retry policy with backoff and a dead-letter path, or silent give-up 3. **Idempotency & ordering** — a stable event id so consumers can dedupe; any ordering promise 4. **Signing & verification** — signed payloads, a documented scheme, replay protection 5. **Payload design** — a stable, versioned schema with enough context, not a thin id-only ping 6. **Consumer ergonomics** — a way to test, replay, and inspect deliveries; visible failures 7. **Receiving side** — if the product consumes webhooks: signature checks, timeouts, safe processing ## Phase 3 — Curate - Rank by how badly each gap breaks a consumer: silent drops and unverifiable payloads top the list. - For each, name the fix — a retry queue, a signature, an event id, a richer payload. - Separate "unreliable delivery" from "hard to build against"; both lose developers. ## Phase 4 — Report Create `WEBHOOKS.md` at repo root: 1. **The surface** — events, payloads, and how delivery works today 2. **Findings** — each: severity · lens · what a consumer hits · the fix 3. **Reliability plan** — the retry, dead-letter, and idempotency changes to make delivery trustworthy 4. **Security plan** — the signing and verification a consumer can rely on Start the report with today's date. If `WEBHOOKS.md` already exists from a previous run, read it first and lead with what changed since. ## Rules - A webhook with no retry and no signature is a best-effort rumor - Design for the consumer whose endpoint was down for five minutes - No webhooks in this repo? Say so in a one-paragraph null report and stop — a null result is a valid finding. - If a `reports/` directory exists at the repo root, write the report there instead of the root. - Before asking, present the top findings as a ranked list in plain words - Report only — end by asking which webhook fixes to make first
reports/ directory exists at the repo root, write the report there instead of the root.Curated neighbors — briefs that answer the adjacent question, worth running in the same session.
The client libraries developers use to call this product — how fast they reach a first successful call, and how the SDK behaves when things go wrong.
How the API evolves without breaking the people who built on it — the versioning scheme, breaking-change discipline, and how deprecations are announced and retired.
The API's rate limits and quotas as a product surface — whether they protect the system while staying fair, predictable, and workable for real consumers.
The first hour a developer spends with this API — from landing on the docs to a working integration — and where they stall, guess, or give up.
Runs inside these playbooks — curated sequences you can launch with one paste: