Ever had Cursor confidently write a deprecated API? I measured how often it happens

If you’ve used Cursor against a library that recently shipped a major version, you’ve probably hit this: the generated code looks perfect, but it won’t compile — because the model wrote the previous major’s API from memory (parameters instead of inputSchema, a removed setup call, etc.).

I wanted to know how big that gap actually is, so I built SDKProof. It has a model solve ~15 real tasks for an SDK, drops each solution into a fixture with the real installed package, and runs tsc --noEmit. Pass = compiles clean. No LLM judge — the compiler decides.

Results so far (Claude Opus 4.8):

  • Prisma 7 → 80/100 — still writes removed v6 setup (new PrismaClient({ datasources }), $use)
  • Vercel AI SDK 7 → 90/100 — old tool parameters (now inputSchema), removed maxSteps
  • Zod 4 → 90/100 — removed required_error (now error)

The pattern: a model’s readiness for an SDK tracks how recently it changed. The gap re-opens on every major release — so it’s worth monitoring, not measuring once.

Open source → board + breakdowns: https://sdkproof.dev · code: GitHub - Kalpitrathore/sdkproof: Type-check how well AI coding agents use your SDK's current API. · GitHub

Curious what you’ve all seen — which library has Cursor gotten most wrong for you since its last major? Looking for the next SDKs to score.