catalog / libraries

Validation Library

Declare a schema, validate unknown input, get typed data or precise errors.

20 capabilities 1 sections reference specification

Build against it

# give your agent the catalog — no account, no install
claude mcp add provespec -- npx -y provespec-mcp

# then, from any agent session
spec_get(slug: "validation")                → the capability tree
spec_checklist(slug: "validation")          → the questions to answer
spec_grade(slug: "validation", grades: [...])  → parity % + the gap list

# or just fetch it
curl https://provespec.com/catalog/validation/spec.json

Grade every capability below as yes · partial · no · na, with a file reference as evidence. Whatever you leave ungraded counts as missing — the gap list is the work queue.

Or just paste this to your agent

Use the ProveSpec MCP server. Fetch the "validation" spec with
spec_get, then walk spec_checklist and grade this repository against it —
one verdict per capability, each with a file reference as the note.
Call spec_grade with the results and give me the gap list as the plan.

If the server is not registered, add it first:
  claude mcp add provespec -- npx -y provespec-mcp

The specification

AI 20

Schema
  • ✓ Primitive types string, number, boolean, date, bigint
  • ✓ Objects with per-key schemas unknown keys stripped, passed or rejected
  • ✓ Arrays, tuples and records with length constraints
  • ✓ Unions, discriminated unions and intersections
  • ✓ Optional, nullable and default values
  • ✓ Enums and literals
  • ✓ Recursive schemas self-referential types
Constraints
  • ✓ String constraints min, max, regex, email, url, uuid
  • ✓ Numeric constraints min, max, int, multipleOf
  • ✓ Custom predicates with messages
  • ✓ Cross-field refinement e.g. password confirmation
Parsing
  • ✓ Parse returns typed data or throws
  • ✓ Safe parse returns a result union no exceptions in the happy path
  • ✓ Coercion mode "1" → 1 explicit, never implicit
  • ✓ Transform values during parse and chain transforms
Errors
  • ✓ Every issue carries a path user.addresses[1].zip
  • ✓ All issues collected, not just the first
  • ✓ Messages are customisable per rule
Interop
  • ✓ Infer a static type from a schema in typed languages
  • ✓ Convert to and from JSON Schema
Open in Parity → Download spec.json All 102 specs