mcpField
V
version-update

version-update

github.com/alpoxdevDevelopment588 installsUpdated today
Repository

About version-update

version-update is a skill for synchronizing semantic-version changes across Node, Rust, and Python project files. It discovers version-bearing files, applies a target version, reviews the diff, and performs git operations only when requested.

Key features

  1. 01Detects Node, Rust, and Python stacks
  2. 02Finds files and inline markers containing versions
  3. 03Bumps or sets semantic versions
  4. 04Keeps discovered version files synchronized
  5. 05Supports requested commits and pushes through helper scripts

Use cases

  1. 01Bumping a package version across supported stacks
  2. 02Setting one version in multiple manifests
  3. 03Reviewing version changes before committing
  4. 04Pushing after an explicitly requested commit

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/alpoxdev/hypercore --skill version-update

After installing, type/version-updatein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

SKILL.ko.md
assets/evals/
version-update-cases.jsonl
scripts/
git-commit.sh
git-push.sh
stack-detect.sh
version-apply.sh
version-bump.sh
version-current.sh
version-find.sh

Details

From the project README

Version Update Skill

Cross-stack semantic version update for node/rust/python with direct optional git operations.

<output_language>

Default all user-facing deliverables, saved artifacts, reports, plans, generated docs, summaries, coordination notes, commit/message drafts, and validation notes to Korean, even when this canonical skill file is written in English.

Preserve source code identifiers, CLI commands, file paths, schema keys, JSON/YAML field names, API names, package names, proper nouns, and quoted source excerpts in their required or original language.

Use a different language only when the user explicitly requests it, an existing target artifact must stay in another language for consistency, or a machine-readable contract requires exact English tokens. If a localized template or reference exists (for example *.ko.md or *.ko.json), prefer it for user-facing artifacts.

</output_language>

  • Update one semantic version across node, rust, and python version-bearing files.
  • Keep discovered manifest files and inline version markers synchronized.
  • Use this skill's direct git helpers for requested commit and push operations.

<instruction_contract>

FieldContract
IntentUpdate synchronized semantic versions across supported project files.
TriggerActivate on version bump/set requests, especially when the user asks to update versions and optionally commit them.
ScopeOwn stack detection, version-file discovery, target-version calculation, version application, diff review, and requested git operations.
AuthorityUser and project instructions outrank this skill; discovered version files, semver rules, script output, and diffs are evidence.
EvidenceUse the bash helpers, target argument parsing, and git diff before git writes.
ToolsUse bash scripts/*.sh helpers and local file edits; use this skill's direct git helpers only when requested.
LoopNone. One pass per request: detect the stack, discover the version files, read the current version, compute the target, apply it, review the diff, then stop. Re-invoke only when the user asks for another version change.
OutputKorean report of current version, target version, changed files, commit/push status, and caveats.
VerificationConfirm all intended version files changed consistently, review diff, and execute optional git steps only when requested.
Stop conditionStop when version files are updated and reviewed, or when requested git steps are completed or blocked with evidence.

</instruction_contract>

<trigger_conditions>

User intentActivate
"bump this package to 1.4.0"yes
"update the version and commit it"yes
"increase patch version for this crate"yes
"just make a git commit"no
"rewrite this release runbook"no

</trigger_conditions>

<supported_targets>

  • package.json
  • Cargo.toml
  • pyproject.toml
  • setup.py
  • python __version__ declarations
  • inline .version('x.y.z') code patterns

</supported_targets>

Available scripts

ScriptPurpose
bash scripts/stack-detect.shDetect stacks (node, rust, python)
bash scripts/version-find.sh [--plain]Discover version-bearing files
bash scripts/version-current.sh [file]Extract current semver (`file
bash scripts/version-bump.sh <current> <type>Calculate next semver
bash scripts/version-apply.sh <new> [files...]Apply version to discovered/selected files
bash scripts/git-commit.sh "msg" [files]Directly commit the specified version-update files
bash scripts/git-push.shDirectly push after an explicit user request

<git_integration>

  • If the user asked for version-only work, stop after the version files and diff review. Do not commit or push.
  • For a requested commit, run bash scripts/git-commit.sh "chore: bump version to x.y.z" [files...] with only the files changed by version-update, unless the user requested a different message.
  • For a requested push, run bash scripts/git-push.sh only after the commit succeeds and the user explicitly requested push.
  • Keep git write operations sequential.

</git_integration>

<version_rules>

ArgumentActionExample
+1 / +patchPatch +10.1.13 -> 0.1.14
+minorMinor +10.1.13 -> 0.2.0
+majorMajor +10.1.13 -> 1.0.0
x.y.zExplicit set0.1.13 -> 2.0.0

</version_rules>

Workflow

# 1) detect stack(s)
bash scripts/stack-detect.sh

# 2) find version-bearing files
bash scripts/version-find.sh

# 3) read current version
bash scripts/version-current.sh
# output: <file>|<version>

# 4) compute next version
bash scripts/version-bump.sh 1.2.3 +minor
# -> 1.3.0

# 5) apply to all discovered files (or selected files)
bash scripts/version-apply.sh 1.3.0

# 6) review the final diff and changed file list
git diff --stat
git diff

# 7) optional commit only when explicitly requested
bash scripts/git-commit.sh "chore: bump version to 1.3.0" package.json

# 8) optional push only when explicitly requested
bash scripts/git-push.sh

<stack_targets>

StackPrimary filesAdditional patterns
Nodepackage.json.version('x.y.z') in code
RustCargo.toml ([package].version).version('x.y.z') in code
Pythonpyproject.toml, setup.py, __version__ in .py.version('x.y.z') in code

</stack_targets>

CategoryRequired
InputParse ARGUMENT as bump rule or explicit semver
DiscoveryRun bash scripts/version-find.sh before applying updates
Current stateRead the current version with bash scripts/version-current.sh before computing the target version
ConsistencyKeep all discovered version files synchronized
Git scopeCommit only the version-update file set
SafetyUse conventional commit message (chore: bump version to x.y.z) unless the user requests otherwise
GitUse bash scripts/git-commit.sh and bash scripts/git-push.sh only for requested git writes, sequentially

<scope_boundaries>

  • version-update owns version discovery, target calculation, file updates, diff review, and requested git operations.
  • Commit only files changed by version-update.

</scope_boundaries>

Positive triggers

  • "bump this repo from 0.8.2 to 0.9.0 and commit it"
  • "increase the patch version for this Python package"
  • "update package.json and Cargo.toml to 2.0.0"

Negative triggers

  • "make a git commit for these docs changes"
  • "summarize our release process"

Boundary trigger

  • "update the version only, do not commit yet"

Trigger checks:

  • At least 3 positive trigger examples remain valid
  • At least 2 negative trigger examples stay out of scope
  • At least 1 boundary example stays explicit about commit vs no-commit

Execution checklist:

  • Current version identified with bash scripts/version-current.sh
  • Target version computed via bash scripts/version-bump.sh (or explicit semver validated)
  • bash scripts/version-apply.sh updated all intended files
  • git diff reviewed
  • Requested commit used bash scripts/git-commit.sh with only the version-update files
  • Requested push used bash scripts/git-push.sh only after a successful commit

Forbidden:

  • Starting updates without reading current version
  • Updating only one file when multiple version files exist
  • Committing files outside the version-update file set
  • Force-pushing protected branches

Comments

Markdown supported