macOS Spm App Packaging
Dimillian/Skills
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.
You MUST activate this skill when working on Swift projects. An agent skill from sammcj/agentic-coding.
$ npx skills add sammcj/agentic-coding --skill swift-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sammcj/agentic-coding swift-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/sammcj/agentic-coding.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/swift-development .claude/skills/swift-development && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "swift-development" agent skill from https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-development into .claude/skills/swift-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swift-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-developmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add sammcj/agentic-coding --skill swift-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sammcj/agentic-coding swift-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sammcj/agentic-coding.git skills-src && mkdir -p .agents/skills && cp -r skills-src/Skills/swift-development .agents/skills/swift-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "swift-development" agent skill from https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-development into .agents/skills/swift-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swift-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sammcj/agentic-coding --skill swift-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sammcj/agentic-coding swift-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sammcj/agentic-coding.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/Skills/swift-development .cursor/skills/swift-development && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "swift-development" agent skill from https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-development into .cursor/skills/swift-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swift-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/sammcj/agentic-coding.git --path Skills/swift-development--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add sammcj/agentic-coding --skill swift-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sammcj/agentic-coding swift-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sammcj/agentic-coding.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/Skills/swift-development .gemini/skills/swift-development && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "swift-development" agent skill from https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-development into .gemini/skills/swift-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swift-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install sammcj/agentic-coding swift-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add sammcj/agentic-coding --skill swift-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sammcj/agentic-coding.git skills-src && mkdir -p .github/skills && cp -r skills-src/Skills/swift-development .github/skills/swift-development && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "swift-development" agent skill from https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-development into .github/skills/swift-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swift-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add sammcj/agentic-coding --skill swift-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sammcj/agentic-coding swift-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sammcj/agentic-coding.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/Skills/swift-development .opencode/skills/swift-development && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "swift-development" agent skill from https://github.com/sammcj/agentic-coding/tree/main/Skills/swift-development into .opencode/skills/swift-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swift-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
swift-developmentYou MUST activate this skill when working on Swift projects. An agent skill from sammcj/agentic-coding.
Swift Development is an agent skill from sammcj/agentic-coding. You MUST activate this skill when working on Swift projects
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/api-design.md`, `references/availability-patterns.md` and `references/concurrency.md`).
It sits in Mobile, covering iOS development. It works with Swift and macOS. The repository describes itself as: Agentic Coding Rules, Templates etc... The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 62ba5a2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Swift Development loads about 2.4k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 19 tokens; SKILL.md has 846 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from sammcj/agentic-coding at commit 62ba5a2, republished under its Apache-2.0 licence (© sammcj). 846 words, ~2,387 tokens.
.claude/skills/swift-development/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Apply modern Swift development best practices focusing on Swift 6+ features, concurrency safety, API design principles, and code quality guidelines for iOS and macOS projects targeting macOS 15.7+.
Use this skill when:
var greeting = "Hello" not var string = "Hello"Swift 6 enables complete concurrency checking by default with region-based isolation (SE-0414). The compiler now proves code safety, eliminating many false positives whilst catching real concurrency issues at compile time.
Critical understanding:
@MainActor ensures UI-related code executes on the main threadSendable// Parallel execution with async let
func fetchData() async -> (String, Int) {
async let stringData = fetchString()
async let intData = fetchInt()
return await (stringData, intData)
}
// Always check cancellation in long-running operations
func process(_ items: [Item]) async throws -> [Result] {
var results: [Result] = []
for item in items {
try Task.checkCancellation()
results.append(await process(item))
}
return results
}// Apply at type level for consistent isolation
@MainActor
class ContentViewModel: ObservableObject {
@Published var images: [UIImage] = []
func fetchData() async throws {
self.images = try await fetchImages()
}
}
// Avoid MainActor.run when direct await works
await doMainActorStuff() // Good
await MainActor.run { doMainActorStuff() } // Unnecessaryactor DataCache {
private var cache: [String: Data] = [:]
func store(_ data: Data, forKey key: String) {
cache[key] = data // No await needed inside actor
}
nonisolated func cacheType() -> String {
return "DataCache" // No await needed - doesn't access isolated state
}
}async unnecessarily - async calling convention has overheadDispatchSemaphore with async/await - risk of deadlockTask.checkCancellation()Menu-bar app windows open behind everything / hide on click-away. Two separate causes, usually hit together:
.accessory activation policy means the app is never brought forward when a window opens.Settings scene is an NSPanel, which in an accessory app defaults to hidesOnDeactivate = true.Fix both: switch to .regular while the window is open, clear hidesOnDeactivate, then revert on NSWindow.willCloseNotification.
NSApp.setActivationPolicy(.regular)
NSApp.activate()
openSettings()
DispatchQueue.main.async { // window does not exist until SwiftUI opens it
guard let w = NSApp.windows.first(where: {
$0.identifier?.rawValue.hasPrefix("com_apple_SwiftUI_Settings") == true }) else { return }
w.hidesOnDeactivate = false
w.makeKeyAndOrderFront(nil)
w.orderFrontRegardless()
}
// On willCloseNotification: NSApp.setActivationPolicy(.accessory)Cost: a Dock icon while the window is open. SettingsLink cannot do this - it has no action hook, so use @Environment(\.openSettings).
JSONEncoder.dateEncodingStrategy = .iso8601 truncates to whole seconds. Silently breaks any sub-second timing logic. Use .custom with ISO8601DateFormatter + .withFractionalSeconds.
UpperCamelCaselowerCamelCase-able, -ible, -ing suffixes (Equatable, ProgressReporting)make (x.makeIterator())x.sort() / x.sorted())x.distance(to: y))x.append(y), x.sort())min(number1, number2)Int64(someUInt32)x.removeBoxes(havingLength: 12)Property wrappers no longer infer actor isolation automatically.
@MainActor
struct LogInView: View {
@StateObject private var model = ViewModel()
}static let config = Config() // Constant - OK
@MainActor static var state = State() // Actor-isolated - OK
nonisolated(unsafe) var cache = [String: Data]() // Unsafe - use with caution@UIApplicationMain/@NSApplicationMain deprecated (use @main)any required for existential types// Basic availability
@available(macOS 15, iOS 18, *)
func modernAPI() { }
// Deprecation with message
@available(*, deprecated, message: "Use newMethod() instead")
func oldMethod() { }
// Renaming with auto-fix
@available(*, unavailable, renamed: "newMethod")
func oldMethod() { }
// Runtime checking
if #available(iOS 18, *) {
// iOS 18+ code
}
// Inverted checking (Swift 5.6+)
if #unavailable(iOS 18, *) {
// iOS 17 and lower
}Key differences:
deprecated - Warning, allows usageobsoleted - Error from specific versionunavailable - Error, completely prevents usage@MainActor for UI, actors for mutable state)count(where:) over filter().countInlineArray for fixed-size, performance-critical dataSendable conformancesDetailed reference material to load when in-depth information is needed:
@available attribute usage, deprecation strategies, and platform version managementLoad these references when detailed information is needed beyond the core guidelines provided above.
#available for runtime platform detection@available for API availability marking© sammcj, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in Skills/swift-development of sammcj/agentic-coding.
Open the folder on GitHubat commit 62ba5a2
Swift Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Swift Development this skillsammcj/agentic-coding | 162 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| macOS Spm App PackagingDimillian/Skills | 4k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| macOS DevelopmentKartikLabhshetwar/better-shot | 2.4k | 2 repos | ~735 | Automated safety check: Pass | Custom licence | |
| Snapshot Testsmicrosoft/SwiftStreamingMarkdown | 378 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Write SwiftKartikLabhshetwar/better-shot | 2.4k | 4 repos | ~10k | Automated safety check: Pass | Custom licence | |
| Build Run Debugrobinebers/openusage | 4.3k | — | ~1.8k | Automated safety check: Pass | MIT |
Dimillian/Skills
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.
KartikLabhshetwar/better-shot
Comprehensive macOS development guidance including Swift 6+, SwiftUI, SwiftData, architecture patterns, AppKit bridging, and macOS 26 Tahoe APIs.
microsoft/SwiftStreamingMarkdown
Record and validate swift-snapshot-testing snapshots in the SwiftStreamingMarkdown package: regenerate reference PNGs, run snapshot tests, and diff failed snapshots.
KartikLabhshetwar/better-shot
How to write modern Swift well — modeling with value types, Swift 6 data-race safety and approachable concurrency (@concurrent, main-actor-by-default, actors, task groups), protocols and generics…
robinebers/openusage
Build, run, and debug local macOS apps and desktop executables using shell-first Xcode and Swift workflows.
RayFernando1337/rayfernando-skills
Bootstrap agents for iOS, iPadOS, macOS, Swift, SwiftUI, SwiftData/Core Data, Swift Testing, Xcode build/test/debug, Simulator, App Intents, or XcodeBuildMCP work.
sammcj/agentic-coding
A skill your agent uses when generating songs with YuE2, covering a recording via SheetSage2 audio-to-ABC, editing a score or lyrics with melody preservation, or building a reproducible listening…
sammcj/agentic-coding
A skill your agent uses when creating or editing Bento (.bento.html) slide decks, including any request for a single-file HTML slide deck.
sammcj/agentic-coding
A skill your agent uses whenever the user wants you to manage, discuss or diagnose iDrive Backup configuration on macOS
sammcj/agentic-coding
Train custom TTS voices for Piper (ONNX format) using fine-tuning or from-scratch approaches.
sammcj/agentic-coding
Convert a PPTX slide deck into per-slide markdown that preserves both the verbatim text and the meaning of embedded screenshots, diagrams and charts in their original layout positions.
sammcj/agentic-coding
You MUST load this skill before the skill-creator skill AND before making ANY change to, or conducting a review of ANY Agent Skill.
Categories
You MUST activate this skill when working on Swift projects. An agent skill from sammcj/agentic-coding. Swift Development is an agent skill from sammcj/agentic-coding.
Swift Development fits situations like: tasks that involve iOS development.
Run `npx skills add sammcj/agentic-coding --skill swift-development -a claude-code`. Or copy the skill folder (Skills/swift-development in sammcj/agentic-coding) into .claude/skills/swift-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sammcj/agentic-coding --skill swift-development -a codex`. Or copy the skill folder (Skills/swift-development in sammcj/agentic-coding) into .agents/skills/swift-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sammcj/agentic-coding --skill swift-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/swift-development, .gemini/skills/swift-development, .github/skills/swift-development and .opencode/skills/swift-development in your project.
SKILL.md names no scripts, command-line tools or credentials: Swift Development is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Swift Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 10k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Swift Development: macOS Spm App Packaging (Dimillian/Skills, 4k stars), macOS Development (KartikLabhshetwar/better-shot, 2.4k stars), Snapshot Tests (microsoft/SwiftStreamingMarkdown, 378 stars) and Write Swift (KartikLabhshetwar/better-shot, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sammcj (a GitHub user) maintains it in sammcj/agentic-coding, which has 162 GitHub stars. The repository holds 62 skills in this directory. The repository was last updated on October 7, 2026.
Source: sammcj/agentic-coding on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.