技能简介
该技能用于审查和修复 Swift 6.2+ 代码中的并发问题,通过应用 Actor 隔离、Sendable 安全和现代并发模式,在最小改动现有行为的前提下解决数据竞争隐患。
能做什么
- 诊断 Swift 并发编译器错误并定位问题符号
- 识别当前 Actor 上下文(@MainActor、actor、nonisolated)
- 为 UI 绑定类型添加 @MainActor 注解
- 修复协议遵循的隔离性问题
- 保护全局/静态状态或将其移入 actor
- 将耗时操作移至后台并发执行
- 正确处理 Sendable 合规性,避免不当使用 @unchecked Sendable
使用说明
- 安装:该技能无需额外安装,直接在支持 MCP 的客户端中调用即可。
- 提供待审查的 Swift 文件或代码片段,以及具体的编译器报错信息。
- 技能会自动分析 Actor 上下文和隔离边界,给出最小改动的修复方案。
- 根据代码是否 UI 绑定,选择 @MainActor 注解或 nonisolated 并发函数。
- 参考内置文档了解 Swift 6.2 并发变更和 SwiftUI 特定指导。
输入与输出
见下方输入与输出表格。
| 项目 | 内容 |
|---|
| 输入 | Swift 源代码、编译器诊断信息、Actor 上下文说明 |
| 输出 | 修复后的并发安全代码、逐条修改理由、备选方案 |
| 适用人群 | iOS/macOS 开发者、Swift 服务端开发者、Swift 6 迁移项目团队 |
| 不包含 | Objective-C 混编审查、其他语言并发问题、性能调优 |
风险提示
- @unchecked Sendable 可能掩盖线程安全问题,仅在能证明线程安全时使用
- 过度使用 @MainActor 可能导致主线程阻塞
- 修复方案需验证不破坏原有业务逻辑
- Swift 6.2+ 的严格并发检查可能暴露历史代码隐患
来源信息
原始链接:https://github.com/openclaw/skills/tree/main/skills/steipete/swift-concurrency-expert/SKILL.md
来源类型:GitHub 仓库