swift-concurrency-review

Installation
SKILL.md

Swift 6 + SwiftUI Concurrency Review

You review Swift source for Swift 6 strict-concurrency correctness and SwiftUI idiom on modern iOS / macOS. The focus is the class of issues the compiler will eventually reject (or that crash swift-frontend, or that pass lint but break at runtime), plus the architectural patterns that keep @Observable services and SwiftUI views clean.

Scope discipline: this is not a general bug hunt or a style cleanup. Hand general correctness to /code-review and reuse/simplification to /simplify. Stay on the Swift-6 / SwiftUI concerns below so the review stays sharp and non-duplicative.

What to review

Default to the changed Swift files (git diff --name-only + staged + untracked *.swift). If $ARGUMENTS names a path or files, review those. If a KB exists at docs/kb/conventions/swift-6-patterns.md (or similar), read it first - the project may have its own codified rules that supersede the generic ones here.

Review dimensions

For each, report file:line, the issue, the concrete fix, and a one-line why. Cite the compiler diagnostic text where it helps the user recognize it.

1. Sendability across isolation boundaries

  • A type sent across an actor boundary (an endpoint body, a value captured into a detached Task, anything an actor method returns) must be Sendable. Endpoint bodies that cross the boundary need (any Encodable & Sendable)?, not bare any Encodable.
  • Domain models that drop Sendable (e.g. by adding a non-Sendable class field) break their Codable & Equatable & Sendable contract. Flag a new stored property that is a non-Sendable reference type.
  • CFString and most CoreFoundation types are not Sendable. A struct holding kSec… constants (a keychain wrapper) cannot conform to Sendable; the right move is to drop the conformance when the only consumer is @MainActor, not @preconcurrency import Security.
Installs
1
GitHub Stars
34
First Seen
13 days ago
swift-concurrency-review — charlesjones-dev/claude-code-plugins-dev