swift-concurrency-expert — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited swift-concurrency-expert (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Attribution: Sourced from steipete/agent-scripts by Peter Steinberger. Originally created by @Dimillian from Dimillian/Skills (2025-12-31).
Review and fix Swift Concurrency issues in Swift 6.2+ codebases by applying actor isolation, Sendable safety, and modern concurrency patterns with minimal behavior changes.
@MainActor, nonisolated, and @Sendable@MainActor, actor, nonisolated) and whether a default actor isolation mode is enabled.Prefer edits that preserve existing behavior while satisfying data-race safety.
Common fixes:
@MainActor.extension Foo: @MainActor SomeProtocol).@MainActor or move into an actor.@concurrent async function on a nonisolated type or use an actor to guard mutable state.Sendable conformance only when correct; avoid @unchecked Sendable unless you can prove thread safety.// UI-bound type
@MainActor
class ViewModel: ObservableObject {
@Published var items: [Item] = []
}
// Protocol conformance
extension MyView: @MainActor SomeProtocol { ... }actor DataCache {
private var cache: [String: Data] = [:]
func store(_ data: Data, for key: String) {
cache[key] = data
}
func retrieve(for key: String) -> Data? {
cache[key]
}
}// Immutable value type - safe
struct Config: Sendable {
let apiKey: String
let baseURL: URL
}
// Only use @unchecked when you can manually guarantee thread safety
final class ThreadSafeCache: @unchecked Sendable {
private let lock = NSLock()
private var cache: [String: Any] = [:]
}@MainActor, actor, nonisolated, implicit)@unchecked Sendable without proven thread safetyawait or Task { } wrappers added~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.