Version Update Skill
Cross-stack semantic version update for node/rust/python with direct optional git operations.
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.
- 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.
| Field |
Contract |
| Intent |
Update synchronized semantic versions across supported project files. |
| Trigger |
Activate on version bump/set requests, especially when the user asks to update versions and optionally commit them. |
| Scope |
Own stack detection, version-file discovery, target-version calculation, version application, diff review, and requested git operations. |
| Authority |
User and project instructions outrank this skill; discovered version files, semver rules, script output, and diffs are evidence. |
| Evidence |
Use Bun MJS helpers, target argument parsing, and git diff before git writes. |
| Tools |
Use bun scripts/*.mjs helpers and local file edits; use this skill's direct git helpers only when requested. |
| Output |
Korean report of current version, target version, changed files, commit/push status, and caveats. |
| Verification |
Confirm all intended version files changed consistently, review diff, and execute optional git steps only when requested. |
| Stop condition |
Stop when version files are updated and reviewed, or when requested git steps are completed or blocked with evidence. |
| User intent |
Activate |
| "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 |
package.json
Cargo.toml
pyproject.toml
setup.py
- python
__version__ declarations
- inline
.version('x.y.z') code patterns
Available scripts
| Script |
Purpose |
bun scripts/stack-detect.mjs |
Detect stacks (node, rust, python) |
bun scripts/version-find.mjs [--plain] |
Discover version-bearing files |
bun scripts/version-current.mjs [file] |
Extract current semver (`file |
bun scripts/version-bump.mjs <current> <type> |
Calculate next semver |
bun scripts/version-apply.mjs <new> [files...] |
Apply version to discovered/selected files |
bun scripts/git-commit.mjs "msg" [files] |
Directly commit the specified version-update files |
bun scripts/git-push.mjs |
Directly push after an explicit user request |
- 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
bun scripts/git-commit.mjs "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
bun scripts/git-push.mjs only after the commit succeeds and the user explicitly requested push.
- Keep git write operations sequential.
| Argument |
Action |
Example |
+1 / +patch |
Patch +1 |
0.1.13 -> 0.1.14 |
+minor |
Minor +1 |
0.1.13 -> 0.2.0 |
+major |
Major +1 |
0.1.13 -> 1.0.0 |
x.y.z |
Explicit set |
0.1.13 -> 2.0.0 |
Workflow
# 1) detect stack(s)
bun scripts/stack-detect.mjs
# 2) find version-bearing files
bun scripts/version-find.mjs
# 3) read current version
bun scripts/version-current.mjs
# output: <file>|<version>
# 4) compute next version
bun scripts/version-bump.mjs 1.2.3 +minor
# -> 1.3.0
# 5) apply to all discovered files (or selected files)
bun scripts/version-apply.mjs 1.3.0
# 6) review the final diff and changed file list
git diff --stat
git diff
# 7) optional commit only when explicitly requested
bun scripts/git-commit.mjs "chore: bump version to 1.3.0" package.json
# 8) optional push only when explicitly requested
bun scripts/git-push.mjs
| Stack |
Primary files |
Additional patterns |
| Node |
package.json |
.version('x.y.z') in code |
| Rust |
Cargo.toml ([package].version) |
.version('x.y.z') in code |
| Python |
pyproject.toml, setup.py, __version__ in .py |
.version('x.y.z') in code |
| Category |
Required |
| Input |
Parse ARGUMENT as bump rule or explicit semver |
| Discovery |
Run bun scripts/version-find.mjs before applying updates |
| Current state |
Read the current version with bun scripts/version-current.mjs before computing the target version |
| Consistency |
Keep all discovered version files synchronized |
| Git scope |
Commit only the version-update file set |
| Safety |
Use conventional commit message (chore: bump version to x.y.z) unless the user requests otherwise |
| Git |
Use bun scripts/git-commit.mjs and bun scripts/git-push.mjs only for requested git writes, sequentially |
version-update owns version discovery, target calculation, file updates, diff review, and requested git operations.
- Commit only files changed by
version-update.
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:
Execution checklist:
Forbidden:
1---2name: version-update3description: [Hyper] Update semantic versions across node/rust/python projects, keep discovered version files synchronized, and use this skill's Bun MJS helpers for optional commits and pushes.4---56# Version Update Skill78> Cross-stack semantic version update for node/rust/python with direct optional git operations.910<output_language>1112Default 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.1314Preserve 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.1516Use 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.1718</output_language>1920<purpose>2122- Update one semantic version across node, rust, and python version-bearing files.23- Keep discovered manifest files and inline version markers synchronized.24- Use this skill's direct git helpers for requested commit and push operations.2526</purpose>2728<instruction_contract>2930| Field | Contract |31|---|---|32| Intent | Update synchronized semantic versions across supported project files. |33| Trigger | Activate on version bump/set requests, especially when the user asks to update versions and optionally commit them. |34| Scope | Own stack detection, version-file discovery, target-version calculation, version application, diff review, and requested git operations. |35| Authority | User and project instructions outrank this skill; discovered version files, semver rules, script output, and diffs are evidence. |36| Evidence | Use Bun MJS helpers, target argument parsing, and `git diff` before git writes. |37| Tools | Use `bun scripts/*.mjs` helpers and local file edits; use this skill's direct git helpers only when requested. |38| Output | Korean report of current version, target version, changed files, commit/push status, and caveats. |39| Verification | Confirm all intended version files changed consistently, review diff, and execute optional git steps only when requested. |40| Stop condition | Stop when version files are updated and reviewed, or when requested git steps are completed or blocked with evidence. |4142</instruction_contract>4344<trigger_conditions>4546| User intent | Activate |47|------|------|48| "bump this package to 1.4.0" | yes |49| "update the version and commit it" | yes |50| "increase patch version for this crate" | yes |51| "just make a git commit" | no |52| "rewrite this release runbook" | no |5354</trigger_conditions>5556<supported_targets>5758- `package.json`59- `Cargo.toml`60- `pyproject.toml`61- `setup.py`62- python `__version__` declarations63- inline `.version('x.y.z')` code patterns6465</supported_targets>6667<scripts>6869## Available scripts7071| Script | Purpose |72|------|------|73| `bun scripts/stack-detect.mjs` | Detect stacks (`node`, `rust`, `python`) |74| `bun scripts/version-find.mjs [--plain]` | Discover version-bearing files |75| `bun scripts/version-current.mjs [file]` | Extract current semver (`file|version`) |76| `bun scripts/version-bump.mjs <current> <type>` | Calculate next semver |77| `bun scripts/version-apply.mjs <new> [files...]` | Apply version to discovered/selected files |78| `bun scripts/git-commit.mjs "msg" [files]` | Directly commit the specified version-update files |79| `bun scripts/git-push.mjs` | Directly push after an explicit user request |8081</scripts>8283<git_integration>8485- If the user asked for version-only work, stop after the version files and diff review. Do not commit or push.86- For a requested commit, run `bun scripts/git-commit.mjs "chore: bump version to x.y.z" [files...]` with only the files changed by `version-update`, unless the user requested a different message.87- For a requested push, run `bun scripts/git-push.mjs` only after the commit succeeds and the user explicitly requested push.88- Keep git write operations sequential.8990</git_integration>9192<version_rules>9394| Argument | Action | Example |95|------|------|------|96| `+1` / `+patch` | Patch +1 | `0.1.13 -> 0.1.14` |97| `+minor` | Minor +1 | `0.1.13 -> 0.2.0` |98| `+major` | Major +1 | `0.1.13 -> 1.0.0` |99| `x.y.z` | Explicit set | `0.1.13 -> 2.0.0` |100101</version_rules>102103<workflow>104105## Workflow106107```bash108# 1) detect stack(s)109bun scripts/stack-detect.mjs110111# 2) find version-bearing files112bun scripts/version-find.mjs113114# 3) read current version115bun scripts/version-current.mjs116# output: <file>|<version>117118# 4) compute next version119bun scripts/version-bump.mjs 1.2.3 +minor120# -> 1.3.0121122# 5) apply to all discovered files (or selected files)123bun scripts/version-apply.mjs 1.3.0124125# 6) review the final diff and changed file list126git diff --stat127git diff128129# 7) optional commit only when explicitly requested130bun scripts/git-commit.mjs "chore: bump version to 1.3.0" package.json131132# 8) optional push only when explicitly requested133bun scripts/git-push.mjs134```135136</workflow>137138<stack_targets>139140| Stack | Primary files | Additional patterns |141|------|------|------|142| Node | `package.json` | `.version('x.y.z')` in code |143| Rust | `Cargo.toml` (`[package].version`) | `.version('x.y.z')` in code |144| Python | `pyproject.toml`, `setup.py`, `__version__` in `.py` | `.version('x.y.z')` in code |145146</stack_targets>147148<required>149150| Category | Required |151|------|------|152| Input | Parse ARGUMENT as bump rule or explicit semver |153| Discovery | Run `bun scripts/version-find.mjs` before applying updates |154| Current state | Read the current version with `bun scripts/version-current.mjs` before computing the target version |155| Consistency | Keep all discovered version files synchronized |156| Git scope | Commit only the version-update file set |157| Safety | Use conventional commit message (`chore: bump version to x.y.z`) unless the user requests otherwise |158| Git | Use `bun scripts/git-commit.mjs` and `bun scripts/git-push.mjs` only for requested git writes, sequentially |159160</required>161162<scope_boundaries>163164- `version-update` owns version discovery, target calculation, file updates, diff review, and requested git operations.165- Commit only files changed by `version-update`.166167</scope_boundaries>168169<examples>170171## Positive triggers172173- "bump this repo from 0.8.2 to 0.9.0 and commit it"174- "increase the patch version for this Python package"175- "update package.json and Cargo.toml to 2.0.0"176177## Negative triggers178179- "make a git commit for these docs changes"180- "summarize our release process"181182## Boundary trigger183184- "update the version only, do not commit yet"185186</examples>187188<validation>189190Trigger checks:191192- [ ] At least 3 positive trigger examples remain valid193- [ ] At least 2 negative trigger examples stay out of scope194- [ ] At least 1 boundary example stays explicit about commit vs no-commit195196Execution checklist:197198- [ ] Current version identified with `bun scripts/version-current.mjs`199- [ ] Target version computed via `bun scripts/version-bump.mjs` (or explicit semver validated)200- [ ] `bun scripts/version-apply.mjs` updated all intended files201- [ ] `git diff` reviewed202- [ ] Requested commit used `bun scripts/git-commit.mjs` with only the version-update files203- [ ] Requested push used `bun scripts/git-push.mjs` only after a successful commit204205Forbidden:206207- [ ] Starting updates without reading current version208- [ ] Updating only one file when multiple version files exist209- [ ] Committing files outside the version-update file set210- [ ] Force-pushing protected branches211212</validation>