Tried Using Xcode 27's Official Skills from Claude Code

Tried Using Xcode 27's Official Skills from Claude Code

I tried loading the skills bundled with Xcode 27 as a Claude Code plugin.
2026.09.30

This page has been translated by machine translation. View original

Introduction

Xcode 27 comes bundled with a variety of useful skills for AI agents[1].

These are referenced by Xcode's built-in AI coding assistant[2], and you can extract them as a plugin for Claude Code using the xcrun agent command.

In this article, we'll load this plugin into Claude Code and try out some of the skills.

Loading as a Plugin

Running xcrun agent plugin path generates a plugin for Claude Code.

xcrun agent plugin path --plugin-format claude
/Users/username/Library/Developer/Xcode/CodingAssistant/ExportedPlugins/27A266a/claude

The structure of the generated directory is as follows. In addition to the skills, it also includes .mcp.json for registering Xcode MCP.

claude
├── .claude-plugin/
│   └── plugin.json
├── .mcp.json
└── skills/

By setting this path in the environment variable CLAUDE_CODE_PLUGIN_DIRS, the plugin will be automatically loaded when Claude Code starts. Add the following to ~/.zshrc or similar.

export CLAUDE_CODE_PLUGIN_DIRS="$(xcrun agent plugin path --plugin-format claude)"

Loaded skills are prefixed with xcode-integration:, and Xcode MCP connects under the name plugin:xcode-integration:xcode.

List of Bundled Skills

Skill Name Description
audit-xcode-security-settings Audit security-related build settings and enable them incrementally
app-intents-whats-new-27 App Intents APIs added or changed in iOS 26 / 27
device-interaction Operate physical devices and simulators to verify app behavior
adopt-c-bounds-safety Introducing the C language bounds safety extension -fbounds-safety
swiftui-specialist SwiftUI best practices and performance
app-intents-specialist App Intents best practices
modernize-tests Migration from XCTest to Swift Testing
uikit-app-modernization Multi-window support for UIKit apps
swiftui-whats-new-27 SwiftUI APIs added or changed in iOS 27
building-document-based-swiftui-applications Building document-based apps using the Document protocol
accessibility-dynamic-type-specialist Auditing Dynamic Type support
accessibility-voiceover-specialist Auditing VoiceOver support
accessibility-sufficient-contrast-specialist Auditing contrast ratios
translation Translating strings in String Catalogs
translation-coordinator Coordinating translation work across the entire project

Note that translation-coordinator has user-invocable: false, so it cannot be called manually. It appears to be a skill that agents load as needed.

Trying It Out in Claude Code

Comparing Implementations Using iOS 27 New Features

Let's compare the generated code with and without the swiftui-whats-new-27 skill. Since this skill contains information about new features in iOS 27, it should make implementing iOS 27-compatible code easier.

The subject I chose is swipe actions in a ScrollView. Starting from iOS 27, swipeActions works on scroll containers other than List as long as you attach swipeActionsContainer() to the container side. Previously, swipe actions were exclusive to List, so using swipe actions elsewhere required a custom implementation.

As a starting point, I prepared StickerListView.swift that simply displays a 3-row list using ScrollView and LazyVStack, and used it as a base to have Claude Code implement the following prompt.

claude -p 'StickerListView.swift の ScrollView と LazyVStack で作ったリストの各行にスワイプで削除するアクションを付けてください。デプロイメントターゲットは iOS 27 です。'

The results are as follows.

Item Without Skill With Skill
Implementation Custom implementation using DragGesture or UIGestureRecognizerRepresentable swipeActions and swipeActionsContainer()
Lines of code 160 lines 31 lines
Time taken 81 seconds 17 seconds

When using the skill, it correctly implemented the feature using iOS 27's new APIs, resulting in fewer lines of code.

On the other hand, without the skill, it said the following and implemented the swipe behavior from scratch. This shows that iOS 27 knowledge has not yet been sufficiently incorporated.

私が把握している範囲では、SwiftUI 標準の `.swipeActions` は `List` の行でしか動作せず、`ScrollView` と `LazyVStack` の組み合わせではエラーにならないまま何も起きません。iOS 27 でこの制限が変わったかは確認できていないため、どの OS バージョンでも動く独自実装にしました。

Build Settings Review

I created a simple iOS app that just displays Hello World, and had audit-xcode-security-settings review the build settings.

Since this skill and the next device-interaction use Xcode MCP, run them with the project open in Xcode. On the first run, you'll need to approve the agent's usage on the Xcode side.

claude -p 'Xcode で開いている SampleApps.xcodeproj の SecApp ターゲットについて、セキュリティ関連のビルド設定をレビューし、推奨される設定を有効化してください。'

The following issues were found.

  • ENABLE_ENHANCED_SECURITY remains at its default value of NO, disabling Enhanced Security protections
  • Pointer Authentication is disabled, and only the arm64 slice is being built
  • There is no Entitlements file, and runtime protections are not configured

When I asked Claude Code to apply the fixes right away, it resolved the issues smoothly.

Note that the review content and reasoning are recorded in xcode-security-settings.md at the project root. On subsequent reviews, the process involves reading this file to carry over previous decisions.

Verifying Behavior in the Simulator

device-interaction is a skill for sub-agents, useful for actually verifying screen display and gesture operations after implementing UI. Supported devices are iOS, watchOS, and tvOS 27.0 or later simulators.

As a test, I prepared an iOS counter app and intentionally introduced a bug to verify whether the skill was actually looking at the screen. When the value is 2, pressing the + button makes the value jump to 4 instead of 3.

Button("+") { count = count == 2 ? 4 : count + 1 }

Now let's request a check with the following prompt.

claude -p 'CounterApp.xcodeproj を Xcode で開き、iPhone 18 Pro のシミュレータでアプリを起動してください。+ ボタンを 3 回押すと「Count: 3」と表示されることを、実際に画面を操作して確認してください。'

The simulator actually launched and was operated automatically. The following output was ultimately obtained.

確認の結果、期待どおりの動作にはなっていませんでした。+ ボタンを 3 回押した後の表示は「Count: 3」ではなく「Count: 4」でした。

| 操作 | 表示 |
|---|---|
| 起動直後 | `Count: 0` |
| 1 回目のタップ後 | `Count: 1` |
| 2 回目のタップ後 | `Count: 2` |
| 3 回目のタップ後 | `Count: 4` |

## 原因

`CounterApp/CounterApp.swift:19` で、値が 2 のときだけ 3 ではなく 4 を代入しています。

It checked the screen after each button press and even identified the bug and the specific line of code causing it!

Summary

We loaded the skills bundled with Xcode 27 as a plugin and used them from Claude Code.

Especially with skills that combine with Xcode MCP, everything from changing build settings to operating the simulator could be executed from Claude Code, making for a smooth and excellent experience.

If you're developing iOS apps in an AI-driven workflow, definitely give it a try.

脚注
  1. https://developer.apple.com/documentation/xcode-release-notes/xcode-27-release-notes ↩︎

  2. https://developer.apple.com/documentation/xcode/extending-and-customizing-agents/ ↩︎


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

Share this article

AI白書