canary-watch

canary-watch

热门

使用此技能在发布后监控和验证已部署的URL——检查HTTP端点、SSE流、静态资源、控制台错误以及部署、合并或依赖升级后的性能回归。冒烟/金丝雀/部署后验证。

23万Star
3.5万Fork
更新于 2026/7/19
SKILL.md
readonly只读
name
canary-watch
description

使用此技能在发布后监控和验证已部署的URL——检查HTTP端点、SSE流、静态资源、控制台错误以及部署、合并或依赖升级后的性能回归。冒烟/金丝雀/部署后验证。

Canary Watch — 部署后监控

何时使用

  • 部署到生产或预发布环境后
  • 合并高风险PR后
  • 想要验证修复是否真正生效时
  • 在发布窗口期间持续监控
  • 依赖升级后

工作原理

监控已部署的URL是否存在回归。循环运行,直到停止或监控窗口过期。

监控内容

1. HTTP状态 — 页面是否返回200?
2. 控制台错误 — 是否出现之前没有的新错误?
3. 网络故障 — API调用失败,5xx响应?
4. 性能 — LCP/CLS/INP与基线相比是否退化?
5. 内容 — 关键元素是否消失?(h1、导航、页脚、CTA)
6. API健康 — 关键端点是否在SLA内响应?
7. 静态资源 — JS、CSS、图片和字体请求是否返回2xx/3xx并带有预期的内容类型?
8. SSE流 — 事件流端点是否连接并接收到初始事件或心跳?

监控模式

快速检查(默认):单次通过,报告结果

/canary-watch https://myapp.com

持续监控:每N分钟检查一次,持续M小时

/canary-watch https://myapp.com --interval 5m --duration 2h

差异模式:比较预发布和生产环境

/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:      # 仅记录
  - 轻微性能波动
  - 新的网络请求(是否添加了第三方脚本?)

通知

当超过关键阈值时:

  • 桌面通知(macOS/Linux)
  • 可选:Slack/Discord webhook
  • 记录到 ~/.claude/canary-watch.log

输出

## Canary 报告 — myapp.com — 2026-03-23 03:15 PST

### 状态:健康 ✓

| 检查项 | 结果 | 基线 | 差异 |
|-------|--------|----------|-------|
| HTTP | 200 ✓ | 200 | — |
| 控制台错误 | 0 ✓ | 0 | — |
| LCP | 1.8s ✓ | 1.6s | +200ms |
| CLS | 0.01 ✓ | 0.01 | — |
| API /health | 145ms ✓ | 120ms | +25ms |
| 静态资源 | 42/42 ✓ | 42/42 | — |
| SSE /events | 已连接 ✓ | 已连接 | +80ms 心跳 |

### 未检测到回归。部署正常。

集成

配合使用:

  • /browser-qa 用于部署前验证
  • 钩子:添加为 git push 的 PostToolUse 钩子,在部署后自动检查
  • CI:在部署步骤后在 GitHub Actions 中运行