关于 cloudkit-code-review
面向审查 Apple CloudKit 代码的技能,提供针对容器、记录、订阅和共享的检查清单与参考指南,并要求报告前验证证据和代码上下文。
主要功能
- 01检查账户状态、区域与权限
- 02核对错误处理和冲突合并
- 03审查批量操作与资源存储
- 04检查订阅和共享配置
- 05按文件与行号报告问题
- 06报告前执行分阶段验证
适用场景
- 01审查 CloudKit 数据库和区域配置
- 02检查记录同步、错误处理与冲突
- 03核验推送订阅和共享实现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ existential-birds/ beagle --skill cloudkit-code-review安装后在 Claude Code 中输入/cloudkit-code-review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/container-setup.mdrecords.mdsharing.mdsubscriptions.md详细介绍
CloudKit 代码审查
快速参考
| 问题类型 | 参考资料 |
|---|---|
| CKContainer、数据库、区域、权利 | references/container-setup.md |
| CKRecord、引用、资源、批量操作 | references/records.md |
| CKSubscription、推送通知、静默同步 | references/subscriptions.md |
| CKShare、参与者、权限、接受共享 | references/sharing.md |
审查清单
- 执行私有/共享数据库操作前检查账户状态
- 生产数据使用自定义区域(而非默认区域)
- 处理所有 CloudKit 错误,并遵循
retryAfterSeconds的要求 - 使用适当的合并逻辑处理
serverRecordChanged冲突 - 解析
CKErrorPartialFailure,检查各条记录的错误 - 使用批量操作(
CKModifyRecordsOperation),而非逐条保存 - 将大型二进制数据存储为
CKAsset(记录大小上限为 1MB) - 记录键使用类型安全的枚举,而非字符串字面量
- 从回调更新 UI 时,将操作派发到主线程
- 监听账户切换时的
CKAccountChangedNotification - 为订阅设置唯一 ID,以防止重复
- CKShare 使用自定义区域(共享需要自定义区域)
何时加载参考资料
- 审查容器/数据库设置或区域 -> container-setup.md
- 审查记录的 CRUD 操作或关系 -> records.md
- 审查推送通知或同步触发器 -> subscriptions.md
- 审查共享或协作功能 -> sharing.md
输出格式
使用以下格式报告问题:[FILE:LINE] ISSUE_TITLE
示例:
[AppDelegate.swift:24] CKContainer 未使用自定义区域[SyncManager.swift:156] 未处理 CKErrorPartialFailure[DataStore.swift:89] 缺少 retryAfterSeconds 退避机制
审查问题
- 用户退出 iCloud 后会发生什么?
- 错误处理是否遵循速率限制(
retryAfterSeconds)? - 冲突是否得到解决,还是数据会被静默覆盖?
- App Store 发布前是否已将架构部署到生产环境?
- 共享记录是否位于自定义区域(CKShare 的必要条件)?
硬性门槛(报告前)
对于计划报告的每个发现,按顺序完成以下步骤。满足通过条件前,不得继续。
- 位置凭据 — 发现中包含从当前文件内容复制的
[FILE:LINE](或行范围);路径在此仓库中有效。 - 阅读相关范围 — 阅读拥有 CloudKit 操作的完整上下文单元:类型或函数(例如
CKOperation子类的使用、完成处理程序调用链或CKRecord生命周期),而非仅阅读差异片段或孤立代码片段。 - CloudKit 或部署相关声明(仅当发现依赖容器标识符、公有与私有数据库的选择、自定义区域要求、iCloud 账户状态、权利或生产架构时)— 指明一个已检查的具体凭据(例如权利文件中的
com.apple.developer.icloud-container-environment或容器 ID、源代码中的CKContainer.default()与自定义标识符、Info.plist/目标功能,或架构已部署的证据),或者将该项降级为 审查问题 中的开放问题。 - 协议 — 对此项,须满足 review-verification-protocol 中的报告前步骤(若未满足,则不得报告发现)。
每项报告的发现均使用问题格式 [FILE:LINE] ISSUE_TITLE。硬性门槛 4 是此技能审查类型的完整报告前检查清单。
评论
支持 Markdown