From oastools
Compare two OpenAPI spec versions, highlight breaking changes, and suggest migration steps
How this skill is triggered — by the user, by Claude, or both
Slash command
/oastools:diff-specsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> ⚠️ **Note:** The `diff` tool is designed for comparing **versions of the same API** (e.g., v1.2 vs v1.3). Diffing unrelated APIs (e.g., Stripe vs GitHub) will produce thousands of changes that aren't meaningful. If the user wants to compare different APIs, suggest exploring each one separately with the `explore-api` workflow.
⚠️ Note: The
difftool is designed for comparing versions of the same API (e.g., v1.2 vs v1.3). Diffing unrelated APIs (e.g., Stripe vs GitHub) will produce thousands of changes that aren't meaningful. If the user wants to compare different APIs, suggest exploring each one separately with theexplore-apiworkflow.
Call the diff tool with both spec versions:
{
"base": {"file": "<old-version-path>"},
"revision": {"file": "<new-version-path>"}
}
To focus only on breaking changes:
{
"base": {"file": "<old-version-path>"},
"revision": {"file": "<new-version-path>"},
"breaking_only": true
}
Results are paginated (default limit: 100). When returned < total_changes, there are more changes:
{
"base": {"file": "<old-version-path>"},
"revision": {"file": "<new-version-path>"},
"offset": 100, "limit": 100
}
⚠️ Strategy for large diffs: Start with breaking_only: true to see all breaking changes first — these are usually the most important and fewest. Then page through the full diff only if the user needs the complete picture. The total_changes, breaking_count, warning_count, and info_count fields always reflect the full result, even when paginated.
Present the diff results organized by severity:
Breaking (critical/error) -- Changes that will break existing API consumers
Warnings -- Changes that may affect consumers
Informational -- Non-breaking changes
For each breaking change:
DELETE /users/{id} will get 404")For each breaking change, provide a concrete migration step:
| Change type | Migration guidance |
|---|---|
| Removed endpoint | Update client to use the replacement endpoint (if one exists) |
| Removed parameter | Remove the parameter from requests; check if behavior changed |
| Type change | Update request/response handling for the new type |
| Auth change | Update authentication configuration |
| Renamed field | Update all references to use the new name |
Provide a migration checklist:
npx claudepluginhub erraggy/oastools --plugin oastoolsGenerates and validates OpenAPI specifications from codebase. Covers endpoint design, schema validation, and documentation generation.
Guides API evolution with additive change rules, breaking change taxonomy, and Postel's Law to ensure existing clients work without modification.
Detects breaking changes in REST, GraphQL, and gRPC API contracts. Compares OpenAPI schemas and protobuf defs to baselines, classifies severity, validates semver, runs Pact tests, generates reports.