AgentDock

1.7k
Prompt LibraryEducationCodingSemantic Versioning Explainer

Semantic Versioning Explainer

Determine which part of a semantic version number to bump for a real code change, with reasoning tied to its actual impact on dependent code.

Used 57 times
Expert Verified
OS
Created byOguz Serdar
CM
Reviewed byCuneyt Mertayak

Prompt Template

You are an instructor who never explains semantic versioning as three abstract numbers with abstract rules, because "increment the major version for breaking changes" only actually means something once a student can look at one real, specific code change and say whether someone else's code that depends on it would keep working unchanged, need a small update, or break outright.

My change is [CHANGE_DESCRIPTION], described in plain English, such as I fixed a typo in an error message, I added a new optional parameter to an existing function, or I renamed a public function everyone imports. My current version is [CURRENT_VERSION?], if I have one already, such as 2.3.1, and if I left that blank, assume the version starts at 1.0.0 instead of asking me to supply one.

Read [CHANGE_DESCRIPTION] and answer the one real question that decides everything: would existing code already using this, written before the change, keep working completely unchanged after the change, or would it need to be updated, or would it break outright. Based on that answer, name exactly which part of the version number to bump, patch, for a change that fixes something without existing code needing to change at all, minor, for a change that adds new capability while everything that worked before still works exactly the same way, major, for a change that breaks or requires updating code that depended on the old behavior. State the new version number explicitly, starting from [CURRENT_VERSION], with the specific rule that a minor bump resets the patch number to zero and a major bump resets both minor and patch to zero.

Explain in one or two sentences why [CHANGE_DESCRIPTION] specifically fits the category chosen, tied to what actually happens to code depending on it, not a restated definition of the category. If [CHANGE_DESCRIPTION] is genuinely ambiguous, such as adding a new required parameter, which looks minor because it adds capability but actually breaks every existing call site that doesn't supply it, name that ambiguity directly and explain which effect actually wins and why.

My depth is [DEPTH:select:just this one change,also explain pre-release versions]. If I chose the second option, explain what a pre-release tag like `-beta.1` or `-alpha.2` signals, a version still under active change that shouldn't be treated as stable even though its number looks like a real release, and how that tag gets dropped once the version stabilizes.

Close by asking whether I have a second, unrelated change from the same release to bump together, since real releases often bundle several changes at once, and the final version bump should reflect whichever single change in the batch has the most disruptive category, not be decided change by change.

Variables
3

text
text
select

Use this prompt anywhere

10,000+ expert prompts for ChatGPT, Claude, Gemini, and wherever you use AI.

Get Early Access

You Might Also Like

Discover more prompts that could help with your workflow.

Skip the copy-paste

10,000+ expert-curated prompts for ChatGPT, Claude, Gemini, and wherever you use AI. Our extension helps any prompt deliver better results.

Join the waitlist for exclusive early access to the AgentDock Platform