Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 132% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 27% | 0% |
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)bashgit branch --show-current git status --short
main → Stop: "Please switch to main before running bump-version."bashgit pull --rebase origin main
Fails → Stop: "Failed to pull latest code. Please resolve conflicts or network issues first."
Read package.json → extract version field.
major.minor.patch, increment patch by 1Display: "Bumping AionUi: {current} → {target}"
Skip entirely if --skip-core is set.
bashgh release view --repo iOfficeAI/AionCore --json tagName,body
--core <version> provided → use that tag instead of latestaioncoreVersion from package.json — if it already matches the queried version, warn the user and ask whether to proceed or use --skip-coreSkip if --skip-core.
bashgh 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.gzaioncore-<tag>-aarch64-unknown-linux-gnu.tar.gzaioncore-<tag>-x86_64-apple-darwin.tar.gzaioncore-<tag>-aarch64-apple-darwin.tar.gzaioncore-<tag>-x86_64-pc-windows-msvc.zipaioncore-<tag>-aarch64-pc-windows-msvc.zipaioncore-checksums.txtMissing → Stop: "AionCore {tag} is missing artifacts: {list}. Wait for CI to complete or check for build failures."
Use Edit tool to replace:
"version": "{current}" → "version": "{target}""aioncoreVersion": "{old}" → "aioncoreVersion": "{new core tag}" (skip if --skip-core)bashgit describe --tags --abbrev=0
This gives the most recent tag (e.g. v2.1.2).
bashgit log v{previous}..HEAD --oneline --no-merges --format="%s"
feat, fix, refactor, perf, stylechore: bump version- **scope:** description (#PR)From step 4's release body (already in conventional-changelog format from release-please). Parse into same grouped format.
Skip if --skip-core.
If CHANGELOG.md exists at repo root → read its current content. If not → start with empty string.
Prepend the new entry in this format:
markdown# 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:
--skip-core: omit the entire "### Core" section_No frontend changes in this release._ under "### Desktop"YYYY-MM-DD# Changelog header exactly oncebashbun run lint bun run format bunx tsc --noEmit
bashbunx vitest run
Fails → Stop: "Tests failed. Please fix before bumping."
bashgit 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:
bashgit commit -m "chore: bump version to {target}"
bashgh 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):
bashgh pr merge {PR_NUMBER} --auto --squash
Display: "PR created: {URL}. Auto-merge enabled — will merge automatically once CI passes."
Check PR merge status every 5 minutes:
bashgh pr view {PR_NUMBER} --json state,mergedAt,mergeStateStatus
Decision logic:
| state | Action | | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | MERGED | Proceed to Step 13 | | CLOSED (not merged) | Stop: "PR was closed without merging. Please check and confirm how to proceed." | | OPEN with mergeStateStatus: BLOCKED or CI failure persisting > 3 checks | Stop: "PR merge is blocked (CI failure or review required). Please investigate: {URL}" | | OPEN otherwise | Wait 5 minutes, check again |
Maximum wait: 30 minutes (6 checks). If not merged after 30 minutes:
> "PR has not merged after 30 minutes. Please check status: {URL}. Reply 'continue' when merged, or 'abort' to stop."
Wait for user confirmation only in this timeout case.
After merge is confirmed (either via polling or user confirmation):
bashgit checkout main git pull --rebase origin main git branch -d chore/bump-version-{target}
Check if remote branch still exists:
bashgit ls-remote --heads origin chore/bump-version-{target}
git push origin --delete chore/bump-version-{target}Create and push tag:
bashgit tag v{target} git push origin v{target}
Wait a few seconds for GitHub to pick up the tag push, then fetch the triggered workflow run:
bashgh run list --workflow=release.yml --branch v{target} --limit 1 --json databaseId,url
Display: "Tag v{target} created and pushed. Release build triggered! Action: {run URL}"
1. Must be on clean main
2. git pull --rebase
3. Determine AionUi target version (patch+1 or explicit)
4. Query AionCore latest release (or --core / --skip-core)
5. Verify AionCore artifacts (7 files)
6. Edit package.json (version + aioncoreVersion)
7. Generate CHANGELOG entry (frontend commits + AionCore release body)
8. lint + format + tsc
9. vitest run
10. branch → commit → push
11. gh pr create → enable auto-merge (squash)
12. poll merge status (every 5min, max 30min) → stop on failure
13. cleanup → git tag → git push tagOther measured skills in the registry, with their headline benchmark lift.