App Release Readiness
Use this skill when a user asks to submit, push, package, upload an installer,
or confirm that the latest app update is actually available.
Workflow
Preflight the repository.
- Run
git status --short and identify unrelated changes.
- Confirm branch, remote, version/tag policy, and whether this is a source
commit, installer upload, or both.
- Do not commit build artifacts unless the repo explicitly tracks them.
- If the user asks to limit old GitHub Releases for a maintained desktop
app and gives no other number, keep the newest 15 release records and do
not delete git tags.
Verify before packaging.
- Run the smallest meaningful backend/frontend tests for the change.
- Run full build checks when UI, packaging, provider, or app lifecycle code
changed.
- For desktop apps, include Rust/Tauri or native shell checks when present.
- Scan for key-shaped secrets and private data when provider credentials,
release notes, screenshots, or docs changed.
Package with process safety.
- Close or handle app/sidecar processes before overwriting binaries.
- Prefer installers that fail on locked files over half-updated installs.
- Ensure uninstall/update behavior does not delete user data by default.
Inspect build outputs.
- Record installer paths, sizes, and SHA256 hashes.
- Compare expected sidecar/app binaries when stale-process or half-update
bugs were part of the release.
- Smoke-test the installed app when feasible.
Commit and push deliberately.
- Stage only intended source/docs changes.
- Use a direct commit message that names the user-visible change.
- Push the branch and verify the remote commit SHA before publishing source
claims or release notes that point at the new version.
Upload release assets when requested.
- Use the repository's current release/tag policy.
- Upload with replace/clobber only when the user asked for the latest asset
to replace the old one.
- Verify remote asset names and sizes after upload.
- Download uploaded assets back from the release URL and verify SHA256
against the local artifacts before saying the release is current.
Prune releases only when requested.
- Delete release records, not tags, unless the user explicitly asks for tag
deletion.
- Re-list releases after pruning and report the final count.
- If keeping 15 records, preserve the newest 15 by published release order.
Report with evidence.
- Include commit SHA, pushed branch, tests run, package paths, hashes, and
release URL when applicable.
- Say explicitly if installation or provider smoke tests were not run.
Reference Use
Read references/app-quality-principles.md before releasing changes that touch
data paths, provider integrations, startup behavior, user-facing errors, or
installer behavior.
Read references/living-to-tell-casebook.md when the release includes fixes
for stale sidecars, startup black screens, raw Not Found/Failed to fetch errors,
AI provider transport, or uninstall/data-location safety.
Release Red Lines
- Do not say "uploaded" until the release page or API confirms the asset.
- Do not say "latest" until the remote asset hash or commit matches the
current build.
- Do not force-push, delete tags, or replace release assets unless the user
asked for that release behavior.
- Do not package or publish secrets, local databases, private writing content,
logs, or screenshots containing private data.
1---2name: app-release-readiness3description: Use when preparing a desktop or web app update for commit, packaging, installer validation, GitHub publication, release asset upload, or old-release pruning. Protects user data and verifies that published artifacts match the tested build.4license: MIT5---67# App Release Readiness89Use this skill when a user asks to submit, push, package, upload an installer,10or confirm that the latest app update is actually available.1112## Workflow13141. Preflight the repository.15 - Run `git status --short` and identify unrelated changes.16 - Confirm branch, remote, version/tag policy, and whether this is a source17 commit, installer upload, or both.18 - Do not commit build artifacts unless the repo explicitly tracks them.19 - If the user asks to limit old GitHub Releases for a maintained desktop20 app and gives no other number, keep the newest 15 release records and do21 not delete git tags.22232. Verify before packaging.24 - Run the smallest meaningful backend/frontend tests for the change.25 - Run full build checks when UI, packaging, provider, or app lifecycle code26 changed.27 - For desktop apps, include Rust/Tauri or native shell checks when present.28 - Scan for key-shaped secrets and private data when provider credentials,29 release notes, screenshots, or docs changed.30313. Package with process safety.32 - Close or handle app/sidecar processes before overwriting binaries.33 - Prefer installers that fail on locked files over half-updated installs.34 - Ensure uninstall/update behavior does not delete user data by default.35364. Inspect build outputs.37 - Record installer paths, sizes, and SHA256 hashes.38 - Compare expected sidecar/app binaries when stale-process or half-update39 bugs were part of the release.40 - Smoke-test the installed app when feasible.41425. Commit and push deliberately.43 - Stage only intended source/docs changes.44 - Use a direct commit message that names the user-visible change.45 - Push the branch and verify the remote commit SHA before publishing source46 claims or release notes that point at the new version.47486. Upload release assets when requested.49 - Use the repository's current release/tag policy.50 - Upload with replace/clobber only when the user asked for the latest asset51 to replace the old one.52 - Verify remote asset names and sizes after upload.53 - Download uploaded assets back from the release URL and verify SHA25654 against the local artifacts before saying the release is current.55567. Prune releases only when requested.57 - Delete release records, not tags, unless the user explicitly asks for tag58 deletion.59 - Re-list releases after pruning and report the final count.60 - If keeping 15 records, preserve the newest 15 by published release order.61628. Report with evidence.63 - Include commit SHA, pushed branch, tests run, package paths, hashes, and64 release URL when applicable.65 - Say explicitly if installation or provider smoke tests were not run.6667## Reference Use6869Read `references/app-quality-principles.md` before releasing changes that touch70data paths, provider integrations, startup behavior, user-facing errors, or71installer behavior.7273Read `references/living-to-tell-casebook.md` when the release includes fixes74for stale sidecars, startup black screens, raw Not Found/Failed to fetch errors,75AI provider transport, or uninstall/data-location safety.7677## Release Red Lines7879- Do not say "uploaded" until the release page or API confirms the asset.80- Do not say "latest" until the remote asset hash or commit matches the81 current build.82- Do not force-push, delete tags, or replace release assets unless the user83 asked for that release behavior.84- Do not package or publish secrets, local databases, private writing content,85 logs, or screenshots containing private data.