Skip to content
Back to skills

Generate Sparkle Appcast

ASecurity

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

  • 416 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 9, 2026
devopsbashgit

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add aiskillstore/marketplace --skill generate-sparkle-appcast --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generate Sparkle Appcast?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Generate Sparkle Appcast
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aiskillstore-generate-sparkle-appcast/badge)](https://www.skillsdirectory.com/skills/aiskillstore-generate-sparkle-appcast)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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`.

Files in this skill

  • SKILL.md2.2 KB
  • scripts/generate_appcast.sh15.4 KB
  • skill-report.json10.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…