skills/generators/auth-flow/SKILL.md
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 skillsauth add taiberium/claude_code_setting auth-flowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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:
tools
Generates multi-step onboarding flows with persistence for iOS/macOS apps. Use when user wants to add onboarding, welcome screens, or first-launch experience.
tools
Generates an offline operation queue with persistence, automatic retry on connectivity, and conflict resolution. Use when user needs offline-first behavior, queued mutations, or pending operations that sync when back online.
development
Generates offer code distribution strategies and configuration guides for subscription and IAP promotions — including partner campaigns, influencer programs, and email re-engagement. Use when setting up offer codes for distribution.
tools
Generates a protocol-based networking layer with async/await, error handling, and swappable implementations. Use when user wants to add API client, networking, or HTTP layer.