К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

swift-expert — скилл для Claude Code: что делает и как установить

Скилл для разработки на Swift: архитектура, SwiftUI, async/await, акторы и тесты. Пригодится, когда агент пишет или разбирает код приложения под iOS и macOS.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Jeffallan/claude-skills --skill swift-expert -a claude-code
Открыть на GitHub

Что делает swift-expert

Скилл ведёт агента по пяти шагам: разбор целей платформ и зависимостей, проектирование протоколов, реализация, профилирование, тесты. Между этапами стоят проверки — swift build, потом swift build -warnings-as-errors (так всплывают предупреждения об изоляции акторов и Sendable), в конце swift test.

Подробные материалы лежат в отдельных файлах references/: swiftui-patterns.md, async-concurrency.md, protocol-oriented.md, memory-performance.md, testing-patterns.md. Агент подгружает нужный по контексту задачи. Внутри есть пары примеров «так делай / так не делай»: @Observable вместо ObservableObject, актор вместо класса с NSLock, нативный async/await вместо обёртки в withCheckedThrowingContinuation.

Нужен Swift 5.9+. Приёмы вроде @Observable на старом тулчейне просто не соберутся. Если проект живёт на прежней версии — это первое, что стоит проверить перед установкой.

Какие задачи решает

  • Спроектировать протоколы с associated type под несколько экранов
  • Перевести сетевой слой с completion handlers на async/await
  • Убрать гонки в общем кэше картинок через актор
  • Разобрать ворнинги изоляции акторов и Sendable в сборке
  • Написать асинхронные тесты на XCTest для вью-модели

Примеры запросов агенту

  • Разбери модуль на Swift: какие цели платформ и зависимости, потом предложи протоколы для репозитория
  • Перепиши этот код с completion handlers на async/await и проверь, что всё Sendable
  • Напиши вью на SwiftUI с @Observable и тесты на XCTest к ней

Как установить swift-expert

1Через Skills CLI (Vercel)

npx skills add Jeffallan/claude-skills --skill swift-expert -a claude-code

2Вручную: положить файлы

~/.claude/skills/swift-expert/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/swift-expert/

Из того же набора61

Весь набор →
laravel-specialist https://github.com/Jeffallan Настраивает агента на разработку бэкенда на Laravel 10+ и PHP 8.2+. Помогает писать модели Eloquent, очереди Horizon, API resources и тесты Pest. Claude Code CX Codex Cursor +1 23 300установок golang-pro https://github.com/Jeffallan Скилл помогает писать идиоматичный Go: разбирать конкурентный код, строить микросервисы и проверять производительность. Пригодится для goroutines, gRPC и тестов. Claude Code CX Codex Cursor +1 18 900установок php-pro https://github.com/Jeffallan Задаёт правила разработки на PHP 8.3+ для Laravel и Symfony: включает strict_types, анализ в PHPStan на уровне 9 и тесты PHPUnit или Pest. Claude Code CX Codex Cursor +1 15 500установок flutter-expert https://github.com/Jeffallan Скилл для разработки кросс-платформных приложений на Flutter 3+ и Dart. Помогает с виджетами, управлением состоянием через Riverpod или Bloc, маршрутизацией GoRouter и оптимизацией производительности. Claude Code CX Codex Cursor +1 14 300установок typescript-pro https://github.com/Jeffallan Настраивает строгую типизацию TypeScript, генерирует брендированные типы и связывает tRPC. Пригодится при проектировании надёжных API и сложных generic-структур. Claude Code CX Codex Cursor +1 14 200установок kubernetes-specialist https://github.com/Jeffallan Скилл помогает создавать и проверять Kubernetes-манифесты, настраивать безопасность и разбирать сбои подов. Пригодится для деплоя и сопровождения кластерных workloads. Claude Code CX Codex Cursor +1 14 100установок devops-engineer https://github.com/Jeffallan Скилл создаёт Dockerfile, CI/CD-конфигурации и манифесты Kubernetes. Нужен для инфраструктуры, деплоя и разбора инцидентов. Claude Code CX Codex Cursor +1 11 200установок wordpress-pro https://github.com/Jeffallan Скилл помогает разрабатывать темы и плагины WordPress, блоки Gutenberg и магазины WooCommerce. Нужен для задач с REST API, хуками, безопасностью и производительностью. Claude Code CX Codex Cursor +1 9 700установок

Похожие

pufferlib K-Dense-AI Скилл для работы с PufferLib: помогает выбрать версию, настроить окружение, валидировать контракт и запустить обучение. Нужна Python 3.10+ и native C/CUDA для полного функционала. Claude Code CX Codex Cursor +1 1 900установок simpy K-Dense-AI Помогает строить, тестировать и анализировать модели дискретно-событийного моделирования на Python с библиотекой SimPy. Пригодится для расчёта очередей и логистики. Claude Code CX Codex Cursor +1 1 900установок navigation-3 Google LLC Справочник по Jetpack Navigation 3 для агента: миграция с Navigation 2 и готовые рецепты — deep links, несколько back stack, сцены, Hilt, ViewModel. Claude Code CX Codex Cursor +1 3 200установок V3 Core Implementation ruvnet Собирает каркас ядра claude-flow v3 на TypeScript и раздаёт домены субагенту core-implementer. Пригодится, когда проект уже размечен по DDD. Claude Code CX Codex Cursor +1 1 100установок freecad-scripts официальный github Помогает писать Python-скрипты и макросы для FreeCAD: 3D-геометрию, параметрические объекты, GUI на PySide. Пригодится, если вы автоматизируете CAD. GitHub Copilot 1 200установок migrate-to-shoehorn Matt Pocock Переводит type assertions с as в тестах на функции из @total-typescript/shoehorn. Нужен для частичных объектов и намеренно неверных данных в проверках. Claude Code 475 388установок write-swift emilkowalski Скилл помогает писать, проверять и переносить код на Swift с учётом модели языка. Подойдёт, когда нужно разобраться с конкурентностью, ошибкой или циклом удержания объектов. Claude Code CX Codex Cursor +1 117 500установок megacave JuliusBrussee Переводит ответы ассистента на классический китайский язык (вэньянь) для экономии места на экране. Активируется командами /megacave или /caveman wenyan. Claude Code CX Codex Cursor +1 24 400установок

Вопросы о swift-expert

Как установить swift-expert в Claude Code?

Выполните npx skills add Jeffallan/claude-skills --skill swift-expert -a claude-code. Файл скилла появится по пути ~/.claude/skills/swift-expert/SKILL.md.

Что делает swift-expert?

Задаёт агенту порядок работы над Swift-проектом: анализ архитектуры, протоколы, реализация с async/await, профилирование, тесты. Плюс подтягивает справочники по SwiftUI, конкурентности, памяти и XCTest.

Какая версия Swift нужна?

Swift 5.9 и новее: примеры опираются на @Observable и на макросы наблюдения. На более старом тулчейне часть кода из справочников не скомпилируется.

Исходный текст

SKILL.md · MIT
---
name: swift-expert
description: Builds iOS/macOS/watchOS/tvOS applications, implements SwiftUI views and state management, designs protocol-oriented architectures, handles async/await concurrency, implements actors for thread safety, and debugs Swift-specific issues. Use when building iOS/macOS applications with Swift 5.9+, SwiftUI, or async/await concurrency. Invoke for protocol-oriented programming, SwiftUI state management, actors, server-side Swift, UIKit integration, Combine, or Vapor.
license: MIT
metadata:
  author: https://github.com/Jeffallan
  company: https://synergetic.solutions
  version: "1.1.0"
  domain: language
  triggers: Swift, SwiftUI, iOS development, macOS development, async/await Swift, Combine, UIKit, Vapor
  role: specialist
  scope: implementation
  output-format: code
  related-skills: 
---

# Swift Expert

## Core Workflow

1. **Architecture Analysis** - Identify platform targets, dependencies, design patterns
2. **Design Protocols** - Create protocol-first APIs with associated types
3. **Implement** - Write type-safe code with async/await and value semantics
4. **Optimize** - Profile with Instruments, ensure thread safety
5. **Test** - Write comprehensive tests with XCTest and async patterns

> **Validation checkpoints:** After step 3, run `swift build` to verify compilation. After step 4, run `swift build -warnings-as-errors` to surface actor isolation and Sendable warnings. After step 5, run `swift test` and confirm all async tests pass.

## Reference Guide

Load detailed guidance based on context:

| Topic | Reference | Load When |
|-------|-----------|-----------|
| SwiftUI | `references/swiftui-patterns.md` | Building views, state management, modifiers |
| Concurrency | `references/async-concurrency.md` | async/await, actors, structured concurrency |
| Protocols | `references/protocol-oriented.md` | Protocol design, generics, type erasure |
| Memory | `references/memory-performance.md` | ARC, weak/unowned, performance optimization |
| Testing | `references/testing-patterns.md` | XCTest, async tests, mocking strategies |

## Code Patterns

### async/await — Correct vs. Incorrect

```swift
// ✅ DO: async/await with structured error handling
func fetchUser(id: String) async throws -> User {
    let url = URL(string: "https://api.example.com/users/\(id)")!
    let (data, _) = try await URLSession.shared.data(from: url)
    return try JSONDecoder().decode(User.self, from: data)
}

// ❌ DON'T: mixing completion handlers with async context
func fetchUser(id: String) async throws -> User {
    return try await withCheckedThrowingContinuation { continuation in
        // Avoid wrapping existing async APIs this way when a native async version exists
        legacyFetch(id: id) { result in
            continuation.resume(with: result)
        }
    }
}
```

### SwiftUI State Management

```swift
// ✅ DO: use @Observable (Swift 5.9+) for view models
@Observable
final class CounterViewModel {
    var count = 0
    func increment() { count += 1 }
}

struct CounterView: View {
    @State private var vm = CounterViewModel()

    var body: some View {
        VStack {
            Text("\(vm.count)")
            Button("Increment", action: vm.increment)
        }
    }
}

// ❌ DON'T: reach for ObservableObject/Published when @Observable suffices
class LegacyViewModel: ObservableObject {
    @Published var count = 0  // Unnecessary boilerplate in Swift 5.9+
}
```

### Protocol-Oriented Architecture

```swift
// ✅ DO: define capability protocols with associated types
protocol Repository<Entity> {
    associatedtype Entity: Identifiable
    func fetch(id: Entity.ID) async throws -> Entity
    func save(_ entity: Entity) async throws
}

struct UserRepository: Repository {
    typealias Entity = User
    func fetch(id: UUID) async throws -> User { /* … */ }
    func save(_ user: User) async throws { /* … */ }
}

// ❌ DON'T: use classes as base types when a protocol fits
class BaseRepository {  // Avoid class inheritance for shared behavior
    func fetch(id: UUID) async throws -> Any { fatalError("Override required") }
}
```

### Actor for Thread Safety

```swift
// ✅ DO: isolate mutable shared state in an actor
actor ImageCache {
    private var cache: [URL: UIImage] = [:]

    func image(for url: URL) -> UIImage? { cache[url] }
    func store(_ image: UIImage, for url: URL) { cache[url] = image }
}

// ❌ DON'T: use a class with manual locking
class UnsafeImageCache {
    private var cache: [URL: UIImage] = [:]
    private let lock = NSLock()  // Error-prone; prefer actor isolation
    func image(for url: URL) -> UIImage? {
        lock.lock(); defer { lock.unlock() }
        return cache[url]
    }
}
```

## Constraints

### MUST DO
- Use type hints and inference appropriately
- Follow Swift API Design Guidelines
- Use `async/await` for asynchronous operations (see pattern above)
- Ensure `Sendable` compliance for concurrency
- Use value types (`struct`/`enum`) by default
- Document APIs with markup comments (`/// …`)
- Use property wrappers for cross-cutting concerns
- Profile with Instruments before optimizing

### MUST NOT DO
- Use force unwrapping (`!`) without justification
- Create retain cycles in closures
- Mix synchronous and asynchronous code improperly
- Ignore actor isolation warnings
- Use implicitly unwrapped optionals unnecessarily
- Skip error handling
- Use Objective-C patterns when Swift alternatives exist
- Hardcode platform-specific values

## Output Templates

When implementing Swift features, provide:
1. Protocol definitions and type aliases
2. Model types (structs/classes with value semantics)
3. View implementations (SwiftUI) or view controllers
4. Tests demonstrating usage
5. Brief explanation of architectural decisions

Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)

[Documentation](https://jeffallan.github.io/claude-skills/skills/language/swift-expert/)

© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой