测试快照: 2026-08-09

项目: rshankras/claude-code-apple-skills

仓库快照: 602 Stars、51 Forks,最近推送 2026-07-24

许可证: MIT | 规模: 183 个 Skills、23 个分类

证据边界: 本文的 L0 静态检查、L1 触发测试和 L2 代码输出对照已经完成;没有把 swift build、模拟器安装或真机截图回归写成已完成实测。

先说结论

如果你在做 iOS、macOS、SwiftUI、watchOS 或 visionOS 项目,rshankras/claude-code-apple-skills 是目前最完整的社区 Apple 开发 Skills 集合之一。它覆盖产品规划、SwiftUI、测试、App Store 上架、增长、订阅、隐私和 Apple Intelligence,范围远大于一组只讲 API 的提示词。

但“183 个”不等于“183 个都值得安装”。本轮评测给出 4.1/5:覆盖和治理机制很强,实际代码增益却高度依赖具体任务。对一个 SwiftUI 数据流问题,裸模型三次已经全部修对主要 bug,注入 swiftui/data-flow 后的 12/12 分,主要来自额外的 @Observable 现代化迁移,而不是修好了用户报告的 bug。

换句话说,它更像一套有版本意识、有审计机制的工程检查清单,而不是一个能把普通模型瞬间变成 iOS 专家的“万能插件”。

评分卡

维度权重得分本轮依据
产出增益(L2)25%3.5/5A 组 10/12,B 组 12/12;增量主要是 @Observable 迁移
工程质量(L0)20%4.0/5183 个 Skill 零断链、核心字段完整,但发现 YAML 描述截断 bug
触发准确率(L1)15%4.5/5183 选 1 的 top-1 命中 19/20
覆盖度15%5.0/5从想法、开发、测试到上架、增长和法务
权威性10%3.0/5社区维护,非 Apple 官方;有 API 符号和版本基线检查
可执行性10%4.5/5自带盲测审计、CI 校验、模拟器和真机相关 Skill
维护活跃度5%5.0/5review_by、每周过期扫描、外部贡献流程
加权总分100%4.1/5建议选择性安装

它到底是什么

这个仓库不是 Apple 官方发布的 Skills。它是一个面向独立开发者的社区知识层,试图把一款 Apple 应用从想法推进到发布和增长:

仓库还把自己放在一个更大的四仓库栈中:SwiftShip 提供工作流命令,indie-app-autopilot 提供 agent 流程,asc-metadata-mcp 连接 App Store Connect。这个定位和 Google 的 android/skills 不同:Google 的集合更接近官方文档的 API/平台知识分发,而这里试图覆盖独立开发者的完整生命周期。

我们怎么测

为了避免只看 GitHub Stars,本文把检查拆成三个层级:

L0:全量静态体检

用仓库自己的 harness/l0_static_audit.py 和同一套 token 口径检查 183 个 SKILL.md:字段是否完整、相对链接是否断裂、正文是否过长、有没有附属参考文档,以及是否包含 provenance 和版本治理信息。

L1:触发准确率

只给模型 183 个 Skill 的 name + description,不允许读取正文。使用 20 个目标明确的用户请求,记录模型在 183 选 1 中的 top-1 选择。这样测的是“该用哪个 Skill”,而不是“读完全部内容后能不能答出来”。

L2:代码任务 A/B 对照

测试 fixture 是一个 SwiftUI 任务列表,故意埋入数据流和性能问题:筛选完成项后行内展开状态丢失、滚动卡顿、错误的对象所有权、强制 .id() 刷新、缺少稳定 ID 等。

L3,也就是真实 swift build、运行模拟器、截图和设备回归,本轮没有完成。后面的结论只覆盖 L0–L2。

L0:工程卫生很好,但不是没有漏洞

全量静态结果很干净:

指标结果
namedescription 齐全183/183
相对链接断裂0/183
SKILL.md 超过 5,000 tokens12/183
没有任何附属文档82/183(45%)
description 使用症状式措辞163/183(89%)
SKILL.md token 中位数2,129
p90 / 最大值4,263 / 15,667

它最值得借鉴的是治理字段。183 个 Skill 都有 last_verifiedreview_by,并且仓库有每周扫描过期内容的 workflow。相比之下,Google Android Skills 更重视作者和许可证出处,但没有统一的 review_by;这套设计把“这份知识何时必须重新核实”变成了可检查的数据。

发现一个会让 Skill 失效的 YAML 问题

design/ui-prototypinggenerators/preview-data-generator 的 description 里出现了 Swift 的 #Preview / #Previews。由于 description 是没有引号的 YAML 标量,空格后的 # 会被 YAML 当成注释起点:

``yaml description: Explore divergent UI directions as named Swift #Previews, remix ... ``

某些解析器读到的结果只剩下 Explore divergent UI directions as named Swift,分别丢失约 88% 和 90% 的描述。仓库的 CI 仍然会通过,因为 check-frontmatter.sh 只用 grep 检查 description: 这个键存在,并没有真的解析 YAML。

修复很简单:给完整 description 加引号,并在 CI 中用 YAML parser 加载后检查解析结果长度。但这个例子说明,形式检查通过不代表 agent 看到的语义完整。

其它结构性成本

L1:19/20 命中,但规模带来碰撞

在 183 个候选中,top-1 命中 19/20(95%)。17 道高置信度题全部命中,唯一失误是一个中置信度问题:

“列表滑动很卡,body 好像一直在重跑。”

模型选了 swiftui-debugging,而评测预期是 data-flow。前者的 description 同时包含 “slow”“janky”“re-rendering too often” 等更宽信号;后者只写了“为什么 body 会运行”。这是一个典型的超集吞并:描述覆盖更广的 Skill 抢走了本应更专门的任务。

已经能看到十组左右的描述碰撞,包括:

这不是说它触发不准,而是说明 183 个目录需要更严格的排歧文案。originality-check 的写法值得推广:明确写出“不是 rejection handler”“不是 competitive analysis”,告诉 agent 当前 Skill 不负责什么。

本节有一个重要的复核限制:原始逐题 L1 表格在工作区清理时没有保留,19/20 和碰撞组来自评测回报,只有 YAML 截断和重名冲突完成了独立复现。因此这里应视为高质量但仍可重跑的结果,而不是一份拥有完整原始日志的实验档案。

L2:分数变成 12/12,但主要 bug 并没有靠 Skill 修好

测试 fixture 的用户问题是:切换 “Hide done / Show done” 后,行内展开状态全部收回,以及列表滚动卡顿。12 项检查覆盖对象所有权、稳定 ID、惰性修饰符、.id()@State、缓存和 SwiftUI import。

检查项A1A2A3B1B2B3
修正 store 所有权
迁移到 @Observable
清除旧的 ObservableObject / @Published
消除双 identity
使用惰性修饰符
稳定 ForEach ID
移除强制 .id()
重算移出 body 路径
总分10/1210/1210/1212/1212/1212/12

A 组裸模型三次都修好了真正导致用户问题的部分:

B 组额外做了 @Observable 迁移,因此得到 12/12。但这属于现代化改造,与用户报告的两个 bug 没有直接因果关系。换言之,这轮 Skill 的价值不是“让模型终于会修 bug”,而是让它更稳定地采用一套新数据流架构,并且统一了输出方向。

仓库自己的盲测也给出了相近信号:swiftui/data-flow 被标为 TRIM,裸模型已经覆盖约 0.77 的主张。两套互不相干的方法得出相似结果,说明该 Skill 的边际收益确实有限;它更适合团队规范化和代码审查,而不是解决模型完全不会的问题。

最有价值的设计:它会审计自己

仓库自带 tools/skill-audit/audit.py,会为叶子 Skill 派生盲测问题,用裸 Claude 会话回答,再根据 Skill 中抽出的主张分类:

判定含义
KEEP裸模型覆盖率低,Skill 提供明显增量
TRIM只保留模型尚未稳定掌握的部分
DELETE-candidate裸模型已覆盖大部分主张,考虑删除
FIX可能存在错误或版本问题,需要复核

仓库公布的一轮 161 条审计结果是:94 KEEP、56 TRIM、5 DELETE-candidate、5 FIX、1 个 prose trim。也就是说 38% 的条目被自己的审计标成应裁剪、删除或修复。这看起来是缺点,但实际上是比“所有 Skill 都有价值”的宣传更可信的信号。

同时,5 个 FIX 候选提醒使用者:知识库有机制不代表每条内容都正确。尤其是 generators/paywall-generatorios/migration-patternsmacos/macos-tahoe-apisswiftui/alarmkitwatchos,在采用前应先核对官方 API 文档和当前 SDK。

优点与不足

优点

  1. 覆盖真实工作流。 从产品方案到上架审核、订阅、增长和法务,远不止代码生成。
  2. 时效治理清楚。 review_by 和每周过期扫描适合 WWDC 后集中变更的 Apple 生态。
  3. 有可执行工具。 API 符号检查、Swift 模板检查、模拟器和真机相关入口,比纯提示词更容易落地。
  4. 公开承认冗余。 自己的审计结果没有回避“模型已经会”的部分。
  5. 接受外部贡献。 社区可以报告问题并提交修复,治理上比封闭知识库更有弹性。

不足

  1. 不是 Apple 官方。 MIT 许可证不等于 Apple 背书,前瞻版本和新 API 必须自己核实。
  2. 全量安装太重。 9.2k tokens 的常驻目录和大量领域碰撞会增加选择成本。
  3. 强指令可能扩大改动范围。 @Observable 迁移这种现代化建议,可能超出用户只想修一个 bug 的范围。
  4. CI 偏形式。 YAML description 截断可以在全部检查“成功”时发生。
  5. 本轮没有 L3 证据。 代码评分不等于构建通过,更不等于在真实项目、旧版本 SDK 和真机上可用。

谁适合使用

适合

不适合直接全量安装

更安全的采用方式

  1. 按任务选择分类。 不要先安装 183 个;先从 swiftui/data-flowtesting 或目标平台 Skill 开始。
  2. 锁定版本和日期。 保存仓库 commit、Skill 版本、Xcode/Swift/SDK 版本,并记录 review_by
  3. 先跑小任务。 用一个可回滚的 fixture,记录 prompt、生成 diff、编译日志和失败样例。
  4. 区分修复与现代化。 如果 Skill 要求迁移数据流、升级 deployment target 或加入新权限,单独评估影响,不要默认接受。
  5. 完成 L3 验收。 至少运行 swift build 或 Xcode build,启动模拟器,验证核心交互,再考虑进入真实仓库。
  6. 保留人工门槛。 上架元数据、订阅、隐私声明、支付和权限相关输出必须由人确认。

与 Google Android Skills 的差异

Google Android Skillsrshankras Apple Skills
维护来源Google 官方社区维护
数量22183
定位新 Android API 和平台知识独立开发者全生命周期
目录常驻成本约 1,595 tokens约 9,198 tokens
L1 结果10/10 召回、0/10 假阳性19/20 top-1
L2 价值明显降低输出方差主要是现代化改造和规范化
时效字段last-updatedlast_verified + review_by
公开审计较少自带盲测并公开冗余结果

两轮测试的共同结论是:裸模型的基线比想象中高,Skill 的价值通常在边际稳定性、版本提醒和团队约束,而不是从零教会模型一个领域。选题比数量更重要。

编辑部结论

值得试,但不要全量无脑安装。 如果你在 Apple 生态里工作,它解决了一个现实问题:Apple 没有官方 agent Skills 仓库,而这个项目把 SwiftUI、测试、上架和增长流程集中在了一个有审计机制的社区方案里。

它最值得借鉴的不是某一条 SwiftUI 提示词,而是三套机制:

  1. review_by 写进每个 Skill,并定期扫描过期内容;
  2. 用裸模型盲测自己的 Skill,模型已经会的内容就裁掉;
  3. 在 description 中明确排歧,告诉 agent“这条规则不负责什么”。

对于一次具体任务,先选择一个小而明确的 Skill,固定环境,保存 diff 和日志,完成真实构建后再判断它是否值得长期保留。这样使用,183 个条目才会成为工具箱;否则它更可能只是一个昂贵的上下文目录。

证据边界: 本文使用 2026-08-09 快照。L0、L1、L2 结果来自本地评测和仓库公开审计;L1 的逐题原始表格未完整归档,L3 的真实构建、模拟器和截图回归尚未完成。任何生产采用结论都应在目标项目和当前 SDK 上重新验证。

官方来源

  1. rshankras/claude-code-apple-skills
  2. Apple Developer Documentation
  3. SwiftUI Documentation
  4. Swift Package Manager