用 AI 写 iOS 久了,大概都遇到过这些:
- 后台字段明明是
nickName,模型非给改成nickname - 接口文档还没有,Agent 已经帮你「编」好了 URL 和假列表数据
- 旧版 App 没有的权限弹窗、二次确认,迁移时被「好心」加上去了
- 丢一张蓝湖 / 截图,布局和文案开始自由发挥
这些不是模型笨,是缺少可复用的工程约束。
我把日常踩坑收成一套 Agent Skills(Markdown 指令包),开源了:
GitHub: github.com/mapleleaf99…
适用于 Cursor、Claude Code、OpenAI Codex 等能加载 Skills 的工具,不绑死某一家。
它解决什么
| 痛点 | Skills 强制 |
|---|---|
| JSON 乱改名 | 字段名与后台完全一致 |
| 缺文档就瞎编 | 先问或 TODO,禁止虚构 |
| 迁移乱加限制 | 对齐旧版行为 |
| 崩溃对着地址猜 | UUID 对上 → 符号化 → 再下结论 |
| 按设计做 UI | 严格还原,看不清就问,不自由发挥 |
| 代码绕来绕去 | 能一两行就别堆「安全壳」 |
仓库里按场景拆了很多包:列表 / XIB / SwiftUI / 崩溃 / Flutter 混合桥 / Code Review 等。
README 有完整目录和使用注意事项。
一分钟安装
个人全局(推荐先这样) — 所有项目都能用:
git clone https://github.com/mapleleaf99/ios-agent-skills.git
cd ios-agent-skills
./install.sh
默认装到:~/.cursor/skills/
其他工具 / 自定义目录:
./install.sh --dir "$HOME/.claude/skills"
./install.sh --dir /path/to/your-agent-skills
只装某一个 / 某几个 Skill:
./install.sh --only ios-api-model
./install.sh --only ios-api-model,ios-crash-check,no-speculation-dev
./install.sh --dir "$HOME/.claude/skills" --only ios-ui-design-parity
装进某个 App 项目(团队共享):
mkdir -p YourApp/.cursor/skills
cp -R skills/* YourApp/.cursor/skills/
# 只要某一个:
# cp -R skills/ios-api-model YourApp/.cursor/skills/
装完 / 更新后:新开一条 Agent 对话再试。
可选自检:
./verify-install.sh
./verify-install.sh --dir "$HOME/.cursor/skills"
更完整说明:安装.md
直接能用的提示词
1)字段映射(最常用)
用 ios-api-model + no-speculation-dev。
JSON:
{ "nickName": "张三", "lookTime": "1小时" }
生成 Swift / OC Model,字段名不要改,不要猜没有的字段。
2)旧版迁移
用 ios-legacy-parity + no-speculation-dev。
按旧版行为迁移,不要加权限弹窗、二次确认或「更安全」的校验。
3)蓝湖 / 截图还原
用 ios-ui-design-parity + no-speculation-dev。
严格按这张设计/截图做。不要自由发挥。看不清就问我。
不要假列表数据。
4)提交前 Review
用 ios-code-review + ios-minimal-code。
审查我当前的 iOS 改动。别绕、别堆多余包装。
更多组合:PROMPT_COOKBOOK(中文)
一个最小对比
没有约束时,Agent 很爱这样写:
struct User {
let nickname: String
let watchDuration: String
}
有 ios-api-model 时,应对齐后台:
struct User {
let nickName: String
let lookTime: String
}
更多前后对比见仓库里的对比说明。
使用注意(短)
- 点名 Skill 更稳(例如「用 ios-api-model」);自动触发有,但不保证每次都带上
- Skill 跟你项目现有技术栈走(XIB / SwiftUI / Codable…),不会也不该瞎编你们公司基类名
- 这是给 Agent 的规范,不是系统硬锁;重要任务请在提示里点名
- 安装:全局
./install.sh,或项目内拷贝,或--only只装需要的
最后
如果这套对你有用:
- 欢迎 Star 仓库,方便下次找到
- 有想强制的规则,可按 Issue 模板提「Skill 需求」
- 纯属个人开源,欢迎提 PR / 拍砖
仓库再次放上:
github.com/mapleleaf99…
(许可 MIT)