Agent skill

foundation-models

Use when implementing on-device AI with Apple's Foundation Models framework (iOS 26+), building summarization/extraction/classification features, or using @Generable for type-safe structured output.

Stars 187
Forks 13

Install this agent skill to your Project

npx add-skill https://github.com/johnrogers/claude-swift-engineering/tree/main/plugins/swift-engineering/skills/foundation-models

SKILL.md

Foundation Models

Apple's on-device AI framework providing access to a 3B parameter language model for summarization, extraction, classification, and content generation. Runs entirely on-device with no network required.

Overview

Foundation Models enable intelligent text processing directly on device without server round-trips, user data sharing, or network dependencies. The core principle: leverage on-device AI for specific, contained tasks (not for general knowledge).

Reference Loading Guide

ALWAYS load reference files if there is even a small chance the content may be required. It's better to have the context than to miss a pattern or make a mistake.

Reference Load When
Getting Started Setting up LanguageModelSession, checking availability, basic prompts
Structured Output Using @Generable for type-safe responses, @Guide constraints
Tool Calling Integrating external data (weather, contacts, MapKit) via Tool protocol
Streaming AsyncSequence for progressive UI updates, PartiallyGenerated types
Troubleshooting Context overflow, guardrails, errors, anti-patterns

Core Workflow

  1. Check availability with SystemLanguageModel.default.availability
  2. Create LanguageModelSession with optional instructions
  3. Choose output type: plain String or @Generable struct
  4. Use streaming for long generations (>1 second)
  5. Handle errors: context overflow, guardrails, unsupported language

Model Capabilities

Use Case Foundation Models? Alternative
Summarization Yes -
Extraction (key info) Yes -
Classification Yes -
Content tagging Yes (built-in adapter) -
World knowledge No ChatGPT, Claude, Gemini
Complex reasoning No Server LLMs

Platform Requirements

  • iOS 26+, macOS 26+, iPadOS 26+, visionOS 26+
  • Apple Intelligence-enabled device (iPhone 15 Pro+, M1+ iPad/Mac)
  • User opted into Apple Intelligence

Common Mistakes

  1. Using Foundation Models for world knowledge — The 3B model is trained for on-device tasks only. It won't know current events, specific facts, or "who is X". Use ChatGPT/Claude for that. Keep prompts to: summarizing user's own content, extracting info, classifying text.

  2. Blocking the main thread — LanguageModelSession calls must run on a background thread or async context. Blocking the main thread locks UI. Always use Task { } or background queue.

  3. Ignoring context overflow — The model has finite context. If the user pastes a 50KB document, it will fail silently or truncate. Check input length and trim/truncate proactively.

  4. Forgetting to check availability — Not all devices support Foundation Models. Check SystemLanguageModel.default.availability before using. Graceful degradation is required.

  5. Ignoring guardrails — The model won't answer harmful queries. Instead of fighting it, design prompts that respect safety guidelines. Rephrasing requests usually works.

Expand your agent's capabilities with these related and highly-rated skills.

johnrogers/claude-swift-engineering

swiftui-advanced

Use when implementing gesture composition (simultaneous, sequenced, exclusive), adaptive layouts (ViewThatFits, AnyLayout, size classes), or choosing architecture patterns (MVVM vs TCA vs vanilla, State-as-Bridge). Covers advanced SwiftUI patterns beyond basic views.

187 13
Explore
johnrogers/claude-swift-engineering

ios-hig

Use when designing iOS interfaces, implementing accessibility (VoiceOver, Dynamic Type), handling dark mode, ensuring adequate touch targets, providing animation/haptic feedback, or requesting user permissions. Apple Human Interface Guidelines for iOS compliance.

187 13
Explore
johnrogers/claude-swift-engineering

ios-26-platform

Use when implementing iOS 26 features (Liquid Glass, new SwiftUI APIs, WebView, Chart3D), deploying iOS 26+ apps, or supporting backward compatibility with iOS 17/18.

187 13
Explore
johnrogers/claude-swift-engineering

swiftui-patterns

Use when implementing iOS 17+ SwiftUI patterns: @Observable/@Bindable, MVVM architecture, NavigationStack, lazy loading, UIKit interop, accessibility (VoiceOver/Dynamic Type), async operations (.task/.refreshable), or migrating from ObservableObject/@StateObject.

187 13
Explore
johnrogers/claude-swift-engineering

grdb

Use when writing raw SQL with GRDB, complex joins across 4+ tables, window functions, ValueObservation for reactive queries, or dropping down from SQLiteData for performance. Direct SQLite access for iOS/macOS with type-safe queries and migrations.

187 13
Explore
johnrogers/claude-swift-engineering

swift-testing

Use when writing tests with Swift Testing (@Test,

187 13
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results