schemafit

Lint JSON schemas against LLM provider constraints

AIlive
Visit site ↗First seen 2d ago · 1 platform

What this is

A CLI linter that statically checks JSON schemas against each LLM provider's constraints so they don't fail at runtime.

Our one-line summary — not the founder’s tagline.

How it works
A CLI that statically lints JSON schemas/tool definitions against each LLM provider's documented constraints (e.g. Anthropic-rejected keywords, missing additionalProperties), pointing to the exact JSON-Pointer path and reason, with a repair pass that emits a best-effort provider-valid variant.
What's different
Makes no model calls, needs no API key, and has zero runtime dependencies.
Best for
Teams whose schemas work on one LLM provider but 400 on another.

What we measured

Nobody else publishes this — it comes from knocking on the door every day.

Watched by us
2 days
Last checked
2d ago

Where it shows up

Every group here is a page of its own — each one checked daily.

The numbersIs it still shipping, is it overpriced, where did it land — and what the price is built from.
The takewhere this launch stands, in one glance
Still shipping?
Live, but nothing has shipped since we started watching.
Is it overpriced?
Priced at the anchor — no crowd premium. What you see is what the signals say.
Where did it land?
Strongest on PeerPush — placed #208.
Reality anchor
60 (0% since IPO)
Market price
60
Checked
Jul 25
League price & chart
Market priceREPRICED DAILY
60
0.0%
7-day
Will it still be moving in 4 weeks?

No money. No seat. It goes on your record — and in 28 days reality settles it.

Calls are closed while we rebuild accounts. You can still read every one of them.

Key stats
MRRNot connected
SectorAI
The story

AI. Launched 2d ago on PeerPush, where it placed #208. Today, it's live, but nothing on the site has changed since we started watching.

Is it still shipping?WE CHECK THE SITE DAILY
SiteLive
read 2d ago
Last shippedNo change yet
no change detected since we started watching
Fade clock2 days silent

Quiet for 2 days — no penalty yet, but quiet doesn't stay free.

We check this site every day, ourselves. A founder can post “still working on it” — a claim like that doesn't price. What we price is what we can verify from the outside: evidence, not announcements. The real question isn't “will this be huge?” — it's “will they still be moving in four weeks?”

The market viewHow this launch is priced and ranked in our league — the investor side of the page.
Where it stands
Bigger than 0% of live launchesof 17,001

ranked by the reality anchor, not the market price

Strongest on PeerPush at #208
Why 60 points?REALITY PRICE

It placed #208 on PeerPush with 1 votes.

Backing it does not move the price.

No matter how much money goes in. There is no pump here — you can't make yourself right by buying more. The line only moves on things that actually happened: an award, revenue that grew, a new platform, code that shipped — or silence.

The story so farEVERY MOVE, AND WHY
Jul 2760Went quiet — bleeding
Jul 2660Went quiet — bleeding
Jul 2560IPOOpened on the board

A launch that goes quiet eases down a little at a time — never a cliff you could have run from the night before.

MomentumTRACKED DAILY
PeerPush0 votesdown 154 places
2026-07-252026-07-27

How the launch is moving on its own board, day by day — the crowd's attention.
A flat line is normal: votes stop within a day or two of launch, on every board. What's unusual — and what actually counts — is a launch that keeps pulling votes long after its day is over.

About

01 // THE PROBLEM A JSON Schema / tool definition / response_format that works on OpenAI can 400 on Anthropic or Gemini (and vice-versa): nested oneOf, a missing additionalProperties: false, a default in a property, Anthropic-rejected keywords (minLength, format, pattern), Gemini’s lack of anyOf. The API tells you it failed — not which constraint — so teams hand-port schemas and debug by trial-and-error at runtime. schemafit encodes each provider’s documented constraint surface as a versioned, declarative rule pack and lints your schema statically — pointing at the exact JSON-Pointer path, the keyword, and why — with a non-zero exit code so CI fails the PR instead of prod. A repair pass emits a best-effort provider-valid variant. It makes no model calls, needs no API key, and has zero runtime dependencies. 02 // DEMO lint statically checks your schema against each provider’s rule pack, names the exact violation, and exits non-zero so CI blocks the PR. repair emits a provider-valid variant. (Illustrative schema; the output format is the tool’s real one.) terminal # 1. Lint a schema against all three providers schemafit lint order.schema.json --provider openai,anthropic,gemini openai PASS anthropic FAIL /properties/email keyword: format → Anthropic rejects `format` in tool input schemas gemini FAIL /properties/items keyword: anyOf → Gemini does not support anyOf / union types SCHEMAFIT_STATUS=FAIL (exit 1 — build blocked) # 2. Auto-repair to a provider-valid variant schemafit repair order.schema.json --provider anthropic --out fixed.json wrote fixed.json (1 keyword rewritten, intent preserved) 03 // QUICKSTART On PyPI — pip install and lint your schema. No API key, no model calls; the core has zero runtime dependencies. Install Static, offline CLI pip install schemafit COPY Lint a schema against the providers you ship to schemafit lint my-schema.json \ --provider openai,anthropic,gemini,mistral,cohere COPY Prove the spine (hermetic, no config required) schemafit demo COPY 04 // COMMAND SURFACE lint Lint one or more schemas against one or more providers; reports each violation’s JSON-Pointer, keyword, and reason, and exits non-zero so CI fails the build. repair Emit a best-effort provider-valid variant of a schema — stripping or rewriting the offending keywords while preserving intent. providers List the supported providers and the versioned rule pack backing each (OpenAI, Anthropic, Gemini, Mistral, Cohere). demo Run a hermetic, end-to-end proof from a fresh clone — no API key, no network, deterministic output. 05 // WHY IT IS DIFFERENT Static, pre-ship CI lint Instructor, BAML, LiteLLM and the Vercel AI SDK are excellent runtime clients — they normalize or repair at call-time. schemafit fills the gap they leave: a static lint that fails the build before the schema ever reaches a provider, over the raw schemas you already ship, with no DSL or codegen buy-in. Zero runtime deps, no API key It makes no model calls and needs no key — easy to vendor, audit, and trust in a build pipeline. Runs from a fresh clone or a single pip install, fully offline. Grounded, versioned rule packs — with drift detection Every rule is grounded in a real, cited provider issue. Provider constraints are encoded as declarative, versioned rule packs — so the lint stays honest and reviewable as provider APIs change. New in v0.5: automatic rule-pack drift detection — an opt-in --live-verify run that rejects a schema the static pack passed flags the pack as lagging the provider’s docs, so the packs stay honest as the APIs move. CI-enforceable, with SARIF A non-zero exit fails the PR; lint --format sarif feeds GitHub code-scanning / the Security tab. An opt-in --live-verify can confirm against a real provider, but it is mock-default and never required in CI.

Where it launched

1 platform
PlatformVotesCounts toward priceLink
PeerPush1sets the price

The board it did best on sets the price. Every other board only adds to it if the launch also placed high on that board too — because just showing up somewhere isn't an achievement. Listing on twelve directories is free; placing well on them isn't.

Discussion (0)

Posting is closed while we rebuild accounts — reading stays open.

No thesis posted yet. Be the first.