mcpField
N
neo-swift

neo-swift

github.com/benknightdark开发735 次安装4 天前更新
代码仓库

关于 neo-swift

neo-swift 是面向 Swift 开发的技能,适用于编写、调试、重构和审查代码。它会结合目标 Swift 版本与平台,提供现代语言特性建议并检查并发安全、内存管理和代码规范。

主要功能

  1. 01识别 Swift 版本、平台和依赖管理
  2. 02应用现代 Swift 语法与并发
  3. 03检查内存生命周期和并发安全
  4. 04按目标版本优化代码与迁移建议

适用场景

  1. 01重构旧代码以采用结构化并发
  2. 02检查 Swift 6 并发安全与数据竞争
  3. 03为 SwiftUI、UIKit 或服务端 Swift 编写代码

安装

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

$npx skills add https://github.com/benknightdark/neo-skills --skill neo-swift

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
anti-patterns.md
coding-style.md
patterns.md

详细介绍

Modern Swift(5.0+)专家技能

触发条件

  • 用户要求编写、调试、重构或审查 Swift 代码。
  • 项目目录中包含 *.swift、Package.swift 或 *.xcodeproj。
  • 开发涉及 iOS(SwiftUI/UIKit)、macOS 或服务端 Swift(Vapor)。
  • 需要进行代码现代化改造(例如迁移到结构化并发或 Swift 6 语言模式)。

工作流

  1. 感知(版本意识):
    • 确认 Swift 版本(例如检查 Package.swift 或构建设置)。
    • 确定平台(SwiftUI 还是 UIKit、服务端还是应用)。
    • 评估依赖管理方式(Swift Package Manager、CocoaPods)。
  2. 推理(规划阶段):
    • 评估现代语法的使用情况(例如 async/await、Result、@propertyWrapper)。
    • 决定内存管理策略(ARC、weak/unowned)。
    • 对于 UI 任务,现代应用优先使用 SwiftUI,旧项目优先考虑 UIKit。
  3. 执行(实施阶段):
    • 编写简洁、符合 Swift 风格的代码,并遵循 Apple API 设计指南。
    • 实现类型安全、面向协议的解决方案。
    • 对异步操作使用结构化并发(Task、async let)。
  4. 验证(标准验证):
    • 使用捕获列表检查内存泄漏(循环引用)。
    • 验证 Swift 6 并发安全性(数据竞争检测)。
    • 确保命名符合标准:成员使用 lowercamelCase,类型使用 PascalCase。

功能路线图(Swift 5.0 - 6+)

Swift 5.0 - 5.4(基础)
  • Result 类型:标准化错误处理。
  • 属性包装器:封装属性逻辑(例如 @Published)。
  • 不透明类型:隐藏实现细节(some View)。
  • 结果构建器:支持 SwiftUI DSL。
Swift 5.5 - 5.10(现代并发)
  • Async/Await:线性异步代码。
  • Actor:线程安全的状态隔离。
  • 分布式 Actor:跨进程通信。
  • 不可复制类型:显式控制对象所有权。
Swift 6+(安全性与性能)
  • 完全数据隔离:在编译时防止数据竞争。
  • 类型化 Throws:显式定义错误类型。
  • 嵌入式 Swift:在受限环境中运行 Swift。

编码标准

  • 简洁性:适当使用尾随闭包和简写参数名。
  • 安全性:优先使用 if let 或 guard let,避免强制解包(!)。
  • 纯粹性:数据模型优先使用 struct(值类型),而非 class(引用类型)。
  • 并发:避免使用 Thread.sleep 或旧式完成处理程序;使用结构化并发。

交付内容

  • 针对版本优化的代码:使用目标 Swift 版本的最佳特性编写代码。
  • SwiftUI/UIKit 洞见:根据使用的 UI 框架推荐合适的模式。
  • 并发迁移:提供迁移到 Swift 6 严格并发检查的策略。

验证

  • 确保代码在目标 Swift 版本下编译时没有警告。
  • 验证闭包捕获列表能正确处理对象生命周期。
  • 确认错误处理正确使用 do-catch 或 throws 模式。

文档

官方参考资料
内部参考资料

评论

支持 Markdown