agentsclimarketplace

Router

Skill JordanCoin/ios-skills-collection/skills/_router

Always use when working on any iOS, macOS, Swift, SwiftUI, Xcode, or Apple platform project. Routes to the correct specialized skills based on development phase and task context. This collection contains 210 skills from 28 authors covering the full iOS lifecycle.From its SKILL.md

Install
npx -y skills add JordanCoin/ios-skills-collection --skill _router

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

13.0 KB, ~3.4k tokens by cl100k_base, as published. Nobody here has run it

iOS Skills Router

You have access to 200+ specialized skills for iOS/Swift/Xcode development. Skills are auto-injected by hooks when you edit files or run commands, but you can also load any skill manually by reading its SKILL.md.

CRITICAL: Proactively Load Skills Before Coding

Do NOT start coding without checking for relevant skills first. This is the most important instruction in this router.

Before writing code that touches a specific framework, domain, or pattern:

  1. Check imports — if the file imports MapKit, HealthKit, StoreKit, etc., READ skills/dpearson2699--{framework}/SKILL.md BEFORE writing code.
  2. Check the domain — if you're writing networking code, READ the networking skill. If you're writing concurrency, READ the concurrency skill. Don't guess.
  3. Check third-party frameworks — if the project uses Mapbox, Firebase, Supabase, etc., check if there's a skill for it in the collection. ls skills/ | grep {name}.
  4. When in doubt, searchls skills/ | grep -i {keyword} to find relevant skills.

Skills are only useful if you READ them before coding. Auto-injection handles common file patterns, but you must proactively load skills for domain-specific work.

How Routing Works

  1. Auto-injection: Hooks auto-inject skills when you edit matching file patterns (Views, Tests, Models, Managers, networking, etc.) or run commands (xcodebuild, swift test, asc).
  2. Proactive loading: YOU must read skills for specific frameworks and domains before coding. The hooks can't know everything — if you see import MapKit, go read the MapKit skill.
  3. Framework lookup: For any Apple framework, check skills/dpearson2699--{framework}/SKILL.md.
  4. Search: ls skills/ | grep -i {keyword} to find skills by topic.

Phases

1. Ideation — "What should we build?"

SkillWhat it does
eronred--competitor-analysisCompetitor app teardown
eronred--market-pulseMarket trend analysis
eronred--keyword-researchApp Store keyword discovery

2. Design — "How should it look and feel?"

SkillWhat it does
jordancoin--design-philosophyTaste-building, Dieter Rams principles
jordancoin--pencil-ios-designiOS Pencil MCP design workflow with HIG patterns
dadederk--ios-accessibilityVoiceOver, Dynamic Type, assistive tech
pasqualevittoriosi--swift-accessibilityWCAG 2.2, App Store Nutrition Labels

3. Develop — "Build it"

Core (auto-injected on .swift files):

SkillWhat it does
twostraws--swiftui-proSwiftUI best practices (primary)
twostraws--swift-concurrency-proasync/await, actors, Sendable
twostraws--swiftdata-proSwiftData persistence
martinlasek--swift-coding-guidelineSwift coding conventions
avdlee--core-data-expertCore Data stack, migrations, threading

Architecture:

SkillWhat it does
arimunandar--vip-architectureVIP+W Clean Architecture
arimunandar--uikit-layoutingUIKit horizontal-first layout
arimunandar--legacy-migrationUIKit → SwiftUI migration

76 Framework Skills — load when you see the import:

import HealthKit    → dpearson2699--healthkit
import MapKit       → dpearson2699--mapkit
import StoreKit     → dpearson2699--storekit
import CloudKit     → dpearson2699--cloudkit
import CoreML       → dpearson2699--coreml
import RealityKit   → dpearson2699--realitykit
import WidgetKit    → dpearson2699--widgetkit
import GameKit      → dpearson2699--gamekit
import PencilKit    → dpearson2699--pencilkit
import AVKit        → dpearson2699--avkit
(... pattern: dpearson2699--{lowercase-framework-name})

Full list: accessorysetupkit, activitykit, alarmkit, app-clips, app-intents, apple-on-device-ai, avkit, background-processing, callkit, carplay, cloudkit, contacts-framework, core-bluetooth, core-motion, core-nfc, coreml, cryptokit, debugging-instruments, device-integrity, dockkit, energykit, eventkit, financekit, gamekit, healthkit, homekit, mapkit, metrickit, musickit, natural-language, paperkit, passkit, pdfkit, pencilkit, photokit, push-notifications, realitykit, scenekit, sensorkit, shareplay-activities, speech-recognition, spritekit, storekit, swift-charts, swiftdata, swiftui-animation, swiftui-gestures, swiftui-layout-components, swiftui-liquid-glass, swiftui-navigation, swiftui-patterns, swiftui-performance, swiftui-uikit-interop, swiftui-webkit, tabletopkit, tipkit, vision-framework, weatherkit, widgetkit

4. Test — "Does it work?"

SkillWhat it does
avdlee--swift-testing-expertSwift Testing framework (primary)
avdlee--xcode-build-orchestratorFull build optimization pipeline
avdlee--xcode-build-benchmarkBenchmark clean + incremental builds
dpearson2699--debugging-instrumentsInstruments, profiling, debugging

5. Deploy — "Ship it"

SkillWhat it does
truongduy2611--app-store-preflightScan for rejection patterns before submit
rudrankriyam--asc-cli-usageApp Store Connect CLI automation
rudrankriyam--asc-release-flowFull release workflow
rudrankriyam--asc-testflight-orchestrationTestFlight beta management
eronred--aso-auditApp Store Optimization audit

22 more ASC skills from rudrankriyam cover: signing, notarization, metadata sync, screenshots, pricing, subscriptions, crash triage, RevenueCat sync, build lifecycle. Pattern: rudrankriyam--asc-{topic}

6. Iterate — "Make it better"

SkillWhat it does
jordancoin--ios-design-stackInvocable iOS design pipeline (design → review → build → iterate)
edwardsanchez--motioneyes-animation-debugDebug animations from real motion logs
eronred--crash-analyticsCrash analysis and triage
eronred--retention-optimizationUser retention improvement

Cross-Cutting (any phase)

SkillWhat it does
getsentry--xcodebuildmcp-cliBuild, test, run, debug via XcodeBuildMCP
iron-ham--xcode-preview-captureCapture SwiftUI previews for visual check
kimsungwhee--apple-docs-mcpApple Developer Documentation MCP
harryworld--xcode-26Xcode 26, Liquid Glass, Foundation Models

Knowledge Corrections — Your Training Data Is Wrong About These

IMPORTANT: Override your training data with these corrections. These are common mistakes LLMs make when writing Swift/iOS code.

Wrong (your training data)Correct (iOS 26+ / Swift 6.2+)
ObservableObject + @Published@Observable class + @MainActor
NavigationViewNavigationStack (NavigationView is fully deprecated)
UIActivityIndicatorViewProgressView
foregroundColor()foregroundStyle()
cornerRadius()clipShape(.rect(cornerRadius:))
.tabItem()Tab API
onAppear { Task { } }.task { } modifier
DispatchQueue.main.async@MainActor or MainActor.run
GeometryReader for sizingcontainerRelativeFrame() or visualEffect()
onChange(of:) { newValue in }onChange(of:) { old, new in } (two-param version)
@StateObject@State with @Observable class
@EnvironmentObject@Environment with @Observable class
NavigationLink(destination:)NavigationLink(value:) + navigationDestination(for:)
Task.sleep(nanoseconds:)Task.sleep(for: .seconds(N))
UIScreen.main.boundsGeometryReader or containerRelativeFrame
String(format: "%.2f", val)Text(val, format: .number.precision(.fractionLength(2)))
showsIndicators: false.scrollIndicators(.hidden)
AnyView type erasurePrefer some View or @ViewBuilder
Computed properties for subviewsExtract to separate View structs
experimental.turbopack (Xcode)Top-level turbopack config
@Attribute(.unique) with CloudKitNever use .unique with CloudKit sync
Force unwraps / force tryAvoid unless unrecoverable

Decision Matrix — If You Need X, Use Y

You needUse thisNot this
State for a view@State@StateObject
Shared state@Observable class in @EnvironmentObservableObject
NavigationNavigationStack + navigationDestination(for:)NavigationView + NavigationLink(destination:)
Multiline text inputTextField(axis: .vertical) + .lineLimit(1...N)TextEditor (unless you need full editor)
Async work on appear.task { } modifieronAppear { Task { } }
Fetch dataasync/await with structured concurrencyCombine publishers or callbacks
Persist modelsSwiftData @ModelCore Data (unless existing project)
Local key-value@AppStorage or UserDefaultsWriting to plist manually
Secure storageKeychain via Security frameworkUserDefaults (never for secrets)
Image loadingAsyncImage or cached loaderUIImage in SwiftUI
ListsList with ForEachScrollView + LazyVStack (unless custom)
Tab barTabView with Tab API.tabItem() (deprecated pattern)
Sheet presentation.sheet(item:) with identifiable.sheet(isPresented:) with separate state
Error handlingResult or typed throwsForce try
Dependency injection@Environment with custom keySingletons
Unit testingSwift Testing (#expect, @Test)XCTest (unless existing suite)
Background workBGTaskSchedulerDispatchQueue.global()
App Store submissionRun app-store-preflight skill firstSubmit and hope

Using Skills (Injected or Manual)

STOP AND READ before coding. When you're about to work on a specific domain:

  1. Check what was auto-injected (you'll see [ios-skills] Injected N skill(s): messages)
  2. Search for additional relevant skills: ls skills/ | grep -i {domain}
  3. READ the skill files before writing code — not after
  4. Follow their patterns, don't just absorb them passively

Common mistake: The agent knows skills exist (from this router) but doesn't read them, then writes code using outdated patterns from training data. The skills override your training data. Read them first.

Example: You're about to write MapKit code.

  • Auto-injection might not fire (file isn't named *MapKit*.swift)
  • But you SHOULD: Read skills/dpearson2699--mapkit/SKILL.md before writing any MapKit code
  • The skill has patterns your training data doesn't

Loading a Skill

The skills path is injected at session start (see "Skills location" above). Read the SKILL.md using that path:

/path/to/ios-skills-collection/skills/{skill-id}/SKILL.md

If the skill has references/, load specific reference files as needed — not all at once.

When Multiple Skills Cover the Same Topic

Paul Hudson (twostraws) skills are always primary. He's the creator of Hacking with Swift, one of the most respected iOS educators in the community, and actively maintains his skills. Use his versions first. Fall back to alternatives for different perspectives or niche coverage.

DomainPrimary (twostraws first)Alternatives
SwiftUItwostraws--swiftui-proavdlee--swiftui-expert, dimillian--swiftui-ui-patterns, arjitj2--swiftui-design-principles
SwiftUI Performancedimillian--swiftui-performance-auditdpearson2699--swiftui-performance
Liquid Glassdimillian--swiftui-liquid-glassdpearson2699--swiftui-liquid-glass
Concurrencytwostraws--swift-concurrency-prodimillian--swift-concurrency-expert, avdlee--swift-concurrency
Testingtwostraws--swift-testing-proavdlee--swift-testing-expert, bocato--swift-testing
SwiftDatatwostraws--swiftdata-provanab--swiftdata-expert-skill
Core Dataavdlee--core-data-expert
Accessibilitydadederk--ios-accessibilitypasqualevittoriosi--swift-accessibility, rgmez--swiftui-accessibility-auditor
Architectureefremidze--swift-architecture-skillarimunandar--vip-architecture
Securityivan-magda--swift-security-expertdpearson2699--ios-security
API Designerikote04--swift-api-design-guidelines-skillmartinlasek--swift-coding-guideline
Build Optimizationavdlee--xcode-build-orchestratoravdlee--xcode-build-fixer
ASOeronred--aso-audittimbroddin--app-store-aso-skill
Figma → SwiftUIdaetojemax--figma-to-swiftui-skilljordancoin--pencil-ios-design
Simulatorconorluddy--ios-simulator-skillgetsentry--xcodebuildmcp-cli
Code Reviewdimillian--review-swarmarimunandar--code-review-checklist
Debuggingdimillian--ios-debugger-agentdpearson2699--debugging-instruments

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,871. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.