Semantic versions reflect changes to the declared public API
SemVer is a promise to users and dependency resolvers about the declared public API. A version increment that understates an incompatible change lets an ordinary upgrade select code the version range did not warn users about.
Observable check
the project declares the public API covered by Semantic Versioning; versions use valid SemVer syntax, allowing a v prefix only on tag names; stable releases increment MAJOR for incompatible public API changes, MINOR for compatible additions and deprecations, and PATCH for compatible fixes. During 0.y.z initial development, this standard uses MINOR for incompatible changes rather than forcing 1.0.0; SemVer itself permits anything to change before 1.0.0.
Where this comes from
Last read against these sources on 2026-07-28.
SemVer confirms the MUST-declare-a-public-API clause, the increment rules, and that v1.2.3 is a tag name rather than a semantic version. Its clause 4 leaves 0.y.z undefined, so the MINOR-for-incompatible reading is not the spec's; node-semver is what makes it the ecosystem's, expanding ^0.2.3 to >=0.2.3 <0.3.0-0, which puts the break at MINOR below 1.0.0.