Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project. Use when you need a from-scratch macOS app layout, SwiftPM targets/resources, a custom .app bundle assembly script, or signing/notarization/appcast steps outside Xcode.
Install with Tessl CLI
npx tessl i github:Dimillian/Skills --skill macos-spm-app-packaging89
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
SwiftPM app bootstrap structure
swift-tools-version 6.2
0%
100%
macOS .v14 platform
0%
100%
Executable target type
100%
100%
Sources renamed from MyApp
100%
100%
Resources declared
100%
100%
Resources directory created
100%
100%
version.env present
0%
100%
version.env MARKETING_VERSION field
0%
100%
version.env BUILD_NUMBER field
0%
100%
SwiftUI entry point
100%
100%
No MyApp placeholder remaining
100%
100%
Without context: $0.3907 · 1m 16s · 19 turns · 20 in / 5,026 out tokens
With context: $0.5746 · 1m 43s · 29 turns · 155 in / 7,106 out tokens
Menu bar app packaging scripts
MENU_BAR_APP=1 set
0%
100%
LSUIElement documented
100%
100%
SIGNING_MODE=adhoc for dev
83%
100%
package_app.sh included
0%
100%
compile_and_run.sh included
0%
100%
compile_and_run.sh preferred for dev
0%
100%
APP_NAME set to ClipWatch
100%
100%
BUNDLE_ID set to com.devteam.clipwatch
100%
100%
No notarization/Sparkle scripts
100%
100%
AppKit entry point style
0%
0%
Without context: $0.3021 · 1m 12s · 13 turns · 14 in / 4,418 out tokens
With context: $0.7406 · 2m 46s · 30 turns · 928 in / 9,405 out tokens
Sparkle release and GitHub publishing
MARKETING_VERSION in version.env
0%
100%
BUILD_NUMBER in version.env
100%
100%
BUILD_NUMBER increment documented
30%
100%
ARCHES universal binary
100%
100%
sign-and-notarize.sh included
0%
100%
make_appcast.sh included
0%
100%
Notarization credential vars
0%
100%
APP_IDENTITY var referenced
0%
100%
SPARKLE_PRIVATE_KEY_FILE referenced
40%
100%
gh release create used
100%
100%
Curated release notes file
100%
100%
CHANGELOG_RELEASE.md is curated
100%
100%
Without context: $0.4184 · 2m 9s · 14 turns · 15 in / 7,645 out tokens
With context: $0.6109 · 2m 21s · 27 turns · 1,405 in / 7,185 out tokens
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.