mcpField
S
swift-concurrency-expert

swift-concurrency-expert

github.com/steipete开发7.4k166 次安装1 天前更新
代码仓库

关于 swift-concurrency-expert

用于审查和修复 Swift 6.2+ 代码并发问题的技能,重点关注 actor 隔离、Sendable 安全和尽量少改动行为,面向处理编译诊断或数据竞争风险的开发者。

主要功能

  1. 01梳理编译器诊断信息
  2. 02检查 actor 隔离上下文
  3. 03采用最小化并发修复
  4. 04指导 Sendable 安全设计
  5. 05安全处理后台工作

适用场景

  1. 01解决 Swift 6.2 并发错误
  2. 02将 UI 类型隔离到 MainActor
  3. 03保护共享全局状态
  4. 04将高开销工作移出主线程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/steipete/agent-scripts --skill swift-concurrency-expert

安装后在 Claude Code 中输入/swift-concurrency-expert确认已加载。

附带文件references/swift-6-2-concurrency.mdreferences/swiftui-concurrency-tour-wwdc.md

详细介绍

Swift 并发专家

归属:复制自 @Dimillian 的 Dimillian/Skills(2025-12-31)。

概述

通过应用 actor 隔离、Sendable 安全和现代并发模式,在尽量不改变行为的前提下,审查并修复 Swift 6.2 及更高版本代码库中的 Swift 并发问题。

工作流

1. 分类问题
  • 收集准确的编译器诊断信息和出问题的符号。
  • 确认当前的 actor 上下文(@MainActor、actor、nonisolated),以及是否启用了默认 actor 隔离模式。
  • 确认代码是否与 UI 绑定,或是否旨在主 actor 之外运行。
2. 应用最小且安全的修复

优先选择在满足数据竞争安全要求的同时保留现有行为的修改。

常见修复:

  • 与 UI 绑定的类型:使用 @MainActor 标注类型或相关成员。
  • 主 actor 类型上的协议遵循:将遵循声明为隔离的(例如,extension Foo: @MainActor SomeProtocol)。
  • 全局/静态状态:使用 @MainActor 保护,或将其移入 actor。
  • 后台工作:将耗时工作移至 nonisolated 类型上的 @concurrent 异步函数,或使用 actor 保护可变状态。
  • Sendable 错误:优先使用不可变/值类型;仅在正确时添加 Sendable 遵循;除非能证明线程安全,否则避免使用 @unchecked Sendable。

参考资料

  • Swift 6.2 的变更、模式和示例,请参阅 references/swift-6-2-concurrency.md。
  • SwiftUI 专属并发指南,请参阅 references/swiftui-concurrency-tour-wwdc.md。

评论

支持 Markdown