关于 guide-swift-concurrency
guide-swift-concurrency 是用于审查和编写 Swift 并发代码的工作流与模式指南,面向 Swift 开发者。它聚焦真实的正确性问题,并通过参考资料覆盖 Swift 6.2、Actor、取消、异步流和测试。
主要功能
- 01审查 Swift 并发代码
- 02检查 Swift 6.2 并发行为
- 03评估 Actor 与隔离
- 04优先采用结构化并发模式
- 05检查取消处理与异步流
- 06指导并发迁移与测试
适用场景
- 01检查并发代码的正确性
- 02诊断严格并发编译错误
- 03迁移 GCD 或回调代码
- 04检查异步测试模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ prisma-labs-dev/ apple-skills --skill guide-swift-concurrency安装后在 Claude Code 中输入/guide-swift-concurrency确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/actors.mdasync-streams.mdbridging.mdbug-patterns.mdcancellation.mddiagnostics.mdhotspots.mdinterop.mdnew-features.mdstructured.mdtesting.mdunstructured.md详细介绍
Guide Skill — 这是专家工作流/模式指南,而非 API 参考文档。 最初由 Paul Hudson 编写,源自 twostraws/Swift-Concurrency-Agent-Skill。MIT License。
Swift 并发模式
审查并编写 Swift 并发代码,确保其正确性、采用现代 API,并遵循项目约定。只报告真正的问题——不要吹毛求疵或凭空捏造问题。
核心指示
- 目标为 Swift 6.2 或更高版本,并启用严格并发检查。
- 优先使用结构化并发(任务组),而非非结构化并发(
Task {})。 - 新代码优先使用 Swift 并发,而非 GCD。底层代码、框架互操作或对性能要求极高的同步工作中,仍可使用 GCD。
- 不要建议使用
@unchecked Sendable来解决编译器错误——优先考虑 actor、值类型或sending参数。
审查流程
- 使用
references/hotspots.md扫描已知的危险模式。 - 使用
references/new-features.md检查 Swift 6.2 并发行为。 - 使用
references/actors.md验证 actor 的可重入性和隔离性。 - 使用
references/structured.md确认优先采用结构化并发。 - 使用
references/unstructured.md检查非结构化任务的使用情况。 - 使用
references/cancellation.md验证取消处理。 - 使用
references/async-streams.md验证异步流和 continuation 的使用情况。 - 使用
references/bridging.md检查同步与异步之间的桥接代码。 - 使用
references/interop.md审查旧版并发迁移。 - 对照
references/bug-patterns.md检查常见故障模式。 - 如果存在严格并发错误,使用
references/diagnostics.md将诊断信息对应到修复方案。 - 如果正在审查测试,使用
references/testing.md检查异步测试模式。
如果只处理部分内容,请仅加载相关的参考文件。
参考资料
| 主题 | 参考资料 |
|---|---|
| 代码审查的 grep 目标——已知危险模式 | references/hotspots.md |
Swift 6.2:默认隔离、@concurrent、Task.immediate、隔离的 deinit | references/new-features.md |
| Actor 可重入性、全局 actor 推断、隔离模式 | references/actors.md |
任务组、async let、withDiscardingTaskGroup、并发限制 | references/structured.md |
Task 与 Task.detached 的区别,以及何时 Task {} 是代码异味 | references/unstructured.md |
协作式取消、withTaskCancellationHandler、有问题的模式 | references/cancellation.md |
AsyncStream.makeStream(of:)、continuation 生命周期、背压 | references/async-streams.md |
已检查的 continuation、包装委托、@unchecked Sendable | references/bridging.md |
| GCD 迁移、从 Combine 迁移到 AsyncSequence、完成处理程序、锁 | references/interop.md |
| 大模型常产生的并发故障模式及其修复方法 | references/bug-patterns.md |
| 严格并发编译器错误及其可能的修复方法 | references/diagnostics.md |
| 异步测试模式、竞态检测、避免基于时序的测试 | references/testing.md |
评论
支持 Markdown