← ClaudeAtlas

breaking-change-detectionlisted

This skill should be used when the user mentions "breaking change", "semver", "semantic versioning", "major minor patch", "version bump", "backward compatible", "API compatibility", or "deprecation". Provides a decision matrix and per-ecosystem signals for reasoning about behavioral (not just syntactic) breaking changes.
ClaudeRegistry/marketplace · ★ 2 · Code & Development · score 68
Install: claude install-skill ClaudeRegistry/marketplace
# Breaking Change Detection ## Purpose Standardize how a change is classified against Semantic Versioning by reasoning about its effect on *consumers*, including behavioral breaks that leave the syntax intact. Humans get binary compatibility right only about 60% of the time; this methodology closes the gap with an explicit decision matrix and per-ecosystem catalogs. Tech-agnostic. ## First: is the change on the public surface? Only changes to the **public API surface** can be breaking or minor. Establish the surface before classifying (detailed per ecosystem in `references/breaking-change-catalog.md`): | Ecosystem | Public surface | |-----------|----------------| | JS/TS | `package.json` `exports`/`main`, named/default exports, `.d.ts` | | Python | `__all__`, non-`_` names, entry points | | Go | Capitalized identifiers outside `internal/` | | Java/C# | `public`/`protected` members of exported packages | | Rust | `pub` items reachable from the crate root | | CLI | flags, subcommands, arg order, exit codes, stdout format | | HTTP | routes, methods, request/response schema, status codes | | GraphQL | types, fields, args, nullability, enum values | | Config | recognized keys, env vars, defaults | A change entirely within private/internal code is at most a PATCH. ## The decision matrix | Change | Classification | |--------|----------------| | Remove/rename a public export, field, route, flag, env var | **MAJOR** | | Change a signature (add required param, reorder, retype,