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 中运行






