AI coding assistants write library code from memory. When a library ships a big release that renames or removes things, the assistant keeps writing the old version. It reads fine & it doesn't build.
SDKProof measures how often that happens. It gives a model real coding jobs for one library, then compiles every answer against the real installed package with tsc, the TypeScript compiler. A task passes only if it compiles — no AI judges another AI.
A badge publishes that number. One line of markdown, and it reads the same run as the scorecard, so it can't claim a number the page doesn't show.
Each badge links back to its full scorecard, so anyone reading it can check the number instead of taking it on faith.
[](https://sdkproof.dev/tanstack-query.html?ref=badge)
[](https://sdkproof.dev/aisdk.html?ref=badge)
[](https://sdkproof.dev/zod.html?ref=badge)
[](https://sdkproof.dev/react-router.html?ref=badge)
[](https://sdkproof.dev/nextjs.html?ref=badge)
[](https://sdkproof.dev/prisma7.html?ref=badge)
[](https://sdkproof.dev/react-table.html?ref=badge)
Same numbers, same source file, if you would rather your README pointed at shields than at my domain.
swap the slug for yours
Every score is also published as JSON at sdkproof.dev/scores.json, with both rates and a 95% interval on each.
Open an issue with your library & I'll add it to the queue. React Router 8 is on the board because someone asked for it.
There's no npm package. Clone the repo, point it at a library, run it. The compiler is the judge.