К основному содержанию
скилл CX Codex

swift-style — скилл для Claude Code: стиль Swift и установка

Скилл задаёт правила именования, форматирования и организации Swift-кода. Пригодится, когда нужно привести новые или изменяемые файлы к единым соглашениям.

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

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

Скилл описывает стиль Swift: типы и протоколы именуются в UpperCamelCase, остальные сущности — в lowerCamelCase; для понятных имён не используют сокращения, кроме URL, ID и UUID. Также он рекомендует держать основной путь выполнения слева, применять guard вместо глубокой вложенности и группировать код с помощью extensions и MARK-комментариев.

В правилах есть рекомендации по пробелам, self, вычисляемым свойствам, замыканиям, выводу типов, контролю доступа и управлению памятью. Комментарии должны объяснять причину решения, а не пересказывать код. Код должен компилироваться без предупреждений — это стоит учитывать при правках, которые меняют поведение компилятора.

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

  • привести имена типов и переменных к соглашениям Swift
  • заменить глубокую вложенность на ранние выходы и guard
  • разложить реализацию по extensions и секциям MARK
  • проверить использование self и модификаторов доступа

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

  • Приведи этот Swift-файл к соглашениям скилла swift-style.
  • Проверь именование и вложенность в этом Swift-коде по правилам скилла.
  • Организуй методы и extensions в этом типе согласно swift-style.

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

1Через Skills CLI (Vercel)

npx skills add johnrogers/claude-swift-engineering --skill swift-style -a claude-code

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

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

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

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о swift-style

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

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

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

Он задаёт соглашения для Swift-кода: от именования и форматирования до ранних выходов, extensions и контроля доступа.

Какие сокращения разрешает swift-style?

Для имён рекомендуются полные слова; исключения — URL, ID и UUID. В руководстве также сказано избегать непоследовательного использования self.

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

SKILL.md · MIT
---
name: swift-style
description: Swift code style conventions for clean, readable code. Use when writing Swift code to ensure consistent formatting, naming, organization, and idiomatic patterns.
---

# Swift Style Guide

Code style conventions for clean, readable Swift code.

## Core Principles

**Clarity > Brevity > Consistency**

Code should compile without warnings.

## Naming

- `UpperCamelCase` — Types, protocols
- `lowerCamelCase` — Everything else
- Clarity at call site
- No abbreviations except universal (URL, ID)

```swift
// Preferred
let maximumWidgetCount = 100
func fetchUser(byID id: String) -> User
```

## Golden Path

Left-hand margin is the happy path. Don't nest `if` statements.

```swift
// Preferred
func process(value: Int?) throws -> Result {
    guard let value = value else {
        throw ProcessError.nilValue
    }
    guard value > 0 else {
        throw ProcessError.invalidValue
    }
    return compute(value)
}
```

## Code Organization

Use extensions and MARK comments:

```swift
class MyViewController: UIViewController {
    // Core implementation
}

// MARK: - UITableViewDataSource
extension MyViewController: UITableViewDataSource { }
```

## Spacing

- Braces open on same line, close on new line
- One blank line between methods
- Colon: no space before, one space after

## Self

Avoid `self` unless required by compiler.

```swift
// Preferred
func configure() {
    backgroundColor = .systemBackground
}
```

## Computed Properties

Omit `get` for read-only:

```swift
var diameter: Double {
    radius * 2
}
```

## Closures

Trailing closure only for single closure parameter.

## Type Inference

Let compiler infer when clear. For empty collections, use type annotation:

```swift
var names: [String] = []
```

## Syntactic Sugar

```swift
// Preferred
var items: [String]
var cache: [String: Int]
var name: String?
```

## Access Control

- `private` over `fileprivate`
- Don't add `internal` (it's the default)
- Access control as leading specifier

## Memory Management

```swift
resource.request().onComplete { [weak self] response in
    guard let self else { return }
    self.updateModel(response)
}
```

## Comments

- Explain **why**, not what
- Use `//` or `///`, avoid `/* */`
- Keep up-to-date or delete

## Constants

Use case-less enum for namespacing:

```swift
enum Math {
    static let pi = 3.14159
}
```

## Common Mistakes

1. **Abbreviations beyond URL, ID, UUID** — Abbreviations like `cfg`, `mgr`, `ctx`, `desc` hurt readability. Spell them out: `configuration`, `manager`, `context`, `description`. The three exceptions are URL, ID, UUID.

2. **Nested guard/if statements** — Deep nesting makes code hard to follow. Use early returns and guards to keep the happy path left-aligned.

3. **Inconsistent self usage** — Either always omit `self` (preferred) or always use it. Mixing makes code scanning harder and confuses capture semantics.

4. **Overly generic type names** — `Manager`, `Handler`, `Helper`, `Coordinator` are too vague. Names should explain responsibility: `PaymentProcessor`, `EventDispatcher`, `ImageCache`, `NavigationCoordinator`.

5. **Implied access control** — Don't skip access control. Explicit `private`, `public` helps future maintainers understand module boundaries. `internal` is default, so omit it.

© johnrogers · MIT · johnrogers/claude-swift-engineering

Похожие скиллы

Всё по теме «Мобильная разработка» →
vercel-react-native-skills vercel Набор правил по React Native и Expo для ИИ-агента: списки, анимации, навигация. Пригодится, когда агент правит мобильный код и надо, чтобы он делал это одинаково. CX Codex +1 255 200установок animate-expo emilkowalski Создаёт мобильные анимации для React Native и Expo на базе Reanimated и Gesture Handler. Помогает избежать просадок кадров на реальных устройствах. CX Codex +1 137 900установок mobile-native emilkowalski Убирает мелочи, из-за которых веб-приложение на телефоне выдаёт себя: залипающий hover, вспышку при тапе, ошибку с 100vh. CX Codex +1 86 600установок aso coreyhaines31 Анализирует страницы приложений в App Store и Google Play по правилам поисковой оптимизации. Находит слабые места в метаданных, графике и конверсии. CX Codex +1 75 400установок swiftui-pro Paul Hudson Проверяет SwiftUI-код на устаревшие API, ошибки в структуре и проблемы доступности. Пригодится для ревью и доработки проектов на SwiftUI. CX Codex +1 35 200установок orca-emulator stablyai Управляет iOS Simulator внутри Orca с живым экраном устройства. Пригодится для тапов, жестов, поворота экрана и сбора доказательств работы iOS-приложения. CX Codex +1 5 800установок

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

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