Skip to content
cccskills
FreePublished on GitHub

bump-version

Prepare an AionUi release by checking AionCore assets, updating versions, and generating a changelog. Run quality checks, create a pull request with automatic merging enabled, then tag the merged release to trigger its build.

OriginalShow the original 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.

Works withGitHub
See how to install

Good for

  • Releasing the next AionUi patch version
  • Releasing with explicitly chosen UI and Core versions
  • Preparing a frontend-only release
  • Generating a changelog and completing the release PR

Files included (1)

  • SKILL.md8.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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 --squash

Display: "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:

stateAction
MERGEDProceed 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 checksStop: "PR merge is blocked (CI failure or review required). Please investigate: {URL}"
OPEN otherwiseWait 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.

Step 13: Cleanup + Tag

After merge is confirmed (either via polling or user confirmation):

git checkout main
git pull --rebase origin main
git branch -d chore/bump-version-{target}

Check if remote branch still exists:

git ls-remote --heads origin chore/bump-version-{target}
  • Has output → git push origin --delete chore/bump-version-{target}
  • No output → skip

Create and push tag:

git 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:

gh 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}"

Quick Reference

 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 tag

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

architecture

FreeSummary

Organize an Electron app by placing new code in the right process and directory. Apply naming rules, component structure conventions, and process boundaries to guide additions and review existing code.

  • Choosing where new code belongs
  • Splitting a component into multiple files
  • Reviewing process boundaries and directory structure
iOfficeAI/AionUi33.6KUpdated Oct 14, 2026

i18n

FreeSummary

Manage multilingual interface text through translation keys. Follow the configured language list, reuse existing wording, update every locale, and regenerate and validate key types when adding text or translation modules.

  • Adding interface text in every supported language
  • Building components with translatable text
  • Creating a translation module for a new feature
iOfficeAI/AionUi33.6KUpdated Oct 14, 2026

testing

FreeSummary

Write and run tests for features and fixes, starting with likely failures and boundary cases. Use behavior-focused checks, suitable test environments, and coverage results to assess whether changes are ready.

  • Writing tests for a new feature
  • Adding regression tests for a bug fix
  • Updating existing tests after behavior changes
iOfficeAI/AionUi33.6KUpdated Oct 14, 2026

See all skills by iOfficeAI

Report a problem with this skill