Claude Agent Skill · by Johnrogers

Swift Style

Install Swift Style skill for Claude Code from johnrogers/claude-swift-engineering.

Install
Terminal · npx
$npx skills add https://github.com/johnrogers/claude-swift-engineering --skill swift-style
Works with Paperclip

How Swift Style fits into a Paperclip company.

Swift Style drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md148 lines
Expand
---name: swift-styledescription: 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// Preferredlet maximumWidgetCount = 100func fetchUser(byID id: String) -> User``` ## Golden Path Left-hand margin is the happy path. Don't nest `if` statements. ```swift// Preferredfunc 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: ```swiftclass MyViewController: UIViewController {    // Core implementation} // MARK: - UITableViewDataSourceextension 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// Preferredfunc configure() {    backgroundColor = .systemBackground}``` ## Computed Properties Omit `get` for read-only: ```swiftvar 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: ```swiftvar names: [String] = []``` ## Syntactic Sugar ```swift// Preferredvar 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 ```swiftresource.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: ```swiftenum 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.