如何阻止神经网络生成过时的 SwiftUI 代码
如果你尝试过用 Claude 或 Cursor 中的模型等现代 LLM 生成 iOS 布局,你可能已经注意到一些奇怪的地方。模型自信地输出一个看起来应该能工作的界面,编译器也没有报错,但底层却充满了过时的 API。例如,Apple 几年前归档的 NavigationView,或者一些动画的手动解决方案,而内置修饰符早已存在很长时间了。
在 VoiceOver 方面情况更糟。助手们喜欢堆叠多层自定义手势,完全破坏了视障用户的无障碍访问功能。
Hacking with Swift 项目的作者 Paul Hudson 系统地解决了这个问题。他创建了仓库 twostraws/SwiftUI-Agent-Skill,它教会助手们声明式 UI 的正确习惯。
SwiftUI Pro 是什么
本质上,它是开放 Agent Skills 标准中的一个专业技能。该格式被 Claude Code、Codex、Gemini、Cursor 和 Xcode 扩展支持。
你不需要在系统提示中反复提醒"不要使用已弃用的语法",而是将一个现成的规则数据库连接到代理。该技能基于 Hudson 在 AGENTS.md 项目中的工作,专注于大型语言模型最容易出错的地方。
这个知识库包含的内容:
- 当前导航和状态绑定的覆盖;
- 优化视图重绘的规则;
- VoiceOver 控件的无障碍检查;
- 软弃用方法的目录——编译器仍然接受,但不应该再这样写了。
作者还有其他平台部分的相关技能:SwiftData Pro、Swift Concurrency Pro 和 Swift Testing Pro。
如何在你的工具中安装技能
通过 npx 安装不到一分钟即可完成:
npx skills add https://github.com/twostraws/swiftui-agent-skill --skill swiftui-pro
该命令会询问你是要在所有项目中全局激活该技能,还是仅绑定到当前仓库。
如果你使用 Claude Code,可以使用内置的插件管理器:
/plugin marketplace add twostraws/SwiftUI-Agent-Skill
/plugin install swiftui-pro@swiftui-agent-skill
对于 Xcode 用户,作者录制了单独的视频来介绍集成到开发工作流程中。如果你愿意,也可以直接克隆仓库并在本地使用规则。
如何运行检查
安装后,可以通过命令或自然语言激活该技能。在 Claude Code 中,只需输入:
/swiftui-pro
Codex 助手响应类似的结构:
$swiftui-pro
你可以立即为命令提供上下文,这样代理就不会浪费时间和 token 对整个文件进行审计。例如:
/swiftui-pro Check for deprecated API
或者用常规提示:"使用 SwiftUI Pro 技能,找出这个模块中的性能问题。"
Token 节省和对不明显问题的关注
项目理念中有一个有趣的细节:作者严格控制指令的大小。模型已经无需提示就知道的基本内容(如 VStack 语法或 .padding() 修饰符)被故意排除在外。每一行上下文都会消耗上下文窗口限制,所以规则中只包含微妙之处、边缘情况和非显而易见的渲染陷阱。
如果你想提交包含自己规则的 pull request,请记住两个条件:最大程度的措辞简洁和 MIT 许可证。
谁会发现这个仓库有用
如果你为 iOS 或 macOS 开发,并且直接在编辑器中积极使用 AI 代理,绝对值得安装。它可以让你不必清理神经网络生成的遗留代码,并立即将界面生成引导向现代 Swift 标准。
先在一个小项目中使用 npx 安装,然后让代理审查一个有动画的界面。建议的 diff 差异会立即显现出来。
相关项目

