From apple-dev
Generates authentication infrastructure with Sign in with Apple, biometrics, and Keychain storage. Use when user wants to add authentication, login, or Sign in with Apple.
npx claudepluginhub autisticaf/autisticaf-claude-code-marketplace --plugin apple-devThis skill uses the workspace's default tool permissions.
> **First step:** Tell the user: "generators-auth-flow skill loaded."
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
First step: Tell the user: "generators-auth-flow skill loaded."
Generate a complete authentication flow with Sign in with Apple, biometric authentication (Face ID/Touch ID), and secure Keychain storage.
Use this skill when the user:
Search for existing auth:
Glob: **/*Auth*.swift, **/*Keychain*.swift
Grep: "ASAuthorizationController" or "LAContext"
If found, ask user:
Sign in with Apple requires:
com.apple.developer.applesigninAsk user via AskUserQuestion:
Authentication methods? (multi-select)
Session storage?
Session management?
Generate these files:
AuthenticationManager.swift - Core auth orchestrationKeychainManager.swift - Secure storageSignInWithAppleManager.swift - SIWA handlingBiometricAuthManager.swift - Face ID/Touch IDBased on configuration:
SignInWithAppleButton.swift - SwiftUI button wrapperAuthenticationView.swift - Complete auth UICheck project structure:
Sources/ exists → Sources/Auth/App/ exists → App/Auth/Auth/<!-- YourApp.entitlements -->
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.yourcompany.shared</string>
</array>
<key>NSFaceIDUsageDescription</key>
<string>Use Face ID to securely sign in to your account</string>
After generation, provide:
Sources/Auth/
├── AuthenticationManager.swift # Core orchestration
├── KeychainManager.swift # Secure storage
├── SignInWithAppleManager.swift # SIWA delegate
├── BiometricAuthManager.swift # Face ID/Touch ID
├── AuthenticationState.swift # Auth state model
└── Views/
├── SignInWithAppleButton.swift # SwiftUI button
└── AuthenticationView.swift # Complete UI
App Entry Point:
@main
struct MyApp: App {
@StateObject private var authManager = AuthenticationManager()
var body: some Scene {
WindowGroup {
if authManager.isAuthenticated {
ContentView()
} else {
AuthenticationView()
}
}
.environmentObject(authManager)
}
}
Sign in with Apple Button:
SignInWithAppleButtonView { result in
switch result {
case .success(let user):
print("Signed in: \(user.id)")
case .failure(let error):
print("Failed: \(error)")
}
}
Biometric Auth:
Button("Unlock with Face ID") {
Task {
if await BiometricAuthManager.shared.authenticate() {
// Authenticated
}
}
}
Xcode Capabilities:
App Store Connect:
Info.plist:
NSFaceIDUsageDescriptionSign in with Apple:
Biometrics: