.ai/skills/run-maintenance/SKILL.md
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.
npx skillsauth add sharex/xerahs run-maintenanceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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
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.Directory.Build.props and latest tag.update-changelog when needed.git-workflow or publish-release.testing
Reference for writing effective XerahS Improvement Proposals (XIPs), including structure, templates, review checks, and implementation patterns. Use sync-xips for creating, editing, and syncing XIP GitHub issues and local backups.
documentation
Rules and workflows for updating docs/CHANGELOG.md, including version grouping, consolidation, and commit-entry attribution.
testing
Create and maintain XerahS Improvement Proposals (XIPs) with GitHub as source of truth and docs/proposals/xip folder as backup. Use when creating or editing XIPs, syncing XIPs between GitHub issues and the docs/proposals/xip folder, or when the user mentions XIP, GitHub issues for XIP, or local XIP files.
development
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.