Write the specification once. Point any agent at it to build. Then measure what got built — capability by capability, with evidence, pinned to a commit.
ProveSpec turns a specification into a checkable artifact: a versioned tree of capabilities that any implementation can be scored against. Ports, rewrites, agent output, competing builds — same measurement, called parity.
Karpathy's nanochat (Python) is the reference. A .NET port chases it. Two agents extracted both specs from source; every grade carries a file reference. The report is what the porting agent works from — and it moves as work lands.
Since this measurement, the porting agent closed several of these. That is the point: the number is a function of a commit.
Parity is a directional measure, so the same tree answers the reverse question. The port has capabilities the reference never had — a desktop observatory, an MCP server, a model registry — which appear as target-only, not as defects.
Grade a UI against its own engine: of 16 engine capabilities, 11 are reachable from the interface — 69%. Tokenizer training, the RL loop and the inference benchmark exist but no user can run them.
Your agent fetches a versioned capability tree — or checks a draft against the catalog to see what already exists.
Any platform, any agent, any model. The spec is the contract; the environment is just a run parameter.
Per capability: has it, partial, missing — with file-level evidence. Ungraded counts as missing, so the score can't be talked up. The gap list is the work queue.
# one line — no account, no install, no database claude mcp add provespec -- npx -y provespec-mcp # then, from any agent session: spec_get(slug: "todomvc", scope: "AI") → the engine capability tree, ready to build against spec_grade(slug: "todomvc", product: "my-build", grades: [...]) → 75% · missing 6 · partial 7 · beyond-spec 4 · the gap list
Reference specs for things people actually build, plus extracted specs of real projects. Free to read, free to build against.
2048 · Auth Service · Calculator · Chat App · Coffee Grinder · Conway's Game of Life · CSV (RFC 4180) · Date & Time Library · Diff Engine · Excalidraw · Expense Tracker · Feature Flag Service · File Upload Service · HTTP Caching · HTTP Client CLI · Hugo · Job Queue · JSON Parser · JSON Tool CLI · JSON Web Token · Kanban Board · KV Store · Laptop · Markdown Editor · Markdown Parser · Minesweeper · nanochat (Python) · NanoChat.NET · NanoChat.NET — engine layer · NanoChat.NET — UI + MCP surface · OAuth 2.1 Authorization Code + PKCE · Obsidian (desktop) · Office Chair · PocketBase · Pomodoro Timer · ripgrep · RSS Reader · Running Shoe · Semantic Versioning 2.0.0 · Shell (TS workbench) · Smartphone · Snake · Solid-State Drive · SQLite · Template Engine · Todo CLI · TodoMVC · URL Shortener · Validation Library · Weather Dashboard · Webhook Relay · WebSocket · YAML 1.2
Track a migration against its reference per commit. The gap list is the work queue; the trend is the status report. A CI check keeps it from regressing.
Start from a spec instead of a prompt, then score what came back. Compare two builds objectively. Publish the badge.
One spec, many environments. Parity % as the score, the gap report as the diagnosis, evidence requirements to keep it honest.
Publish your project's capability surface. Contributors see exactly which leaf is missing — and an engine with no interface is an open invitation.
forever
per team, monthly
for agent and model builders