mcpField
G
guide-swift-concurrency

guide-swift-concurrency

github.com/prisma-labs-dev开发349454 次安装5 周前更新
代码仓库

关于 guide-swift-concurrency

guide-swift-concurrency 是用于审查和编写 Swift 并发代码的工作流与模式指南,面向 Swift 开发者。它聚焦真实的正确性问题,并通过参考资料覆盖 Swift 6.2、Actor、取消、异步流和测试。

主要功能

  1. 01审查 Swift 并发代码
  2. 02检查 Swift 6.2 并发行为
  3. 03评估 Actor 与隔离
  4. 04优先采用结构化并发模式
  5. 05检查取消处理与异步流
  6. 06指导并发迁移与测试

适用场景

  1. 01检查并发代码的正确性
  2. 02诊断严格并发编译错误
  3. 03迁移 GCD 或回调代码
  4. 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.md
async-streams.md
bridging.md
bug-patterns.md
cancellation.md
diagnostics.md
hotspots.md
interop.md
new-features.md
structured.md
testing.md
unstructured.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 参数。

审查流程

  1. 使用 references/hotspots.md 扫描已知的危险模式。
  2. 使用 references/new-features.md 检查 Swift 6.2 并发行为。
  3. 使用 references/actors.md 验证 actor 的可重入性和隔离性。
  4. 使用 references/structured.md 确认优先采用结构化并发。
  5. 使用 references/unstructured.md 检查非结构化任务的使用情况。
  6. 使用 references/cancellation.md 验证取消处理。
  7. 使用 references/async-streams.md 验证异步流和 continuation 的使用情况。
  8. 使用 references/bridging.md 检查同步与异步之间的桥接代码。
  9. 使用 references/interop.md 审查旧版并发迁移。
  10. 对照 references/bug-patterns.md 检查常见故障模式。
  11. 如果存在严格并发错误,使用 references/diagnostics.md 将诊断信息对应到修复方案。
  12. 如果正在审查测试,使用 references/testing.md 检查异步测试模式。

如果只处理部分内容,请仅加载相关的参考文件。

参考资料

主题参考资料
代码审查的 grep 目标——已知危险模式references/hotspots.md
Swift 6.2:默认隔离、@concurrent、Task.immediate、隔离的 deinitreferences/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 Sendablereferences/bridging.md
GCD 迁移、从 Combine 迁移到 AsyncSequence、完成处理程序、锁references/interop.md
大模型常产生的并发故障模式及其修复方法references/bug-patterns.md
严格并发编译器错误及其可能的修复方法references/diagnostics.md
异步测试模式、竞态检测、避免基于时序的测试references/testing.md

评论

支持 Markdown