← SkillSafe
Contract Gate

For teams that publish an API

Contract GateDiff two versions of your OpenAPI spec and stop the breaks your policy forbids - before a partner finds them.

Paste the baseline and the candidate spec. Your browser diffs operations, parameters, request and response bodies, enums, required fields and security, reads deprecated, x-sunset, x-internal and x-extensible-enum, gives every change a check id, a level and a fingerprint - from the common defaults or your own levels file - matches your acknowledgement rows, checks the major-version bump and judges the gate. It writes severity-map.md, the levels file, the ignore file and skeleton entries. Then the pipeline design, and the changelog entries.

Try a sample:

The API, and a short interview free

The two specs free

Your levels file and acknowledgements free

The diff and the gate free

What the page flags

The five gates

Every change, classified

Acknowledgements, audited

The rungs, ranked

Area by area

Your severity map, levels file, ignore file and entries free

A PR comment with the verdict, the gates and acknowledgement rows ready to fill in, severity-map.md for people, the tool's levels file generated from it, the ignore file generated from your acknowledgement rows - never edited by hand - and skeleton entries with the summary and action left for a person.

PR comment (Markdown)


    

severity-map.md


    

Levels file


    

Ignore file


    

Skeleton entries (JSON)


    

The pipeline design

Pricing as soon as the session is ready...

NOT RUN YET

The page's check of this reply

    Saved gates

    How it works - and what is sourced

    The diff follows the skill's PR gate: operations removed (without deprecation, before or after their x-sunset date), newly marked x-internal or draft or alpha (they leave the filtered diff as removals and stay breaking), operationIds renamed, parameters added, removed, made required or retyped, request and response properties added, removed, made required or optional or retyped, enum values added or removed, success statuses removed, and security requirements, scopes and alternatives changed. Local $refs and allOf are resolved; oneOf branches are not compared, and external $refs are not followed. The default levels are what common diff tools ship; they disagree with published policies on response enum growth, auth changes and deprecated removals, so pin your policy in the levels file - a pinned level disables the downgrade x-extensible-enum would give. With semver in info.version, a breaking release without a major bump is raised to err.

    Fingerprints hash the check, the operation, the location and the text, so an acknowledgement row survives new commits but not a moved baseline. The rungs follow the skill's ranking: PR gate, then the release diff with a declared-change channel, the approval record, the feed, usage-aware classification and the version-derived changelog, re-ranked by your timing, readers, usage data and versioning. The diff sees declared structure only: behaviour, defaults, error bodies, gateway auth and rate limits need the declared-change channel.