一键导入
run-maintenance
// Repository maintenance preparation for XerahS. Use before release or changelog work to sync repositories, inspect submodule state, identify version/changelog needs, and hand off commit/push/version rules to git-workflow.
// Repository maintenance preparation for XerahS. Use before release or changelog work to sync repositories, inspect submodule state, identify version/changelog needs, and hand off commit/push/version rules to git-workflow.
| name | run-maintenance |
| description | Repository maintenance preparation for XerahS. Use before release or changelog work to sync repositories, inspect submodule state, identify version/changelog needs, and hand off commit/push/version rules to git-workflow. |
This skill prepares the XerahS workspace for release, changelog, or routine repository maintenance. It is not the source of truth for commit, push, tag, or version-prefix rules.
Canonical references:
Use this skill to:
git-workflow or publish-release.Do not use this skill to invent commit message formats, submodule version prefixes, release tags, or changelog grouping rules.
Run from the XerahS repository root before any pull or submodule update:
git status --short
git submodule foreach --recursive "git status --short"
For optional sibling repositories involved in the task:
git -C ../xerahs.github.io status --short
git -C ../ShareX status --short
If the main repo, submodules, or in-scope sibling repositories have local changes, do not pull over them. Commit, stash, or explicitly pause for the owner to decide. Submodule changes belong to that submodule repository.
Run from the XerahS repository root only after the relevant repositories are clean:
git pull --recurse-submodules
git submodule update --init --recursive
git submodule update can detach submodule HEADs because it checks out the exact commit recorded by the parent repository. Mandatory follow-up: reattach ShareX.ImageEditor to its tracked develop branch and fast-forward it before release or changelog work continues:
git -C ShareX.ImageEditor fetch origin --prune
git -C ShareX.ImageEditor checkout develop
git -C ShareX.ImageEditor pull --ff-only origin develop
git submodule status ShareX.ImageEditor
git -C ShareX.ImageEditor status --short --branch
Abort and resolve manually if ShareX.ImageEditor cannot fast-forward, has local changes, or remains detached. If the fast-forward changes the submodule commit recorded by XerahS, commit and push the submodule first, then commit the updated XerahS gitlink in the parent repository.
If the task also touches optional sibling repositories, sync only those clean repositories:
git -C ../xerahs.github.io pull origin main
git -C ../ShareX pull origin develop
Do not pull optional sibling repositories just because they exist.
If a submodule has its own changes, treat it as a separate repository. Shared-library submodule commits, such as ShareX.ImageEditor, must follow git-workflow and omit the XerahS app version prefix.
Read the current XerahS app version from the root Directory.Build.props:
$version = (Select-String -Path Directory.Build.props -Pattern '<Version>(.+?)</Version>').Matches[0].Groups[1].Value
git tag --sort=-v:refname | Select-Object -First 1
Only bump versions when the task is explicitly about versioning or release preparation. If a bump is needed, use git-workflow for version source-of-truth and prefix rules, or publish-release for the full release bump/tag sequence.
SkiaSharp remains centrally managed in Directory.Packages.props; do not reintroduce project-local legacy pins.
For changelog work, use update-changelog. Prefer the helper script for draft generation:
powershell -NoProfile -ExecutionPolicy Bypass -File .ai/skills/update-changelog/scripts/update-changelog.ps1
Manually review generated changelog text for accurate grouping, contributor attribution, and wording before release.
For code/config changes, run the required build before pushing:
dotnet build src/desktop/XerahS.sln
Do not wait more than 5 minutes for a single build. If it stalls, stop it, clear stale build processes/locks, prefer -m:1, then retry.
Documentation-only skill edits do not require a full solution build unless they affect build or release scripts that need local execution.
Use git-workflow for final staging, commit message, version prefix, and push behavior.
Summary:
[vX.Y.Z] [Type] description only after verifying the root version is ahead of the latest tag.[vX.Y.Z] and use [Type] description.git pull --recurse-submodules.ShareX.ImageEditor reattached to develop, fast-forwarded from origin/develop, and verified not detached.Directory.Build.props and latest tag.update-changelog when needed.git-workflow or publish-release.Use the local ShareX checkout as the source of truth for ShareX.ImageEditor, find the latest upstream commit that touches it, and port or sync the matching changes into the XerahS ShareX.ImageEditor submodule with path-aware diffing and build gates.
Orchestrate XerahS release flow in strict order: run maintenance prep first, update-changelog second (optional only if docs/CHANGELOG.md is intentionally absent), verify build, bump/commit/push/tag while syncing Chocolatey version metadata, monitor GitHub Actions every 2 minutes, ensure standard release notes content, then set pre-release by default (use explicit opt-out for stable). On failures, inspect logs, fix root cause, and retry with the next patch release.
Rules and workflows for updating docs/CHANGELOG.md, including version grouping, aggressive consolidation, and GitHub tag-linked release headings.
Bring src/mobile-experimental Avalonia/MAUI mobile apps to feature and behavior parity with src/mobile/ios while preserving native platform feel. Use when comparing the Swift iOS app against XerahS.Mobile.Ava, XerahS.Mobile.Maui, or the experimental iOS share extension, implementing parity gaps, or validating Android/iOS experimental mobile flows.
Bring src/mobile/android to feature and behavior parity with src/mobile/ios while keeping each app native. Use when comparing iOS Swift/SwiftUI/UIKit mobile behavior against Android Kotlin/Jetpack Compose behavior, implementing missing Android features, or validating parity with the Test Android Apps emulator QA workflow.
Maintain XerahS daily development blog drafts under docs/blog using the YYYY/YYYY-MM/blog-YYYYMMDD.md layout. Use when asked to create, update, or consolidate the current UTC+8 blog post from new feature work, bug fixes, build/tooling changes, or recent git history.