semantic-versioning
Skill11 starsChanged 9 days agoMITView on GitHub
Determine, recommend, review, or apply Semantic Versioning changes. Use when deciding whether a release needs a patch, minor, or major bump; calculating the next version; auditing changes since the last release; handling 0.x, 1.0.0, prerelease, deprecation, dependency, or mixed-change cases; or updating version metadata after the bump is chosen. Do not use as the primary skill for designing an API contract, changing checked-in release automation, creating Git tags, publishing artifacts, or making the final ship-or-hold decision.
5 other projects use a version of this.
Adopted by
Most recently taken up by
- open-sdr/openwifitheir own version, first seen Oct 8, 2026
- Benkapner/claude-code-basecamptheir own version, first seen Sep 14, 2026
- Abdox-menara/guard-skillstheir own version, first seen Aug 24, 2026
- codecharmhq/claude-code-skillstheir own version, first seen May 17, 2026
- ffsshhttiikk/opencode-agents-skillstheir own version, first seen Feb 28, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- open-sdr/openwifi★ 4.9ksame name
- Benkapner/claude-code-basecamp★ 17same name
- ffsshhttiikk/opencode-agents-skills★ 2same name
- codecharmhq/claude-code-skills★ 1same name
- Abdox-menara/guard-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 repository70 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adversarial-reviewSkill
- api-designSkill
- architecture-reviewSkill
- behavior-driven-developmentSkill
- brainstormingSkill
- ci-release-engineeringSkill
- clean-architectureSkill
- code-reviewSkill
- container-engineeringSkill
- create-agent-skillSkill
- csharp-dotnet-engineeringSkill
- css-scss-stylingSkill
- data-platform-engineeringSkill
- dependency-supply-chain-reviewSkill
- digital-asset-managementSkill
- documentation-engineeringSkill
- domain-driven-designSkill
- domain-modelingSkill
- donsetch-web-researchSkill
- gherkinSkill
- git-commitSkill
- git-workflowsSkill
- hexagonal-architectureSkill
- impeccableSkill
- internationalization-localizationSkill
- javascript-typescript-engineeringSkill
- justfilesSkill
- mcp-server-engineeringSkill
- mysql-mariadb-sql-engineeringSkill
- observability-engineeringSkill
- onion-architectureSkill
- parallelism-engineeringSkill
- performance-reviewSkill
- playwright-e2eSkill
- postgresql-sql-engineeringSkill
- prompt-engineering-reviewSkill
- python-antipatternsSkill
- python-design-patternsSkill
- python-engineeringSkill
- random-data-identifiersSkill
- release-readinessSkill
- review-verification-protocolSkill
- root-cause-analysisSkill
- ruby-engineeringSkill
- rust-antipatternsSkill
- rust-async-webSkill
- rust-code-reviewSkill
- rust-design-patternsSkill
- rust-desktop-guiSkill
- rust-engineeringSkill
- rust-persistence-sqlSkill
- rust-testing-qualitySkill
- script-engineeringSkill
- security-review-evidenceSkill
- security-reviewSkill
- sql-engineeringSkill
- sqlite-sql-engineeringSkill
- suggest-lucide-iconsSkill
- svelte-sveltekit-engineeringSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 12 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 50
Read repository instructions, release documentation, package metadata, changelog conventions, compatibility promises, and automation that …
- Distinctive: line 62
Do not treat an unreleased metadata edit, draft release, or arbitrary highest-looking tag as the baseline without evidence.
- Distinctive: line 78
Use commit messages and labels only as navigation.
- Distinctive: line 79
Commit prefixes or changelog categories substitute for compatibility analysis.
- Distinctive: line 87
Treat removals, incompatible signature or schema changes, newly required inputs, narrowed accepted values, and observable semantic changes …
- Distinctive: line 90
Treat additive compatible functionality and marking public functionality deprecated as minor.
- Distinctive: line 92
Treat a correction to documented behavior as patch only when existing compatibility obligations remain intact.
- Very specific: line 105
Treat build metadata as non-precedence information.
- Distinctive: line 113
Do not assume restoring intended behavior is harmless when supported users may rely on the defect.
- Distinctive: line 131
Update only the selected release unit and use the matching language or package-workflow skill for ecosystem-specific mechanics.
- Distinctive: line 133
Run repository-native version, metadata, lockfile, package-build, and focused test checks.
- Distinctive: line 136
Never reuse or overwrite a published version.
- Very specific: line 148
Use git-workflows for manual tag, branch, push, or recovery operations.
- Very specific: line 150
Use release-readiness for the final ship or hold decision after the version is chosen.
- Distinctive: line 172
When a bump was applied: files changed, synchronization checks, tests, and stale-version checks performed.
“Common” is measured: kept by at least 6 in 10 of the 4 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
Semantic Versioning
Recommend the smallest honest Semantic Versioning bump supported by repository evidence and, only when requested, apply it to the intended release unit. Follow the project's documented version policy before generic convention. When the project claims SemVer, keep that policy consistent with the official Semantic Versioning 2.0.0 specification.
SemVer requires a declared public API. For an application, the declared contract may include documented user-visible behavior, service APIs, CLI flags and output, configuration, persisted or exchanged formats, plugin interfaces, automation hooks, or other surfaces consumers are told they can rely on. Do not invent a stable contract silently when the repository has not defined one.
Decision Rules
For a stable X.Y.Z release where X > 0, use the highest-impact change in the
release:
| Change impact | Minimum normal release | Version calculation |
| Any backward-incompatible public-contract change | Major | (X+1).0.0 |
| Backward-compatible public functionality or a deprecation | Minor | X.(Y+1).0 |
| Backward-compatible bug fixes only | Patch | X.Y.(Z+1) |
| No released-contract change | No release required solely by SemVer | If publishing changed contents, choose a new version under explicit project policy |
Apply these rules to behavior, not labels. A commit named fix can require a
major bump if it breaks a supported consumer, while a large internal refactor
may require no SemVer bump. A minor release may include patch fixes, and a major
release may include minor and patch changes. Reset all less-significant fields
to zero when incrementing a more-significant field.
Workflow
- Identify the release unit and policy.
- Determine whether the target is one application, package, crate, service, SDK, CLI, plugin, schema, image, or a fixed-version monorepo.
- Read repository instructions, release documentation, package metadata, changelog conventions, compatibility promises, and automation that names the version source.
- Confirm that the project uses SemVer. If it uses calendar versioning, marketing versions, an ecosystem-specific scheme, or an undocumented hybrid, report that boundary instead of forcing SemVer.
- Establish the current released baseline.
- Find the latest immutable released version from authoritative metadata, release records, or tags under repository policy.
- Distinguish a release version such as
1.4.2from a conventional Git tag name such asv1.4.2. - Do not treat an unreleased metadata edit, draft release, or arbitrary highest-looking tag as the baseline without evidence.
- Define the supported contract and consumers.
- Name the documented public surfaces, supported clients, compatibility window, and any independently versioned components.
- Include observable defaults, errors, ordering, validation, file formats, protocols, configuration, and lifecycle behavior when the project promises them to consumers.
- Separate private implementation details from de facto behavior on which supported consumers demonstrably rely.
- Inventory the complete release delta.
- Inspect the diff from the released baseline to the intended release commit, including source, tests, schemas, generated contracts, configuration, migrations, documentation, dependency changes, and release notes.
- Use commit messages and labels only as navigation; never let Conventional Commit prefixes or changelog categories substitute for compatibility analysis.
- In a monorepo, scope changes to each release unit and account for shared code or fixed-version policy explicitly.
- Classify every material change.
- Record the affected public surface, previous promise, new behavior, affected consumers, compatibility result, and candidate bump.
- Treat removals, incompatible signature or schema changes, newly required inputs, narrowed accepted values, and observable semantic changes as major unless compatibility evidence proves otherwise.
- Treat additive compatible functionality and marking public functionality deprecated as minor.
- Treat a correction to documented behavior as patch only when existing compatibility obligations remain intact.
- Resolve special cases without hiding uncertainty.
- For
0.y.z, follow the repository's documented initial-development policy; SemVer does not promise stability or impose the stable-major mapping. If no policy exists, state the proposed convention and lower confidence rather than silently assuming one. Recommend1.0.0when the project intentionally declares its public API stable. - For prereleases, choose the correct target core version first, then advance
the repository's prerelease sequence, such as
2.0.0-rc.1to2.0.0-rc.2. Do not use a prerelease suffix to disguise an incorrect major, minor, or patch target. - Treat build metadata as non-precedence information; changing only
+buildmetadata does not create a higher SemVer version. - Classify dependency updates by their effect on the release contract: bug fix, compatible functionality, or incompatibility. Do not infer the bump from the dependency's own version change.
- Classify security fixes by compatibility impact. Load the security skills before exposing sensitive advisory or vulnerability details in evidence or release communication.
- Do not assume restoring intended behavior is harmless when supported users may rely on the defect. Report the conflict between documented and de facto contracts and request a product or maintainer decision when impact is material.
- For
- Recommend the next version.
- Let the highest candidate bump win across the release unit.
- State the current version, recommended version, dominant change, policy applied, confidence, and any assumption that could change the answer.
- Distinguish a SemVer requirement from an optional project-policy choice. Internal refactors, docs-only work, or build-only changes do not require a SemVer release merely because a commit exists.
- Apply the bump only when requested.
- Inspect the working tree and preserve unrelated changes.
- Identify the canonical version source plus generated mirrors, lockfiles, manifests, fixtures, and maintained documentation that repository tooling expects to stay synchronized.
- Update only the selected release unit and use the matching language or package-workflow skill for ecosystem-specific mechanics.
- Run repository-native version, metadata, lockfile, package-build, and focused test checks. Search authoritative maintained files for stale versions when the project does not provide a sync check.
- Never reuse or overwrite a published version. Do not tag, commit, push, publish, or deploy unless the user separately authorizes that exact side effect.
Routing
- Load
api-designwhen the public API, SDK, CLI, webhook, event, or schema compatibility classification itself needs design or contract analysis. This skill aggregates those impacts into the release bump. - Use
ci-release-engineeringfor checked-in workflows that derive versions, create releases, or publish artifacts; feed the chosen version policy into that automation. - Use
git-workflowsfor manual tag, branch, push, or recovery operations. A version recommendation does not authorize them. - Use
release-readinessfor the final ship or hold decision after the version is chosen. - Use
documentation-engineeringfor release notes, migration guides, deprecation notices, and version-policy docs. - Load
dependency-supply-chain-reviewwhen a dependency change raises provenance, advisory, registry, lockfile, or package trust questions. - Load
security-reviewandsecurity-review-evidencefor security-sensitive compatibility evidence or disclosure-sensitive release notes.
Output
Report:
- Release unit, current released version, and version policy.
- Recommended next version and confidence.
- A concise change-classification table with the dominant bump identified.
- Public contract and consumers considered.
- Assumptions, ambiguous compatibility, and decisions still required.
- When a bump was applied: files changed, synchronization checks, tests, and stale-version checks performed.
- Tags, commits, publication, deployment, or validation not performed, plus residual risk.
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.

