API — will developers adopt it?
Brief 111

Webhook Design Audit

The webhooks this product sends and receives — delivery guarantees, retries, signing, and whether a consumer can actually build on them reliably.

WEBHOOKS.md4 phases7 lenses~2.8k chars

Free & open · no signup · read-only — it ends by asking · nothing leaves your machine

What it does

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.

What it looks for

7 lenses it looks through

Phase 2 sweeps the codebase through every one of these, citing file and line for each finding.

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

The deliverable

What lands in your repo

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.

WEBHOOKS.md
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
One file. Evidence-backed. It ends by asking before touching anything.
How it works

What it makes the agent do

Every Goal Prompt follows the same four steps, so results are consistent and repeatable — no matter which one you run.

1
Phase 1

Map the webhook surface

List the events the product emits, their payloads, and how delivery happens.

2
Phase 2

Audit through 7 lenses

Delivery guarantees — at-least-once versus best-effort.

3
Phase 3

Curate

Rank by how badly each gap breaks a consumer.

4
Phase 4

Report

Create WEBHOOKS.md at repo root.

Get started

Three ways to run this Goal Prompt

01 · COPY

Paste it in

Copy it and paste it into your agent inside the repo you want checked.

02 · INSTALL

As a slash command

Install the goal plugin once — two commands — then just type /goal:webhook-design.

1/plugin marketplace add GhostlyGawd/goal-prompts
2/plugin install goal@goal-prompts

Or install only this Goal Prompt as /goal-webhook-design:

curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=111 sh
03 · AGENT

From an agent (MCP)

Let an agent fetch it mid-conversation, or pull the raw Goal Prompt by URL.

https://goal-prompts.vercel.app/raw/111.md
Transparency

The exact prompt

Nothing hidden — this is the whole Goal Prompt, verbatim. Read it in a minute, edit it, or copy it as-is.

Read the full brief (2,827 characters)
# 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

House rules for this Goal Prompt

  • 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
Keep exploring

Pairs well with

Curated neighbors — briefs that answer the adjacent question, worth running in the same session.

More API briefs

Runs inside these playbooks — curated sequences you can launch with one paste: