用途
Canary Watch 用于在部署之后监控并验证一个已部署的 URL,帮助确认发布是否引入回归。它适合在以下时机使用:部署到生产或预发环境之后、合并有风险的 PR 之后、想验证某个修复是否真正生效时、上线窗口内持续监控,以及依赖升级之后。
主要能力
该技能以循环方式运行,直到被停止或观察窗口到期。它监控以下内容:
- HTTP 状态:页面是否返回 200。
- 控制台错误:是否出现此前没有的新错误。
- 网络失败:是否有失败的 API 调用或 5xx 响应。
- 性能:LCP/CLS/INP 相对基线是否出现回归。
- 内容:关键元素(h1、nav、footer、CTA)是否消失。
- API 健康:关键端点是否在 SLA 内响应。
- 静态资源:JS、CSS、图片和字体请求是否返回 2xx/3xx,且内容类型符合预期。
- SSE 流:event-stream 端点能否连接,并收到初始事件或心跳。
使用方式
支持三种观察模式:
- 快速检查(默认):单次执行并报告结果。
/canary-watch https://myapp.com - 持续观察:每 N 分钟检查一次,持续 M 小时。
/canary-watch https://myapp.com --interval 5m --duration 2h - 对比模式:比较 staging 与 production。
/canary-watch --compare https://staging.myapp.com https://myapp.com
告警阈值
critical(立即告警):HTTP 状态不等于 200;新增控制台错误数量大于 5;LCP 大于 4s;API 端点返回 5xx;静态资源返回 4xx/5xx;SSE 端点无法连接或在首次心跳前断开。
warning(在报告中标记):LCP 相对基线增加超过 500ms;CLS 大于 0.1;出现新的控制台警告;响应时间超过基线的 2 倍;静态资源内容类型意外变化;SSE 心跳延迟超过基线的 2 倍。
info(仅记录):轻微性能波动;出现新的网络请求(例如新增第三方脚本)。
通知与输出
当触发 critical 阈值时,会发送桌面通知(macOS/Linux),可选发送 Slack/Discord webhook,并记录到 ~/.claude/canary-watch.log。
输出为 Canary 报告,包含状态(如 HEALTHY)、各项检查结果、基线与差值,例如 HTTP、控制台错误、LCP、CLS、API /health、静态资源、SSE /events 等,并给出是否存在回归的结论。
集成
可与 /browser-qa 搭配用于部署前验证;可作为 PostToolUse hook 挂在 git push 上,在部署后自动检查;也可在 CI 中于部署步骤之后通过 GitHub Actions 运行。
限制
资料未提供该技能的安装方式、收费模式、支持平台范围、具体实现细节或性能开销等信息。