qmai-release
GitHub用于发布 QMAI 稳定版,涵盖版本元数据更新、多文件同步、CI缓存预热等待及带注解标签推送。严格遵循原子提交与校验流程,确保构建一致性。
Trigger Scenarios
Install
npx skills add Mochocyang/QMAI --skill qmai-release -g -y
SKILL.md
Frontmatter
{
"name": "qmai-release",
"description": "Release a stable QMAI version by updating version metadata and changelog, pushing main, waiting for the same-commit main CI release-cache warmup, then creating and pushing an annotated version tag. Use when asked to bump, publish, or tag a QMAI stable release; do not use for prerelease builds or ordinary PR delivery."
}
QMAI Stable Release
Use this workflow only in the Mochocyang/QMAI repository. Preserve the user's authorization boundary: preparing a release does not authorize pushing, tagging, or publishing unless the user requested those external mutations.
Release invariants
- Push the release commit to
mainby itself. Never pushmainand the version tag in one command or atomic push. - Wait for the
CIworkflow on the exact release commit to finish successfully before creating the tag. This allows the Linux, Windows, and macOS release-cache warmup to complete. - Never create the tag while required validation or the matching main CI run is failing, cancelled, missing, or still running.
- Never overwrite, move, or force-push
mainor a release tag. - Stop if
origin/mainmoves away from the release commit before tagging. Reconcile the new remote state instead of tagging an older commit. - Use an annotated tag named
v<package-version>and verify that the remote tag resolves to the release commit.
Workflow
-
Confirm the repository and release target.
- Verify the remote is
Mochocyang/QMAI. - Require a clean worktree before switching or pulling.
- Fetch
origin/mainand tags, switch tomain, and update with--ff-only. - Confirm the requested version is a stable semantic version and the tag does not already exist locally or remotely.
- Verify the remote is
-
Update the complete QMAI release surface.
package.json- root package version and root package entry in
package-lock.json src-tauri/Cargo.toml- the
qmaipackage entry insrc-tauri/Cargo.lock src-tauri/tauri.conf.jsonsrc/lib/changelog.tssrc/lib/changelog.spec.ts- Derive release notes from commits since the previous version tag. Do not invent features or copy stale notes.
-
Validate before committing.
- Confirm every version source has the exact requested version.
- Run
node scripts/release-notes.mjs <version>and inspect that it returns the intended Chinese notes rather than the generic fallback. - Run
npx vitest run src/lib/changelog.spec.ts scripts/release-notes.spec.mjs. - Run
npm run test:mocks,npm run build, andgit diff --checkunless the user explicitly narrows validation. - If a required check fails, do not tag. Separate a verified pre-existing baseline failure from a release regression and obtain explicit authorization before proceeding despite it.
-
Commit and push only
main.- Use a Chinese Conventional Commit such as
chore(release): 升级版本至 <version>. - Re-fetch
origin/mainimmediately before pushing and confirm it is the release commit's parent. - Push only
main. Record the exact release commit SHA.
- Use a Chinese Conventional Commit such as
-
Wait for cache warmup on the exact release SHA.
- Find the
CIworkflow run whose event ispush, branch ismain, and head SHA equals the release SHA. - Wait with
gh run watch <run-id> --repo Mochocyang/QMAI --exit-status. - Stop if no matching run appears within 5 minutes, the run does not complete within 90 minutes, or its conclusion is not
success.
- Find the
-
Tag only after CI succeeds.
- Fetch
origin/mainand tags again. - Require local
HEAD,origin/main, and the recorded release SHA to match. - Reconfirm that
v<version>does not exist. - Create an annotated tag on the recorded SHA, then push only that tag in a separate command.
- Fetch
-
Verify delivery.
- Verify remote
mainand the dereferenced remote tag both resolve to the recorded release SHA. - Confirm
QMAI Multi-Platform Releasestarted for that tag and SHA. - Report the release workflow URL and current status. Do not claim release completion while jobs or required assets are pending.
- Verify remote
Version History
- 20447a2 Current 2026-08-27 15:01


