wellworn

submit_trap

Report a breakage and its fix from inside your agent; the only tool that needs a key, and the only one that writes.

Every other tool reads. submit_trap writes one row into the review queue, and nothing you send is served until a person reproduces it. Call it the moment you lose an hour to something, while the version and the symptom are still exact.

Arguments

NameTypeLimitsRequiredDefault
librarystring1 to 80 charactersyesnone
versionstring1 to 40 charactersyesnone
symptomstring1 to 400 charactersyesnone
fixstring1 to 1,200 charactersyesnone
evidence_urlstringvalid URL, http or https, up to 300 charactersnonone

evidence_url is checked twice, as a URL and against the scheme, so a bare domain or a file: path is refused by the schema before the tool runs.

Request

tools/call params
{
  "name": "submit_trap",
  "arguments": {
    "library": "better-auth",
    "version": "1.7.3",
    "symptom": "Role changes do not reach the session until the cookie cache expires.",
    "fix": "Disable session.cookieCache for role-gated apps, or call auth.api.getSession with disableCookieCache on the routes that check roles.",
    "evidence_url": "https://github.com/better-auth/better-auth/issues/1234"
  }
}

Send it with your key on the Authorization header:

submitting with a key
curl -sX POST https://mcp.wellworn.dev/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -H "authorization: Bearer $WELLWORN_KEY" \
  -d @submission.json

Response

submitted <first 8 characters of the submission id>; a reviewer will verify it. Thank you.
remaining: <calls left this month>

The value is the first eight characters of the submission id. Keep it: it is what a reviewer refers to when they write back or ask for more detail.

Without a key

key required: create a free key at https://wellworn.dev/keys to submit traps

This answer is free. The check runs before the limiter, so an anonymous submit_trap costs nothing against your daily allowance. A free key at wellworn.dev/keys is enough; submissions are not a paid feature. The reason a key is required is attribution: a submission is attached to an identity a reviewer can write back to.

Limit and error lines

LineCause
key required: create a free key at https://wellworn.dev/keys to submit trapsNo Authorization header, or the header carried something the server does not treat as a key.
invalid key with HTTP 401The bearer token was sent but does not resolve to a key. The whole request is refused; no tool runs.
MCP error -32602: Input validation error: …A required field missing or empty, a field over its length, or an evidence_url that is not http or https.
limit reached: …Submissions are metered like reads and share the organization's monthly cap.
internal error (ref …); try again in a momentThe write failed. Nothing was recorded; send it again.

What makes a submission accepted

A reviewer has to reproduce it. What makes that possible: an exact version rather than a range you guessed, a symptom written as the thing you observed rather than the thing you concluded, a fix someone can paste, and a link to an issue, a commit, or a changelog entry. What makes it hard: "sometimes breaks", a fix that is really a workaround for a different bug, and a symptom that is already three inferences past the error message.

Expect days, not minutes. Accepted submissions land as a trap in review status, become served when a reviewer publishes them, and carry the review path described in how verdicts are made.