mcpField
C
cloudkit-code-review

cloudkit-code-review

github.com/existential-birds测试与质量85122 次安装11 周前更新
代码仓库

关于 cloudkit-code-review

面向审查 Apple CloudKit 代码的技能,提供针对容器、记录、订阅和共享的检查清单与参考指南,并要求报告前验证证据和代码上下文。

主要功能

  1. 01检查账户状态、区域与权限
  2. 02核对错误处理和冲突合并
  3. 03审查批量操作与资源存储
  4. 04检查订阅和共享配置
  5. 05按文件与行号报告问题
  6. 06报告前执行分阶段验证

适用场景

  1. 01审查 CloudKit 数据库和区域配置
  2. 02检查记录同步、错误处理与冲突
  3. 03核验推送订阅和共享实现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/existential-birds/beagle --skill cloudkit-code-review

安装后在 Claude Code 中输入/cloudkit-code-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
container-setup.md
records.md
sharing.md
subscriptions.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 退避机制

审查问题

  1. 用户退出 iCloud 后会发生什么?
  2. 错误处理是否遵循速率限制(retryAfterSeconds)?
  3. 冲突是否得到解决,还是数据会被静默覆盖?
  4. App Store 发布前是否已将架构部署到生产环境?
  5. 共享记录是否位于自定义区域(CKShare 的必要条件)?

硬性门槛(报告前)

对于计划报告的每个发现,按顺序完成以下步骤。满足通过条件前,不得继续。

  1. 位置凭据 — 发现中包含从当前文件内容复制的 [FILE:LINE](或行范围);路径在此仓库中有效。
  2. 阅读相关范围 — 阅读拥有 CloudKit 操作的完整上下文单元:类型或函数(例如 CKOperation 子类的使用、完成处理程序调用链或 CKRecord 生命周期),而非仅阅读差异片段或孤立代码片段。
  3. CloudKit 或部署相关声明(仅当发现依赖容器标识符、公有与私有数据库的选择、自定义区域要求、iCloud 账户状态、权利或生产架构时)— 指明一个已检查的具体凭据(例如权利文件中的 com.apple.developer.icloud-container-environment 或容器 ID、源代码中的 CKContainer.default() 与自定义标识符、Info.plist/目标功能,或架构已部署的证据),或者将该项降级为 审查问题 中的开放问题。
  4. 协议 — 对此项,须满足 review-verification-protocol 中的报告前步骤(若未满足,则不得报告发现)。

每项报告的发现均使用问题格式 [FILE:LINE] ISSUE_TITLE。硬性门槛 4 是此技能审查类型的完整报告前检查清单。

评论

支持 Markdown