semver
Skill0 starsChanged 8 days agoMITView on GitHub
Decide the correct Semantic Version bump for a change (major/minor/patch) by analyzing the diff against the project's public surface and running the ecosystem's breaking-change detector, then apply it (bump the manifest + changelog). Stack-agnostic, detects Rust/Cargo, npm/pnpm/yarn, Go modules, Elixir/Hex, Python, or a plugin.json/VERSION file from whatever manifest is present. Use when deciding a version bump, judging whether a change is breaking, choosing what version to release, reviewing an API or public-surface change for compatibility, or before tagging a release. Triggers on SemVer, semantic versioning, major/minor/patch, breaking change, "what version", "bump version", or /semver.
8 other projects use a version of this.
Adopted by
Most recently taken up by
- 27Aaron/skillstheir own version, first seen Nov 8, 2026
- r3b1s/skillstheir own version, first seen Nov 8, 2026
- lelborn/skillstheir own version, first seen Nov 1, 2026
- DeepSpaceCartel/skillstheir own version, first seen Oct 25, 2026
- alexjmiller5/agent-config-publictheir own version, first seen Oct 2, 2026
- jasoncrawford/claude-skillstheir own version, first seen Apr 25, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- kayaman/skills★ 3same name
- 27Aaron/skills★ 2same name
- DeepSpaceCartel/skills★ 2same name
- r3b1s/skills★ 2same name
- jasoncrawford/claude-skills★ 1same name
- kayaman/agentskills★ 1same name
- alexjmiller5/agent-config-public★ 0same name
- lelborn/skills★ 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 repository31 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- ai-estimateSkill
- aso-craftSkill
- audit-reportSkill
- babysit-prsSkill
- blueprintSkill
- brag-docSkill
- business-briefSkill
- cagan-checkSkill
- code-craftSkill
- commit-reportSkill
- compassSkill
- cv-craftSkill
- dev-flowSkill
- grill-meSkill
- implementation-reviewSkill
- llm-wikiSkill
- parallel-worktreesSkill
- periscopeSkill
- portfolio-syncSkill
- pr-craftSkill
- problem-solvingSkill
- publish-skillSkill
- review-passSkill
- security-auditSkill
- sentinelSkill
- seoSkill
- testing-philosophySkill
- to-prdSkill
- write-a-skillSkill
- wstg-security-testingSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 4 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Pre-1.0 (
0.y.z): no compatibility guarantees. - Distinctive: line 63
Do not recite the spec; decide the bump for *this* diff, with evidence.
- Distinctive: line 64
Do not guess "breaking" from a hunch when a detector exists for the ecosystem.
- Distinctive: line 65
Do not bump MAJOR for an internal refactor, or PATCH a changed public signature.
- Distinctive: line 66
Do not forget the 0.x convention: pre-1.0 breaking is a MINOR by custom, not a MAJOR.
- Very specific: line 67
Do not reinvent version-file editing.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
semver
Answer the question people get wrong: is this change breaking, and therefore what is the next version? The spec is trivial; the judgment is not. This skill decides the bump from evidence, then applies it. It is repo-agnostic: it works on any project that has versioning.
The rule (and the 0.x asterisk)
Given the last released version and the change since it:
| Bump | Meaning | Trigger |
| MAJOR | Breaking | anything a working consumer depends on could stop working (checklist below) |
| MINOR | Feature | backward-compatible addition (new API / flag / optional field) |
| PATCH | Fix | behavior-preserving change (bugfix, docs, perf, internal refactor) |
Pre-1.0 (0.y.z): no compatibility guarantees. By convention, bump MINOR for a breaking change and PATCH for everything else until you commit to 1.0. State which convention the project follows before recommending.
Workflow
- Resolve the change. Diff since the last release tag:
git describe --tags --abbrev=0thengit diff <tag>...HEAD; fall back to the branch base if untagged. The unit is "what changed since the version consumers currently have." - Detect the ecosystem from the manifest present (table below). It dictates both the public surface and the breaking-change tool.
- Run the breaking-change detector for that ecosystem (commands in REFERENCE.md). Read its output as evidence; do not eyeball. Degrade to a manual judgment (and say so) if no detector is installed.
- Classify each changed public item against the checklist. The highest-severity change wins the bump.
- Apply. Compute the new version, bump the manifest with the ecosystem's native command, add a Keep a Changelog entry, and tag
vX.Y.Zif the project tags releases.
Is it breaking? (public surface, by consumer)
Assert only on what a consumer can observe. A change is breaking if their working usage could stop compiling or behaving:
| Surface | Breaking (MAJOR) | Additive (MINOR) |
| Library / API | removed or renamed exported symbol; changed signature, type, or return/error contract; new required parameter; narrowed input acceptance | new exported symbol; new optional parameter; widened acceptance |
| CLI | removed/renamed flag or command; changed default that changes behavior; changed output consumers parse | new flag/command; new opt-in output |
| HTTP / RPC | removed/renamed field or endpoint; changed status/error semantics; stricter validation | new endpoint; new optional field |
| Wire / serialization / schema | layout change old data or peers cannot read | backward- and forward-compatible field addition |
| Config | removed/renamed key; changed default behavior | new optional key with a safe default |
Internal-only changes (private symbols, tests, docs, refactors with identical public behavior) are PATCH. Unsure if something is public? Check whether it is exported, documented, or reachable by a consumer; if not, it is internal.
Ecosystem detection
| Manifest present | Ecosystem | Detector (see REFERENCE.md) |
Cargo.toml | Rust | cargo semver-checks |
package.json | npm / pnpm / yarn | attw + api-extractor / api-diff |
go.mod | Go | gorelease / apidiff (+ the v2+ import-path rule) |
mix.exs | Elixir | manual public-surface review |
pyproject.toml / setup.py | Python | griffe check |
.claude-plugin/plugin.json | agent-skills | hand off to publish-skill --bump; collection releases per the repo's VERSIONING.md |
VERSION / other | generic | manual, via the checklist |
Output
State the bump (MAJOR / MINOR / PATCH), the exact new version, and the 1-3 changes that drove it (surface + why breaking). If nothing public changed, say PATCH and why. Then apply, or hand off to the project's release tooling.
Anti-patterns
- Do not recite the spec; decide the bump for this diff, with evidence.
- Do not guess "breaking" from a hunch when a detector exists for the ecosystem.
- Do not bump MAJOR for an internal refactor, or PATCH a changed public signature.
- Do not forget the 0.x convention: pre-1.0 breaking is a MINOR by custom, not a MAJOR.
- Do not reinvent version-file editing; use the native command (
npm version,cargo set-version,poetry version, orpublish-skill).
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.

