Agent skill

Swift Concurrency 6 2

by affaan-m in affaan-m/ECC

Swift 6.2 可接近的并发性 — 默认单线程,@concurrent 用于显式后台卸载,隔离一致性用于主 actor 类型。

MITAuto-check passedMobile

Install Swift Concurrency 6 2

skills CLI
$ npx skills add affaan-m/ECC --skill swift-concurrency-6-2 -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install affaan-m/ECC swift-concurrency-6-2 --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/zh-CN/skills/swift-concurrency-6-2 .claude/skills/swift-concurrency-6-2 && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
swift-concurrency-6-2
GitHub stars
277k
Used in
3 other repos
Token cost
~1.4k tokens
SKILL.md length
220 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

Swift 6.2 可接近的并发性 — 默认单线程,@concurrent 用于显式后台卸载,隔离一致性用于主 actor 类型。

  • Works in 4 steps: 将包含类型标记为 nonisolated → 向函数添加 @concurrent → 如果函数还不是异步的,则添加 async → …
  • Tasks that involve iOS development
  • SKILL.md covers 何时启用, 核心问题:隐式的后台卸载, 核心模式 — 隔离的一致性 and 核心模式 — 全局和静态变量, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Swift Concurrency 6 2 is an agent skill from affaan-m/ECC. Swift 6.2 可接近的并发性 — 默认单线程,@concurrent 用于显式后台卸载,隔离一致性用于主 actor 类型。

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering iOS development. It works with Swift and Xcode. The repository describes itself as: The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. The licence is MIT.

When your agent uses it

  • Tasks that involve iOS development

Example prompts

  • “/swift-concurrency-6-2”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. 将包含类型标记为 nonisolated
  2. 向函数添加 @concurrent
  3. 如果函数还不是异步的,则添加 async
  4. 在调用点添加 await

What it can do on your machine

Read from SKILL.md and the folder at commit 2d515e4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Swift Concurrency 6 2 loads about 1.4k tokens when it runs. Until then it costs about 22 tokens; SKILL.md has 220 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~22
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from affaan-m/ECC at commit 2d515e4, republished under its MIT licence (© affaan-m). 220 words, ~1,371 tokens.

Download SKILL.mdSave it as .claude/skills/swift-concurrency-6-2/SKILL.md (or your agent's skills folder).
name
swift-concurrency-6-2
description
Swift 6.2 可接近的并发性 — 默认单线程,@concurrent 用于显式后台卸载,隔离一致性用于主 actor 类型。

Swift 6.2 可接近的并发

采用 Swift 6.2 并发模型的模式,其中代码默认在单线程上运行,并发是显式引入的。在无需牺牲性能的情况下消除常见的数据竞争错误。

何时启用

  • 将 Swift 5.x 或 6.0/6.1 项目迁移到 Swift 6.2
  • 解决数据竞争安全编译器错误
  • 设计基于 MainActor 的应用架构
  • 将 CPU 密集型工作卸载到后台线程
  • 在 MainActor 隔离的类型上实现协议一致性
  • 在 Xcode 26 中启用“可接近的并发”构建设置

核心问题:隐式的后台卸载

在 Swift 6.1 及更早版本中,异步函数可能会被隐式卸载到后台线程,即使在看似安全的代码中也会导致数据竞争错误:

swift
// Swift 6.1: ERROR
@MainActor
final class StickerModel {
    let photoProcessor = PhotoProcessor()

    func extractSticker(_ item: PhotosPickerItem) async throws -> Sticker? {
        guard let data = try await item.loadTransferable(type: Data.self) else { return nil }

        // Error: Sending 'self.photoProcessor' risks causing data races
        return await photoProcessor.extractSticker(data: data, with: item.itemIdentifier)
    }
}

Swift 6.2 修复了这个问题:异步函数默认保持在调用者所在的 actor 上。

swift
// Swift 6.2: OK — async stays on MainActor, no data race
@MainActor
final class StickerModel {
    let photoProcessor = PhotoProcessor()

    func extractSticker(_ item: PhotosPickerItem) async throws -> Sticker? {
        guard let data = try await item.loadTransferable(type: Data.self) else { return nil }
        return await photoProcessor.extractSticker(data: data, with: item.itemIdentifier)
    }
}

核心模式 — 隔离的一致性

MainActor 类型现在可以安全地符合非隔离协议:

swift
protocol Exportable {
    func export()
}

// Swift 6.1: ERROR — crosses into main actor-isolated code
// Swift 6.2: OK with isolated conformance
extension StickerModel: @MainActor Exportable {
    func export() {
        photoProcessor.exportAsPNG()
    }
}

编译器确保该一致性仅在主 actor 上使用:

swift
// OK — ImageExporter is also @MainActor
@MainActor
struct ImageExporter {
    var items: [any Exportable]

    mutating func add(_ item: StickerModel) {
        items.append(item)  // Safe: same actor isolation
    }
}

// ERROR — nonisolated context can't use MainActor conformance
nonisolated struct ImageExporter {
    var items: [any Exportable]

    mutating func add(_ item: StickerModel) {
        items.append(item)  // Error: Main actor-isolated conformance cannot be used here
    }
}

核心模式 — 全局和静态变量

使用 MainActor 保护全局/静态状态:

swift
// Swift 6.1: ERROR — non-Sendable type may have shared mutable state
final class StickerLibrary {
    static let shared: StickerLibrary = .init()  // Error
}

// Fix: Annotate with @MainActor
@MainActor
final class StickerLibrary {
    static let shared: StickerLibrary = .init()  // OK
}
MainActor 默认推断模式

Swift 6.2 引入了一种模式,默认推断 MainActor — 无需手动标注:

swift
// With MainActor default inference enabled:
final class StickerLibrary {
    static let shared: StickerLibrary = .init()  // Implicitly @MainActor
}

final class StickerModel {
    let photoProcessor: PhotoProcessor
    var selection: [PhotosPickerItem]  // Implicitly @MainActor
}

extension StickerModel: Exportable {  // Implicitly @MainActor conformance
    func export() {
        photoProcessor.exportAsPNG()
    }
}

此模式是选择启用的,推荐用于应用、脚本和其他可执行目标。

核心模式 — 使用 @concurrent 进行后台工作

当需要真正的并行性时,使用 @concurrent 显式卸载:

重要: 此示例需要启用“可接近的并发”构建设置 — SE-0466 (MainActor 默认隔离) 和 SE-0461 (默认非隔离非发送)。启用这些设置后,extractSticker 会保持在调用者所在的 actor 上,使得可变状态的访问变得安全。如果没有这些设置,此代码存在数据竞争 — 编译器会标记它。

swift
nonisolated final class PhotoProcessor {
    private var cachedStickers: [String: Sticker] = [:]

    func extractSticker(data: Data, with id: String) async -> Sticker {
        if let sticker = cachedStickers[id] {
            return sticker
        }

        let sticker = await Self.extractSubject(from: data)
        cachedStickers[id] = sticker
        return sticker
    }

    // Offload expensive work to concurrent thread pool
    @concurrent
    static func extractSubject(from data: Data) async -> Sticker { /* ... */ }
}

// Callers must await
let processor = PhotoProcessor()
processedPhotos[item.id] = await processor.extractSticker(data: data, with: item.id)

要使用 @concurrent:

  1. 将包含类型标记为 nonisolated
  2. 向函数添加 @concurrent
  3. 如果函数还不是异步的,则添加 async
  4. 在调用点添加 await

关键设计决策

决策原理
默认单线程最自然的代码是无数据竞争的;并发是选择启用的
异步函数保持在调用者所在的 actor 上消除了导致数据竞争错误的隐式卸载
隔离的一致性MainActor 类型可以符合协议,而无需不安全的变通方法
@concurrent 显式选择启用后台执行是一种有意的性能选择,而非偶然
MainActor 默认推断减少了应用目标中样板化的 @MainActor 标注
选择启用采用非破坏性的迁移路径 — 逐步启用功能

迁移步骤

  1. 在 Xcode 中启用:构建设置中的 Swift Compiler > Concurrency 部分
  2. 在 SPM 中启用:在包清单中使用 SwiftSettings API
  3. 使用迁移工具:通过 swift.org/migration 进行自动代码更改
  4. 从 MainActor 默认值开始:为应用目标启用推断模式
  5. 在需要的地方添加 @concurrent:先进行性能分析,然后卸载热点路径
  6. 彻底测试:数据竞争问题会变成编译时错误

最佳实践

  • 从 MainActor 开始 — 先编写单线程代码,稍后再优化
  • 仅对 CPU 密集型工作使用 @concurrent — 图像处理、压缩、复杂计算
  • 为主要是单线程的应用目标启用 MainActor 推断模式
  • 在卸载前进行性能分析 — 使用 Instruments 查找实际的瓶颈
  • 使用 MainActor 保护全局变量 — 全局/静态可变状态需要 actor 隔离
  • 使用隔离的一致性,而不是 nonisolated 变通方法或 @Sendable 包装器
  • 增量迁移 — 在构建设置中一次启用一个功能

应避免的反模式

  • 对每个异步函数都应用 @concurrent(大多数不需要后台执行)
  • 在不理解隔离的情况下使用 nonisolated 来抑制编译器错误
  • 当 actor 提供相同安全性时,仍保留遗留的 DispatchQueue 模式
  • 在并发相关的 Foundation Models 代码中跳过 model.availability 检查
  • 与编译器对抗 — 如果它报告数据竞争,代码就存在真正的并发问题
  • 假设所有异步代码都在后台运行(Swift 6.2 默认:保持在调用者所在的 actor 上)

何时使用

  • 所有新的 Swift 6.2+ 项目(“可接近的并发”是推荐的默认设置)
  • 将现有应用从 Swift 5.x 或 6.0/6.1 并发迁移过来
  • 在采用 Xcode 26 期间解决数据竞争安全编译器错误
  • 构建以 MainActor 为中心的应用架构(大多数 UI 应用)
  • 性能优化 — 将特定的繁重计算卸载到后台

© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in docs/zh-CN/skills/swift-concurrency-6-2 of affaan-m/ECC.

Open the folder on GitHubat commit 2d515e4

Used in 3 other repositories

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in affaan-m/ECC, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Swift Concurrency 6 2 next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Swift Concurrency 6 2 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Swift Concurrency 6 2 this skillaffaan-m/ECC277k3 repos~1.4kAutomated safety check: PassMIT
macOS Spm App PackagingDimillian/Skills4k5 repos~1.2kAutomated safety check: PassMIT
Spm Build Analysisomarshahine/HomeClaw1761 repos~1.5kAutomated safety check: PassMIT
Inspector MCPipedro/Inspector170—~3.4kAutomated safety check: PassMIT
Woo iOS Swift 6 Migrationwoocommerce/woocommerce-ios358—~3.2kAutomated safety check: NotesGPL-2.0
Mlkit Released-date/google-mlkit-swiftpm148—~1.7kAutomated safety check: PassApache-2.0

Similar skills

  • macOS Spm App Packaging

    Dimillian/Skills

    Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.

    4k GitHub starsUsed in 5 repos~1.2k tokens
    MobileAuto-check passed
  • Spm Build Analysis

    omarshahine/HomeClaw

    Analyze Swift Package Manager dependencies, package plugins, module variants, and CI-oriented build overhead that slow Xcode builds.

    176 GitHub starsUsed in 1 repo~1.5k tokens
    MobileAuto-check passed
  • Inspector MCP

    ipedro/Inspector

    A skill your agent uses when an agent needs to inspect a live iOS app through the Inspector MCP bridge, register or troubleshoot InspectorMCPServer for a consumer Xcode project, or query, resolve…

    170 GitHub stars~3.4k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Woo iOS Swift 6 Migration

    woocommerce/woocommerce-ios

    Diagnose and fix Swift strict-concurrency warnings in WooCommerce iOS.

    358 GitHub stars~3.2k tokensUpdated yesterday
    MobileAuto-check: notes
  • Mlkit Release

    d-date/google-mlkit-swiftpm

    A skill your agent uses when triaging incoming issues or PRs for google-mlkit-swiftpm, or when cutting a release.

    148 GitHub stars~1.7k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Builds, tests, archives, and deploys Swift packages and Xcode projects for Apple platforms.

    208 GitHub stars~2.8k tokensUpdated 2 mo ago
    MobileAuto-check: notes

More from affaan-m/ECC

All 682 skills in this repo
  • Skill Stocktake

    affaan-m/ECC

    Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.

    277k GitHub starsUsed in 5 repos~3.1k tokens
    Auto-check passed
  • Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.

    277k GitHub starsUsed in 3 repos~3.5k tokens
    Auto-check: notes
  • Docs Governance

    affaan-m/ECC

    Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.

    277k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Rules Distillation

    affaan-m/ECC

    Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.

    277k GitHub starsUsed in 2 repos~2.3k tokens
    Auto-check passed
  • Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.

    277k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Set an ECC-specific frontend design direction for production UI work.

    277k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed

Works with

Categories

Questions about Swift Concurrency 6 2

What does Swift Concurrency 6 2 do?

Swift 6.2 可接近的并发性 — 默认单线程,@concurrent 用于显式后台卸载,隔离一致性用于主 actor 类型。. Swift Concurrency 6 2 is an agent skill from affaan-m/ECC.

When should I use Swift Concurrency 6 2?

Swift Concurrency 6 2 fits situations like: tasks that involve iOS development.

How do I install Swift Concurrency 6 2 in Claude Code?

Run `npx skills add affaan-m/ECC --skill swift-concurrency-6-2 -a claude-code`. Or copy the skill folder (docs/zh-CN/skills/swift-concurrency-6-2 in affaan-m/ECC) into .claude/skills/swift-concurrency-6-2 in your project. Claude Code loads it when a task matches its description.

How do I install Swift Concurrency 6 2 in Codex?

Run `npx skills add affaan-m/ECC --skill swift-concurrency-6-2 -a codex`. Or copy the skill folder (docs/zh-CN/skills/swift-concurrency-6-2 in affaan-m/ECC) into .agents/skills/swift-concurrency-6-2 in your project. Codex loads it when a task matches its description.

Can I use Swift Concurrency 6 2 in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill swift-concurrency-6-2 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/swift-concurrency-6-2, .gemini/skills/swift-concurrency-6-2, .github/skills/swift-concurrency-6-2 and .opencode/skills/swift-concurrency-6-2 in your project.

What does Swift Concurrency 6 2 need to run?

SKILL.md names no scripts, command-line tools or credentials: Swift Concurrency 6 2 is instructions for the agent only.

Does Swift Concurrency 6 2 access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Swift Concurrency 6 2 safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Swift Concurrency 6 2 use?

Swift Concurrency 6 2 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Swift Concurrency 6 2 use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Swift Concurrency 6 2?

Skills that share tags, products or a category with Swift Concurrency 6 2: macOS Spm App Packaging (Dimillian/Skills, 4k stars), Spm Build Analysis (omarshahine/HomeClaw, 176 stars), Inspector MCP (ipedro/Inspector, 170 stars) and Woo iOS Swift 6 Migration (woocommerce/woocommerce-ios, 358 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Swift Concurrency 6 2?

affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,673 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 11, 2026.

Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.