Agent Skills: generate-sparkle-appcast

Generate Mos Sparkle appcast.xml from the latest build zip and recent git changes (since a given commit), then sync to docs/ for publishing.

UncategorizedID: aiskillstore/marketplace/generate-sparkle-appcast

Install this agent skill to your local

pnpm dlx add-skill https://github.com/aiskillstore/marketplace/tree/HEAD/skills/caldis/generate-sparkle-appcast

Skill Files

Browse the full folder contents for generate-sparkle-appcast.

Download Skill

Loading file tree…

skills/caldis/generate-sparkle-appcast/SKILL.md

Skill Metadata

Name
generate-sparkle-appcast
Description
Generate Mos Sparkle appcast.xml from the latest build zip and recent git changes (since a given commit), then sync to docs/ for publishing.

Use this skill when the user wants to publish a new Mos release (stable or beta) and needs:

  • Sparkle appcast.xml generated from the notarized .zip in build/
  • Two hosted release notes pages (Chinese + English)
  • Sparkle to show Chinese for all zh* locales (Simplified/Traditional/HK/TW), and English for everything else

Inputs

  • --since <commit>: the previous release commit (exclusive). Used to generate release notes from changes since that commit.
  • A notarized+zipped app in build/ named:
    • Mos.Versions.<version>-<YYYYMMDD>.<num>.zip (stable)
    • Mos.Versions.<version>-beta-<YYYYMMDD>.<num>.zip (beta)
  • Sparkle Ed25519 private key at sparkle_private_key.txt (gitignored).
  • Optional env:
    • RELEASE_NOTES_BASE_URL (default https://mos.caldis.me/release-notes)
    • RELEASE_NOTES_ZH_FILE / RELEASE_NOTES_EN_FILE to point to pre-written HTML files (otherwise the script writes to build/release-notes/<tag>.*.html)

What to do

  1. Run the skill script:
    • bash .codex/skills/generate-sparkle-appcast/scripts/generate_appcast.sh --since <commit>
  2. Confirm outputs:
    • build/appcast.xml (generated)
    • docs/appcast.xml (copied for mos.caldis.me/appcast.xml)
    • build/release-notes/<tag>.zh.html + build/release-notes/<tag>.en.html (generated)
    • docs/release-notes/<tag>.zh.html + docs/release-notes/<tag>.en.html (copied for hosting)
  3. Ensure the GitHub Release tag and asset name match the URL inside the generated appcast.

Notes

  • The script emits two <sparkle:releaseNotesLink> entries: xml:lang="zh" points to the Chinese page, and the default link points to the English page.
  • You can pre-create/edit build/release-notes/<tag>.zh.html and build/release-notes/<tag>.en.html before running the script; the script will reuse them if present, otherwise it generates a default template from git history.
  • If the zip changes in any way (repacked/re-signed), you must re-run the script to regenerate sparkle:edSignature.