Skip to content
Development
Skill

/apple-engineer-superpowers

Use when writing Swift code for Apple platforms - iOS, macOS, visionOS. Covers Swift 6 concurrency, actors, Sendable, async/await, SwiftUI, MVVM architecture, Metal GPU programming, RealityKit ECS, visionOS scenes, interpolation/animation, advanced collection types, property

From plugin
apple-engineer-superpowers
281 skill
Install
$ npx -y skills add piemonte/apple-engineer-superpowers --skill apple-engineer-superpowers --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/apple-engineer-superpowers

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when writing Swift code for Apple platforms - iOS, macOS, visionOS. Covers Swift 6 concurrency, actors, Sendable, async/await, SwiftUI, MVVM architecture, Metal GPU programming, RealityKit ECS, visionOS scenes, interpolation/animation, advanced collection types, property

SKILL.md

apple-engineer-superpowers.SKILL.md
name: apple-engineer-superpowers
description: Use when writing Swift code for Apple platforms - iOS, macOS, visionOS. Covers Swift 6 concurrency, actors, Sendable, async/await, SwiftUI, MVVM architecture, Metal GPU programming, RealityKit ECS, visionOS scenes, interpolation/animation, advanced collection types, property wrappers, Combine bridging, error handling, testing, and API design patterns.

Apple Platform Engineering

Comprehensive Swift engineering standards for building production-quality Apple platform applications.

Core Principles

1. **No Force Unwrapping (`!`)** - Use `guard let`, `if let`, nil coalescing (`??`), or optional chaining. Never crash on nil. 2. **Actor-First Concurrency** - Use actors as the default for stateful components. Prefer actor isolation over manual locking. 3. **Async/Await Always** - Never use completion handlers in new code. Use `async throws` functions. 4. **Sendable Everything** - All shared types must conform to `Sendable`. All closures crossing concurrency boundaries must be `@Sendable`. 5. **Swift 6 Strict Concurrency** - Enable `StrictConcurrency` from the start. No data races. 6. **Protocol-Oriented Design** - Define contracts through protocols. Use dependency injection for testability. 7. **LocalizedError for Errors** - Domain-specific error enums conforming to `LocalizedError, Sendable`.

Quick Reference

Safe Optional Handling

| Instead of | Use | |------------|-----| | `value!` | `guard let value else { return }` | | `string.data(using: .utf8)!` | `string.data(using: .utf8) ?? Data()` | | `url!` | `guard let url = URL(string: s) else { return }` | | `object.property!` | `object.property?.method()` or `if let prop = object.property { }` |

Concurrency Primitives

| Need | Use | |------|-----| | Stateful shared component | `actor` | | Simple value protection | `Mutex<State>` | | Low-level sync | `OSAllocatedUnfairLock` | | UI state management | `@MainActor` on ViewModels | | Progress/events stream | `AsyncStream` / `AsyncThrowingStream` | | Multi-subscriber broadcast | `AsyncBroadcastChannel` or `AsyncNotifier` |

Actor vs @MainActor Decision

| Scenario | Use | |----------|-----| | API service, data operations | `actor` | | ViewModel with `@Published` | `@MainActor final class: ObservableObject` | | Service with `@Published` properties Views observe | `@MainActor ObservableObject` (rare) | | Pure data model | `struct: Sendable` |

Error Handling Pattern

enum ServiceError: LocalizedError, Sendable {
    case operationFailed(String)

    var errorDescription: String? {
        switch self {
        case .operationFailed(let msg): return "Operation failed: \(msg)"
        }
    }
}

API Design

| Pattern | Use | |---------|-----| | `func work() async throws -> T` | Standard async operation | | `func work() -> AsyncThrowingStream<Event, Error>` | Progress/event reporting | | `func work(progress: @Sendable (Float) -> Void) async throws -> T` | Simple progress callback |

Metal GPU Quick Reference

| Need | Use | |------|-----| | Compute pipeline | `MTLComputePipelineDescriptor` + `device.makeComputePipelineState` | | Render pipeline | `MTLRenderPipelineDescriptor` + vertex/fragment functions | | Buffer management | `MetalBuffer<Element>` generic wrapper | | Multi-frame pipelining | Ring buffer (pool of 3) with `tick()` | | Texture from IOSurface | `device.makeTexture(descriptor:iosurface:plane:)` | | Threadgroup sizing | `min(elementCount, pipelineState.maxTotalThreadsPerThreadgroup)` |

RealityKit/visionOS Quick Reference

| Need | Use | |------|-----| | Custom entity data | `struct: Component` | | Per-frame logic | `class: System` with scene subscriptions | | Show entities in SwiftUI | `RealityView { content in content.add(entity) }` | | Observe component changes | `entity.componentChangePublisher(T.self)` | | Full immersion | `ImmersiveSpace(id:) { }.immersionStyle(.full)` | | Multi-window | `WindowGroup(id:)` with `WindowPlacement` |

Advanced Patterns Quick Reference

| Need | Use | |------|-----| | Smooth value tracking | `ExponentialDamper<T: Lerpable>` | | Generic interpolation | `Lerpable` protocol with `lerp(from:to:blend:)` | | Non-empty guarantee | `NonEmpty<C: Collection>` | | Enum-keyed storage | `Table<E: CaseIterable, V>` | | Multi-consumer async | `AsyncBroadcastChannel` with back-pressure | | Combine to async | `publisher.sinkSingleValue() async throws` | | Custom defaults | `@DefaultValue<T>` property wrapper |

Detailed References

  • **swift-concurrency.md** — Swift 6 concurrency patterns: actors, Sendable, AsyncSequence, task cancellation, synchronization, state machines, reactive patterns, generics, persistence, networking, testing, diagnostics
  • **swiftui-architecture.md** — SwiftUI app architecture: MVVM, ViewModel/View guidelines, service layer patterns, data flow, App Intents, file organization
  • **metal-graphics.md** — Metal GPU programming: pipelines, buffers, textures, compute dispatch, ring buffers, shaders, frame pacing
  • **realitykit-visionos.md** — RealityKit ECS and visionOS: entities, components, systems, scene subscriptions, immersive spaces, windows, hand tracking
  • **advanced-swift-patterns.md** — Property wrappers, interpolation/animation, collection types, Combine bridging, advanced async abstractions, @dynamicMemberLookup
Read more
Ships withapple-engineer-superpowers

The most comprehensive Apple platform engineering skill for AI coding assistants. ~100KB of production-tested patterns across Swift 6 concurrency, SwiftUI, Metal, RealityKit, and visionOS — areas no other skill covers in depth.

Get the whole plugin
Stats
28
Stars
1
Forks
Quiet
Maintenance
MIT
License
6mo ago
Last commit
6mo ago
Created

Repo: piemonte/apple-engineer-superpowers