一键导入
release-check
Use before cutting a release to verify build, version, and smoke test.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use before cutting a release to verify build, version, and smoke test.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Add a new cloud speech-to-text provider to Handless. Use when integrating a new cloud STT API (e.g., Google Cloud STT, Azure Speech, Rev AI). Covers Rust backend, provider registration, settings defaults, dictionary injection, realtime WebSocket support, and i18n across all 17 locales.
Handless app architecture, project structure, and core patterns. Use when understanding or modifying the app's structure, data flow, module responsibilities, or adding new features that span backend and frontend.
CLI flags and remote control parameters for Handless. Use when working with command-line arguments, autostart integration, signal handling, or remote instance control.
Force the onboarding page to display during development, even when permissions are already granted. Use when testing or iterating on the onboarding UI.
Use before cutting a release to verify build, version, and smoke test.
| name | release-check |
| description | Use before cutting a release to verify build, version, and smoke test. |
Pre-release verification for Handless. Run all checks, report pass/fail per item, and block release on any failure.
All three files must contain the same version string:
src-tauri/tauri.conf.json → "version": "X.Y.Z" (primary source — release workflow reads this)src-tauri/Cargo.toml → version = "X.Y.Z"package.json → "version": "X.Y.Z"Read all three files and compare. Any mismatch is a Fail.
CHANGELOG.md must have a ## [X.Y.Z] - YYYY-MM-DD section matching the version from step 1.## [Unreleased] section should be empty (all items moved to the new version section).Run:
bun run check:translations
Non-zero exit code is a Fail. Report any missing or extra keys.
Run in parallel:
bun run lint
npx tsc --noEmit
Non-zero exit code on either is a Fail.
Run in parallel:
bun run format:check
cd src-tauri && cargo fmt --check
Non-zero exit code on either is a Fail.
Run:
cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings
Non-zero exit code is a Fail. Warnings promoted to errors.
Run:
cargo check --manifest-path src-tauri/Cargo.toml --locked
Fails if Cargo.lock is out of date with Cargo.toml.
Specta auto-generates src/bindings.ts during cargo check. After the Rust check in step 7, verify:
git diff --name-only src/bindings.ts
If bindings.ts has uncommitted changes, bindings are stale — Fail.
Run:
bun run tauri build --config src-tauri/tauri.release-check.conf.json
This local smoke test must compile the production app and produce the native bundle, but it should not require updater-signing secrets that only exist in CI. It intentionally disables Tauri updater artifacts while keeping the rest of the release build path intact. Non-zero exit code is a Fail. This is the slowest step; run it last.
Run:
git status --porcelain
Any uncommitted changes (other than the release commit itself) is a Fail. Everything must be committed before triggering the release workflow.
Print a summary table:
## Release Check: vX.Y.Z
| # | Check | Status |
|----|------------------------|--------|
| 1 | Version sync | Pass |
| 2 | CHANGELOG.md | Pass |
| 3 | Translations | Pass |
| 4 | Lint & type check | Pass |
| 5 | Formatting | Pass |
| 6 | Clippy | Pass |
| 7 | Cargo.lock sync | Pass |
| 8 | Bindings up-to-date | Pass |
| 9 | Local release build | Pass |
| 10 | Clean working tree | Pass |
Result: READY TO RELEASE ✓
Any Fail must be fixed before release. After all checks pass, the release can be triggered via gh workflow run release.yml. CI remains responsible for updater artifact signing and any secrets required for that path.