breaking-change
Skill1 starsChanged 6 days agoMITView on GitHub
Detect breaking changes between two OpenAPI specs before shipping, so a change that breaks consumers never ships under the same version. Use before merging any API change and in CI on every spec change. OpenAPI 3.x only. Only invoke via the orcinus router.
- Installs packages
2 other projects use a version of this.
Adopted by
Most recently taken up by
- NuGet/NuGet.Clienttheir own version, first seen Oct 9, 2026
- sturlese/build-squadtheir own version, first seen Aug 21, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- NuGet/NuGet.Client★ 823same name
- sturlese/build-squad★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository35 other files it gives its agents.
- accessibilitySkill
- api-and-interface-designSkill
- architectureSkill
- ask-questions-if-underspecifiedSkill
- buildSkill
- codebase-knowledge-builderSkill
- database-designerSkill
- diagnosing-bugsSkill
- finalizeSkill
- frontend-architectureSkill
- frontend-data-contractsSkill
- frontend-optimistic-mutationsSkill
- handoffSkill
- i18nSkill
- idea-calibrateSkill
- idea-captureSkill
- incomplete-refactorSkill
- independent-reviewSkill
- issue-triageSkill
- mcp-builderSkill
- monitoring-observabilitySkill
- monitoringSkill
- mutation-testing-pythonSkill
- mutation-testingSkill
- orcinusSkill
- orcinus-verifySkill
- performance-optimizationSkill
- refactorSkill
- registry-publishSkill
- scaffoldSkill
- security-reviewSkill
- skill-creatorSkill
- visual-regressionSkill
- wazaSkill
- webapp-testingSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Run the tool before merging any API change.
- Distinctive: line 18
Never report "no breaking changes" without running the tool.
- Distinctive: line 41
Read the output. Every breaking change is named with its location (endpoint, field, property).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
BREAKING-CHANGE — did the API break, and is it allowed to?
A renamed field or a removed property is invisible in a code review and fatal to a consumer. This skill compares the API spec consumers already use against the spec you are about to ship, and reports every breaking change with the tool — not by eye.
Rules
- Baseline first. Keep the previous spec (the one consumers already use) under version control. Never compare against a spec you just wrote.
- Run the tool before merging any API change. A breaking change under the same version is a FAIL.
- A breaking change is only acceptable as a new major version, or with an explicit, recorded decision by the user. Never silently.
- Classify every change: breaking (removed endpoint or field, renamed field, type change, a new required field, stricter validation) or non-breaking (a new endpoint, a new optional field).
- Never report "no breaking changes" without running the tool.
- A check that did not run is never reported as passed.
Steps, in order
1. Baseline
The previous spec lives in the repo (for example docs/api/openapi.yaml at the last released version). If there is no previous spec, there is no compatibility to break — but the first spec must then be committed as the baseline before any change.
2. Candidate
The new spec, produced by the same process that produces the baseline (hand-written or generated — but the same one, so the diff measures the change, not the generator).
3. Run
oasdiff breaking --fail-on ERR baseline.yaml candidate.yaml--fail-on ERR is what makes the command fail: without it, oasdiff breaking prints the breaking changes and still exits 0. In CI, always pass --fail-on ERR — a gate that cannot fail is not a gate. Use oasdiff changelog baseline.yaml candidate.yaml for the full list of changes, and oasdiff validate on each spec first — a diff between two invalid specs is meaningless.
4. Classify
Read the output. Every breaking change is named with its location (endpoint, field, property). Every non-breaking change is an addition. If the tool reports nothing, there is nothing to classify.
5. Verdict
- PASS: no breaking changes. The change may ship under the same version.
- FAIL: breaking changes under the same version. Fix by making the change additive (see
api-and-interface-design), or ship a new version — and only with the user's explicit confirmation.
Report
Return the report in this form:
- Baseline spec path and version; candidate spec path and version.
- The exact
oasdiffcommand run (including--fail-on ERR) and its exit code. - Each breaking change, with its location and what changed.
- Each non-breaking change, listed once.
- Verdict: PASS or FAIL, and what must happen next (make it additive, or ship a new version).
Scope
OpenAPI 3.x specs only. This skill detects breaking changes in an API contract; it does not test the implementation — that is what unit, E2E, and contract tests are for. It does not cover GraphQL schemas or internal module boundaries (those are api-and-interface-design's concern).
Sources
Method, in our own words, using oasdiff (oasdiff/oasdiff, Apache-2.0, licence verified from the primary LICENSE file) as-is. No code was copied from oasdiff. Install it from the official releases (a prebuilt binary for your platform, or go install github.com/oasdiff/oasdiff@latest); the eval used the official v1.35.0 linux/amd64 release binary, checksum-verified against the release checksums.txt.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

