/bump-version
Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.
$ npx -y skills add iOfficeAI/AionUi --skill bump-version --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/bump-version
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.
SKILL.md
bump-version.SKILL.mdname: bump-version
description: Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.
Bump Version
Automate the AionUi release preparation: query AionCore release → verify artifacts → update versions → generate CHANGELOG → branch → PR → tag.
**Usage:** `/bump-version [version] [flags]`
- `/bump-version` — auto patch + latest AionCore
- `/bump-version 2.2.0` — explicit AionUi version + latest AionCore
- `/bump-version 2.2.0 --core v0.1.12` — explicit both versions
- `/bump-version --skip-core` — pure frontend release (don't touch aioncoreVersion)
Workflow
Step 1: Pre-flight Checks
git branch --show-current
git status --short
- **Not on `main`** → Stop: "Please switch to main before running bump-version."
- **Dirty working tree** → Stop: "There are uncommitted changes. Please commit or stash them first."
Step 2: Pull Latest
git pull --rebase origin main
Fails → Stop: "Failed to pull latest code. Please resolve conflicts or network issues first."
Step 3: Determine AionUi Target Version
Read `package.json` → extract `version` field.
- **Argument provided** → use as-is
- **No argument** → parse `major.minor.patch`, increment `patch` by 1
Display: "Bumping AionUi: {current} → {target}"
Step 4: Query AionCore Latest Release
**Skip entirely if `--skip-core` is set.**
gh release view --repo iOfficeAI/AionCore --json tagName,body
- If `--core <version>` provided → use that tag instead of latest
- Display the AionCore version and ask user to confirm before continuing
- Also read current `aioncoreVersion` from `package.json` — if it already matches the queried version, warn the user and ask whether to proceed or use `--skip-core`
Step 5: Verify AionCore Artifacts
**Skip if `--skip-core`.**
gh release view <tag> --repo iOfficeAI/AionCore --json assets --jq '.assets[].name'
Verify all 7 expected assets exist:
- `aioncore-<tag>-x86_64-unknown-linux-gnu.tar.gz`
- `aioncore-<tag>-aarch64-unknown-linux-gnu.tar.gz`
- `aioncore-<tag>-x86_64-apple-darwin.tar.gz`
- `aioncore-<tag>-aarch64-apple-darwin.tar.gz`
- `aioncore-<tag>-x86_64-pc-windows-msvc.zip`
- `aioncore-<tag>-aarch64-pc-windows-msvc.zip`
- `aioncore-checksums.txt`
Missing → Stop: "AionCore {tag} is missing artifacts: {list}. Wait for CI to complete or check for build failures."
Step 6: Update package.json
Use Edit tool to replace:
- `"version": "{current}"` → `"version": "{target}"`
- `"aioncoreVersion": "{old}"` → `"aioncoreVersion": "{new core tag}"` (skip if `--skip-core`)
Step 7: Generate CHANGELOG Entry
7a: Determine Previous Tag
git describe --tags --abbrev=0
This gives the most recent tag (e.g. `v2.1.2`).
7b: Collect Frontend Changes
git log v{previous}..HEAD --oneline --no-merges --format="%s"- Filter to conventional commit types: `feat`, `fix`, `refactor`, `perf`, `style`
- Exclude commits matching `chore: bump version`
- Group by type (Features, Bug Fixes, Refactoring, Performance, Styling)
- Format each as: `- **scope:** description (#PR)`
7c: Collect AionCore Changes
From step 4's release body (already in conventional-changelog format from release-please). Parse into same grouped format.
**Skip if `--skip-core`.**
7d: Compose and Write CHANGELOG.md
If `CHANGELOG.md` exists at repo root → read its current content. If not → start with empty string.
Prepend the new entry in this format:
# Changelog
## [{target}](https://github.com/iOfficeAI/AionUi/compare/v{previous}...v{target}) ({date YYYY-MM-DD})
### Desktop
#### Bug Fixes
- **upload:** abort in-flight uploads when switching conversations (#3019)
#### Features
- **thinking:** add streaming indicator (#3015)
### Core ([{core tag}](https://github.com/iOfficeAI/AionCore/releases/tag/{core tag}))
#### Bug Fixes
- **acp:** load user MCP servers and emit empty-finish diagnostic (#327)
---Rules:
- If `--skip-core`: omit the entire "### Core" section
- If no frontend commits since last tag: show `_No frontend changes in this release._` under "### Desktop"
- Date format: `YYYY-MM-DD`
- Always keep the top-level `# Changelog` header exactly once
Step 8: Quality Checks
bun run lint
bun run format
bunx tsc --noEmit
- **lint fails** → Stop: "Lint errors found. Please fix them before bumping."
- **format** → Auto-fixes silently.
- **tsc fails** → Stop: "TypeScript errors found. Please fix them before bumping."
Step 9: Run Tests
bunx vitest run
Fails → Stop: "Tests failed. Please fix before bumping."
Step 10: Branch, Commit, Push
git checkout -b chore/bump-version-{target}
git add package.json CHANGELOG.md
git commit -m "chore: bump version to {target} and aioncore to {core tag}"
just push -u origin chore/bump-version-{target}If `--skip-core`:
git commit -m "chore: bump version to {target}"Step 11: Create PR + Enable Auto-Merge
gh pr create --base main \
--title "chore: bump version to {target}" \
--body "<the CHANGELOG entry generated in Step 7>"Capture the PR number from the output. Then enable auto-merge (squash):
gh pr merge {PR_NUMBER} --auto --squashDisplay: "PR created: {URL}. Auto-merge enabled — will merge automatically once CI passes."
Step 12: Poll for Merge
Check PR merge status every 5 minutes:
gh pr view {PR_NUMBER} --json state,mergedAt,mergeStateStatus**Decision logic:**
| `state` | Action | | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `MERGED`
Read more
name: bump-version description: Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.
Bump Version
Automate the AionUi release preparation: query AionCore release → verify artifacts → update versions → generate CHANGELOG → branch → PR → tag.
**Usage:** `/bump-version [version] [flags]`
- `/bump-version` — auto patch + latest AionCore
- `/bump-version 2.2.0` — explicit AionUi version + latest AionCore
- `/bump-version 2.2.0 --core v0.1.12` — explicit both versions
- `/bump-version --skip-core` — pure frontend release (don't touch aioncoreVersion)
Workflow
Step 1: Pre-flight Checks
git branch --show-current git status --short
- **Not on `main`** → Stop: "Please switch to main before running bump-version."
- **Dirty working tree** → Stop: "There are uncommitted changes. Please commit or stash them first."
Step 2: Pull Latest
git pull --rebase origin main
Fails → Stop: "Failed to pull latest code. Please resolve conflicts or network issues first."
Step 3: Determine AionUi Target Version
Read `package.json` → extract `version` field.
- **Argument provided** → use as-is
- **No argument** → parse `major.minor.patch`, increment `patch` by 1
Display: "Bumping AionUi: {current} → {target}"
Step 4: Query AionCore Latest Release
**Skip entirely if `--skip-core` is set.**
gh release view --repo iOfficeAI/AionCore --json tagName,body
- If `--core <version>` provided → use that tag instead of latest
- Display the AionCore version and ask user to confirm before continuing
- Also read current `aioncoreVersion` from `package.json` — if it already matches the queried version, warn the user and ask whether to proceed or use `--skip-core`
Step 5: Verify AionCore Artifacts
**Skip if `--skip-core`.**
gh release view <tag> --repo iOfficeAI/AionCore --json assets --jq '.assets[].name'
Verify all 7 expected assets exist:
- `aioncore-<tag>-x86_64-unknown-linux-gnu.tar.gz`
- `aioncore-<tag>-aarch64-unknown-linux-gnu.tar.gz`
- `aioncore-<tag>-x86_64-apple-darwin.tar.gz`
- `aioncore-<tag>-aarch64-apple-darwin.tar.gz`
- `aioncore-<tag>-x86_64-pc-windows-msvc.zip`
- `aioncore-<tag>-aarch64-pc-windows-msvc.zip`
- `aioncore-checksums.txt`
Missing → Stop: "AionCore {tag} is missing artifacts: {list}. Wait for CI to complete or check for build failures."
Step 6: Update package.json
Use Edit tool to replace:
- `"version": "{current}"` → `"version": "{target}"`
- `"aioncoreVersion": "{old}"` → `"aioncoreVersion": "{new core tag}"` (skip if `--skip-core`)
Step 7: Generate CHANGELOG Entry
7a: Determine Previous Tag
git describe --tags --abbrev=0
This gives the most recent tag (e.g. `v2.1.2`).
7b: Collect Frontend Changes
git log v{previous}..HEAD --oneline --no-merges --format="%s"- Filter to conventional commit types: `feat`, `fix`, `refactor`, `perf`, `style`
- Exclude commits matching `chore: bump version`
- Group by type (Features, Bug Fixes, Refactoring, Performance, Styling)
- Format each as: `- **scope:** description (#PR)`
7c: Collect AionCore Changes
From step 4's release body (already in conventional-changelog format from release-please). Parse into same grouped format.
**Skip if `--skip-core`.**
7d: Compose and Write CHANGELOG.md
If `CHANGELOG.md` exists at repo root → read its current content. If not → start with empty string.
Prepend the new entry in this format:
# Changelog
## [{target}](https://github.com/iOfficeAI/AionUi/compare/v{previous}...v{target}) ({date YYYY-MM-DD})
### Desktop
#### Bug Fixes
- **upload:** abort in-flight uploads when switching conversations (#3019)
#### Features
- **thinking:** add streaming indicator (#3015)
### Core ([{core tag}](https://github.com/iOfficeAI/AionCore/releases/tag/{core tag}))
#### Bug Fixes
- **acp:** load user MCP servers and emit empty-finish diagnostic (#327)
---Rules:
- If `--skip-core`: omit the entire "### Core" section
- If no frontend commits since last tag: show `_No frontend changes in this release._` under "### Desktop"
- Date format: `YYYY-MM-DD`
- Always keep the top-level `# Changelog` header exactly once
Step 8: Quality Checks
bun run lint bun run format bunx tsc --noEmit
- **lint fails** → Stop: "Lint errors found. Please fix them before bumping."
- **format** → Auto-fixes silently.
- **tsc fails** → Stop: "TypeScript errors found. Please fix them before bumping."
Step 9: Run Tests
bunx vitest run
Fails → Stop: "Tests failed. Please fix before bumping."
Step 10: Branch, Commit, Push
git checkout -b chore/bump-version-{target}
git add package.json CHANGELOG.md
git commit -m "chore: bump version to {target} and aioncore to {core tag}"
just push -u origin chore/bump-version-{target}If `--skip-core`:
git commit -m "chore: bump version to {target}"Step 11: Create PR + Enable Auto-Merge
gh pr create --base main \
--title "chore: bump version to {target}" \
--body "<the CHANGELOG entry generated in Step 7>"Capture the PR number from the output. Then enable auto-merge (squash):
gh pr merge {PR_NUMBER} --auto --squashDisplay: "PR created: {URL}. Auto-merge enabled — will merge automatically once CI passes."
Step 12: Poll for Merge
Check PR merge status every 5 minutes:
gh pr view {PR_NUMBER} --json state,mergedAt,mergeStateStatus**Decision logic:**
| `state` | Action | | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `MERGED`
Open-source 24/7 Cowork app for OpenClaw, Hermes, Claude Code, Codex, OpenCode and 20+ more CLI Agent | Customize your assistants | Team them up|Star if you like it!
Repo: iOfficeAI/AionUi
Other skills on aionui.
- /architecture
Project architecture and file structure conventions for all process types. Use when: (1) Creating new files or modules, (2) Deciding where code should go, (3) Converting single-file components to directories, (4) Reviewing code for structure compliance, (5) Adding new bridges,
Open skill - /i18n
Internationalization (i18n) workflow and standards for managing translations. Use when: (1) Adding new user-facing text, (2) Creating new components with user-facing text, (3) Reviewing code for i18n compliance, (4) Adding a new translation module.
Open skill - /testing
Testing workflow and quality standards for writing and running tests. Use when: (1) Writing new tests, (2) Adding a new feature that needs tests, (3) Modifying logic that has existing tests, (4) Before claiming a task is complete.
Open skill

