Agent 写 iOS 总乱改字段、乱加弹窗?我开源了一套可安装的 Skills

45 阅读3分钟

用 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)