API Breaking Change Detector

Diffs two OpenAPI versions and gets the request-vs-response asymmetry right — each finding says which client breaks and how. Never blocks a PR.

NewNew8.9 KB snapshotStarter VM
Claude Code logo

What's inside

Harness

Claude Code

Plan

Starter

vCPU

1

Memory

2 GiB

Snapshot

8.9 KB

How it works · ~3 minutes

  1. 01 · Fork

    New isolated microVM on your subdomain — creator state included.

  2. 02 · Your keys

    Log into Claude Code with your own model credentials (BYOK).

  3. 03 · Ask it to work

    Open the terminal and give it a real job. You keep what ships.

30-day money-back on your first purchase · no free trial · keys never leave the VM

About this template

"We only added a field" — and every client got a 422

Because the field was added to a request body as required. In a response, that exact change would have been perfectly safe.

That asymmetry is where API breakages come from, and a reviewer scanning a spec diff doesn't reliably notice which side they're looking at.

The rule everyone gets backwards

  • In a REQUEST: adding a required field breaks existing clients. Removing one, or making it optional, is safe.
  • In a RESPONSE: removing a field breaks existing clients. Adding one is safe.

Every finding states which side it's on, first.

Seven breaking changes it detects

  1. Endpoint removed or path changed — including trailing-slash and casing
  2. Method removed from an existing path
  3. Required request field added, or an optional one made required
  4. Response field removed, or its type narrowed
  5. Type change anywhere — stringinteger, narrowed enums
  6. Status code removed, or a success code changed
  7. Auth requirement added to a previously open endpoint

Enum changes come back CONDITIONAL with the condition stated: removing a value breaks everyone; adding one breaks clients that switch exhaustively.

It says who breaks, not just what changed

"A client sending the old request body now gets a 422."

Not "field x changed". A diff line isn't a finding — the consequence sentence is what makes a reviewer care.

Additive changes get a short list too. Not problems, but the surface grew, and an undocumented addition today is a support ticket later.

And it stops rather than half-parsing

If either spec fails to parse it reports which and stops. A partial parse invents breaking changes, which is worse than no report at all.

If the contract didn't change, it says so in one line. A detector that pads its output is one people stop reading.

What you supply

gh auth login with repo read + PR comment, plus your own Claude Code login. gh ships at ~/.local/bin/gh.

Point it at a PR touching your spec, or drop before.yaml and after.yaml into ~/apicontract/specs/. OpenAPI 3.x and plain JSON Schema.

Where this stops

It detects and comments when asked. It does not block a PR, set a required status, approve, or merge — whether a breaking change is acceptable is a product decision.

It won't tell you how many clients break (it can't see who calls what), won't claim the spec matches your implementation (it compares spec to spec unless you supply traffic or tests), and gives the semver rule that applies rather than deciding your version bump.

Verified on build: the skill, the working tree, the NEVER_BLOCK_OR_MERGE guard, the request/response direction rules, all seven checks and a working gh are present on a fresh fork. Running it on your own spec is yours to do.

Inside this fork

Forking copies this template into a brand-new, fully isolated microVM on your own subdomain. Here's exactly what lands in it.

  • Claude Code agent

    The upstream harness, pre-installed — same version the creator ran.

  • Starter VM

    1 vCPU · 2 GiB RAM · 10 GiB disk.

  • Creator's /persist data

    The captured persist volume is copied byte-for-byte into your fork.

  • BYOK — your keys, your VM

    Add your model API keys after forking; they live only inside your microVM.

What this agent can do

1 skill

  • api-contract-check

    Diff two OpenAPI/JSON-schema versions and report breaking changes with the client consequence — request vs response direction handled…

What you'll configure after forking

Secrets are scrubbed from shared templates — these are the names you supply in your agent's terminal once it boots.

Environment variables

  • ANTHROPIC_API_KEY

Your turn

Your own API Breaking Change Detector, live in about 3 minutes.

Forking copies this Claude Codeagent into a brand-new, fully isolated microVM on your own subdomain — the creator's /persist state and all. Add your own keys after it boots; they never leave the box. Don't love it? Your first jurniti purchase comes with 30 days to get every cent back.

New paid VM · BYOK · 30-day money-back on your first purchase · ~3 min to provision

Starter · fork

$25/ mo

Needs 1 of your own API key