Your first verdict
One call, and every line of the block it returns, read in order.
Make the call from a terminal first. Seeing the raw block once makes every later answer from your agent legible, and it costs one of your 60 free daily calls.
curl -sX POST https://mcp.wellworn.dev/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"recommend",
"arguments":{"task":"auth for a Next.js app, solo, free tier"}}}'Inside the JSON-RPC envelope is one text block, and this is all of it:
VERDICT auth for a Next.js app, solo dev, free tier, email + Google login
PICK Better Auth 1.7.3: Better Auth. You own the users table in your own Postgres, the organization and api-key plugins cover teams and keys without a second vendor, and there is no per-monthly-active-user bill when you grow.
ALT Clerk: Clerk gives you hosted sign-in UI, SSO, and an admin panel in an afternoon.; wins when you need SSO or hosted UI this week and accept per-MAU pricing and a vendor-owned user store
AVOID NextAuth (Auth.js): NextAuth / Auth.js v4: the v5 migration has stalled since 2025, the session callback silently drops custom fields unless typed twice, and the docs describe two incompatible APIs at once.
TRAPS (2)
[622e042e] major: Role or plan changes do not reach the session until the cookie cache expires (default 5 minutes).
[90232128] minor: Drizzle adapter cannot find plugin tables (organization, apikey) and fails at runtime, not at build.
VERIFIED 2026-09-08 by wellworn reviewer · recheck 2027-01-06 · sources 3
remaining: 59VERDICT
The question the reviewer actually answered, which is rarely word for word the question you asked. Here you asked for "solo, free tier" and got a verdict written for "solo dev, free tier, email + Google login". Read this line before the rest: if the constraints do not match yours, the answer below is about a different problem and you should call again with more constraints.
A [RECHECK] marker between VERDICT and the question means a version has moved since the answer was checked. The judgment still stands; the version numbers are the part to verify.
PICK
The name, the version the reviewer tested, then why. The version is not "latest": it is what was installed when the claim was made. Install that version, or check what changed between it and latest before you install something else.
The reason is the part worth reading in full. It is written to say what the pick buys you in your situation, not what the library does. "You own the users table in your own Postgres" is a fact about your architecture; "supports email and OAuth" would be a fact about a feature list, and every candidate would pass it.
ALT, and the clause after "wins when"
One alternative, and the condition under which it beats the pick. This clause is the most useful line in the block, because it is the only one that can tell you the pick is wrong for you. Read it as a test on your own project: "you need SSO or hosted UI this week and accept per-MAU pricing". If that describes you, take the alternative. The verdict is not less correct for it; you are the case it names.
A verdict with no alternative has no ALT line at all. Lines that have nothing to say are omitted rather than left empty.
AVOID
What not to reach for, and the reason. This is where a corpus written by people beats a model's memory: NextAuth (Auth.js) is the answer a lot of training data gives, and the line says exactly why it is not the answer today. Treat it as a name to recognise, not a rule to enforce, and follow the reason rather than the verdict if you already run the thing being avoided.
TRAPS
Breakages someone hit at this version and a reviewer reproduced, blockers first, then major, then minor. Each row is [id] severity: symptom. The bracketed value is the first eight characters of the trap's identifier.
The header counts them. TRAPS (2) means two exist and two are printed; TRAPS (2 of 5) means the block ran out of room and dropped the least severe. When it is trimmed, call traps with the library and version to see all of them.
Apply the fixes in the same edit as the dependency. A trap is not a warning about something that might happen; it is a report of something that did.
SKILL
Absent here, and absent everywhere today, because no skill is published yet. When a verdict has one the line reads SKILL npx skills add <path>, and it installs a written procedure for building with the pick at the version tested.
VERIFIED
The provenance, and the reason to trust any of the above:
VERIFIED 2026-09-08 by wellworn reviewer · recheck 2027-01-06 · sources 3A person verified it on that date. Three sources back it, each with the date it was read, and they are on the verdict page. The recheck date is at most 120 days after verification, and it is not a suggestion: a nightly job flips the verdict to [RECHECK] when that date passes or when the pick releases a new major version.
If a claim carries no verification date, it is not a verdict. That is the whole difference between this and asking a model.
remaining
Calls left in your current window: the UTC day without a key, the calendar month with one. When it runs out the whole block is replaced by one line telling you when it resets. Limits has the numbers.