mcpField
W
watchos-code-review

watchos-code-review

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

关于 watchos-code-review

面向开发者的 watchOS 代码审查技能,涵盖生命周期、复杂功能、连接与性能。它提供专项参考资料、按序执行的证据门槛和统一的问题格式。

主要功能

  1. 01生命周期与后台任务检查
  2. 02复杂功能和时间线检查
  3. 03WatchConnectivity 审查指引
  4. 04性能与电池检查
  5. 05证据门槛和问题格式

适用场景

  1. 01审查 watchOS 生命周期处理
  2. 02检查复杂功能的时间线实现
  3. 03检查 WatchConnectivity 消息与文件传输代码

安装

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

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

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

包含的文件

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

references/
complications.md
connectivity.md
lifecycle.md
performance.md

详细介绍

watchOS 代码审查

快速参考

问题类型参考资料
App 生命周期、场景、后台模式、扩展运行时references/lifecycle.md
ClockKit、WidgetKit、时间线提供程序、智能叠放references/complications.md
WCSession、消息传递、文件传输、可达性references/connectivity.md
内存限制、后台刷新、电池优化references/performance.md

审查清单

  • 使用 SwiftUI App 协议,并通过 @WKApplicationDelegateAdaptor 处理生命周期事件
  • 从根视图读取 scenePhase(而非始终处于 .active 状态的工作表或模态视图)
  • 仅在 App 处于活动状态时启动 WKExtendedRuntimeSession(不能从后台启动)
  • 在 applicationDidFinishLaunching 中恢复锻炼会话(不能只在代理中恢复)
  • 后台任务的调度间隔至少为 5 分钟;完成当前任务前先调度下一个任务
  • 后台网络请求使用 URLSessionDownloadTask(而非 DataTask)
  • 对于 watchOS 9+ 的复杂功能,使用 WidgetKit 而非 ClockKit
  • 时间线包含未来条目(不只是当前状态);避免出现空档
  • 实现 TimelineEntryRelevance,以便在智能叠放中确定优先级
  • 在调用 activate() 前设置 WCSession 代理;使用单例模式
  • 调用 sendMessage 前检查 isReachable;关键数据使用 transferUserInfo
  • 在代理回调返回前同步移动收到的文件

何时加载参考资料

  • 审查 App 生命周期、后台模式或扩展会话 -> lifecycle.md
  • 审查复杂功能、小组件或时间线提供程序 -> complications.md
  • 审查 WCSession、iPhone 与 Apple Watch 通信 -> connectivity.md
  • 审查内存、电池或性能问题 -> performance.md

输出格式

按以下格式报告问题:[FILE:LINE] ISSUE_TITLE

示例:

  • [WatchApp.swift:18] WKExtendedRuntimeSession 在 App 未处于活动状态时启动
  • [ConnectivityManager.swift:42] 在设置代理之前调用 WCSession.activate()
  • [ComplicationTimeline.swift:67] 时间线没有未来条目

硬性门槛(报告前)

对于准备报告的每项发现,按顺序完成以下步骤。满足通过条件前,不得进入下一步。

  1. 位置依据 — 发现中包含从当前文件内容复制的 [FILE:LINE](或行范围);该路径在此仓库中有效。
  2. 阅读相关范围 — 阅读完整的相关代码单元:负责该行为的 View 主体、WKApplicationDelegate / 场景方法、TimelineProvider 实现、WCSessionDelegate 回调,或锻炼/后台任务处理程序;不能只看差异片段。
  3. watchOS 或配对相关主张(仅当发现依赖于后台模式、复杂功能/时间线约定、WCSession 可达性或传输语义、锻炼或扩展运行时规则,或设备特定限制时)— 指明一项已检查的具体依据(例如,用于确认后台模式的 Info.plist / target capabilities、源码中的 WK* / WCSession 调用顺序、entitlements,或你在快速参考对应文档中阅读的小节),或者将该事项降级为审查问题中的开放问题。
  4. 协议 — 满足 review-verification-protocol 中针对本事项的报告前步骤(若不满足,则不得报告发现)。

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

审查问题

  1. 应用是否使用带有委托适配器的现代 SwiftUI 生命周期?
  2. 后台任务是否正确完成(调用 setTaskCompletedWithSnapshot)?
  3. isLuminanceReduced 为 true 时,是否降低了 UI 更新频率?
  4. WatchConnectivity 委托回调是否分派到主线程?
  5. TabView 是否嵌套在另一个 TabView 中?(watchOS 上会导致内存泄漏)

评论

支持 Markdown