SwiftUI Agent Skills 指南

兩套熱門 iOS AI 程式設計 Skill 庫,代表了兩種不同做法:一套把 Xcode 內的 Apple 文件作為事實依據,另一套把現代 Apple 開發拆成 84 個可單獨安裝的專門 Skill。

只選一套:追求 Apple 原始文件的限制與減少 API 幻覺,選 ameyalambat128/swiftui-skills;需要涵蓋端到端 iOS 工程,並依 framework 精準路由,選 dpearson2699/swift-ios-skills。最合適的搭配:前者作為事實依據層,後者只安裝專案實際需要的 5–10 個專門 Skill。

AI 寫 SwiftUI 最常見的問題,通常不是語法錯誤,而是程式碼只是「看起來正確」:狀態所有權不清楚、導覽模式過時、並行處理界線模糊,或者混入一個不存在的 API。Agent Skills 能讓一般模型依照明確的 Apple 平台工程限制協作。

Agent Skill 究竟是什麼?

Skill 通常是一個包含 SKILL.md 的目錄。它會告訴 Codex、Claude Code、Cursor 等程式設計 Agent:何時啟用這項能力、應該先閱讀哪些參考資料、產生程式碼時要遵循哪些規則,以及最後要以什麼格式輸出。它不是 Xcode extension,也不是 Swift package;它更像供 AI 的「團隊工程手冊 + 專門知識套件」。

與把所有規則塞進一段很長的 prompt 相比,Skill 可以依任務載入。處理 SwiftUI 動畫時載入動畫指南,處理 StoreKit 時載入購買與交易驗證規則,除錯捲動停頓時再載入效能與 Instruments 指南。這種按需載入的 context,通常更準確,也能節省 token。

兩種做法,一表比較

比較項目ameyalambat128/swiftui-skillsdpearson2699/swift-ios-skills
形式1 個整合型 Skill84 個獨立 Skill,9 類
主要來源從本機 Xcode 擷取 Apple AdditionalDocumentationrepository 維護者撰寫的指南、範例與參考資料
涵蓋範圍SwiftUI 與 Apple 新的平台功能端到端 iOS 工程,從 SwiftUI、資料到 AI、硬體與發佈
更新方式重新從本機 Xcode 擷取文件從 repository 更新個別 Skill
適合情境重視 Apple 原始指南、API 可用範圍與審查依據希望依 framework 選用功能,並涵蓋完整開發流程的團隊
授權條款MITPolyForm Perimeter 1.0.0

做法一:把 Xcode 文件作為 AI 的事實依據

Repository 01

ameyalambat128/swiftui-skills

一個整合型 Skill,安裝時從本機 Xcode 26+ 擷取 Apple 內附的 AdditionalDocumentation。repository 不會重新散佈 Apple 文件;參考資料會在使用者的 Mac 上產生。

  • MIT
  • macOS
  • Xcode 26+
  • local-first

這套做法最重要的設計,是明確規定「所有事實與 API 都必須以本機 /docs 為準」。撰寫程式碼前先選擇文件,審查程式碼時列出使用過的文件;如果資料中找不到對應型別或 API,就應該說明不確定之處,而不是捏造看似合理的名稱。

擷取的內容不只涵蓋 SwiftUI layout,還包含 App Intents、AlarmKit、StoreKit、WebKit、SwiftData 繼承、Swift Concurrency、Liquid Glass、visionOS Widget,以及 InlineArray、Span 等底層效能原語。

它的優勢在於來源品質,而不是 Skill 數量。如果主要問題是 AI 經常使用過時的 modifier、漏掉 availability 檢查,或產生不符合 Apple 慣例的 view 結構,這套做法能直接處理這些問題。

需要留意的限制

  • 需要 macOS 與 Xcode 26 或更高版本;文件目錄尚未完成擷取時,Skill 依規則不應繼續提供 SwiftUI 指南。
  • 它的入口較廣。複雜專案仍需在任務中指定明確目標,例如「依 Apple 文件審查狀態所有權與導覽」。
  • 本機 Xcode 版本決定了參考資料版本,團隊應統一 toolchain,避免同一任務得出互相衝突的可用範圍結論。

做法二:84 個可搭配使用的 iOS 專門 Skill

Repository 02

dpearson2699/swift-ios-skills

面向 iOS 26+ 與 Swift 6.3 的獨立 Skill 套件。每個 Skill 各自完整,不互相依賴,可以只安裝專案實際需要的部分。

  • 84 skills
  • 9 categories
  • Agent Skills standard
  • PolyForm Perimeter

這個 repository 的優勢是路由精準。不必每次都把完整的 Apple 開發知識放進 context:一個使用 SwiftData、StoreKit 2、App Intents 與 WidgetKit 的訂閱制應用程式,可以只安裝這幾項,再搭配 SwiftUI patterns、Swift Concurrency、測試與輔助使用 Skill。

以下是截至本文更新時的完整 84 個 Skill 目錄。展開各組即可確認是否涵蓋專案的技術組合。

SwiftUI 10 skills
Core Swift 10 skills
App Experience Frameworks 15 skills
Data & Service Frameworks 8 skills
AI & Machine Learning 5 skills
iOS Engineering 14 skills
Hardware & Device Integration 8 skills
Platform Integration 10 skills
Gaming 4 skills

如何選擇:從任務出發,不看數量

情境 A:剛開始用 AI 撰寫 SwiftUI

先安裝 swiftui-skills 用來套用 Apple 文件限制,再從 84 個 Skill 中加入 swiftui-patterns、swiftui-navigation、swift-concurrency、swift-testing 與 ios-accessibility。這五項涵蓋大多數新專案最容易出錯的地方。

情境 B:在既有產品中開發功能

依目前的技術組合選擇,不要因為未來可能用到就先安裝。訂閱制應用程式加入 storekit;有系統入口加入 app-intents 與 widgetkit;大量使用資料的應用程式加入 swiftdata 或 core-data;裝置端 AI 產品加入 apple-on-device-ai。

情境 C:做程式碼審查與可靠性改善

優先選用 swiftui-performance、debugging-instruments、metrickit、swift-security、ios-accessibility 和 app-store-review。這組更像發佈前的檢查關卡,而不是程式碼產生器。

建議起點:1 個事實依據 Skill + 5 個專門 Skill。等專案遇到新的真實任務再擴展。安裝全部 84 項並不會自動提高品質,反而可能增加路由和 context 雜訊。

安裝:通用 Agent 與 Codex

安裝本機 Apple 文件 Skill

# 直接安裝並從 Xcode 擷取文件
curl -fsSL https://swiftui-skills.ameyalambat.com/install | bash

# 或使用 skills CLI
npx skills add ameyalambat128/swiftui-skills

透過 pipe 執行遠端安裝 script 前,建議先檢查 repository 中的安裝 script。安裝完成後,請執行對應目錄中的 setup.sh,並重新啟動 Agent 會話,讓 Agent 能找到新的 Skill。

互動式選擇 84 個 Skill

# 開啟互動式選擇器,選擇 Skill 與目標 Agent
npx skills add dpearson2699/swift-ios-skills

# 只安裝指定能力
npx skills add dpearson2699/swift-ios-skills \
  --skill swiftui-patterns \
  --skill swift-concurrency \
  --skill swift-testing

# 檢查與更新
npx skills check
npx skills update

在 Codex 中安裝單一 Skill

$skill-installer install \
  https://github.com/dpearson2699/swift-ios-skills/tree/main/skills/swiftui-patterns

將最後一段目錄名稱換成目錄中的任一 Skill 名稱。專案專用規則適合放在專案 scope;跨專案通用的 SwiftUI 與工程規範,適合放在個人共用 scope。

更可靠的搭配工作流程

  1. 先聲明目標與 deployment target。告訴 Agent 是新功能、重構還是審查,並明確 iOS 最低版本,避免無條件使用較新的 API。
  2. 先讓事實依據層選擇文件。要求 swiftui-skills 列出本次使用的 Apple 文件與 availability 限制。
  3. 只載入任務對應的專門 Skill。例如導覽問題用 swiftui-navigation,購買功能用 storekit,不要把整個目錄都塞進一次任務。
  4. 要求完整驗證。讓 Agent 建置 target、執行測試,並在 UI 變更時檢查 Dynamic Type、VoiceOver 與深色模式。
  5. 將決策記錄在專案規則中。反覆出現的架構決策應放進專案自己的 Skill 或 AGENTS.md,而不是每次重新討論。

可重複使用的任務 prompt 可以這樣寫:

Use local Apple documentation as the API source of truth,
and use swiftui-patterns, swift-concurrency, and swift-testing.
Goal: implement a testable asynchronous loading screen for an iOS 26 app.
List the selected documentation and state ownership first, then modify the code, build, and run tests.
Do not introduce an architecture that the project does not already use.

版本與授權條款:最後兩項檢查

Apple 平台 API 更新很快。本文核對的上游版本分別是 2026 年 7 月 6 日的 swiftui-skills 提交與 2026 年 7 月 4 日的 swift-ios-skills 提交;repository 內容、支援版本與 Skill 數量都可能變動。對於 beta framework,務必用目前 Xcode SDK 再驗證一次。

授權條款也不同:swiftui-skills 使用 MIT;swift-ios-skills 使用 PolyForm Perimeter 1.0.0,允許用於應用程式開發與 closed-source 商業工作流程,但限制把這些內容重新包裝成競爭產品。在團隊內散佈、修改或進行商業整合前,應閱讀上游 LICENSE,而不是只依賴本文摘要。

常見問題

SwiftUI Agent Skill 會替代 Apple 官方文件嗎?

不會。Skill 的作用是幫助 Agent 在合適時機讀取並執行規則。最終的 API 可用範圍、平台行為與審核要求,仍應以目前 Xcode SDK 和 Apple 官方資料為準。

兩套 Skill 可以同時安裝嗎?

可以,而且兩者可以互補:一套提供本機 Apple 文件事實依據,另一套提供更聚焦的 framework 與工程工作流程。建議依專案選擇 Skill,不要預設全裝。

一次安裝全部 84 個會更好嗎?

不一定。長期維護多種 Apple 平台專案的團隊可能受益;單一產品通常從 5–10 個常用 Skill 開始,脈絡通常更清楚,也更容易知道每項建議的來源。

這些 Skill 只適用於 Codex 嗎?

不是。兩個 repository 都支援多種 Agent,包括 Codex、Claude Code、Cursor 等工具;具體安裝路徑與 Skill 探索機制以各 Agent 目前版本為準。

參考資料

  1. ameyalambat128/swiftui-skills
  2. dpearson2699/swift-ios-skills

本文是獨立整理,不代表 Apple 或 repository 作者。