martin-hausleitner/sonar-skills/release-sidestore
- community
Checking that the SKILL.md file is still in the repository.
Cut a new Sonar SideStore release. Use when the user says "publish", "ship", "release", "bump version", or wants the in-app SideStore Update button to surface a new build. Runs the validated `make publish` flow — bumps Info.plist, runs the iPhone 16 Pro test suite, builds an unsigned IPA, archives it under releases/, regenerates apps.json, commits, pushes, and creates a GitHub release.
Install
npx vskill@latest install martin-hausleitner/sonar-skills/release-sidestoreSKILL.md
release-sidestore
Run a Sonar release through the SideStore source. The pipeline is scripts/release/publish.sh, surfaced via make publish. This skill exists because the release flow has been validated in production — don't improvise around it.
When to invoke
- "publish a new version" / "ship 0.3.0" / "cut a release"
- "the SideStore source needs the latest build"
- After a meaningful change is merged and the user wants the in-app Update button to show it
Preconditions
- Working tree on
main, clean (git statusempty, noMor??). - iPhone 16 Pro simulator booted; default UDID is
DCF24978-ABA7-4DC1-9E95-D96B0CE16CD4. Override withSIM_UDID=…. make lintpasses locally.- You are in the repo root (
Sonar/).
If any precondition fails, stop and tell the user — don't paper over it with --no-verify or by skipping the test step.
The flow
That's it. The script handles everything else:
- Reads
CFBundleShortVersionStringandCFBundleVersionfromsonar/Resources/Info.plist. - Bumps both (patch by default, or to the version you passed).
- Runs
xcodebuild teston the pinned simulator UDID, skippingSonarUITests. - Builds Release with
CODE_SIGNING_ALLOWED=NO,IPHONEOS_DEPLOYMENT_TARGET=26.2. - Packages the
.appintoreleases/Sonar-v<NEW>.ipaand refreshes the legacySonar-unsigned-iOS26.ipaat the repo root. - Calls
scripts/release/update-apps-json.shto insert the new version at the top ofapps.json(the SideStore source). - Updates
releases/RELEASES.md. - Commits all of the above with message
release: Sonar v<NEW>. - Pushes
mainand creates agh releasewith the.ipaattached.
Idempotency
publish.sh refuses to overwrite releases/Sonar-v<NEW>.ipa if it already exists, and refuses to reuse a local git tag. If you re-run after a partial failure, either:
- delete the half-built IPA in
releases/and re-run, or - pass an explicit higher
VERSION=.
Don't rm -rf blindly. Read the error first.
After it succeeds
- Open the in-app Update-Button to verify SideStore picks up the new version from
apps.json. - The download URL is
https://raw.githubusercontent.com/Martin-Hausleitner/Sonar/main/releases/Sonar-v<NEW>.ipa— confirm it 200s.
What this skill does NOT do
- No App Store / TestFlight upload — that's
scripts/release/build-appstore.sh, separate flow. - No release-notes generation. The GitHub release notes default to the commit subject; if you want richer notes, edit the release on GitHub after the fact.
- No rollback. If a release is broken, ship a higher patch version with the fix.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/release-sidestore/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/martin-hausleitner/sonar-skills/release-sidestore)